tree-sitter-astro
tree-sitter-astro copied to clipboard
Treesitter issue in neovim with Lazy
Hi @virchau13 @mrs4ndman
Is it working on the latest neovim and treesitter builds? Unfortunatly I was unable to get it to work. I am using Kickstart Neovim
My TS Config
*:TSConfigInfo*
{
auto_install = true,
ensure_installed = { "bash", "astro", "c", "html", "lua", "markdown", "vim", "vimdoc" },
ignore_install = {},
modules = {
auto_install = true,
highlight = {
additional_vim_regex_highlighting = { "ruby" },
custom_captures = {},
disable = {},
enable = true,
loaded = true,
module_path = "nvim-treesitter.highlight"
},
incremental_selection = {
disable = {},
enable = false,
keymaps = {
init_selection = "gnn",
node_decremental = "grm",
node_incremental = "grn",
scope_incremental = "grc"
},
module_path = "nvim-treesitter.incremental_selection"
},
indent = {
disable = { "ruby" },
enable = true,
loaded = true,
module_path = "nvim-treesitter.indent"
}
},
sync_install = false
}
Originally posted by @ishaanparlikar in https://github.com/virchau13/tree-sitter-astro/issues/16#issuecomment-2158743404
I am experiencing the same issue. My config is based off of Kickstart.nvim and my treesitter config looks like the following
{ -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
opts = {
ensure_installed = {
'bash',
'c',
'diff',
'html',
'lua',
'luadoc',
'markdown',
'markdown_inline',
'query',
'vim',
'vimdoc',
'javascript',
'astro',
},
-- Autoinstall languages that are not installed
auto_install = true,
highlight = {
enable = true,
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
-- If you are experiencing weird indenting issues, add the language to
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
additional_vim_regex_highlighting = { 'ruby', 'astro' },
},
indent = { enable = true, disable = { 'ruby' } },
},
-- There are additional nvim-treesitter modules that you can use to interact
-- with nvim-treesitter. You should go explore a few and see what interests you:
--
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
},
I've tried everything, including converting the implementation into a separate require, but I can not get the syntax highlighting to work. If I manually invoke :TSBufEnable highlight in an .astro file it works like I expect.
Turns out it was an issue on my end. A trailing comma in my tsconfig.json was the culprit...
@zachbharris how did you debug this? I have to try with my config now.
neo-tree was actually proving an error dump that I used gpt to disect that lead me to a trailing comma error. It originally was pointing at astro.vim but I found a few posts around tsconfig having a trailing error causing an error with astro.
I bashed my head for so long. I gave up using neovim for astro projects.
I'm right there with you. I almost gave up and was going to use Cursor for my astro project, but found the needle in the haystack issue.
Turns out it was an issue on my end. A trailing comma in my
tsconfig.jsonwas the culprit...
Thank you, I was beating my head on the wall. Everything was working in one project, but not in another and this was the problem.
Turns out it was an issue on my end. A trailing comma in my
tsconfig.jsonwas the culprit...
Can confirm, weirdly for me this fixes it also. Too bad it tries to point to some kind of hard to decipher error in this case. Thank you for investigating this!
Phew this fixed my config issue too, I'm kinda new to using treesitter, is there a way I could have debugged this than just lucking out on the solution ?
@zachbharris THANK YOU, man. I almost gave up on using Neovim for Astro. (based pfp btw)
@zachbharris Thank you!! I was almost going to switch to back to VSCode for Astro
For anyone else who may be having this issue, I also fixed it by removing the comments in the tsconfig.json. So I guess the extension uses a very basic json parser
Sorry for leaving this issue unaddressed for so long, I've been busy recently.
This is incredibly confusing because this Tree-sitter parser doesn't parse tsconfig.json at all. (Tree-sitter is entirely self-contained; it does not look at any files except the buffer you're currently editing.) So it seems to me that this issue is probably caused by something else, but I can't think of what that would be. (I certainly can't reproduce the issue).
For anyone who has this issue, can you try the following in an environment with an invalid tsconfig.json?
- Open an Astro file with the issue.
- Check the filetype by
:set ft?. It should outputfiletype=astro. (If it doesn't, then you need to configure neovim to automatically assign the astro filetype to.astrofiles). - Check in
:checkhealththat theastroentry undernvim-treesitterhas five ticks: it should look something likeastro ✓ ✓ ✓ ✓ ✓. (If it doesn't, then you need to reinstall the parser and/or your nvim-treesitter install is broken.) - Run
:lua vim.treesitter.inspect_tree()and check that a window appears with syntax tree information about the Astro file. (If instead you get an error, e.g. "No parser available for the given buffer", then you need to reconfigure nvim-treesitter.)
(The only thing I can think of here is that this might be LSP syntax highlighting breaking instead of Tree-sitter highlighting breaking, which would imply it isn't a tree-sitter-astro issue, and is fixable by configuring nvim-treesitter to use tree-sitter-astro.)
- filetype set and recognized correctly
- health check ok
- inspect tree
I don't know much about treesitter, but frontmatter_js_block might means It catches javascript syntax but not highlighted?
I solved this issue with install typescript treesitter grammer.
:TSInstall typescript might the solution. kickstart-nvim does not ensure install for typescript.
Yep, that's part of the troubleshooting guide in the README. Can anyone reproduce the issue even after following the troubleshooting guide?
I've stumbled onto this issue after resolving the tsconfig.json trailing comma issue. Claude helped a lot by identifying ftplugin/astro.vim as the last trace.
And apparently, there is an open bug ticket for neovim for that: https://github.com/neovim/neovim/issues/32422
So nothing todo with tree-sitter-astro :)