Commit Graph

352 Commits

Author SHA1 Message Date
Christian Clason
53dccb3a77 feat(tests)!: new infrastructure based on makefile
Problem: Not easy to run all checks and tests locally. Redundant CI
workflows.

Solution: Separate CI into two workflows:
 * lint: Lua files (stylua, luals), query files (valid captures,
   predicates, directives using tsqueryls), docs
   (SUPPORTED_LANGUAGES.md) -- does not need parser installation
 * tests: parsers (ABI compatibility), query files (tsqueryls on
   Linux/macOS; nvim on Windows), highlight and indent tests (separated
   for better readability) -- needs parser installation (but only once)

Switch to https://github.com/nvim-treesitter/highlight-assertions fork
with ABI 15 support.

Run all tests (on Linux and macOS) through `make` (`formatlua`,
`checklua`, `lintquery`, `formatquery`, `checkquery`, `docs`, `tests`),
which downloads and caches all necessary dependencies.

Remove `update-readme` workflow (replaced by lint job on PRs).
2025-05-12 18:43:41 +02:00
Christian Clason
afaf01ebd3 tests(angular): don' reset filetype
`htmlangular` filetype support is now included in Nvim, so don't set
the filetype.
2025-05-12 18:43:40 +02:00
Christian Clason
75ee7ff2f0 tests(gleam): fix assert tests that no longer parse correctly 2025-05-12 18:43:40 +02:00
Christian Clason
cbfe8a20c7 feat(html): use gsub for mimetype lookup 2025-05-12 18:43:40 +02:00
Christian Clason
c17de56890 feat!: track parser revision in Lua
Problem: Tracking parser revision in lockfile and allowing override
through the parsers module complicates the code. In addition, only
revision changes are handled robustly, not changes to other installation
info.

Solution: Track parser revision in the parsers module directly. Reload
parser table on every install or update call. Support modifying parser
table in a `User TSUpdate` autocommand.
2025-05-12 18:43:40 +02:00
Christian Clason
054080bf59 fix: vim.tbl_flatten is deprecated 2025-05-12 18:43:40 +02:00
Pham Huy Hoang
3966b8808b fix!: indents now rely on treesitter highlight
- Apply suggestions from Lewis to only parse visible lines
- Fix failed tests
2025-05-12 18:43:40 +02:00
Pham Huy Hoang
673fdccd21 tests: remove set ft 2025-05-12 18:43:40 +02:00
Christian Clason
9c0a99819c ci: remove update-lockfile shell script 2025-05-12 18:43:40 +02:00
Christian Clason
692b051b09 feat!: drop modules, general refactor and cleanup 2025-05-12 18:43:40 +02:00
Marc Jakobi
628d5e442c injections(nix): add nixosTest.testScript + home-manager nvim config
(+ add Check to mkDerivation bash matches)

(+ add Check to mkDerivation bash matches)
2025-05-12 18:43:40 +02:00
Mikkel Mondrup Kristensen
0e21ee8df6 More bash injection support for Taskfile (#7805) 2025-04-07 21:08:22 +02:00
Anthony Fiddes
205faba176 feat(yaml): inject bash for taskfiles (#7804) 2025-04-06 19:09:27 +02:00
Jakob Zahn
997288c552 fix(python): highlight all types of docstrings (#7788) 2025-04-03 09:35:41 +02:00
dcho
d0a56e3677 fix(python): prioritize builtin functions 2025-03-21 08:58:45 +01:00
Salomon Popp
683816f147 fix(python): don't highlight parameter name as builtin (#7732) 2025-03-13 09:21:55 +01:00
Salomon Popp
1a314a58d6 fix(python): highlight function calls correctly (#7728) 2025-03-12 09:22:33 +01:00
Salomon Popp
cf0eabc16c fix(python): don't highlight attribute name as builtin (#7712)
* fix(python): don't highlight attribute name as builtin

* fix(python): highlight `@variable.member` correctly for member access context

* test: add test

* test: expand test

* docs: update comment

* refactor: change order, remove priority override

* style: remove extra newline
2025-03-11 08:48:33 +01:00
Caleb White
081a99b3be feat(php): add support for new relative_name node 2025-02-26 17:01:57 +01:00
Daniil Leontev
d2ff400641 feat(promql): do not use regex for string labels (#7669)
In Prometheus, label values are treated as strings when used with the
`=` and `!=` operators, and as regular expressions when used with the
`=~` and `!~` operators.

Injecting and then highlighting all label values as regex leads to a
situation where entirely valid **string** label values containing regex
special characters are mistakenly parsed and highlighted as regex. This
results in syntax errors, causing labels to be highlighted incorrectly.

For example, in `foo{bar=~"[a-z]{1,3}"}`, `{` and `}` are regex special
characters, so regex highlighting is expected. However, in
`foo{path="/foo/{id}"}`, `{` and `}` are just part of the string and
have no special meaning, so the whole value should be highlighted as a
string.
2025-02-20 12:17:32 +01:00
Caleb White
6cb4098d51 fix(php): properly highlight grouped imported functions and constants 2025-01-02 19:13:44 +01:00
Derek Stride
a295ba13d2 feat(ruby): add injection for debugger command strings (#7480) 2024-12-30 11:14:03 +01:00
Fredrik Ekre
3f377c0739 fix(julia): treat :: as operator in type contexts
This patch captures `::` as `@operator` within
`(unary_typed_expression)` and `(typed_expression)`. These should be the
only two cases that the parser can emit when encountering `::` in the
source, but as a fallback it is still captured as `@punctuation` in all
other cases.

The reasons for capturing `::` as an operator are i) the close relation
with the other type-operators `<:` and `>:` and ii) the fact that it is
treated as an operator by the Julia parser, just like `<:` and `>:`.
2024-11-23 11:10:05 +01:00
Riley Bruins
2d5c122af9 feat(http): more comprehensive highlights 2024-11-22 08:56:14 +01:00
Omar Valdez
8a74ac9aea feat(python): highlight modules 2024-11-21 16:48:16 +01:00
ganhaque
ea3a37a975 fix(wgsl): indent call expression params (#7309) 2024-11-06 10:09:14 -08:00
Riley Bruins
0d3426a2e8 fix(wgsl): indent first parameter of function definition 2024-11-06 09:24:39 +01:00
Abhishek Singh
604aa5a7c8 feat(nu): add parser and queries (#7267) 2024-11-05 15:25:42 +01:00
Riley Bruins
8fadb18430 feat: sway programming language 2024-11-04 08:36:41 +01:00
Riley Bruins
01a92da438 fix(rust): highlight parameters with ref in definition 2024-11-03 11:46:40 +01:00
Riley Bruins
679883ad31 feat(gleam,luau): use @keyword.type captures (#7181) 2024-09-26 09:09:41 +02:00
Riley Bruins
e090c5b22d feat(wing): add many missing highlights
...as well as some fold and injection queries.
2024-09-02 09:55:48 +02:00
Caleb White
ec8776ed9e feat(php): php 8.4 support (#6741)
* chore(php): update maintainers

* feat(php): update php rules, highlight imported functions/consts

* feat(php): indent inside property hooks

* chore: update php and php_only revision
2024-08-18 12:30:04 +02:00
Riley Bruins
558c7ad7bf fix(lua): proper indent after multiline string arg 2024-08-05 10:07:41 +02:00
Riley Bruins
09bad640e4 fix(query): proper indentation after quantifiers 2024-08-02 22:45:14 +09:00
Oliver Thomas
65310b64ee fix: prevent double indent from pipes 2024-07-31 11:23:46 +02:00
Riley Bruins
f97e0de005 feat: add rescript parser and queries (#6671) 2024-07-27 17:34:30 +02:00
Riley Bruins
7cec6219c4 fix(query): properly apply predicate injections
I think these have been broken since the query parser update. Basically
the inner node for the string content was preventing injections because
include-children was not set.
2024-07-27 17:17:26 +02:00
Christian Clason
f649c2ff75 fix(php): correct line endings 2024-07-17 15:45:25 +02:00
Dennis van den Berg
0d5e1214a5 feat: add indentation queries for angular 2024-07-17 09:52:47 +09:00
Riley Bruins
4836c1df65 fix(lua): indent functions before they are closed
Fixes #6786
2024-07-16 13:17:36 +02:00
Grace Petryk
f16a775830 feat(python): Improved python indentation (#6859)
* feat: improve python indentation

* use lua-match

* revert concatenated_string changes, handle function def hanging indents

* lint

* add delimiters to param query

* add test cases
2024-07-16 20:13:41 +09:00
再生花
53c79ddc28 fix(php): do not indent after class/enum decl 2024-07-09 10:12:29 +09:00
Riley Bruins
55a13862cd feat(nix): indentation queries 2024-07-05 15:13:25 +02:00
Riley Bruins
fa611f612a fix(ecma): indent single-line if statements (#6846)
Fixes #5898.
2024-07-04 11:13:16 +09:00
Riley Bruins
f0e3b5c5fe fix(r): resolve highlight regressions 2024-06-29 09:26:53 +02:00
Phạm Huy Hoàng
3e535e826d fix(r): adapt indent queries
- Anchor parameter query. There's no need for multiple indent.align
  captures
- Narrow down binary_operator indent.begin. From tree-sitter-r corpus
  and highlight tests, this seems to be appropriate.
2024-06-28 18:13:12 +02:00
Christian Clason
5373c90c55 feat(r)!: update parser and queries 2024-06-27 15:31:41 +02:00
Louis Pilfold
09953e394b fix(gleam): remove incorrect builtin highlight (#6757) 2024-06-17 07:23:06 -07:00
Riley Bruins
f9773e4a5e test: fix tests broken after 0.10 update (#6714) 2024-06-01 12:33:56 +09:00