-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Summary
With latest version of typescript-language-server helix often deadlocks (until timeout happens) when resolving completions triggering a "Failed to resolve completion item" message in the logs.
What tls does is it triggers a workspace/configuration request during handling of completionItem/resolve. What Helix seems to do (sometimes) is not respond to that configuration request which means that the tls server is blocked until the request timeouts.
My guess as to why Helix doesn't respond is that it decided to trigger redundant completionItem/resolve right after the first one and kinda abandoned handling of the first one. This might be the main issue here. There doesn't seem to be a good reason for triggering completion resolving for the same item twice.
Reproduction Steps
- trigger completions
- press down arrow to select first completion and then quickly press enter
Recording: https://asciinema.org/a/4yvWIED5BS9Varn4qbDVflzu6
Helix log
~/.cache/helix/helix.log
2025-11-05T12:21:24.811 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":7,"line":17},"start":{"character":7,"line":17}},"text":"t"}],"textDocument":{"uri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","version":16}}}
2025-11-05T12:21:25.064 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","method":"textDocument/completion","params":{"context":{"triggerKind":1},"position":{"character":8,"line":17},"textDocument":{"uri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts"}},"id":5}
2025-11-05T12:21:25.067 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":3,"method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","section":"formattingOptions"}]}}
2025-11-05T12:21:25.071 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","result":[null],"id":3}
2025-11-05T12:21:25.099 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":5,"result":{"items":[{"label":"action","kind":2,"sortText":"11","data":{"cacheId":1},"textEdit":{"newText":"action","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addArgument","kind":2,"sortText":"11","data":{"cacheId":2},"textEdit":{"newText":"addArgument","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addCommand","kind":2,"sortText":"11","data":{"cacheId":3},"textEdit":{"newText":"addCommand","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addHelpCommand","kind":2,"sortText":"11","data":{"cacheId":4},"textEdit":{"newText":"addHelpCommand","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addHelpOption","kind":2,"sortText":"11","data":{"cacheId":5},"textEdit":{"newText":"addHelpOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addHelpText","kind":2,"sortText":"11","data":{"cacheId":6},"textEdit":{"newText":"addHelpText","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"addOption","kind":2,"sortText":"11","data":{"cacheId":7},"textEdit":{"newText":"addOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"alias","kind":2,"sortText":"11","data":{"cacheId":8},"textEdit":{"newText":"alias","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"aliases","kind":2,"sortText":"11","data":{"cacheId":9},"textEdit":{"newText":"aliases","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"allowExcessArguments","kind":2,"sortText":"11","data":{"cacheId":10},"textEdit":{"newText":"allowExcessArguments","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"allowUnknownOption","kind":2,"sortText":"11","data":{"cacheId":11},"textEdit":{"newText":"allowUnknownOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"args","kind":5,"sortText":"11","data":{"cacheId":12},"textEdit":{"newText":"args","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"argument","kind":2,"sortText":"11","data":{"cacheId":13},"textEdit":{"newText":"argument","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"arguments","kind":2,"sortText":"11","data":{"cacheId":14},"textEdit":{"newText":"arguments","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"combineFlagAndOptionalValue","kind":2,"sortText":"11","data":{"cacheId":15},"textEdit":{"newText":"combineFlagAndOptionalValue","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"command","kind":2,"sortText":"11","data":{"cacheId":16},"textEdit":{"newText":"command","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"commands","kind":5,"sortText":"11","data":{"cacheId":17},"textEdit":{"newText":"commands","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"commandsGroup","kind":2,"sortText":"11","data":{"cacheId":18},"textEdit":{"newText":"commandsGroup","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"configureHelp","kind":2,"sortText":"11","data":{"cacheId":19},"textEdit":{"newText":"configureHelp","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"configureOutput","kind":2,"sortText":"11","data":{"cacheId":20},"textEdit":{"newText":"configureOutput","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"copyInheritedSettings","kind":2,"sortText":"11","data":{"cacheId":21},"textEdit":{"newText":"copyInheritedSettings","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"createArgument","kind":2,"sortText":"11","data":{"cacheId":22},"textEdit":{"newText":"createArgument","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"createCommand","kind":2,"sortText":"11","data":{"cacheId":23},"textEdit":{"newText":"createCommand","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"createHelp","kind":2,"sortText":"11","data":{"cacheId":24},"textEdit":{"newText":"createHelp","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"createOption","kind":2,"sortText":"11","data":{"cacheId":25},"textEdit":{"newText":"createOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"description","kind":2,"sortText":"11","data":{"cacheId":26},"textEdit":{"newText":"description","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"enablePositionalOptions","kind":2,"sortText":"11","data":{"cacheId":27},"textEdit":{"newText":"enablePositionalOptions","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"error","kind":2,"sortText":"11","data":{"cacheId":28},"textEdit":{"newText":"error","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"executableDir","kind":2,"sortText":"11","data":{"cacheId":29},"textEdit":{"newText":"executableDir","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"exitOverride","kind":2,"sortText":"11","data":{"cacheId":30},"textEdit":{"newText":"exitOverride","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"getOptionValue","kind":2,"sortText":"11","data":{"cacheId":31},"textEdit":{"newText":"getOptionValue","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"getOptionValueSource","kind":2,"sortText":"11","data":{"cacheId":32},"textEdit":{"newText":"getOptionValueSource","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"getOptionValueSourceWithGlobals","kind":2,"sortText":"11","data":{"cacheId":33},"textEdit":{"newText":"getOptionValueSourceWithGlobals","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"help","kind":2,"sortText":"11","data":{"cacheId":34},"textEdit":{"newText":"help","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"helpCommand","kind":2,"sortText":"11","data":{"cacheId":35},"textEdit":{"newText":"helpCommand","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"helpGroup","kind":2,"sortText":"11","data":{"cacheId":36},"textEdit":{"newText":"helpGroup","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"helpInformation","kind":2,"sortText":"11","data":{"cacheId":37},"textEdit":{"newText":"helpInformation","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"helpOption","kind":2,"sortText":"11","data":{"cacheId":38},"textEdit":{"newText":"helpOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"hook","kind":2,"sortText":"11","data":{"cacheId":39},"textEdit":{"newText":"hook","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"name","kind":2,"sortText":"11","data":{"cacheId":40},"textEdit":{"newText":"name","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"nameFromFilename","kind":2,"sortText":"11","data":{"cacheId":41},"textEdit":{"newText":"nameFromFilename","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"on","kind":2,"sortText":"11","data":{"cacheId":42},"textEdit":{"newText":"on","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"option","kind":2,"sortText":"11","data":{"cacheId":43},"textEdit":{"newText":"option","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"options","kind":5,"sortText":"11","data":{"cacheId":44},"textEdit":{"newText":"options","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"optionsGroup","kind":2,"sortText":"11","data":{"cacheId":45},"textEdit":{"newText":"optionsGroup","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"opts","kind":2,"sortText":"11","data":{"cacheId":46},"textEdit":{"newText":"opts","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"optsWithGlobals","kind":2,"sortText":"11","data":{"cacheId":47},"textEdit":{"newText":"optsWithGlobals","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"outputHelp","kind":2,"sortText":"11","data":{"cacheId":48},"textEdit":{"newText":"outputHelp","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"parent","kind":5,"sortText":"11","data":{"cacheId":49},"textEdit":{"newText":"parent","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"parse","kind":2,"sortText":"11","data":{"cacheId":50},"textEdit":{"newText":"parse","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"parseAsync","kind":2,"sortText":"11","data":{"cacheId":51},"textEdit":{"newText":"parseAsync","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"parseOptions","kind":2,"sortText":"11","data":{"cacheId":52},"textEdit":{"newText":"parseOptions","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"passThroughOptions","kind":2,"sortText":"11","data":{"cacheId":53},"textEdit":{"newText":"passThroughOptions","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"processedArgs","kind":5,"sortText":"11","data":{"cacheId":54},"textEdit":{"newText":"processedArgs","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"registeredArguments","kind":5,"sortText":"11","data":{"cacheId":55},"textEdit":{"newText":"registeredArguments","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"requiredOption","kind":2,"sortText":"11","data":{"cacheId":56},"textEdit":{"newText":"requiredOption","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"restoreStateBeforeParse","kind":2,"sortText":"11","data":{"cacheId":57},"textEdit":{"newText":"restoreStateBeforeParse","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"saveStateBeforeParse","kind":2,"sortText":"11","data":{"cacheId":58},"textEdit":{"newText":"saveStateBeforeParse","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"setOptionValue","kind":2,"sortText":"11","data":{"cacheId":59},"textEdit":{"newText":"setOptionValue","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"setOptionValueWithSource","kind":2,"sortText":"11","data":{"cacheId":60},"textEdit":{"newText":"setOptionValueWithSource","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"showHelpAfterError","kind":2,"sortText":"11","data":{"cacheId":61},"textEdit":{"newText":"showHelpAfterError","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"showSuggestionAfterError","kind":2,"sortText":"11","data":{"cacheId":62},"textEdit":{"newText":"showSuggestionAfterError","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"storeOptionsAsProperties","kind":2,"sortText":"11","data":{"cacheId":63},"textEdit":{"newText":"storeOptionsAsProperties","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"summary","kind":2,"sortText":"11","data":{"cacheId":64},"textEdit":{"newText":"summary","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"usage","kind":2,"sortText":"11","data":{"cacheId":65},"textEdit":{"newText":"usage","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}},{"label":"version","kind":2,"sortText":"11","data":{"cacheId":66},"textEdit":{"newText":"version","insert":{"start":{"line":17,"character":5},"end":{"character":8,"line":17}},"replace":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}}}}],"isIncomplete":false}}
2025-11-05T12:21:25.175 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","diagnostics":[{"range":{"start":{"line":17,"character":5},"end":{"line":17,"character":8}},"message":"Property 'act' does not exist on type 'Command'.","severity":1,"code":2339,"source":"typescript","tags":[]},{"range":{"start":{"line":19,"character":142},"end":{"line":19,"character":147}},"message":"Parameter 'value' implicitly has an 'any' type.","severity":1,"code":7006,"source":"typescript","tags":[]}]}}
2025-11-05T12:21:25.578 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"cacheId":1},"kind":2,"label":"action","sortText":"11","textEdit":{"insert":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}},"newText":"action","replace":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}}}},"id":6}
2025-11-05T12:21:25.579 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":4,"method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","section":"formattingOptions"}]}}
2025-11-05T12:21:25.675 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"cacheId":1},"kind":2,"label":"action","sortText":"11","textEdit":{"insert":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}},"newText":"action","replace":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}}}},"id":7}
2025-11-05T12:21:25.676 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":5,"method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","section":"formattingOptions"}]}}
2025-11-05T12:21:45.583 helix_term::ui::completion [ERROR] Failed to resolve completion item: request 6 timed out
2025-11-05T12:21:45.585 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}},"text":"action"}],"textDocument":{"uri":"file:///usr/local/workspace/github/typescript-language-server/src/cli.ts","version":19}}}
2025-11-05T12:21:45.599 helix_vcs::diff::worker [INFO] Diff computation timed out, update of diffs might appear delayed
2025-11-05T12:21:45.601 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","result":[null],"id":4}
2025-11-05T12:21:45.608 helix_lsp::transport [INFO] typescript-language-server -> {"jsonrpc":"2.0","result":[null],"id":5}
2025-11-05T12:21:45.654 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":6,"result":{"data":{"file":"/usr/local/workspace/github/typescript-language-server/src/cli.ts","line":18,"offset":9,"entryNames":["action"]},"kind":2,"label":"action","sortText":"11","textEdit":{"insert":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}},"newText":"action","replace":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}}},"detail":"(method) Command.action(fn: (this: Command, ...args: any[]) => void | Promise<void>): Command","documentation":{"kind":"markdown","value":"Register callback `fn` for the command.\n\n*@example* \n```\nprogram\n .command('serve')\n .description('start service')\n .action(function() {\n // do work here\n });\n``` \n\n*@returns* — `this` command for chaining"}}}
2025-11-05T12:21:45.654 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(6)), original request likely timed out
2025-11-05T12:21:45.655 helix_lsp::transport [INFO] typescript-language-server <- {"jsonrpc":"2.0","id":7,"result":{"data":{"file":"/usr/local/workspace/github/typescript-language-server/src/cli.ts","line":18,"offset":9,"entryNames":["action"]},"kind":2,"label":"action","sortText":"11","textEdit":{"insert":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}},"newText":"action","replace":{"end":{"character":8,"line":17},"start":{"character":5,"line":17}}},"detail":"(method) Command.action(fn: (this: Command, ...args: any[]) => void | Promise<void>): Command","documentation":{"kind":"markdown","value":"Register callback `fn` for the command.\n\n*@example* \n```\nprogram\n .command('serve')\n .description('start service')\n .action(function() {\n // do work here\n });\n``` \n\n*@returns* — `this` command for chaining"}}}
2025-11-05T12:21:45.655 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(7)), original request likely timed out
Platform
macOS
Terminal Emulator
zsh
Installation Method
brew
Helix Version
helix 25.07.1 (a05c151)