Problem: `(ast_block)` is a supertype, of which `(symbol)` (among
others) is a subtype, which makes the final local pattern invalid.
(This was not noticed before because the parser is stuck at ABI 14
due to a missing `tree-sitter.json`.)
Solution: Fix the pattern and use supertype where appropriate.
Problem: On macOS Apple Silicon, a plain unlink can leave stale code
signature metadata in the kernel cache, causing SIGKILL on next page
fault after `TSUpdate`.
Solution: Apply the rename-then-unlink strategy unconditionally instead
of only on Windows.
Problem: non-default "release" branch tracking is broken, but the
default branch contains grammar.json.
Solution: track default `main` branch and generate parser from JSON.
Problem: plenary.nvim as test runner is overkill and no longer
maintained.
Solution: Replace with a minimal fork based on Neovim API and vendored
luassert.
Syncs with coder3101/tree-sitter-proto#22, which adjusts captures to
better align with nvim-treesitter conventions:
- Package idents use @module, extend/oneof idents use @type
- Adds map_field, oneof_field @property captures
- option/syntax/edition use @keyword.directive
- extend/extensions/oneof/service moved to @keyword.type
- key_type/type use @type.builtin; rpc_name uses @function.method
- Import paths use @string.special.path
- proto2/proto3 syntax strings use @string.special.symbol
- Simplifies comment captures (removes doc comment distinction)
Honestly not sure how well other tree-sitter clients handle the
nvim-specific highlights, but I figure this is the primary client I'm
(at least personally) concerned about.
Problem: `vim.system` throws an error when `uv.spawn` fails, in
particular when `cmd` or `cwd` does not exist. This kills the coroutine,
which makes the corresponding async call hang.
Solution: Wrap `vim.system` in a function that catches any error and
returns it as `stderr` in a `SystemObj`.
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
Breaking change: replaced `(variable_definition)` by
`(scalar_variable)`, `(list_variable)` and `(dictionary_variable)`.
Also mark queries as unmaintained.
parser PR: https://github.com/madskjeldgaard/tree-sitter-supercollider/pull/67
removed nodes:
control_structure, if, while, for, forby, method_call,
method_name, instance_variable_setter_call, argument_calls
added nodes:
class_def_body, !==, ===
modified nodes:
function_call now has fields receiver, name and arguments
chained method calls now appear as nested function_calls (where receiver
is another function_call)
Problem: The default `install_dir` is not normalized, leading to a
false positive checkhealth failure when comparing against the normalized
`runtimepath` directories.
Solution: Use trailing slash in default `install_dir`.