nvim-treesitter's :TSInstall reloads the parsers module from source
(package.loaded['nvim-treesitter.parsers'] = nil), which wipes runtime
config modifications. The old get_parser_configs() approach no longer
works for registering custom parsers with :TSInstall.
New approach:
- The mason build script now compiles parser.c into parser.so during
:MasonInstall tia-lsp (requires cc/gcc)
- The plugin's setup_syntax finds parser.so via:
1. opts.ts_parser_path (explicit override)
2. Mason package dir (resolved from exepath('tia-lsp'))
3. ~/dev/tia-lsp/parser.so (local dev fallback)
- Loads it with vim.treesitter.language.add('scl', { path = parser.so })
- Starts highlighting via vim.treesitter.start(bufnr, 'scl') in the
FileType autocmd
- Falls back to notifying the user if no parser.so is found
- Still registers with nvim-treesitter's parsers table as best-effort
for :TSInstall support (won't survive reload, but works in-session)