puppetlabs / puppetlabs/puppet-editor-services

Unable to generate Definition information

Open
#337 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug community
Dominant language
Ruby
Stars
52
Forks
21
Avg merge
15h
Merged PRs (30d)
3

Description

Describe the Bug

When trying to use go to definition in my nevim setup I get error from Puppet LSP and empty response.

I, [2023-04-27T09:07:06.451883 #2357]  INFO -- : Language Server is v1.3.1
D, [2023-04-27T09:07:06.464261 #2357] DEBUG -- : Loading gems...
I, [2023-04-27T09:07:07.368829 #2357]  INFO -- : Using Puppet v5.5.22
I, [2023-04-27T09:07:07.372715 #2357]  INFO -- : Using Facter v2.5.7
D, [2023-04-27T09:07:07.375613 #2357] DEBUG -- : Detected additional puppet settings ["--modulepath", "/code/a32-tools:/code/puppet:/code/puppet-forge"]
I, [2023-04-27T09:07:07.395013 #2357]  INFO -- : Initializing settings...
I, [2023-04-27T09:07:07.398131 #2357]  INFO -- : Starting RPC Server...
D, [2023-04-27T09:07:07.401034 #2357] DEBUG -- : Using STDIO Server
D, [2023-04-27T09:07:07.404300 #2357] DEBUG -- : STDIOSRV: Starting STDIO server...
D, [2023-04-27T09:07:07.406998 #2357] DEBUG -- : --- INBOUND
{"jsonrpc":"2.0","params":{"capabilities":{"workspace":{"workspaceEdit":{"resourceOperations":["rename","create","delete"]},"symbol":{"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]},"dynamicRegistration":false,"hierarchicalWorkspaceSymbolSupport":true},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":true},"workspaceFolders":true,"semanticTokens":{"refreshSupport":true},"configuration":true,"applyEdit":true},"window":{"workDoneProgress":true,"showMessage":{"messageActionItem":{"additionalPropertiesSupport":false}},"showDocument":{"support":true}},"textDocument":{"rename":{"dynamicRegistration":false,"prepareSupport":true},"implementation":{"linkSupport":true},"references":{"dynamicRegistration":false},"documentHighlight":{"dynamicRegistration":false},"documentSymbol":{"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]},"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true},"definition":{"linkSupport":true},"semanticTokens":{"formats":["relative"],"overlappingTokenSupport":true,"multilineTokenSupport":false,"serverCancelSupport":false,"augmentsSyntaxTokens":true,"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"requests":{"range":false,"full":{"delta":true}},"dynamicRegistration":false,"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"]},"declaration":{"linkSupport":true},"publishDiagnostics":{"tagSupport":{"valueSet":[1,2]},"relatedInformation":true},"typeDefinition":{"linkSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["markdown","plaintext"]},"callHierarchy":{"dynamicRegistration":false},"codeAction":{"resolveSupport":{"properties":["edit"]},"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dynamicRegistration":false,"isPreferredSupport":true,"dataSupport":true},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["markdown","plaintext"],"activeParameterSupport":true}},"synchronization":{"didSave":true,"willSave":true,"dynamicRegistration":false,"willSaveWaitUntil":true},"completion":{"contextSupport":true,"completionItem":{"insertReplaceSupport":true,"insertTextModeSupport":{"valueSet":[1,2]},"snippetSupport":true,"commitCharactersSupport":true,"preselectSupport":true,"deprecatedSupport":true,"documentationFormat":["markdown","plaintext"],"tagSupport":{"valueSet":[1]},"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"labelDetailsSupport":true},"completionList":{"itemDefaults":["commitCharacters","editRange","insertTextFormat","insertTextMode","data"]},"insertTextMode":1,"dynamicRegistration":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]}}}},"trace":"off","rootPath":"\/code\/a32-tools\/puppet-araw_profile","rootUri":"file:\/\/\/code\/a32-tools\/puppet-araw_profile","workspaceFolders":[{"uri":"file:\/\/\/code\/a32-tools\/puppet-araw_profile","name":"\/code\/a32-tools\/puppet-araw_profile"}],"processId":2326,"clientInfo":{"name":"Neovim","version":"0.10.0"},"initializationOptions":{}},"method":"initialize","id":1}
---
D, [2023-04-27T09:07:07.412078 #2357] DEBUG -- : Received initialize method
I, [2023-04-27T09:07:07.414874 #2357]  INFO -- : Loading Default Data via aggregate (Async)...
D, [2023-04-27T09:07:07.417627 #2357] DEBUG -- : SidecarQueue Thread: Running sidecar ["ruby", "/home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/puppet-languageserver-sidecar", "--action", "default_aggregate", "--puppet-version=5.5.22", "--puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge"]
D, [2023-04-27T09:07:07.417773 #2357] DEBUG -- : SidecarQueue Thread: Running sidecar ["ruby", "/home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/puppet-languageserver-sidecar", "--action", "facts", "--puppet-version=5.5.22", "--puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge"]
I, [2023-04-27T09:07:07.417878 #2357]  INFO -- : Loading static data (Async)...
I, [2023-04-27T09:07:07.418025 #2357]  INFO -- : Loading Workspace Data via aggregate (Async)...
D, [2023-04-27T09:07:07.421768 #2357] DEBUG -- : --- OUTBOUND
{"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":1,"hoverProvider":true,"completionProvider":{"resolveProvider":true,"triggerCharacters":[">","$","[","="]},"definitionProvider":true,"documentSymbolProvider":true,"workspaceSymbolProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"documentOnTypeFormattingProvider":{"firstTriggerCharacter":">"}}}}
---
D, [2023-04-27T09:07:07.423024 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-ctrl.json...
D, [2023-04-27T09:07:07.424474 #2357] DEBUG -- : --- INBOUND
{"jsonrpc":"2.0","method":"initialized","params":{}}
---
D, [2023-04-27T09:07:07.425927 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-puppetdb_fact.json...
I, [2023-04-27T09:07:07.427112 #2357]  INFO -- : Client has received initialization
D, [2023-04-27T09:07:07.428575 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-file.json...
D, [2023-04-27T09:07:07.429573 #2357] DEBUG -- : Client does not support didChangeConfiguration dynamic registration. Using push method for configuration change detection.
D, [2023-04-27T09:07:07.431133 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-system.json...
D, [2023-04-27T09:07:07.432390 #2357] DEBUG -- : --- INBOUND
{"jsonrpc":"2.0","method":"textDocument\/didOpen","params":{"textDocument":{"uri":"file:\/\/\/code\/a32-tools\/puppet-araw_profile\/manifests\/init.pp","text":"<redacted_text>","version":0,"languageId":"puppet"}}}
---
D, [2023-04-27T09:07:07.433548 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-puppet_connect.json...
I, [2023-04-27T09:07:07.434536 #2357]  INFO -- : Received textDocument/didOpen notification.
D, [2023-04-27T09:07:07.436001 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-dir.json...
D, [2023-04-27T09:07:07.441273 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-log.json...
D, [2023-04-27T09:07:07.487296 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-prompt.json...
D, [2023-04-27T09:07:07.492360 #2357] DEBUG -- : --- OUTBOUND
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///code/a32-tools/puppet-araw_profile/manifests/init.pp","diagnostics":[]}}
---
D, [2023-04-27T09:07:07.492881 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-out.json...
D, [2023-04-27T09:07:07.496425 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-boltlib.json...
D, [2023-04-27T09:07:07.499460 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-canary.json...
D, [2023-04-27T09:07:07.501639 #2357] DEBUG -- : Importing static data file /home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/lib/puppet-languageserver/static_data/bolt-aggregate.json...
D, [2023-04-27T09:07:07.503641 #2357] DEBUG -- : Static bolt data returned 59 functions
D, [2023-04-27T09:07:07.505031 #2357] DEBUG -- : Static bolt data returned 9 datatypes
A, [2023-04-27T09:07:08.628557 #2357]   ANY -- : SidecarQueue Thread: Calling sidecar with --action default_aggregate --puppet-version=5.5.22 --puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge returned exitcode 1, /home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/file_system/file_impl.rb:80: warning: Using the last argument as keyword parameters is deprecated

D, [2023-04-27T09:07:08.631314 #2357] DEBUG -- : SidecarQueue Thread: Running sidecar ["ruby", "/home/pbugala/.local/share/nvim/mason/packages/puppet-editor-services/puppet-languageserver-sidecar", "--action", "workspace_aggregate", "--local-workspace", "/code/a32-tools/puppet-araw_profile", "--puppet-version=5.5.22", "--puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge"]
A, [2023-04-27T09:07:09.387057 #2357]   ANY -- : SidecarQueue Thread: Calling sidecar with --action workspace_aggregate --local-workspace /code/a32-tools/puppet-araw_profile --puppet-version=5.5.22 --puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge returned exitcode 0, /home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/file_system/file_impl.rb:80: warning: Using the last argument as keyword parameters is deprecated

D, [2023-04-27T09:07:09.393200 #2357] DEBUG -- : SidecarQueue Thread: workspace_aggregate returned 65 classes
A, [2023-04-27T09:07:13.316916 #2357]   ANY -- : SidecarQueue Thread: Calling sidecar with --action facts --puppet-version=5.5.22 --puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge returned exitcode 0, /home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/file_system/file_impl.rb:80: warning: Using the last argument as keyword parameters is deprecated
/home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/util.rb:461: warning: URI.escape is obsolete
/home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/file_system/file_impl.rb:80: warning: Using the last argument as keyword parameters is deprecated
/home/pbugala/.rvm/gems/ruby-2.7.3/gems/puppet-5.5.22/lib/puppet/util.rb:461: warning: URI.escape is obsolete
rpm: no arguments given for query
rpm: no arguments given for query

D, [2023-04-27T09:07:13.321393 #2357] DEBUG -- : SidecarQueue Thread: facts returned 97 items
D, [2023-04-27T09:07:41.816274 #2357] DEBUG -- : --- INBOUND
{"jsonrpc":"2.0","params":{"position":{"line":119,"character":26},"textDocument":{"uri":"file:\/\/\/code\/a32-tools\/puppet-araw_profile\/manifests\/init.pp"}},"method":"textDocument\/definition","id":2}
---
E, [2023-04-27T09:07:41.826229 #2357] ERROR -- : (textDocument/definition) Unable to generate Defintion information for object of type Puppet::Pops::Model::HostClassDefinition
D, [2023-04-27T09:07:41.831297 #2357] DEBUG -- : --- OUTBOUND
{"jsonrpc":"2.0","id":2,"result":null}

Expected Behavior

Receive proper response for class definition.

Steps to Reproduce

Steps to reproduce the behavior:

  1. Run Neovim with following nvim-lspconfig configuration. You might need to change modulepath to match your setup, or remove that option entirely. I tested it has no impact on this issue bahavior.
local lspconfig = require('lspconfig')
lspconfig.puppet.setup({
  on_attach = function(client, bufnr)
      local bufopts = { noremap=true, silent=true, buffer=bufnr }
      vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
  end
  cmd = { 'puppet-languageserver', '--stdio', '--puppet-settings=--modulepath,/code/a32-tools:/code/puppet:/code/puppet-forge' },
})
  1. Open some puppet module file and press gd while cursor is on class name word.

Environment

  • Puppet 5.5.22
  • Debian 12 (testing)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the reported Neovim go-to-definition scenario and Puppet LSP logs as the starting point. Reproduce with Puppet 5.5.22, Facter 2.5.7, and the shown modulepath, then trace the definition request after workspace_aggregate returns. Done means go-to-definition returns a non-empty location without an LSP error.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.