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.
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>
when a dockerfile contains several RUN statements, the syntax
highlighting would sometimes run over and encompass dockerfile
statements after the RUN command (typically everything between the first
and last RUN statement, though the bash syntax bleed can be broken by
terminating a RUN statement with a semicolon, or a space 🙄)
we fix this by using a slightly different approach to recognizing /
grouping (the content of) RUN commands:
- instead of having shell_command at the top level of the block we
changed, we're using run_instruction - so parsing happens per `RUN`
statement, which is really what we want
- inseade of `injection.combined`, we use `injection.include-children`,
which combines all the shell fragments (the text parts of a shell
command, including after newline continuations), which is really what
we want, as that's all the text of a RUN statement
that fixes the highlight bleed, and preserves correct highlighting for
each RUN statement.
we also add a regression test for highlighting.
Closes#6530, #6975
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`.