LSP tsserver syntax highlighting issues for html code in JXS

I use create-react-app and when I open .tsx files in nvim the html elements don’t get syntax highlighting. But, React components do. See below for how :checkhealth kinda fixes the problem. I would post more pics but I am only limited to one.

My lsp-config looks like this:
``lua <<EOF
– Mappings.
– See :help vim.diagnostic.* for documentation on any of the below functions
local opts = { noremap=true, silent=true }
vim.api.nvim_set_keymap(‘n’, ‘e’, ‘lua vim.diagnostic.open_float()’, opts)
vim.api.nvim_set_keymap(‘n’, ‘[d’, ‘lua vim.diagnostic.goto_prev()’, opts)
vim.api.nvim_set_keymap(‘n’, ‘]d’, ‘lua vim.diagnostic.goto_next()’, opts)
vim.api.nvim_set_keymap(‘n’, ‘q’, ‘lua vim.diagnostic.setloclist()’, opts)
vim.api.nvim_set_keymap(‘n’, ‘f’, ‘lua vim.lsp.buf.formatting()’, opts)

– Use an on_attach function to only map the following keys
– after the language server attaches to the current buffer
local on_attach = function(client, bufnr)
– Enable completion triggered by
vim.api.nvim_buf_set_option(bufnr, ‘omnifunc’, ‘v:lua.vim.lsp.omnifunc’)

– Mappings.
– See :help vim.lsp.* for documentation on any of the below functions
vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘gD’, ‘lua vim.lsp.buf.declaration()’, opts)
vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘gd’, ‘lua vim.lsp.buf.definition()’, opts)
vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘K’, ‘lua vim.lsp.buf.hover()’, opts)
vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘gi’, ‘lua vim.lsp.buf.implementation()’, opts)
vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘’, ‘lua vim.lsp.buf.signature_help()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘wa’, ‘lua vim.lsp.buf.add_workspace_folder()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘wr’, ‘lua vim.lsp.buf.remove_workspace_folder()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘wl’, ‘lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘D’, ‘lua vim.lsp.buf.type_definition()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘rn’, ‘lua vim.lsp.buf.rename()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘ca’, ‘lua vim.lsp.buf.code_action()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘gr’, ‘lua vim.lsp.buf.references()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘’, ‘lua vim.diagnostic.goto_prev()’, opts)
–vim.api.nvim_buf_set_keymap(bufnr, ‘n’, ‘’, ‘lua vim.diagnostic.goto_next()’, opts)


– Use a loop to conveniently call ‘setup’ on multiple servers and
– map buffer local keybindings when the language server attaches
local servers = { ‘pyright’, ‘tsserver’}
for _, lsp in pairs(servers) do
require(‘lspconfig’)[lsp].setup {
on_attach = on_attach,
flags = {
– This will be the default in neovim 0.7+
debounce_text_changes = 150,

Here is the kicker, I can get the syntax highlighting to work for the html if i run :checkhealth. This is what the output from checkhealth says:
``vim.lsp: require(“”).check()

  • INFO: LSP log level : WARN
  • INFO: Log path: /blah/blah/lsp.log
  • INFO: Log size: 19 KB``

So what does the log say? some stuff about pyright (same issue behavior if I get rid of it from config) and this

Please help! :slight_smile: I give any other files/info to help diagnose the problem

LSP does not provide syntax highlighting. LSP provides semantic tokens (NYI in neovim) which can be used for semantic highlighting.