puppetlabs / puppet-editor-services

Puppet Language Server for editors
Apache License 2.0
45 stars 21 forks source link

`@param name` puppet strings tag crashes language server #320

Closed h4l closed 2 years ago

h4l commented 2 years ago

Describe the Bug

(I'm using the language server via the Puppet vscode extension, but I assume I should report this here as it appears to be a language server issue.)

Including the following in a .pp file causes the language server to crash when starting:

# @param name foo
define example() {
}

I get the following traceback in the vscode extension's log file:

/Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:147:in `block (3 levels) in populate_classes_from_yard_registry!': undefined method `join' for nil:NilClass (NoMethodError)
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:143:in `each'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:143:in `block (2 levels) in populate_classes_from_yard_registry!'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:128:in `each'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:128:in `block in populate_classes_from_yard_registry!'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:127:in `each'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:127:in `populate_classes_from_yard_registry!'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:102:in `populate_from_yard_registry!'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:74:in `file_documentation'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_strings_helper.rb:10:in `file_documentation'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_helper.rb:93:in `block in retrieve_via_puppet_strings'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_helper.rb:92:in `each'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet-languageserver-sidecar/puppet_helper.rb:92:in `retrieve_via_puppet_strings'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet_languageserver_sidecar.rb:303:in `execute'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/lib/puppet_languageserver_sidecar.rb:360:in `execute_and_output'
        from /Users/hal/.vscode/extensions/puppet.puppet-vscode-1.4.0/vendor/languageserver/puppet-languageserver-sidecar:14:in `<main>'

Expected Behavior

The language server shouldn't crash.

Steps to Reproduce

I included the above snippet in a vscode project with the Puppet extension enabled.

Environment

Additional Context

N/A