Skip to content
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

astro-language-server LSP Inactive #4508

Open
lesar opened this issue Feb 20, 2024 · 14 comments
Open

astro-language-server LSP Inactive #4508

lesar opened this issue Feb 20, 2024 · 14 comments
Labels
bug Something isn't working LSP LSP Related issues

Comments

@lesar
Copy link

lesar commented Feb 20, 2024

Problem description

astro-language-server is installed by Mason
if I open index.astro on working project I get an error see screen shot

I'm new on lunarvim and do not know what to do so I try this:
npm install -g @astrojs/language-server
this not help
and
:LspInstall astro
this not help

I have search on other Issue but have not understand how to solve.

is a bug or my mistake?

best regards,
Leonardo

LunarVim version

release-1.3/neovim-0.9-d1c1bace

Neovim version (>= 0.9.1)

NVIM v0.9.5

Operating system/version

Fedora 39

Affected language servers

astro

Steps to reproduce

Open an *.astro file.

Actual behavior

the first time get the error, then LSP Inactive

Expected behavior

LSP active

support info

:LspInfo
 Language client log: /home/leonardo/.local/state/lvim/lsp.log
 Detected filetype:   astro
 
 0 client(s) attached to this buffer: 
 
 Other clients that match the filetype: astro
 
 Config: tailwindcss
 	Refer to :h lspconfig-root-detection for help.
 	filetypes:         aspnetcorerazor, astro, astro-markdown, blade, clojure, django-html, htmldjango, edge, eelixir, elixir, ejs, erb, eruby, gohtml, haml, handlebars, hbs, html, html-eex, heex, jade, leaf, liquid, markdown, mdx, mustache, njk, nunjucks, php, razor, slim, twig, css, less, postcss, sass, scss, stylus, sugarss, javascript, javascriptreact, reason, rescript, typescript, typescriptreact, vue, svelte
 	root directory:    Not found.
 	cmd:               tailwindcss-language-server --stdio
 	cmd is executable: true
 	autostart:         true
 	custom handlers:   
 Config: astro
 	filetypes:         astro
 	root directory:    /home/leonardo/Documenti/sviluppo/www/algoritmica.net/violet-giant
 	cmd:               astro-ls --stdio
 	cmd is executable: true
 	autostart:         true
 	custom handlers:   
 
 Configured servers list: tailwindcss, astro

logs

[ERROR][2024-02-20 10:12:24] .../vim/lsp/rpc.lua:734	"rpc"	"astro-ls"	"stderr"	"/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45\n                readDirectory: modules.typescript.sys.readDirectory,\n                                                  ^\n\nTypeError: Cannot read properties of undefined (reading 'sys')\n    at Object.resolveConfig (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45:51)\n    at createProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/project.js:78:35)\n    at runNextTicks (node:internal/process/task_queues:60:5)\n    at process.processImmediate (node:internal/timers:449:9)\n    at async getParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:302:29)\n    at async prepareClosestootParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:224:17)\n    at async findMatchConfigs (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:213:9)\n    at async Object.getProjectAndTsConfig [as getProject] (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:154:30)\n    at async getProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:314:17)\n    at async Immediate.<anonymous> (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:291:33)\n\nNode.js v20.9.0\n"
[WARN][2024-02-20 15:49:43] ...lsp/handlers.lua:137	"The language server astro triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ERROR][2024-02-20 15:49:43] .../vim/lsp/rpc.lua:734	"rpc"	"astro-ls"	"stderr"	"/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45\n                readDirectory: modules.typescript.sys.readDirectory,\n                                                  ^\n\nTypeError: Cannot read properties of undefined (reading 'sys')\n    at Object.resolveConfig (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45:51)\n    at createProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/project.js:78:35)\n    at runNextTicks (node:internal/process/task_queues:60:5)\n    at process.processImmediate (node:internal/timers:449:9)\n    at async getParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:302:29)\n    at async prepareClosestootParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:224:17)\n    at async findMatchConfigs (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:213:9)\n    at async Object.getProjectAndTsConfig [as getProject] (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:154:30)\n    at async getProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:314:17)\n    at async Immediate.<anonymous> (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:291:33)\n\nNode.js v20.9.0\n"
[WARN][2024-02-20 17:57:34] ...lsp/handlers.lua:137	"The language server astro triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ERROR][2024-02-20 17:57:34] .../vim/lsp/rpc.lua:734	"rpc"	"astro-ls"	"stderr"	"/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45\n                readDirectory: modules.typescript.sys.readDirectory,\n                                                  ^\n\nTypeError: Cannot read properties of undefined (reading 'sys')\n    at Object.resolveConfig (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45:51)\n    at createProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/project.js:78:35)\n    at runNextTicks (node:internal/process/task_queues:60:5)\n    at process.processImmediate (node:internal/timers:449:9)\n    at async getParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:302:29)\n    at async prepareClosestootParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:224:17)\n    at async findMatchConfigs (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:213:9)\n    at async Object.getProjectAndTsConfig [as getProject] (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:154:30)\n    at async getProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:314:17)\n    at async Immediate.<anonymous> (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:291:33)\n\nNode.js v20.9.0\n"
[START][2024-02-20 18:04:17] LSP logging initiated
[WARN][2024-02-20 18:04:17] ...lsp/handlers.lua:137	"The language server astro triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ERROR][2024-02-20 18:04:17] .../vim/lsp/rpc.lua:734	"rpc"	"astro-ls"	"stderr"	"/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45\n                readDirectory: modules.typescript.sys.readDirectory,\n                                                  ^\n\nTypeError: Cannot read properties of undefined (reading 'sys')\n    at Object.resolveConfig (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/dist/languageServerPlugin.js:45:51)\n    at createProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/project.js:78:35)\n    at runNextTicks (node:internal/process/task_queues:60:5)\n    at process.processImmediate (node:internal/timers:449:9)\n    at async getParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:302:29)\n    at async prepareClosestootParsedCommandLine (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:224:17)\n    at async findMatchConfigs (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:213:9)\n    at async Object.getProjectAndTsConfig [as getProject] (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/workspaces.js:154:30)\n    at async getProject (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:314:17)\n    at async Immediate.<anonymous> (/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/@astrojs/language-server/node_modules/@volar/language-server/lib/common/features/languageFeatures.js:291:33)\n\nNode.js v20.9.0\n"

Screenshots

index astro-lsp-inactive-2024-02-20 19-14-02

@lesar
Copy link
Author

lesar commented Feb 24, 2024

The bug on VSCodium is solve by this patch (I believe)

The bug is resembling to mine. I think is not a bug on astro-language-server but something on lvim/Mason installation/setup.

I do not know where post this issue: here or somewhere else.

best regards,
Leonardo

@chase
Copy link
Collaborator

chase commented Mar 3, 2024

The problem seems to be that the typescript package isn't being installed along with the language server.

One way you might try to fix this is to do a global install of typescript. Otherwise try (cd ~/.local/share/lvim/mason/packages/astro-language-server && npm i --no-save typescript).

Regardless, seems like mason isn't doing something right here.

@lesar
Copy link
Author

lesar commented Mar 5, 2024

thank you @chase .
I agree mason isn't doing something right here.
if I do:
$ pnpm list -g
I get:

Legend: production dependency, optional only, dev only

/home/leonardo/.local/share/pnpm/global/5

dependencies:
neovim 4.10.1
pnpm 8.15.3
typescript 5.3.3
typescript-language-server 4.3.3

I
$ cd ~/.local/share/lvim/mason/packages/astro-language-server
and then do
$ npm i --no-save typescript

I can see that typescript was jast installed.
then I do $ ls -l node_modules/typescript/bin/

tsc
tsserver

I try again lvim on my project but the error still present!

I think that something try to find typescript on wrong local path

best regards,
Leonardo

@olrtg
Copy link
Contributor

olrtg commented Mar 7, 2024

Just in case try with :MasonInstall astro-language-server instead of the :LspInstall astro command.

@lesar
Copy link
Author

lesar commented Mar 10, 2024

Thank you @olrtg I have try but same error message:

Typescript module is missing
assert in /usr/share/nvim/runtime/lua/vim/lsp.lua:1308: in function ''
vim/_editor.lua: in function <vim/_editor.lua:0>

best regards
Leonardo

@olrtg
Copy link
Contributor

olrtg commented Mar 11, 2024

Just curious. On which version of node are you?

@lesar
Copy link
Author

lesar commented Mar 11, 2024

I have:

$ node -v
v20.9.0
$ pnpm -v
8.15.3

@olrtg
Copy link
Contributor

olrtg commented Mar 18, 2024

Can you try installing typescript globally and making sure that tsc is on your PATH?

@lesar
Copy link
Author

lesar commented Mar 19, 2024

I have installed local and global:

$ which tsc
~/.local/share/pnpm/tsc
$ echo $PATH
/home/leonardo/.local/share/pnpm: ...
$ find / -name tsc -not -path "/immagini/*" -not -path "/var/*" -type f -executable -print
/home/leonardo/.local/share/lvim/mason/packages/json-lsp/node_modules/vscode-langservers-extracted/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/lvim/mason/packages/html-lsp/node_modules/vscode-langservers-extracted/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/lvim/mason/packages/css-lsp/node_modules/vscode-langservers-extracted/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/lvim/mason/packages/typescript-language-server/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/lvim/mason/packages/astro-language-server/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/pnpm/global/5/.pnpm/typescript@5.3.3/node_modules/typescript/bin/tsc
/home/leonardo/.local/share/pnpm/global/5/.pnpm/typescript@5.3.3/node_modules/typescript/node_modules/.bin/tsc
/home/leonardo/.local/share/pnpm/tsc

best regards,
Leonardo

P.S.: astro-language-server on VSCodium works
Am I the only people not be able to make astro-language-server works on lvim?

@chase
Copy link
Collaborator

chase commented Mar 19, 2024

I have installed local and global:

$ which tsc
~/.local/share/pnpm/tsc
$ echo $PATH
/home/leonardo/.local/share/pnpm: ...

Ah, pnpm uses a non-standard path.
Since lvim doesn't use a login shell, it's likely not picking up that path.

Try adding the PATH to lvim's wrapper script.
nvim $(which lvim)

+ export PATH=/home/leonardo/.local/share/pnpm:$PATH

  export LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-"/home/leonardo/.local/share/lunarvim"}"

@lesar
Copy link
Author

lesar commented Mar 19, 2024

thank you @chase . I try but it not work:

#!/bin/bash
export PATH=/home/leonardo/.local/share/pnpm:$PATH
export LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-'/home/leonardo/.local/share/lunarvim'}"
/home/leonardo/.local/bin/lvim
exit 0

@maxym-rybak
Copy link

maxym-rybak commented Mar 20, 2024

I had similar issue root directory: Not found. for tailwindcss. The root of the problem is that I where using tailwind.config.mjs and .mjs extension is not listed in configuration.

Screenshot 2024-03-20 at 20 43 38

Copy link
Contributor

This issue is stale because it has been open for 50 days with no activity.

@github-actions github-actions bot added the stale label May 10, 2024
@olrtg
Copy link
Contributor

olrtg commented May 10, 2024

@lesar maybe try installing typescript as a dev dependency of your project. It could be that the language server is searching for the tsserver file in your node_modules.

@github-actions github-actions bot removed the stale label May 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working LSP LSP Related issues
Projects
None yet
Development

No branches or pull requests

4 participants