Skip to content

Commit d286ca6

Browse files
authored
feat: hide docstrings in completion by default (#139)
1 parent ff6d26f commit d286ca6

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

main.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ Environment variables:
5555

5656
func main() {
5757
config := server.Configuration{
58-
JPaths: filepath.SplitList(os.Getenv("JSONNET_PATH")),
59-
FormattingOptions: formatter.DefaultOptions(),
58+
JPaths: filepath.SplitList(os.Getenv("JSONNET_PATH")),
59+
FormattingOptions: formatter.DefaultOptions(),
60+
ShowDocstringInCompletion: false,
6061
}
6162
log.SetLevel(log.InfoLevel)
6263

@@ -82,6 +83,8 @@ func main() {
8283
config.EnableLintDiagnostics = true
8384
case "--eval-diags":
8485
config.EnableEvalDiagnostics = true
86+
case "--show-docstrings":
87+
config.ShowDocstringInCompletion = true
8588
}
8689
}
8790

pkg/server/completion.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func (s *Server) completionFromStack(line string, stack *nodestack.NodeStack, vm
9090
}
9191

9292
completionPrefix := strings.Join(indexes[:len(indexes)-1], ".")
93-
return createCompletionItemsFromRanges(ranges, completionPrefix, line, position)
93+
return s.createCompletionItemsFromRanges(ranges, completionPrefix, line, position)
9494
}
9595

9696
func (s *Server) completionStdLib(line string) []protocol.CompletionItem {
@@ -132,7 +132,7 @@ func (s *Server) completionStdLib(line string) []protocol.CompletionItem {
132132
return items
133133
}
134134

135-
func createCompletionItemsFromRanges(ranges []processing.ObjectRange, completionPrefix, currentLine string, position protocol.Position) []protocol.CompletionItem {
135+
func (s *Server) createCompletionItemsFromRanges(ranges []processing.ObjectRange, completionPrefix, currentLine string, position protocol.Position) []protocol.CompletionItem {
136136
var items []protocol.CompletionItem
137137
labels := make(map[string]bool)
138138

@@ -147,6 +147,10 @@ func createCompletionItemsFromRanges(ranges []processing.ObjectRange, completion
147147
continue
148148
}
149149

150+
if !s.configuration.ShowDocstringInCompletion && strings.HasPrefix(label, "#") {
151+
continue
152+
}
153+
150154
// Ignore the current field
151155
if strings.Contains(currentLine, label+":") && completionPrefix == "self" {
152156
continue

pkg/server/configuration.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ type Configuration struct {
2020
ExtCode map[string]string
2121
FormattingOptions formatter.Options
2222

23-
EnableEvalDiagnostics bool
24-
EnableLintDiagnostics bool
23+
EnableEvalDiagnostics bool
24+
EnableLintDiagnostics bool
25+
ShowDocstringInCompletion bool
2526
}
2627

2728
func (s *Server) DidChangeConfiguration(_ context.Context, params *protocol.DidChangeConfigurationParams) error {
@@ -70,6 +71,12 @@ func (s *Server) DidChangeConfiguration(_ context.Context, params *protocol.DidC
7071
} else {
7172
return fmt.Errorf("%w: unsupported settings value for enable_lint_diagnostics. expected boolean. got: %T", jsonrpc2.ErrInvalidParams, sv)
7273
}
74+
case "show_docstring_in_completion":
75+
if boolVal, ok := sv.(bool); ok {
76+
s.configuration.ShowDocstringInCompletion = boolVal
77+
} else {
78+
return fmt.Errorf("%w: unsupported settings value for show_docstring_in_completion. expected boolean. got: %T", jsonrpc2.ErrInvalidParams, sv)
79+
}
7380
case "ext_vars":
7481
newVars, err := s.parseExtVars(sv)
7582
if err != nil {

0 commit comments

Comments
 (0)