Skip to content

Instantly share code, notes, and snippets.

diff --git a/ycmd/completers/language_server/language_server_completer.py b/ycmd/completers/language_server/language_server_completer.py
index 08aba1af..049f0df1 100644
--- a/ycmd/completers/language_server/language_server_completer.py
+++ b/ycmd/completers/language_server/language_server_completer.py
@@ -2638,7 +2638,10 @@ class LanguageServerCompletionsCache( CompletionsCache ):
class RejectCollector( object ):
def HandleServerToClientRequest( self, request, connection ):
- message = lsp.Reject( request, lsp.Errors.MethodNotFound )
+ if request[ 'method' ] == 'window/showMessageRequest':
@bstaletic
bstaletic / version
Created October 20, 2019 23:24
vim signature help
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jun 06 2019 17:31:41)
Included patches: 1-1453
Modified by [email protected]
Compiled by [email protected]
Huge version with GTK2 GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
+arabic +file_in_path -mouse_sysmouse +tcl
+autocmd +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
+balloon_eval +folding +multi_byte +terminfo
@bstaletic
bstaletic / messages
Last active October 19, 2019 10:36
sig help debug
From /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/test/signature_help.test.vim:
Executing Test_Placement_MultiLine()
Executing Test_Placement_Simple()
Executing Test_Signatures_After_Trigger()
Executing Test_Signatures_TopLine()
Executing Test_Signatures_TopLineWithPUM()
Wrote ycm_p6qvqz0r.log log for failed test: /home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/test/signature_help.test.vim_Test_Signatures_TopLineWithPUM___ycm_p6qvqz0r.log.testlog
**** LOG FILE ycm_p6qvqz0r.log ****
2019-10-19 12:22:39,174 - DEBUG - Starting ycmd with: ['/usr/sbin/python2', '/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/python/ycm/../../third_party/ycmd/ycmd', '--port=40283', '--options_file=/tmp/tmp35c434b7', '--log=DEBUG', '--idle_suicide_seconds=1800', '--stdout=/tmp/ycmd_40283_stdout_m9d8tdjf.log', '--stderr=/tmp/ycmd_40283_stderr_gor8m3s7.log', '--keep_logfiles']
@bstaletic
bstaletic / gopls_bad_diag.log
Created September 9, 2019 11:21
gopls 0.1.3
ycmd: INFO: Received event notification
ycmd: DEBUG: Event name: FileReadyToParse
ycmd: INFO: Adding buffer identifiers for file: /home/bstaletic/work/ycmd/ycmd/tests/go/go_module/goto.go
ycmd: INFO: Starting gopls: ['/home/bstaletic/work/ycmd/third_party/go/src/golang.org/x/tools/cmd/gopls/gopls', '-logfile', None, '-rpc.trace']
ycmd: INFO: gopls started
ycmd: DEBUG: TX: Sending message: b'Content-Length: 385\r\n\r\n{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"completion":{"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}}}},"initializationOptions":{},"processId":31435,"rootPath":"/home/bstaletic/work/ycmd/ycmd/tests/go/go_module","rootUri":"file:///home/bstaletic/work/ycmd/ycmd/tests/go/go_module"}}'
ycmd: INFO: Received ready request
ycmd: DEBUG: RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2019/09/09 13:17:26 6.947863ms for GOROOT= GOPATH= GO111MODULE= PWD=
@bstaletic
bstaletic / clang.log
Created July 13, 2019 15:34
ycmd logs for a bug report
V[17:30:53.586] <<< {"id":"1","jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"completion":{"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}}}},"initializationOptions":{},"processId":3750,"rootPath":"/home/bstaletic/work/c-family","rootUri":"file:///home/bstaletic/work/c-family"}}
I[17:30:53.586] <-- initialize("1")
I[17:30:53.586] BackgroundIndex: build symbol index periodically every 5000 ms.
I[17:30:53.586] --> reply:initialize("1") 0 ms
V[17:30:53.586] >>> {"id":"1","jsonrpc":"2.0","result":{"capabilities":{"codeActionProvider":true,"completionProvider":{"resolveProvider":false,"triggerCharacters":[".",">",":"]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentOnTypeFormattingProvider":{"firstTriggerCharacter":"}","moreTriggerCharacter":[]},"documentRangeFormattingProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["clangd.applyFix"]},"ho
diff --git a/ycmd/completers/rust/rust_completer.py b/ycmd/completers/rust/rust_completer.py
index 941cec4f..7d91e214 100644
--- a/ycmd/completers/rust/rust_completer.py
+++ b/ycmd/completers/rust/rust_completer.py
@@ -28,7 +28,8 @@ from future.utils import itervalues
from subprocess import PIPE
from ycmd import responses, utils
-from ycmd.completers.language_server import simple_language_server_completer
+from ycmd.completers.language_server import ( simple_language_server_completer,
@bstaletic
bstaletic / bench.txt
Last active January 15, 2020 18:39
ycmd bench
master
---------------------------------------------------------------------------------------------------------------------
IdentifierCompleterFixture/CandidatesWithCommonPrefix/1/0 827 ns 827 ns 849012
IdentifierCompleterFixture/CandidatesWithCommonPrefix/16/0 5420 ns 5415 ns 128928
IdentifierCompleterFixture/CandidatesWithCommonPrefix/256/0 125180 ns 125083 ns 5617
IdentifierCompleterFixture/CandidatesWithCommonPrefix/4096/0 1846880 ns 1844614 ns 386
IdentifierCompleterFixture/CandidatesWithCommonPrefix/65536/0 46297888 ns 46121385 ns 15
IdentifierCompleterFixture_BigO 44.14 NlgN 43.97 NlgN
IdentifierCompleterFixture_RMS 2 % 1 %
IdentifierCompleterFixture/CandidatesWithCommonPrefix/1/10 835 ns 8
def LanguageServerCompleter_Diagnostics_HandleNotificationThrows_test():
completer = MockCompleter()
filepath = os.path.realpath( '/foo' )
uri = lsp.FilePathToUri( filepath )
request_data = RequestWrap( BuildRequest( line_num = 1,
column_num = 1,
filepath = filepath,
contents = '' ) )
notification = {
'jsonrpc': '2.0',

LSP based completers

The LSP servers sometimes support user configurations. To learn what configurations are available, consult the respective LSP server's documentation.

  • ls: (optional) a dictionary where all LSP server specific settings reside.

Example of LSP configuration:

def Settings( **kwargs ):
Messages maintainer: Bram Moolenaar <[email protected]>
Error detected while processing function <SNR>60_OnTextChangedInsertMode[29]..<SNR>60_RequestSignatureHelp[2]..<SNR>60_PollSignatureHelp[1]..<SNR>60_Pyeval:
line 2:
Traceback (most recent call last):
Error detected while processing function <SNR>60_OnTextChangedInsertMode[29]..<SNR>60_RequestSignatureHelp[2]..<SNR>60_PollSignatureHelp[1]..<SNR>60_Pyeval:
line 2:
File "<string>", line 1, in <module>
Error detected while processing function <SNR>60_OnTextChangedInsertMode[29]..<SNR>60_RequestSignatureHelp[2]..<SNR>60_PollSignatureHelp[1]..<SNR>60_Pyeval:
line 2:
File "/home/bstaletic/.vim/pack/bundle/start/YouCompleteMe/python/ycm/youcompleteme.py", line 339, in SignatureHelpRequestReady