Closed dharshan closed 6 years ago
Is there a more detailed error message in the developer console (Help -> Toggle Developer Tools)?
That error most likely occurs when you hover over a method name or goto/peek definition on it. Can you identify a code snippet where it happens?
Complete error log
TypeError: Cannot read property 'specs' of undefined
at watcher.onDidChange (/home/dharshan/.vscode/extensions/bung87.vscode-gemfile-0.0.2/out/src/extension.js:79:54)
at e.fire (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:99:917)
at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:743:257
at e.fire (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:99:917)
at e.$onFileEvent (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:744:808)
at e._doInvokeHandler (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:681:309)
at e._invokeHandler (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:681:27)
at e._receiveRequest (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:679:802)
at e._receiveOneMessage (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:678:993)
at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:677:791
at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:98:597
at e.fire (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:99:917)
at a (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:164:787)
at Socket._socketDataListener (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:164:1006)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at Pipe.onread (net.js:594:20)
6
TypeError: Cannot read property 'contents' of null
at promise.then (/home/dharshan/.vscode/extensions/castwide.solargraph-0.17.6/out/src/language-client.js:27:27)
at <anonymous>
Not a JS guy, hope above attachment will help.
I'm seeing the same thing. Not sure what triggers it.
[Extension Host] undefined method `qualify' for #<Solargraph::Pin::Namespace:0x000000116358b0>
console.ts:136 [Extension Host] C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/pin/base.rb:161:in `infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:68:in `block in infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:67:in `each'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:67:in `infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/pin/base_variable.rb:49:in `infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:68:in `block in infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:67:in `each'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source/chain.rb:67:in `infer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/source_map/clip.rb:26:in `complete'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/library.rb:144:in `completions_at'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/host.rb:352:in `completions_at'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/message/text_document/completion.rb:20:in `inner_process'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/message/text_document/completion.rb:9:in `process'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/host.rb:75:in `start'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/socket.rb:19:in `process'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/socket.rb:13:in `block in post_init'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/data_reader.rb:53:in `call'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/data_reader.rb:53:in `parse_message_from_buffer'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/data_reader.rb:31:in `block in receive'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/data_reader.rb:26:in `each_char'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/data_reader.rb:26:in `receive'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/language_server/transport/socket.rb:27:in `receive_data'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/eventmachine-1.2.5-x64-mingw32/lib/eventmachine.rb:194:in `run_machine'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/eventmachine-1.2.5-x64-mingw32/lib/eventmachine.rb:194:in `run'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/lib/solargraph/shell.rb:25:in `socket'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/solargraph-0.27.1/bin/solargraph:5:in `<top (required)>'
C:/Ruby22-x64/bin/solargraph:23:in `load'
C:/Ruby22-x64/bin/solargraph:23:in `<main>'
I haven't been able to reproduce this error yet, but based on the logs, I suspect it occurs when the server tries to infer a variable type for definition or completion. Possibly a class variable, e.g., @@foo
. Does that help anyone identify a code snippet where it happens?
Hm.. not really...
For me it appear to happen when I type PLUGIN.
(notice the period). PLUGIN
is a shortcut constant to another namespace I have in my code. So I type PLUGIN
then period to start typing a method to call. That's when it triggers the warning in my case. But I don't know the exact factors that triggers it. This is a rather old and large project I'm working on.
@thomthom Can you show me the line(s) of code where PLUGIN is defined?
#-------------------------------------------------------------------------------
#
# Thomas Thomassen
# thomas[at]thomthom[dot]net
#
#-------------------------------------------------------------------------------
require 'sketchup.rb'
require 'extensions.rb'
require 'json'
module TT
module Plugins
module VertexTools2
# Resource paths.
file = __FILE__.dup
file.force_encoding('UTF-8') if file.respond_to?(:force_encoding)
SUPPORT_FOLDER_NAME = File.basename(file, '.*')
ROOT_PATH = File.dirname(File.expand_path(file)).freeze
PATH = File.join(ROOT_PATH, SUPPORT_FOLDER_NAME).freeze
# Extension information
extension_json_file = File.join(PATH, 'extension.json')
extension_json = File.read(extension_json_file)
EXTENSION = ::JSON.parse(extension_json, symbolize_names: true).freeze
# Syntax shortcut to the extension namespace.
PLUGIN = self
# Backward compatible constants. Prefer EXTENSION over these.
PLUGIN_ID = EXTENSION[:product_id].freeze
PLUGIN_NAME = EXTENSION[:name].freeze
PLUGIN_VERSION = EXTENSION[:version].freeze
PROXY_LOADER = File.join(PATH, 'bootstrap').freeze
unless file_loaded?(__FILE__)
@extension = SketchupExtension.new(EXTENSION[:name], PROXY_LOADER)
@extension.description = EXTENSION[:description]
@extension.version = EXTENSION[:version]
@extension.copyright = EXTENSION[:copyright]
@extension.creator = EXTENSION[:creator]
Sketchup.register_extension(@extension, true)
file_loaded(__FILE__)
end
def self.extension
@extension
end
end # module VertexTools2
end # module Plugins
end # module TT
Perfect, thanks. The issue is with inferring types from variables assigned self
(internally, a constant is treated as a kind of variable). I suspect there are related issues that have the same root cause. Now that I know where it happens, it should be fairly simple to fix.
The fix is in the master branch and will be released in gem v0.28.0.
The fix is published in gem v0.28.0.
I get the exact same problem with Ruby 2.5.3 and Solargraph 0.31.3
[Error - 13:36:59] Request textDocument/hover failed. Message: [Solargraph::FileNotFoundError] ApiMap did not catalog {..}/example_scopes.rb Code: -32603
Code example:
universe = 'blue universe'
pr = proc {universe}
def m (passed_in_proc)
universe = 'red universe'
puts "Method's universe: " + universe
puts "Proc's universe: " + passed_in_proc.call
end
m(pr)
I got error when hover last line: m(pr)
Hi, I'm getting error message in my vscode output tab after I updated solargraph through VSCode popup.
Please find the bellow version.