I’m trying out a perl language server called PerlNavigator. I’m getting an error as soon as the language server starts and then it shuts down. Here is the debug code:
[START][2022-03-02 12:19:02] LSP logging initiated
[INFO][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:261 "Starting RPC client" {
args = { "/Users/stevedondley/git_repos/PerlNavigator/server/out/server.js", "--stdio" },
cmd = "/usr/local/bin/node",
extra = {
cwd = "/Users/stevedondley/git_repos/mojo"
}
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:892 "LSP[perlnavigator]" "initialize_params" {
capabilities = {
callHierarchy = {
dynamicRegistration = false
},
textDocument = {
codeAction = {
codeActionLiteralSupport = {
codeActionKind = {
valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }
}
},
dataSupport = true,
dynamicRegistration = false,
resolveSupport = {
properties = { "edit" }
}
},
completion = {
completionItem = {
commitCharactersSupport = false,
deprecatedSupport = false,
documentationFormat = { "markdown", "plaintext" },
preselectSupport = false,
snippetSupport = false
},
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 }
},
contextSupport = false,
dynamicRegistration = false
},
declaration = {
linkSupport = true
},
definition = {
linkSupport = true
},
documentHighlight = {
dynamicRegistration = false
},
documentSymbol = {
dynamicRegistration = false,
hierarchicalDocumentSymbolSupport = true,
symbolKind = {
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, 26 }
}
},
hover = {
contentFormat = { "markdown", "plaintext" },
dynamicRegistration = false
},
implementation = {
linkSupport = true
},
publishDiagnostics = {
relatedInformation = true,
tagSupport = {
valueSet = { 1, 2 }
}
},
references = {
dynamicRegistration = false
},
rename = {
dynamicRegistration = false,
prepareSupport = true
},
signatureHelp = {
dynamicRegistration = false,
signatureInformation = {
activeParameterSupport = true,
documentationFormat = { "markdown", "plaintext" },
parameterInformation = {
labelOffsetSupport = true
}
}
},
synchronization = {
didSave = true,
dynamicRegistration = false,
willSave = false,
willSaveWaitUntil = false
},
typeDefinition = {
linkSupport = true
}
},
window = {
showDocument = {
support = false
},
showMessage = {
messageActionItem = {
additionalPropertiesSupport = false
}
},
workDoneProgress = true
},
workspace = {
applyEdit = true,
configuration = true,
symbol = {
dynamicRegistration = false,
hierarchicalWorkspaceSymbolSupport = true,
symbolKind = {
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, 26 }
}
},
workspaceEdit = {
resourceOperations = { "rename", "create", "delete" }
},
workspaceFolders = true
}
},
clientInfo = {
name = "Neovim",
version = "0.6.1"
},
initializationOptions = vim.empty_dict(),
processId = 37632,
rootPath = "/Users/stevedondley/git_repos/mojo",
rootUri = "file:///Users/stevedondley/git_repos/mojo",
trace = "off",
workspaceFolders = { {
name = "/Users/stevedondley/git_repos/mojo",
uri = "file:///Users/stevedondley/git_repos/mojo"
} }
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
id = 1,
jsonrpc = "2.0",
method = "initialize",
params = {
capabilities = {
callHierarchy = {
dynamicRegistration = false
},
textDocument = {
codeAction = {
codeActionLiteralSupport = {
codeActionKind = {
valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }
}
},
dataSupport = true,
dynamicRegistration = false,
resolveSupport = {
properties = { "edit" }
}
},
completion = {
completionItem = {
commitCharactersSupport = false,
deprecatedSupport = false,
documentationFormat = { "markdown", "plaintext" },
preselectSupport = false,
snippetSupport = false
},
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 }
},
contextSupport = false,
dynamicRegistration = false
},
declaration = {
linkSupport = true
},
definition = {
linkSupport = true
},
documentHighlight = {
dynamicRegistration = false
},
documentSymbol = {
dynamicRegistration = false,
hierarchicalDocumentSymbolSupport = true,
symbolKind = {
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, 26 }
}
},
hover = {
contentFormat = { "markdown", "plaintext" },
dynamicRegistration = false
},
implementation = {
linkSupport = true
},
publishDiagnostics = {
relatedInformation = true,
tagSupport = {
valueSet = { 1, 2 }
}
},
references = {
dynamicRegistration = false
},
rename = {
dynamicRegistration = false,
prepareSupport = true
},
signatureHelp = {
dynamicRegistration = false,
signatureInformation = {
activeParameterSupport = true,
documentationFormat = { "markdown", "plaintext" },
parameterInformation = {
labelOffsetSupport = true
}
}
},
synchronization = {
didSave = true,
dynamicRegistration = false,
willSave = false,
willSaveWaitUntil = false
},
typeDefinition = {
linkSupport = true
}
},
window = {
showDocument = {
support = false
},
showMessage = {
messageActionItem = {
additionalPropertiesSupport = false
}
},
workDoneProgress = true
},
workspace = {
applyEdit = true,
configuration = true,
symbol = {
dynamicRegistration = false,
hierarchicalWorkspaceSymbolSupport = true,
symbolKind = {
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, 26 }
}
},
workspaceEdit = {
resourceOperations = { "rename", "create", "delete" }
},
workspaceFolders = true
}
},
clientInfo = {
name = "Neovim",
version = "0.6.1"
},
initializationOptions = vim.empty_dict(),
processId = 37632,
rootPath = "/Users/stevedondley/git_repos/mojo",
rootUri = "file:///Users/stevedondley/git_repos/mojo",
trace = "off",
workspaceFolders = { {
name = "/Users/stevedondley/git_repos/mojo",
uri = "file:///Users/stevedondley/git_repos/mojo"
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 1,
jsonrpc = "2.0",
result = {
capabilities = {
completionProvider = {
resolveProvider = false,
triggerCharacters = { "$", "@", "%", "-", ">", ":" }
},
definitionProvider = true,
documentFormattingProvider = true,
documentRangeFormattingProvider = true,
documentSymbolProvider = true,
hoverProvider = true,
textDocumentSync = 2,
workspace = {
workspaceFolders = {
supported = true
}
},
workspaceSymbolProvider = true
}
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
jsonrpc = "2.0",
method = "initialized",
params = vim.empty_dict()
}
[DEBUG][2022-03-02 12:19:02] .../lua/vim/lsp.lua:921 "LSP[perlnavigator]" "server_capabilities" {
completionProvider = {
resolveProvider = false,
triggerCharacters = { "$", "@", "%", "-", ">", ":" }
},
definitionProvider = true,
documentFormattingProvider = true,
documentRangeFormattingProvider = true,
documentSymbolProvider = true,
hoverProvider = true,
textDocumentSync = 2,
workspace = {
workspaceFolders = {
supported = true
}
},
workspaceSymbolProvider = true
}
[INFO][2022-03-02 12:19:02] .../lua/vim/lsp.lua:922 "LSP[perlnavigator]" "initialized" {
resolved_capabilities = {
call_hierarchy = false,
code_action = false,
code_lens = false,
code_lens_resolve = false,
completion = true,
declaration = false,
document_formatting = true,
document_highlight = false,
document_range_formatting = true,
document_symbol = true,
execute_command = false,
find_references = false,
goto_definition = true,
hover = true,
implementation = false,
rename = false,
signature_help = false,
signature_help_trigger_characters = {},
text_document_did_change = 2,
text_document_open_close = true,
text_document_save = true,
text_document_save_include_text = false,
text_document_will_save = false,
text_document_will_save_wait_until = false,
type_definition = false,
workspace_folder_properties = {
changeNotifications = false,
supported = true
},
workspace_symbol = true
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
jsonrpc = "2.0",
method = "textDocument/didOpen",
params = {
textDocument = {
languageId = "perl",
text = "\n",
uri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
version = 0
}
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 0,
jsonrpc = "2.0",
method = "client/registerCapability",
params = {
registrations = { {
id = "9f1be352-8856-4135-ba1b-119a7f5ca1ea",
method = "workspace/didChangeConfiguration",
registerOptions = vim.empty_dict()
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 1,
jsonrpc = "2.0",
method = "client/registerCapability",
params = {
registrations = { {
id = "ec53bd8e-2cd0-4b3e-b108-3df754259056",
method = "workspace/didChangeWorkspaceFolders",
registerOptions = vim.empty_dict()
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 2,
jsonrpc = "2.0",
method = "workspace/configuration",
params = {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 3,
jsonrpc = "2.0",
method = "workspace/configuration",
params = {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "client/registerCapability" {
registrations = { {
id = "9f1be352-8856-4135-ba1b-119a7f5ca1ea",
method = "workspace/didChangeConfiguration",
registerOptions = vim.empty_dict()
} }
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:748 "server_request: found handler for" "client/registerCapability"
[TRACE][2022-03-02 12:19:02] ...lsp/handlers.lua:437 "default_handler" "client/registerCapability" {
ctx = '{\n client_id = 1,\n method = "client/registerCapability"\n}',
result = {
registrations = { {
id = "9f1be352-8856-4135-ba1b-119a7f5ca1ea",
method = "workspace/didChangeConfiguration",
registerOptions = vim.empty_dict()
} }
}
}
[WARN][2022-03-02 12:19:02] ...lsp/handlers.lua:109 "The language server perlnavigator triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
result = vim.NIL,
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
id = 0,
jsonrpc = "2.0",
result = vim.NIL
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "client/registerCapability" {
registrations = { {
id = "ec53bd8e-2cd0-4b3e-b108-3df754259056",
method = "workspace/didChangeWorkspaceFolders",
registerOptions = vim.empty_dict()
} }
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:748 "server_request: found handler for" "client/registerCapability"
[TRACE][2022-03-02 12:19:02] ...lsp/handlers.lua:437 "default_handler" "client/registerCapability" {
ctx = '{\n client_id = 1,\n method = "client/registerCapability"\n}',
result = {
registrations = { {
id = "ec53bd8e-2cd0-4b3e-b108-3df754259056",
method = "workspace/didChangeWorkspaceFolders",
registerOptions = vim.empty_dict()
} }
}
}
[WARN][2022-03-02 12:19:02] ...lsp/handlers.lua:109 "The language server perlnavigator triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
result = vim.NIL,
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
id = 1,
jsonrpc = "2.0",
result = vim.NIL
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "workspace/configuration" {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:748 "server_request: found handler for" "workspace/configuration"
[TRACE][2022-03-02 12:19:02] ...lsp/handlers.lua:437 "default_handler" "workspace/configuration" {
ctx = '{\n client_id = 1,\n method = "workspace/configuration"\n}',
result = {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
result = { vim.NIL },
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
id = 2,
jsonrpc = "2.0",
result = { vim.NIL }
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "workspace/configuration" {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:748 "server_request: found handler for" "workspace/configuration"
[TRACE][2022-03-02 12:19:02] ...lsp/handlers.lua:437 "default_handler" "workspace/configuration" {
ctx = '{\n client_id = 1,\n method = "workspace/configuration"\n}',
result = {
items = { {
scopeUri = "file:///Users/stevedondley/git_repos/mojo/test.pl",
section = "perlnavigator"
} }
}
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
result = { vim.NIL },
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
id = 3,
jsonrpc = "2.0",
result = { vim.NIL }
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 4,
jsonrpc = "2.0",
method = "workspace/workspaceFolders"
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "workspace/workspaceFolders" nil
[WARN][2022-03-02 12:19:02] .../lua/vim/lsp.lua:751 "server_request: no handler found for" "workspace/workspaceFolders"
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
err = {
code = -32601,
message = "MethodNotFound",
<metatable> = {
__tostring = <function 1>
}
},
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
error = {
code = -32601,
message = "MethodNotFound",
<metatable> = {
__tostring = <function 1>
}
},
id = 4,
jsonrpc = "2.0"
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:454 "rpc.receive" {
id = 5,
jsonrpc = "2.0",
method = "workspace/workspaceFolders"
}
[TRACE][2022-03-02 12:19:02] .../lua/vim/lsp.lua:745 "server_request" "workspace/workspaceFolders" nil
[WARN][2022-03-02 12:19:02] .../lua/vim/lsp.lua:751 "server_request: no handler found for" "workspace/workspaceFolders"
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:464 "server_request: callback result" {
err = {
code = -32601,
message = "MethodNotFound",
<metatable> = {
__tostring = <function 1>
}
},
status = true
}
[DEBUG][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:347 "rpc.send" {
error = {
code = -32601,
message = "MethodNotFound",
<metatable> = {
__tostring = <function 1>
}
},
id = 5,
jsonrpc = "2.0"
}
[ERROR][2022-03-02 12:19:02] .../vim/lsp/rpc.lua:420 "rpc" "/usr/local/bin/node" "stderr" "/Users/stevedondley/git_repos/PerlNavigator/server/node_modules/vscode-jsonrpc/lib/common/connection.js:477\n responsePromise.reject(new messages_1.ResponseError(error.code, error.message, error.data));\n ^\n\nResponseError: MethodNotFound\n at handleResponse (/Users/stevedondley/git_repos/PerlNavigator/server/node_modules/vscode-jsonrpc/lib/common/connection.js:477:48)\n at processMessageQueue (/Users/stevedondley/git_repos/PerlNavigator/server/node_modules/vscode-jsonrpc/lib/common/connection.js:292:17)\n at Immediate.<anonymous> (/Users/stevedondley/git_repos/PerlNavigator/server/node_modules/vscode-jsonrpc/lib/common/connection.js:276:13)\n at processImmediate (node:internal/timers:466:21) {\n code: -32601,\n data: undefined\n}\n\nNode.js v17.6.0\n"