Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solargraph not using Rubocop reporter #2623

Closed
evenreven opened this issue May 31, 2022 · 24 comments
Closed

Solargraph not using Rubocop reporter #2623

evenreven opened this issue May 31, 2022 · 24 comments
Labels
C-bug Category: This is a bug

Comments

@evenreven
Copy link

evenreven commented May 31, 2022

Summary

My Solargraph config works with other editors, including Neovim. I just started using Helix today, so I might mistake whether or not a feature is from the LSP or not, but Solargraph itself seems to work. It can jump to references and autocomplete seems to work too. Then again, the line where solargraph stdio is invoked, is marked as error in the log, and I'm a bit confused as to how serious that is with no additional stdout output.

Reproduction Steps

I tried this:

  1. hx -v test.rb

Then pasted this deliberately unindented file content to trigger a rubocop warning:

def test
puts "hello"
end

Then :w

I expected this to happen:

A diagnostic message like this Use 2 (not 0) spaces for indentation. (Layout/IndentationWidth)

Instead, this happened:

Nothing

Helix log

~/.cache/helix/helix.log
2022-05-31T13:21:38.342 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"processId":1416,"rootPath":"/home/even/.local/dev/khio","rootUri":"file:///home/even/.local/dev/khio","workspaceFolders":[{"name":"khio","uri":"file:///home/even/.local/dev/khio"}]},"id":0}
2022-05-31T13:21:38.545 helix_lsp::transport [ERROR] err <- "Solargraph is listening on stdio PID=1429\n"
2022-05-31T13:21:38.818 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"hoverProvider":true,"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":{"prepareProvider":true},"referencesProvider":true,"workspaceSymbolProvider":true,"foldingRangeProvider":true,"documentHighlightProvider":true}}}
2022-05-31T13:21:38.818 helix_lsp::transport [INFO] <- {"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"definitionProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":2,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2022-05-31T13:21:38.818 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-05-31T13:21:38.818 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b"},"id":1}
2022-05-31T13:21:38.818 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"ruby","text":"def test_method\nputs \"hello\"\nend\n\ndef testing\ntest_method\nend\n\ntesting\n","uri":"file:///home/even/.local/dev/khio/test.rb","version":0}}}
2022-05-31T13:21:38.819 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","result":null,"id":1}
2022-05-31T13:21:38.863 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"begin","title":"Mapping workspace","message":"0/157 files","cancellable":false,"percentage":0}}}
2022-05-31T13:21:38.870 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"16/157 files","percentage":10}}}
2022-05-31T13:21:38.874 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"32/157 files","percentage":20}}}
2022-05-31T13:21:38.882 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"48/157 files","percentage":30}}}
2022-05-31T13:21:38.884 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"63/157 files","percentage":40}}}
2022-05-31T13:21:38.906 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"79/157 files","percentage":50}}}
2022-05-31T13:21:38.915 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"95/157 files","percentage":60}}}
2022-05-31T13:21:38.921 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"110/157 files","percentage":70}}}
2022-05-31T13:21:38.930 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"126/157 files","percentage":80}}}
2022-05-31T13:21:38.941 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"142/157 files","percentage":90}}}
2022-05-31T13:21:38.946 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"report","cancellable":false,"message":"157/157 files","percentage":100}}}
2022-05-31T13:21:38.946 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"c859a05c-45b6-4618-8046-dd7a86e92a6b","value":{"kind":"end","message":"Mapping complete"}}}
2022-05-31T13:21:39.776 helix_lsp::transport [ERROR] err <- "[WARN] Failed to resolve refinerycms-core gem dependency for refinerycms-wymeditor\n"

Platform

Linux (WSL2)

Terminal Emulator

Windows Terminal 1.12.10983.0

Helix Version

helix 22.05 (27609f5)

@evenreven evenreven added the C-bug Category: This is a bug label May 31, 2022
@archseer
Copy link
Member

You will get better logs if you run hx with the -v flag to get more verbose logs. The first ERROR log is actually fine, it's just raw logs we get from the LSP.

@evenreven
Copy link
Author

evenreven commented May 31, 2022

Weird, I thought I did that. Sorry about that! Anyway, I tried to reproduce this on a minimal example in a github repo now, and this is my log when running hx -vvv test.rb on this test repo.

New log: ~/.cache/helix/helix.log
2022-05-31T22:29:40.041 helix_loader [DEBUG] Located configuration folders: ["/var/home/even/.local/dev/helix-issue2623-test-repo/.helix"]
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(2), interests=READABLE | WRITABLE
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(3), interests=READABLE | WRITABLE
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(4), interests=READABLE | WRITABLE
2022-05-31T22:29:40.158 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"processId":24015,"rootPath":"/var/home/even/.local/dev/helix-issue2623-test-repo","rootUri":"file:///var/home/even/.local/dev/helix-issue2623-test-repo","workspaceFolders":[{"name":"helix-issue2623-test-repo","uri":"file:///var/home/even/.local/dev/helix-issue2623-test-repo"}]},"id":0}
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(5), interests=READABLE | WRITABLE
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2022-05-31T22:29:40.158 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2022-05-31T22:29:40.579 helix_lsp::transport [ERROR] err <- "Solargraph is listening on stdio PID=24025\n"
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"hoverProvider":true,"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":{"prepareProvider":true},"referencesProvider":true,"workspaceSymbolProvider":true,"foldingRangeProvider":true,"documentHighlightProvider":true}}}
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] <- {"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"definitionProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":2,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"ruby","text":"def test\ntest_method\nend\n\nprivate\n\ndef test_method\nputs \"testing!\"\nend\n\ndef tester\n  test\nend\n","uri":"file:///var/home/even/.local/dev/helix-issue2623-test-repo/test.rb","version":0}}}
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"4386a7ef-81c2-4698-9eb8-6f0dc125b9a0"},"id":1}
2022-05-31T22:29:40.684 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","result":null,"id":1}
2022-05-31T22:29:40.782 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4386a7ef-81c2-4698-9eb8-6f0dc125b9a0","value":{"kind":"begin","title":"Mapping workspace","message":"0/1 files","cancellable":false,"percentage":0}}}
2022-05-31T22:29:40.782 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4386a7ef-81c2-4698-9eb8-6f0dc125b9a0","value":{"kind":"end","message":"Mapping complete"}}}

(I tried on a different computer (one running Fedora Silverblue) now. No difference.)

@archseer
Copy link
Member

archseer commented Jun 1, 2022

Okay, everything looks fine but it seems that solargraph needs a config option to enable diagnostics:

https://github.com/neovim/nvim-lspconfig/blob/84252b08b7f9831b0b1329f2a90ff51dd873e58f/lua/lspconfig/server_configurations/solargraph.lua#L13-L17=

Could you try adding this to your local helix config?

[[language]]
name = "ruby"
config = { solargraph = { diagnostics = true, formatting = true } }

If it works let me know and we'll add it to the built-in languages.toml

@evenreven
Copy link
Author

I actually remember now having to set diagnostics true manually for coc-solargraph on nvim years ago, it didn't occur to me to check this, sorry!

So I put those lines in languages.toml and here are my findings:

  1. Diagnostics works!
  2. Formatting with lsp (:format) doesn't seem to work. Nothing happens. Solargraph supports autoformat with rubocop, so not sure what seems to be wrong here. It works with neovim, and I can't see any specifics in the solargraph config flags I need to set. I tried to badly indent a javascript file, and it works, so my Helix install is working. All health checks are fine too.
  3. A weirder one: Helix diagnostics works when reporting most issues, but reports nothing when an end is missing on a method, while neovim (with the same setup (in theory)) reports the familiar (to ruby devs) unexpected token $end(Using Ruby 2.5 parser; configure using TargetRubyVersionparameter, underAllCops) (Lint/Syntax). I updated my example repo with another test file. Not sure what can cause this?

Thank you so much for your help!

@the-mikedavis
Copy link
Member

Can you tail the log in verbose mode and post what it says when you trigger formatting?

@evenreven
Copy link
Author

evenreven commented Jun 1, 2022

Sure! hx -vvv test.rb (a file with indentation errors), then :format

.cache/helix/helix.log
2022-06-01T15:46:20.716 helix_loader [DEBUG] Located configuration folders: ["/home/even/.local/dev/helix-issue2623-test-repo/.helix"]
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(2), interests=READABLE | WRITABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(3), interests=READABLE | WRITABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(4), interests=READABLE | WRITABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(5), interests=READABLE | WRITABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2022-06-01T15:46:20.839 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2022-06-01T15:46:20.839 helix_lsp::client [INFO] Using custom LSP config: {"solargraph":{"diagnostics":true,"formatting":true}}
2022-06-01T15:46:20.840 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"initializationOptions":{"solargraph":{"diagnostics":true,"formatting":true}},"processId":28261,"rootPath":"/home/even/.local/dev/helix-issue2623-test-repo","rootUri":"file:///home/even/.local/dev/helix-issue2623-test-repo","workspaceFolders":[{"name":"helix-issue2623-test-repo","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo"}]},"id":0}
2022-06-01T15:46:21.067 helix_lsp::transport [ERROR] err <- "Solargraph is listening on stdio PID=28274\n"
2022-06-01T15:46:21.114 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"hoverProvider":true,"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":{"prepareProvider":true},"referencesProvider":true,"workspaceSymbolProvider":true,"foldingRangeProvider":true,"documentHighlightProvider":true}}}
2022-06-01T15:46:21.114 helix_lsp::transport [INFO] <- {"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"definitionProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":2,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2022-06-01T15:46:21.114 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"44961023-049b-4af3-9f01-b793b6bd0359"},"id":1}
2022-06-01T15:46:21.115 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-06-01T15:46:21.115 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","result":null,"id":1}
2022-06-01T15:46:21.115 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"solargraph":{"diagnostics":true,"formatting":true}}}}
2022-06-01T15:46:21.115 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44961023-049b-4af3-9f01-b793b6bd0359","value":{"kind":"begin","title":"Mapping workspace","message":"0/2 files","cancellable":false,"percentage":0}}}
2022-06-01T15:46:21.115 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"ruby","text":"def test\ntest_method\nend\n\nprivate\n\ndef test_method\nputs \"testing!\"\nend\n","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.rb","version":0}}}
2022-06-01T15:46:21.162 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44961023-049b-4af3-9f01-b793b6bd0359","value":{"kind":"report","cancellable":false,"message":"1/2 files","percentage":50}}}
2022-06-01T15:46:21.162 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44961023-049b-4af3-9f01-b793b6bd0359","value":{"kind":"report","cancellable":false,"message":"2/2 files","percentage":100}}}
2022-06-01T15:46:21.162 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"44961023-049b-4af3-9f01-b793b6bd0359","value":{"kind":"end","message":"Mapping complete"}}}
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file.\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Please also note that you can opt-in to new cops by default by adding this to your config:\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  AllCops:\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "    NewCops: enable\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Gemspec/DateAssignment: # new in 1.10\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Gemspec/DeprecatedAttributeAssignment: # new in 1.30\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Gemspec/RequireMFA: # new in 1.23\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Layout/LineEndStringConcatenationIndentation: # new in 1.18\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Layout/SpaceBeforeBrackets: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousAssignment: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousOperatorPrecedence: # new in 1.21\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousRange: # new in 1.19\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/DeprecatedConstants: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/DuplicateBranch: # new in 1.3\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/DuplicateRegexpCharacterClassElement: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/EmptyBlock: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/EmptyClass: # new in 1.3\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/EmptyInPattern: # new in 1.16\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/LambdaWithoutLiteralBlock: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/NoReturnInBeginEndBlocks: # new in 1.2\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/NumberedParameterAssignment: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/OrAssignmentToConstant: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/RedundantDirGlobSort: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/RefinementImportMethods: # new in 1.27\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/RequireRelativeSelfPath: # new in 1.22\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/SymbolConversion: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/ToEnumArguments: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/TripleQuotes: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/UnexpectedBlockArity: # new in 1.5\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/UnmodifiedReduceAccumulator: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Lint/UselessRuby2Keywords: # new in 1.23\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Naming/BlockForwarding: # new in 1.24\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Security/CompoundHash: # new in 1.28\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Security/IoMethods: # new in 1.22\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/ArgumentsForwarding: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/CollectionCompact: # new in 1.2\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/DocumentDynamicEvalDefinition: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/EndlessMethod: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/EnvHome: # new in 1.29\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/FetchEnvVar: # new in 1.28\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/FileRead: # new in 1.24\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/FileWrite: # new in 1.24\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/HashConversion: # new in 1.10\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/HashExcept: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/IfWithBooleanLiteralBranches: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/InPatternThen: # new in 1.16\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/MapCompactWithConditionalBlock: # new in 1.30\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/MapToHash: # new in 1.24\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/MultilineInPatternThen: # new in 1.16\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/NegatedIfElseCondition: # new in 1.2\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/NestedFileDirname: # new in 1.26\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/NilLambda: # new in 1.3\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/NumberedParameters: # new in 1.22\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/NumberedParametersLimit: # new in 1.22\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/ObjectThen: # new in 1.28\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/OpenStructUse: # new in 1.23\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/QuotedSymbols: # new in 1.16\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/RedundantArgument: # new in 1.4\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/RedundantInitialize: # new in 1.27\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/RedundantSelfAssignmentBranch: # new in 1.19\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/SelectByRegexp: # new in 1.22\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/StringChars: # new in 1.12\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Style/SwapValues: # new in 1.1\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/AncestorsInclude: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/BigDecimalWithNumericArgument: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/BlockGivenWithExplicitBlock: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/CollectionLiteralInLoop: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/ConcurrentMonotonicTime: # new in 1.12\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/ConstantRegexp: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/MapCompact: # new in 1.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/MethodObjectAsBlock: # new in 1.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/RedundantEqualityComparisonBlock: # new in 1.10\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/RedundantSortBlock: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/RedundantSplitRegexpArgument: # new in 1.10\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/RedundantStringChars: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/ReverseFirst: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/SortReverse: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/Squeeze: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/StringIdentifierArgument: # new in 1.13\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/StringInclude: # new in 1.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Performance/Sum: # new in 1.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/ActionControllerTestCase: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/ActiveRecordCallbacksOrder: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/AddColumnIndex: # new in 2.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/AfterCommitOverride: # new in 2.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/AttributeDefaultBlockValue: # new in 2.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/CompactBlank: # new in 2.13\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/DuplicateAssociation: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/DuplicateScope: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/DurationArithmetic: # new in 2.13\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/EagerEvaluationLogMessage: # new in 2.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/ExpandedDateRange: # new in 2.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/FindById: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/I18nLazyLookup: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleAssignment: # new in 2.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleTexts: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/Inquiry: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/MailerName: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/MatchRoute: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/MigrationClassName: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/NegateInclude: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/Pluck: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/PluckInWhere: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/RedundantTravelBack: # new in 2.12\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/RenderInline: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/RenderPlainText: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/RootJoinChain: # new in 2.13\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/ShortI18n: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/SquishedSQLHeredocs: # new in 2.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/TimeZoneAssignment: # new in 2.10\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/TransactionExitStatement: # new in 2.14\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/UnusedIgnoredColumns: # new in 2.11\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/WhereEquals: # new in 2.9\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/WhereExists: # new in 2.7\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "Rails/WhereNot: # new in 2.8\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-01T15:46:21.887 helix_lsp::transport [ERROR] err <- "For more information: https://docs.rubocop.org/rubocop/versioning.html\n"
2022-06-01T15:46:21.922 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.rb","diagnostics":[{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"severity":3,"source":"rubocop","code":"Layout/IndentationWidth","message":" Use 2 (not 0) spaces for indentation."},{"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":1}},"severity":3,"source":"rubocop","code":"Layout/IndentationWidth","message":" Use 2 (not 0) spaces for indentation."}]}}

EDIT: Updated with new log because the first one had some bundler errors that were red herrings. After rerunning bundle install, the bundler error is gone, but it still doesn't work.

@the-mikedavis
Copy link
Member

I don't see the formatting request happening. There should be a log that starts with something like

helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/formatting",...

triggered by :format. Is that just a subset of the logs? You might also need to wait on start up until the language server finishes initializing for :format to work (I'm not sure about that)

@danillos
Copy link
Contributor

danillos commented Jun 2, 2022

@evenreven I guess 3. is not an issue on Helix, It is how Solargraph works. Since Solargraph runs in Ruby and a missing end break Ruby parser, it shows this error.

@danillos
Copy link
Contributor

danillos commented Jun 2, 2022

I don't see the formatting request happening. There should be a log that starts with something like

helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/formatting",...

triggered by :format. Is that just a subset of the logs? You might also need to wait on start up until the language server finishes initializing for :format to work (I'm not sure about that)

With hx -vvv file I ran :format and nothing showed at tail -f .cache/helix/helix.log

@evenreven
Copy link
Author

evenreven commented Jun 2, 2022

I don't see the formatting request happening. There should be a log that starts with something like

helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/formatting",...

triggered by :format. Is that just a subset of the logs? You might also need to wait on start up until the language server finishes initializing for :format to work (I'm not sure about that)

@the-mikedavis It's the entire log. I've tried and retried and run :format a dozen times (also after waiting, in case the initialization was late), and there's just no mention of textDocument/formatting anywhere. It's like the :format command doesn't even call the lsp formatting action.

here's another log that's more or less identical, just to prove to myself that I didn't do anything weird the last time
2022-06-02T09:24:53.860 helix_loader [DEBUG] Located configuration folders: ["/home/even/.local/dev/helix-issue2623-test-repo/.helix"]
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(2), interests=READABLE | WRITABLE
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(3), interests=READABLE | WRITABLE
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(4), interests=READABLE | WRITABLE
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(5), interests=READABLE | WRITABLE
2022-06-02T09:24:54.029 helix_lsp::client [INFO] Using custom LSP config: {"solargraph":{"diagnostics":true,"formatting":true}}
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2022-06-02T09:24:54.029 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2022-06-02T09:24:54.029 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"initializationOptions":{"solargraph":{"diagnostics":true,"formatting":true}},"processId":2131,"rootPath":"/home/even/.local/dev/helix-issue2623-test-repo","rootUri":"file:///home/even/.local/dev/helix-issue2623-test-repo","workspaceFolders":[{"name":"helix-issue2623-test-repo","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo"}]},"id":0}
2022-06-02T09:24:54.309 helix_lsp::transport [ERROR] err <- "Solargraph is listening on stdio PID=2144\n"
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"hoverProvider":true,"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":{"prepareProvider":true},"referencesProvider":true,"workspaceSymbolProvider":true,"foldingRangeProvider":true,"documentHighlightProvider":true}}}
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] <- {"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"definitionProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":2,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"solargraph":{"diagnostics":true,"formatting":true}}}}
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"ruby","text":"def test\ntest_method\nend\n\nprivate\n\ndef test_method\nputs \"testing!\"\nend\n","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.rb","version":0}}}
2022-06-02T09:24:54.388 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"4bdbc665-efba-4785-a56b-bd10892e220b"},"id":1}
2022-06-02T09:24:54.389 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","result":null,"id":1}
2022-06-02T09:24:54.468 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4bdbc665-efba-4785-a56b-bd10892e220b","value":{"kind":"begin","title":"Mapping workspace","message":"0/2 files","cancellable":false,"percentage":0}}}
2022-06-02T09:24:54.469 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4bdbc665-efba-4785-a56b-bd10892e220b","value":{"kind":"report","cancellable":false,"message":"2/2 files","percentage":100}}}
2022-06-02T09:24:54.469 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"4bdbc665-efba-4785-a56b-bd10892e220b","value":{"kind":"end","message":"Mapping complete"}}}
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file.\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Please also note that you can opt-in to new cops by default by adding this to your config:\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  AllCops:\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "    NewCops: enable\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Gemspec/DateAssignment: # new in 1.10\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Gemspec/DeprecatedAttributeAssignment: # new in 1.30\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Gemspec/RequireMFA: # new in 1.23\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Layout/LineEndStringConcatenationIndentation: # new in 1.18\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Layout/SpaceBeforeBrackets: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousAssignment: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousOperatorPrecedence: # new in 1.21\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousRange: # new in 1.19\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/DeprecatedConstants: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/DuplicateBranch: # new in 1.3\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/DuplicateRegexpCharacterClassElement: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/EmptyBlock: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/EmptyClass: # new in 1.3\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/EmptyInPattern: # new in 1.16\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/LambdaWithoutLiteralBlock: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/NoReturnInBeginEndBlocks: # new in 1.2\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/NumberedParameterAssignment: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/OrAssignmentToConstant: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/RedundantDirGlobSort: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/RefinementImportMethods: # new in 1.27\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/RequireRelativeSelfPath: # new in 1.22\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/SymbolConversion: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/ToEnumArguments: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/TripleQuotes: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/UnexpectedBlockArity: # new in 1.5\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/UnmodifiedReduceAccumulator: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Lint/UselessRuby2Keywords: # new in 1.23\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Naming/BlockForwarding: # new in 1.24\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Security/CompoundHash: # new in 1.28\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Security/IoMethods: # new in 1.22\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/ArgumentsForwarding: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/CollectionCompact: # new in 1.2\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/DocumentDynamicEvalDefinition: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/EndlessMethod: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/EnvHome: # new in 1.29\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/FetchEnvVar: # new in 1.28\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/FileRead: # new in 1.24\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/FileWrite: # new in 1.24\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/HashConversion: # new in 1.10\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/HashExcept: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/IfWithBooleanLiteralBranches: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/InPatternThen: # new in 1.16\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/MapCompactWithConditionalBlock: # new in 1.30\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/MapToHash: # new in 1.24\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/MultilineInPatternThen: # new in 1.16\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/NegatedIfElseCondition: # new in 1.2\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/NestedFileDirname: # new in 1.26\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/NilLambda: # new in 1.3\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/NumberedParameters: # new in 1.22\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/NumberedParametersLimit: # new in 1.22\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/ObjectThen: # new in 1.28\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/OpenStructUse: # new in 1.23\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/QuotedSymbols: # new in 1.16\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/RedundantArgument: # new in 1.4\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/RedundantInitialize: # new in 1.27\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/RedundantSelfAssignmentBranch: # new in 1.19\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/SelectByRegexp: # new in 1.22\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/StringChars: # new in 1.12\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Style/SwapValues: # new in 1.1\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/AncestorsInclude: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/BigDecimalWithNumericArgument: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/BlockGivenWithExplicitBlock: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/CollectionLiteralInLoop: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/ConcurrentMonotonicTime: # new in 1.12\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/ConstantRegexp: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/MapCompact: # new in 1.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/MethodObjectAsBlock: # new in 1.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/RedundantEqualityComparisonBlock: # new in 1.10\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/RedundantSortBlock: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/RedundantSplitRegexpArgument: # new in 1.10\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/RedundantStringChars: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/ReverseFirst: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/SortReverse: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/Squeeze: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/StringIdentifierArgument: # new in 1.13\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/StringInclude: # new in 1.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Performance/Sum: # new in 1.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/ActionControllerTestCase: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/ActiveRecordCallbacksOrder: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/AddColumnIndex: # new in 2.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/AfterCommitOverride: # new in 2.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/AttributeDefaultBlockValue: # new in 2.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/CompactBlank: # new in 2.13\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/DuplicateAssociation: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/DuplicateScope: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/DurationArithmetic: # new in 2.13\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/EagerEvaluationLogMessage: # new in 2.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/ExpandedDateRange: # new in 2.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/FindById: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/I18nLazyLookup: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleAssignment: # new in 2.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleTexts: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/Inquiry: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/MailerName: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/MatchRoute: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/MigrationClassName: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/NegateInclude: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/Pluck: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/PluckInWhere: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/RedundantTravelBack: # new in 2.12\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/RenderInline: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/RenderPlainText: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/RootJoinChain: # new in 2.13\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/ShortI18n: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/SquishedSQLHeredocs: # new in 2.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/TimeZoneAssignment: # new in 2.10\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/TransactionExitStatement: # new in 2.14\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/UnusedIgnoredColumns: # new in 2.11\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/WhereEquals: # new in 2.9\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/WhereExists: # new in 2.7\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "Rails/WhereNot: # new in 2.8\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:24:55.618 helix_lsp::transport [ERROR] err <- "For more information: https://docs.rubocop.org/rubocop/versioning.html\n"
2022-06-02T09:24:55.659 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.rb","diagnostics":[{"range":{"start":{"line":1,"character":0},"end":{"line":1,"character":1}},"severity":3,"source":"rubocop","code":"Layout/IndentationWidth","message":" Use 2 (not 0) spaces for indentation."},{"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":1}},"severity":3,"source":"rubocop","code":"Layout/IndentationWidth","message":" Use 2 (not 0) spaces for indentation."}]}}

For comparison, here's the log when (successfully) running :format on a badly formatted javascript file:

Log for hx -vvv test.js
2022-06-02T09:23:16.946 helix_loader [DEBUG] Located configuration folders: ["/home/even/.local/dev/helix-issue2623-test-repo/.helix"]
2022-06-02T09:23:17.049 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
2022-06-02T09:23:17.049 mio::poll [TRACE] registering event source with poller: token=Token(2), interests=READABLE | WRITABLE
2022-06-02T09:23:17.049 mio::poll [TRACE] registering event source with poller: token=Token(3), interests=READABLE | WRITABLE
2022-06-02T09:23:17.049 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"processId":1691,"rootPath":"/home/even/.local/dev/helix-issue2623-test-repo","rootUri":"file:///home/even/.local/dev/helix-issue2623-test-repo","workspaceFolders":[{"name":"helix-issue2623-test-repo","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo"}]},"id":0}
2022-06-02T09:23:17.050 mio::poll [TRACE] registering event source with poller: token=Token(4), interests=READABLE | WRITABLE
2022-06-02T09:23:17.050 mio::poll [TRACE] registering event source with poller: token=Token(5), interests=READABLE | WRITABLE
2022-06-02T09:23:17.051 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2022-06-02T09:23:17.051 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2022-06-02T09:23:17.273 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"[lspserver] Using Typescript version (bundled) 4.7.2 from path \"/home/even/.config/yarn/global/node_modules/typescript/lib/tsserver.js\""}}
2022-06-02T09:23:17.274 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "[lspserver] Using Typescript version (bundled) 4.7.2 from path \"/home/even/.config/yarn/global/node_modules/typescript/lib/tsserver.js\"" }
2022-06-02T09:23:17.438 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"completionProvider":{"triggerCharacters":[".","\"","'","/","@","<"],"resolveProvider":true},"codeActionProvider":{"codeActionKinds":["source.fixAll.ts","source.removeUnused.ts","source.addMissingImports.ts","source.organizeImports.ts"]},"definitionProvider":true,"documentFormattingProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["_typescript.applyWorkspaceEdit","_typescript.applyCodeAction","_typescript.applyRefactoring","_typescript.organizeImports","_typescript.applyRenameFile"]},"hoverProvider":true,"renameProvider":true,"referencesProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",",","<"]},"workspaceSymbolProvider":true,"implementationProvider":true,"typeDefinitionProvider":true,"foldingRangeProvider":true,"semanticTokensProvider":{"documentSelector":null,"legend":{"tokenTypes":["class","enum","interface","namespace","typeParameter","type","parameter","variable","enumMember","property","function","member"],"tokenModifiers":["declaration","static","async","readonly","defaultLibrary","local"]},"full":true,"range":true},"callsProvider":true}}}
2022-06-02T09:23:17.438 helix_lsp::transport [INFO] <- {"capabilities":{"callsProvider":true,"codeActionProvider":{"codeActionKinds":["source.fixAll.ts","source.removeUnused.ts","source.addMissingImports.ts","source.organizeImports.ts"]},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".","\"","'","/","@","<"]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentRangeFormattingProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["_typescript.applyWorkspaceEdit","_typescript.applyCodeAction","_typescript.applyRefactoring","_typescript.organizeImports","_typescript.applyRenameFile"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":true,"referencesProvider":true,"renameProvider":true,"semanticTokensProvider":{"documentSelector":null,"full":true,"legend":{"tokenModifiers":["declaration","static","async","readonly","defaultLibrary","local"],"tokenTypes":["class","enum","interface","namespace","typeParameter","type","parameter","variable","enumMember","property","function","member"]},"range":true},"signatureHelpProvider":{"triggerCharacters":["(",",","<"]},"textDocumentSync":2,"typeDefinitionProvider":true,"workspaceSymbolProvider":true}}
2022-06-02T09:23:17.438 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-06-02T09:23:17.438 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"javascript","text":"const testEl
     = document.querySelector(\".test\")\n","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.js","version":0}}}
2022-06-02T09:23:18.111 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.js","diagnostics":[]}}
2022-06-02T09:23:19.573 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":1,"message":"[tsserver] npm WARN old lockfile \nnpm WARN old lockfile The package-lock.json file was created with an old version of npm,\nnpm WARN old lockfile so supplemental metadata must be fetched from the registry.\nnpm WARN old lockfile \nnpm WARN old lockfile This is a one-time fix-up, please be patient...\nnpm WARN old lockfile \n"}}
2022-06-02T09:23:19.573 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Error, message: "[tsserver] npm WARN old lockfile \nnpm WARN old lockfile The package-lock.json file was created with an old version of npm,\nnpm WARN old lockfile so supplemental metadata must be fetched from the registry.\nnpm WARN old lockfile \nnpm WARN old lockfile This is a one-time fix-up, please be patient...\nnpm WARN old lockfile \n" }
2022-06-02T09:23:25.313 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/formatting","params":{"options":{"insertSpaces":true,"tabSize":2},"textDocument":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.js"}},"id":1}
2022-06-02T09:23:25.343 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":1,"result":[{"range":{"start":{"line":0,"character":12},"end":{"line":0,"character":29}},"newText":" "}]}
2022-06-02T09:23:25.343 helix_lsp::transport [INFO] <- [{"newText":" ","range":{"end":{"character":29,"line":0},"start":{"character":12,"line":0}}}]
2022-06-02T09:23:25.345 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":29,"line":0},"start":{"character":12,"line":0}},"text":" "}],"textDocument":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.js","version":1}}}
2022-06-02T09:23:25.609 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test.js","diagnostics":[]}}

@evenreven
Copy link
Author

@evenreven I guess 3. is not an issue on Helix, It is how Solargraph works. Since Solargraph runs in Ruby and a missing end break Ruby parser, it shows this error.

But Helix doesn't show any error at all, that's the problem. It acts like everything is fine. Only Neovim (running the same Solargraph/Rubocop versions) shows the error. VS Code shows the error too, and I verified that it's running as Solargraph extension, i.e. with Rubocop running as a Solargraph reporter, not as a separate VS Code extension.

The more I'm looking into this point, I think it might be a separate bug? Here's the helix log when opening the file with the missing end:

.cache/helix/helix.log
2022-06-02T09:55:19.358 helix_loader [DEBUG] Located configuration folders: ["/home/even/.local/dev/helix-issue2623-test-repo/.helix"]
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(2), interests=READABLE | WRITABLE
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(3), interests=READABLE | WRITABLE
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(4), interests=READABLE | WRITABLE
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(5), interests=READABLE | WRITABLE
2022-06-02T09:55:19.474 helix_lsp::client [INFO] Using custom LSP config: {"solargraph":{"diagnostics":true,"formatting":true}}
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2022-06-02T09:55:19.474 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2022-06-02T09:55:19.474 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"completion":{"completionItem":{"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":false},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"publishDiagnostics":{},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":false}},"window":{"workDoneProgress":true},"workspace":{"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"workspaceFolders":true}},"initializationOptions":{"solargraph":{"diagnostics":true,"formatting":true}},"processId":4451,"rootPath":"/home/even/.local/dev/helix-issue2623-test-repo","rootUri":"file:///home/even/.local/dev/helix-issue2623-test-repo","workspaceFolders":[{"name":"helix-issue2623-test-repo","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo"}]},"id":0}
2022-06-02T09:55:19.690 helix_lsp::transport [ERROR] err <- "Solargraph is listening on stdio PID=4464\n"
2022-06-02T09:55:19.750 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":2,"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"signatureHelpProvider":{"triggerCharacters":["(",","]},"hoverProvider":true,"documentSymbolProvider":true,"definitionProvider":true,"renameProvider":{"prepareProvider":true},"referencesProvider":true,"workspaceSymbolProvider":true,"foldingRangeProvider":true,"documentHighlightProvider":true}}}
2022-06-02T09:55:19.750 helix_lsp::transport [INFO] <- {"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","@"]},"definitionProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"foldingRangeProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":2,"workspace":{"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2022-06-02T09:55:19.750 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"3d01d4fd-b2e9-432a-8b60-2939e600983b"},"id":1}
2022-06-02T09:55:19.751 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2022-06-02T09:55:19.751 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","result":null,"id":1}
2022-06-02T09:55:19.751 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"solargraph":{"diagnostics":true,"formatting":true}}}}
2022-06-02T09:55:19.751 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"ruby","text":"def test\ntest_method\n\nprivate\n\ndef test_method\nputs \"testing!\"\nend\n","uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test_missing_end.rb","version":0}}}
2022-06-02T09:55:19.751 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3d01d4fd-b2e9-432a-8b60-2939e600983b","value":{"kind":"begin","title":"Mapping workspace","message":"0/2 files","cancellable":false,"percentage":0}}}
2022-06-02T09:55:19.798 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3d01d4fd-b2e9-432a-8b60-2939e600983b","value":{"kind":"report","cancellable":false,"message":"1/2 files","percentage":50}}}
2022-06-02T09:55:19.799 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3d01d4fd-b2e9-432a-8b60-2939e600983b","value":{"kind":"report","cancellable":false,"message":"2/2 files","percentage":100}}}
2022-06-02T09:55:19.799 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3d01d4fd-b2e9-432a-8b60-2939e600983b","value":{"kind":"end","message":"Mapping complete"}}}
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file.\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Please also note that you can opt-in to new cops by default by adding this to your config:\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  AllCops:\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "    NewCops: enable\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Gemspec/DateAssignment: # new in 1.10\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Gemspec/DeprecatedAttributeAssignment: # new in 1.30\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Gemspec/RequireMFA: # new in 1.23\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Layout/LineEndStringConcatenationIndentation: # new in 1.18\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Layout/SpaceBeforeBrackets: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousAssignment: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousOperatorPrecedence: # new in 1.21\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/AmbiguousRange: # new in 1.19\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/DeprecatedConstants: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/DuplicateBranch: # new in 1.3\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/DuplicateRegexpCharacterClassElement: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/EmptyBlock: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/EmptyClass: # new in 1.3\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/EmptyInPattern: # new in 1.16\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/LambdaWithoutLiteralBlock: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/NoReturnInBeginEndBlocks: # new in 1.2\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/NumberedParameterAssignment: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/OrAssignmentToConstant: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/RedundantDirGlobSort: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/RefinementImportMethods: # new in 1.27\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/RequireRelativeSelfPath: # new in 1.22\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/SymbolConversion: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/ToEnumArguments: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/TripleQuotes: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/UnexpectedBlockArity: # new in 1.5\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/UnmodifiedReduceAccumulator: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Lint/UselessRuby2Keywords: # new in 1.23\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Naming/BlockForwarding: # new in 1.24\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Security/CompoundHash: # new in 1.28\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Security/IoMethods: # new in 1.22\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/ArgumentsForwarding: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/CollectionCompact: # new in 1.2\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/DocumentDynamicEvalDefinition: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/EndlessMethod: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/EnvHome: # new in 1.29\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/FetchEnvVar: # new in 1.28\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/FileRead: # new in 1.24\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/FileWrite: # new in 1.24\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/HashConversion: # new in 1.10\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/HashExcept: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/IfWithBooleanLiteralBranches: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/InPatternThen: # new in 1.16\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/MapCompactWithConditionalBlock: # new in 1.30\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/MapToHash: # new in 1.24\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/MultilineInPatternThen: # new in 1.16\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/NegatedIfElseCondition: # new in 1.2\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/NestedFileDirname: # new in 1.26\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/NilLambda: # new in 1.3\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/NumberedParameters: # new in 1.22\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/NumberedParametersLimit: # new in 1.22\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/ObjectThen: # new in 1.28\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/OpenStructUse: # new in 1.23\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/QuotedSymbols: # new in 1.16\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/RedundantArgument: # new in 1.4\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/RedundantInitialize: # new in 1.27\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/RedundantSelfAssignmentBranch: # new in 1.19\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/SelectByRegexp: # new in 1.22\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/StringChars: # new in 1.12\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Style/SwapValues: # new in 1.1\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/AncestorsInclude: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/BigDecimalWithNumericArgument: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/BlockGivenWithExplicitBlock: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/CollectionLiteralInLoop: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/ConcurrentMonotonicTime: # new in 1.12\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/ConstantRegexp: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/MapCompact: # new in 1.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/MethodObjectAsBlock: # new in 1.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/RedundantEqualityComparisonBlock: # new in 1.10\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/RedundantSortBlock: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/RedundantSplitRegexpArgument: # new in 1.10\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/RedundantStringChars: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/ReverseFirst: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/SortReverse: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/Squeeze: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/StringIdentifierArgument: # new in 1.13\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/StringInclude: # new in 1.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Performance/Sum: # new in 1.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/ActionControllerTestCase: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/ActiveRecordCallbacksOrder: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/AddColumnIndex: # new in 2.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/AfterCommitOverride: # new in 2.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/AttributeDefaultBlockValue: # new in 2.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/CompactBlank: # new in 2.13\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/DeprecatedActiveModelErrorsMethods: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/DuplicateAssociation: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/DuplicateScope: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/DurationArithmetic: # new in 2.13\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/EagerEvaluationLogMessage: # new in 2.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/ExpandedDateRange: # new in 2.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/FindById: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/I18nLazyLookup: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleAssignment: # new in 2.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/I18nLocaleTexts: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/Inquiry: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/MailerName: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/MatchRoute: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/MigrationClassName: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/NegateInclude: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/Pluck: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/PluckInWhere: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/RedundantPresenceValidationOnBelongsTo: # new in 2.13\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/RedundantTravelBack: # new in 2.12\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/RenderInline: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/RenderPlainText: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/RootJoinChain: # new in 2.13\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/ShortI18n: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/SquishedSQLHeredocs: # new in 2.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/TimeZoneAssignment: # new in 2.10\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/TransactionExitStatement: # new in 2.14\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/UnusedIgnoredColumns: # new in 2.11\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/WhereEquals: # new in 2.9\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/WhereExists: # new in 2.7\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "Rails/WhereNot: # new in 2.8\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "  Enabled: true\n"
2022-06-02T09:55:20.605 helix_lsp::transport [ERROR] err <- "For more information: https://docs.rubocop.org/rubocop/versioning.html\n"
2022-06-02T09:55:20.639 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/even/.local/dev/helix-issue2623-test-repo/test_missing_end.rb","diagnostics":[{"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":1}},"severity":1,"source":"rubocop","code":"Lint/Syntax","message":" unexpected token $end\n(Using Ruby 2.5 parser; configure using `TargetRubyVersion` parameter, under `AllCops`)"}]}}
2022-06-02T09:55:20.639 helix_term::application [WARN] lsp position out of bounds - Diagnostic { range: Range { start: Position { line: 8, character: 0 }, end: Position { line: 8, character: 1 } }, severity: Some(Error), code: Some(String("Lint/Syntax")), code_description: None, source: Some("rubocop"), message: " unexpected token $end\n(Using Ruby 2.5 parser; configure using `TargetRubyVersion` parameter, under `AllCops`)", related_information: None, tags: None, data: None }

Look at the last line in particular. The rubocop message is present in the log, but doesn't appear in the on-screen diagnostics in Helix.

I don't know Rust or the innards of Helix, so I'm not sure what lsp position out of bounds means in this context, but it seems like it could be a bug to me.

@archseer
Copy link
Member

archseer commented Jun 2, 2022

Yep, the diagnostic is discarded because the range given by Solargraph was considered out of document range by us. I'm taking a look.

@archseer
Copy link
Member

archseer commented Jun 2, 2022

does the diagnostic appear if you add some more content at the end of the file? Is it incorrectly positioned in that case?

@evenreven
Copy link
Author

Adding more content didn't help, but I managed to get the diagnostic to appear when I removed the blank newline at the end of the file. So it seems that's the problem.

@evenreven
Copy link
Author

So to recap, this is actually three issues:

  1. Solargraph diagnostics and formatting flags aren't set by default in Helix. This is not a bug per se, but maybe it would be an enhancement to set this by default, that's up to you.
  2. The :format command doesn't seem to actually call the lsp formatting action
  3. Newline at the end of the file breaks some diagnostics because it reports lsp position as out of bounds. I don't know if this affects other langservers than Solargraph.

Thanks for the prompt and helpful responses so far, @archseer, @the-mikedavis and @danillos, I really appreciate it!

@evenreven
Copy link
Author

I've been using Helix some more and I think my description of the issue(s) in the previous comment is correct. I'm sorry I don't know enough to help this along. If I can do any more by testing various stuff, let me know.

@brendantang
Copy link

Same issue here! Adding the config mentioned above to my languages.toml file enabled reporting from solargraph, but the :format command still doesn't seem to call the lsp formatting action.

@dhnaranjo
Copy link

Y'all could use the new non-LSP formatter config, I just added instructions for Rubocop n StandardRB: https://github.com/helix-editor/helix/wiki/External-binary-formatter-configuration#rubocop

@lrgalego
Copy link

lrgalego commented Sep 30, 2022

Y'all could use the new non-LSP formatter config, I just added instructions for Rubocop n StandardRB: https://github.com/helix-editor/helix/wiki/External-binary-formatter-configuration#rubocop

I notice that when the formatter fails to reformat the code it returns 1 and you can't close a buffer with auto-format on.
I added one more parameter to make it less error prone.

[[language]]
name = "ruby"
config = { solargraph = { diagnostics = true, formatting = false } }
formatter = { command = "bundle", args = ["exec", "rubocop", "--stdin", "foo.rb", "-a", "--stderr", "--fail-level", "fatal"] }
auto-format = true

@dhnaranjo
Copy link

I notice that when the formatter fails to reformat the code it returns 1 and you can't close a buffer with auto-format on.

I added one more parameter to make it less error prone.


[[language]]

name = "ruby"

config = { solargraph = { diagnostics = true, formatting = false } }

formatter = { command = "bundle", args = ["exec", "rubocop", "--stdin", "foo.rb", "-a", "--stderr", "--fail-level", "fatal"] }

auto-format = true

Rad. You ought add that to the wiki page as well, anyone can edit it.

@almmiko
Copy link

almmiko commented Apr 9, 2023

If you've installed rubocop/standardrb/stree(SyntaxTree) globally, you should modify the formatter command.

# Example with rubocop
[[language]]
name = "ruby"
formatter = { command = "rubocop", args = ["--stdin", "foo.rb", "-a", "--stderr", "--fail-level", "fatal"] }
auto-format = true

@djpowers
Copy link
Contributor

djpowers commented May 9, 2023

Thanks @dhnaranjo and @lrgalego for the external formatter tip! That ended up solving the issue for me. I added the suggestion to include the LSP config to the wiki so others can benefit: https://github.com/helix-editor/helix/wiki/External-binary-formatter-configuration#rubocop (feel free to further clarify)

Not sure if the other issues identified in this thread are still outstanding, but if not we might be able to close this.

@mkon
Copy link
Contributor

mkon commented Oct 31, 2023

Is there an updated way to configure this? config is no longer supported under language:

Bad language config: unknown field config, expected one of name, language-id, scope, file-types, shebangs, roots, comment-token, text-width, soft-wrap, auto-format, formatter, diagnostic-severity, grammar, injection-regex, language-servers, indent, debugger, auto-pairs, rulers, workspace-lsp-roots
in language

@danillos
Copy link
Contributor

This is my configuration at laguages.toml

[language-server.solargraph]
command = "/Users/danillos/.rbenv/shims/solargraph"
args = ["stdio"]
config = { diagnostics = false, formatting = false }

[language-server.rubocop]
command = "/Users/danillos/.rbenv/shims/rubocop"
args = ["--lsp", "--stderr", "--fail-level", "fatal"]
timeout = 3

[[language]]
name = "ruby"
language-servers = ["rubocop", { name = "solargraph", except-features = [ "format", "diagnostics" ] }]
auto-format = true

I'm using Rubocop not inside of Solargraph because it is faster.

@helix-editor helix-editor locked and limited conversation to collaborators Apr 6, 2024
@pascalkuthe pascalkuthe converted this issue into discussion #10169 Apr 6, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
C-bug Category: This is a bug
Projects
None yet
Development

No branches or pull requests

10 participants