Closed nguyenvukhang closed 1 year ago
Improving vim's legacy syntax files is out of scope. Nvim strategy is to continue improving tree-sitter support.
Please report this issue at vim/vim; if it is fixed there, the patch will be ported (if possible) to Neovim as well. But the legacy syntax engine and files are primarily maintained there.
Problem
Syntax highlighting for
.tsx
files for JSX components improve after opening a.html
file and switching buffers back to the.tsx
file.On first open, a
.tsx
file appears like this:Then after opening a
.html
file and navigating back to the original.tsx
buffer, it now looks like this:Steps to reproduce
Create these files:
index.html
:typescript.tsx
:Execute this sequence:
nvim --clean typescript.tsx
(First image seen here):e index.html
:e typescript.tsx
(Second image with better syntax highlighting seen here)Expected behavior
If possible, I would like to see the better syntax highlighting on first-open.
Though an alternative would be to create a workaround and manually load the HTML syntax highlighting in the user's config.
Debug attempts
I tried analyzing the output of
:scriptnames
and manually sourcing the difference:
``` 1: /usr/local/share/nvim/runtime/ftplugin.vim 2: /usr/local/share/nvim/runtime/indent.vim 3: /usr/local/share/nvim/runtime/filetype.lua 4: /usr/local/share/nvim/runtime/syntax/syntax.vim 5: /usr/local/share/nvim/runtime/syntax/synload.vim 6: /usr/local/share/nvim/runtime/plugin/gzip.vim 7: /usr/local/share/nvim/runtime/plugin/health.vim 8: /usr/local/share/nvim/runtime/plugin/matchit.vim 9: /usr/local/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim 10: /usr/local/share/nvim/runtime/plugin/matchparen.vim 11: /usr/local/share/nvim/runtime/plugin/netrwPlugin.vim 12: /usr/local/share/nvim/runtime/plugin/rplugin.vim 13: /usr/local/share/nvim/runtime/plugin/shada.vim 14: /usr/local/share/nvim/runtime/plugin/spellfile.vim 15: /usr/local/share/nvim/runtime/plugin/tarPlugin.vim 16: /usr/local/share/nvim/runtime/plugin/tohtml.vim 17: /usr/local/share/nvim/runtime/plugin/tutor.vim 18: /usr/local/share/nvim/runtime/plugin/zipPlugin.vim 19: /usr/local/share/nvim/runtime/plugin/editorconfig.lua 20: /usr/local/share/nvim/runtime/plugin/man.lua 21: /usr/local/share/nvim/runtime/plugin/nvim.lua 22: /usr/local/share/nvim/runtime/ftplugin/typescriptreact.vim 23: /usr/local/share/nvim/runtime/ftplugin/typescript.vim 24: /usr/local/share/nvim/runtime/syntax/typescriptreact.vim 25: /usr/local/share/nvim/runtime/syntax/shared/typescriptcommon.vim ```:scriptnames
upon first openingtypescript.tsx
``` 1: /usr/local/share/nvim/runtime/ftplugin.vim 2: /usr/local/share/nvim/runtime/indent.vim 3: /usr/local/share/nvim/runtime/filetype.lua 4: /usr/local/share/nvim/runtime/syntax/syntax.vim 5: /usr/local/share/nvim/runtime/syntax/synload.vim 6: /usr/local/share/nvim/runtime/plugin/gzip.vim 7: /usr/local/share/nvim/runtime/plugin/health.vim 8: /usr/local/share/nvim/runtime/plugin/matchit.vim 9: /usr/local/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim 10: /usr/local/share/nvim/runtime/plugin/matchparen.vim 11: /usr/local/share/nvim/runtime/plugin/netrwPlugin.vim 12: /usr/local/share/nvim/runtime/plugin/rplugin.vim 13: /usr/local/share/nvim/runtime/plugin/shada.vim 14: /usr/local/share/nvim/runtime/plugin/spellfile.vim 15: /usr/local/share/nvim/runtime/plugin/tarPlugin.vim 16: /usr/local/share/nvim/runtime/plugin/tohtml.vim 17: /usr/local/share/nvim/runtime/plugin/tutor.vim 18: /usr/local/share/nvim/runtime/plugin/zipPlugin.vim 19: /usr/local/share/nvim/runtime/plugin/editorconfig.lua 20: /usr/local/share/nvim/runtime/plugin/man.lua 21: /usr/local/share/nvim/runtime/plugin/nvim.lua 22: /usr/local/share/nvim/runtime/ftplugin/typescriptreact.vim 23: /usr/local/share/nvim/runtime/ftplugin/typescript.vim 24: /usr/local/share/nvim/runtime/syntax/typescriptreact.vim 25: /usr/local/share/nvim/runtime/syntax/shared/typescriptcommon.vim 26: /usr/local/share/nvim/runtime/ftplugin/html.vim 27: /usr/local/share/nvim/runtime/autoload/htmlcomplete.vim 28: /usr/local/share/nvim/runtime/indent/html.vim 29: /usr/local/share/nvim/runtime/indent/javascript.vim 30: /usr/local/share/nvim/runtime/syntax/html.vim 31: /usr/local/share/nvim/runtime/syntax/xml.vim 32: /usr/local/share/nvim/runtime/syntax/dtd.vim 33: /usr/local/share/nvim/runtime/syntax/javascript.vim 34: /usr/local/share/nvim/runtime/syntax/vb.vim 35: /usr/local/share/nvim/runtime/syntax/css.vim ```:scriptnames
after openingtypescript.tsx
, then openingindex.html
I put the difference in a
diff.vim
in the same directory and sourced it with:so diff.vim
after openingtypescript.tsx
, but the syntax highlighting doesn't change.Can anyone help point me in the right direction for correctly sourcing the extra syntax highlighting logic that opening the
.html
buffer does? Thanks!Neovim version (nvim -v)
v0.9.1
Vim (not Nvim) behaves the same?
yes, vim 9.0
Operating system/version
macOS 13.2.1
Terminal name/version
Alacritty 0.12.0
$TERM environment variable
screen-256color
Installation
build from repo