如何在VSCode中关闭Ruby Language Server错误弹窗?
解决VSCode中Ruby Language Server打开GEM文件弹窗报错的问题
打开Ruby GEM文件(比如option.rb)时,Ruby Language Server会频繁报错并弹出窗口遮挡代码,点击编辑器就触发,第三方GEM文件上这个问题更明显。这些错误属于第三方代码,没法控制、编辑或调试,以下是几种关闭弹窗的方法:
方法1:调整VSCode通知设置
打开VSCode设置(快捷键Cmd+,/Ctrl+,),搜索并修改:
- 把
Ruby: Language Server Debug设为false,关闭调试级错误通知 - 在
Notifications: Silent里添加ruby,或者直接把Ruby扩展的通知级别改成none
方法2:排除GEM文件目录,不让语言服务器分析
在VSCode的settings.json里添加配置,排除Ruby Gems的安装目录:
"ruby.lint.exclude": [ "/Users/xxx/.asdf/installs/ruby/**/gems/**/*", // 用rbenv的话,路径改成~/.rbenv/versions/**/gems/**/* // 通用路径可以写~/.gem/ruby/**/* ], "files.watcherExclude": { "/Users/xxx/.asdf/installs/ruby/**/gems/**/*": true }
这样语言服务器不会分析第三方GEM文件,也就不会触发报错。
方法3:升级或更换Ruby语言服务器扩展
你当前用的rebornix.ruby 0.28.1版本较旧,存在解析bug:
- 直接升级到最新版本,或者
- 换成更稳定的
Shopify.ruby-lsp扩展(官方维护,兼容性更好)
方法4:关闭导致报错的特定功能
如果不想完全禁用语言服务器,可以关闭报错里提到的功能,在settings.json中添加:
"ruby.server.featureFlags": { "documentSymbol": false, "foldingRange": false, "documentHighlight": false }
这些就是日志里的textDocument/documentSymbol、textDocument/foldingRange等功能,关闭后就不会触发对应错误。
报错截图

错误日志
Initializing Ruby language server... Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/actions/file_manipulation.rb' -f json -l... TypeError: Cannot read properties of undefined (reading 'namedChildren') at Object.build (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:180892) at e.default.analyze (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:276790) at analyzeNode (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:179150) at n (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:178930) at n (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:178982) at n (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:178982) at n (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:178982) at n (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:178982) at analyze (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:179040) at e.project (/Users/xxx/.vscode/extensions/rebornix.ruby-0.28.1/dist/server/index.js:16:179495) [Error - 7:36:54 AM] Request textDocument/documentSymbol failed. Message: Request textDocument/documentSymbol failed with message: Cannot read properties of undefined (reading 'documentSymbols') Code: -32603 Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb' -f json -l... [Error - 7:36:54 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 /Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/'/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb': Warning: no department given for AssignmentInCondition. Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/group.rb' -f json -l... [Error - 7:37:04 AM] Request textDocument/documentSymbol failed. Message: Request textDocument/documentSymbol failed with message: Cannot read properties of undefined (reading 'documentSymbols') Code: -32603 [Error - 7:37:04 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 /Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/'/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/group.rb': Warning: no department given for MethodLength. [Error - 7:37:07 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/option.rb' -f json -l... [Error - 10:36:32 AM] Request textDocument/documentSymbol failed. Message: Request textDocument/documentSymbol failed with message: Cannot read properties of undefined (reading 'documentSymbols') Code: -32603 [Error - 10:36:32 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 [Error - 10:36:42 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603 [Error - 10:38:24 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603 [Error - 10:38:26 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603 Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/argument.rb' -f json -l... [Error - 10:40:35 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603 Lint: executing rubocop -s '/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/options.rb' -f json -l... [Error - 10:41:23 AM] Request textDocument/documentSymbol failed. Message: Request textDocument/documentSymbol failed with message: Cannot read properties of undefined (reading 'documentSymbols') Code: -32603 [Error - 10:41:23 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 /Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/'/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/options.rb': Warning: no department given for ClassLength. /Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/'/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/options.rb': Warning: no department given for MethodLength. /Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/'/Users/xxx/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/parser/options.rb': Warning: no department given for AssignmentInCondition. [Error - 10:42:29 AM] Request textDocument/foldingRange failed. Message: Request textDocument/foldingRange failed with message: Cannot read properties of undefined (reading 'foldingRanges') Code: -32603 [Error - 10:42:31 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603 [Error - 10:42:48 AM] Request textDocument/documentHighlight failed. Message: Request textDocument/documentHighlight failed with message: Cannot read properties of undefined (reading 'rootNode') Code: -32603
内容的提问来源于stack exchange,提问作者David Cruwys
相关产品推荐
相关产品推荐

