Skip to content

Commit 190fc8a

Browse files
committed
allow generic LSP config to specify trigger characters to override server
1 parent 35f2a64 commit 190fc8a

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,14 +285,18 @@ wouldn't usually know about. The value is a list of dictionaries containing:
285285
- `capabilities'`: Overrides the default LSP capabilities of ycmd.
286286
- If you enable `workspace/configuration` support, check the extra conf
287287
details, relevant to LSP servers.
288+
- `triggerCharacters`: Override the LSP server's trigger characters for
289+
completion. This can be useful when the server obnoxiously requests completion
290+
on every character or for example on whitespace characters.
288291

289292
```json
290293
{
291294
"language_server": [ {
292295
"name": "gopls",
293296
"cmdline": [ "/path/to/gopls", "-rpc.trace" ],
294297
"filetypes": [ "go" ],
295-
"project_root_files": [ "go.mod" ]
298+
"project_root_files": [ "go.mod" ],
299+
"tirggerCharacters": [ "." ]
296300
} ]
297301
}
298302
```

ycmd/completers/language_server/generic_lsp_completer.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ def __init__( self, user_options, server_settings ):
3232

3333
self._command_line = server_settings.get( 'cmdline' )
3434

35+
self._server_settings = server_settings
36+
3537
self._port = server_settings.get( 'port' )
3638
if self._port:
3739
connection_type = 'tcp'
@@ -121,3 +123,8 @@ def WorkspaceConfigurationResponse( self, request ):
121123
sections_to_config_map = self._settings.get( 'config_sections', {} )
122124
return [ sections_to_config_map.get( item.get( 'section', '' ) )
123125
for item in request[ 'params' ][ 'items' ] ]
126+
127+
128+
def GetTriggerCharacters( self, server_trigger_characters ):
129+
return self._server_settings.get( 'triggerCharacters',
130+
server_trigger_characters )

ycmd/tests/go/diagnostics_test.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ def test_Diagnostics_DetailedDiags( self, app ):
7171

7272
results = app.post_json( '/detailed_diagnostic', request_data ).json
7373
assert_that( results,
74-
any_of( has_entry( 'message', 'undeclared name: diagnostics_test' ),
75-
has_entry( 'message', 'undefined: diagnostics_test' ) ) )
74+
any_of( has_entry( 'message',
75+
'undeclared name: diagnostics_test' ),
76+
has_entry( 'message',
77+
'undefined: diagnostics_test' ) ) )
7678

7779

7880
@WithRetry()

0 commit comments

Comments
 (0)