vercel / turborepo

Build system optimized for JavaScript and TypeScript, written in Rust
https://turbo.build/repo/docs
MIT License
26k stars 1.79k forks source link

[LSP] Extension fails to resolve turbo.path in VSC #8583

Open motss opened 2 months ago

motss commented 2 months ago

Verify canary release

Link to code that reproduces this issue

https://github.com/motss/vercel-turbo-8583

What package manager are you using / does the bug impact?

pnpm

What operating system are you using?

Mac

Which canary version will you have in your reproduction?

turbo 2.0.4

Describe the Bug

turbo-not-found

VSC extension always fails to read and the resolve the turbo.path defined in local's .vscode/settings.json file.

None of the following paths work:

"turbo.path": "./node_modules/.bin/turbo"
"turbo.path": "node_modules/.bin/turbo"

This is the error being showing in the Output tab:

starting the turbo extension
manually specified turbo does not exist at path `./node_modules/.bin/turbo`, attempting to locate it
attempting to find global turbo
prompting global turbo
attempting to find local turbo using npm
attempting to find local turbo using yarn
attempting to find local turbo using pnpm
found local turbo at /Users/rongsen/motss/webmod/node_modules/.bin/turbo
using turbo at path /Users/rongsen/motss/webmod/node_modules/.bin/turbo

However, the current workaround can be either:

  1. Using the absolute path works just fine, or
    "turbo.path": "/Users/johndoe/test-turbo/node_modules/.bin/turbo",
  2. Use "turbo.useLocalTurbo": true instead as turbo LSP is able to search for local turbo but this can be time-consuming as the extension takes a few tries/ guesses in order to reach to the correct location.

Expected Behavior

VSC extension should read and resolve the turbo.path defined in local's .vscode/settings.json file.

This should be the expected log from the extension instead:

starting the turbo extension
using turbo at path /Users/johndoe/test-turborepo/node_modules/.bin/turbo

To Reproduce

  1. Create any project using turbo
  2. Create .vscode/settings.json
  3. Add "turbo.path": "./node_modules/.bin/turbo"
  4. Reload VSC
  5. Go to OUTPUT tab to see the output from a VSC extension
  6. Done

Additional context

No response

TylerNRobertson commented 2 months ago

+1 on this, Ive never been able to get this extension to work

ShaneYu commented 2 weeks ago

I get the same issue, I tried with "turbo.useLocalTurbo": true and also ""turbo.path": "node_modules\\.bin\\turbo" with no success. I also tried all the same things you mentioned above and nothing would work, the extension just quite simply will NOT work.

This is what I see in the output log for the Turborepo Language Server:

[Info  - 11:04:31 AM] root uri: C:\Users\<username>\AppData\Local\Temp\turbod\aa8c81391457a46d\turbod.sock
[Error - 11:04:36 AM] failed to connect to daemon: unable to connect to daemon after 3 retries
[Error - 11:04:36 AM] Server initialization failed.
  Message: Internal error
  Code: -32603 
[Error - 11:04:36 AM] Turborepo Language Server client: couldn't create connection to server.
  Message: Internal error
  Code: -32603 
[Error - 11:04:36 AM] Restarting server failed
  Message: Internal error
  Code: -32603 
[Error - 11:04:38 AM] Server process exited with code 1.
[Error - 11:04:38 AM] The Turborepo Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.

Shame it doesn't work as the docs brag about how it really enhances the developer's experience when in a Turbo repo, going to have to not bother with it for now. 😢

ShaneYu commented 2 weeks ago

I'd also like to add that even with turbo installed globally on my machine, this extension still does not work and results in the same output.