Commit graph

80 commits

Author SHA1 Message Date
Riley Bruins
f58cae6c22 feat: more @keyword.type captures 2024-05-01 09:59:50 +02:00
Jaehwang Jung
07a404570f fix(c): don't highlight preproc_arg
`preproc_arg` is used for the body of `#define` macro definition, which
is not appropriate to highlight with `@function.macro`. In addition,
this region has an injection to C, so it will get highlights anyway.
2024-03-27 14:48:11 +01:00
Phạm Huy Hoàng
722617e672 refactor(format): drop extra indentation for field 2024-03-21 15:51:26 +01:00
Jaehwang Jung
dccf31f9b1 feat(highlights)!: @keyword.storage@keyword.modifier 2024-03-16 20:51:16 +08:00
Jaehwang Jung
998b230a77 feat(highlights)!: keyword @type.qualifier@keyword.modifier 2024-03-16 20:51:16 +08:00
Riley Bruins
18aa5ae3fd feat(c): local label highlights 2024-02-26 07:41:41 -05:00
Phạm Huy Hoàng
77e298e4de chore: format queries 2024-01-21 23:55:02 +09:00
Pham Huy Hoang
57a8acf0c4 chore: query formatting 2024-01-19 16:58:37 +01:00
Pham Huy Hoang
edee83272e refactor: manual pre-cleanup
Moving comments, adding `format-ignore` to lines that will be better
with it
2024-01-19 16:58:37 +01:00
Christian Clason
1ae9b0e455 feat!: align standard captures with upstream
Problem: Sharing highlight queries with upstream tree-sitter and
Helix is difficult.

Solution: Where reasonable, use capture names in tree-sitter's standard
list or Helix's Atom-style hierarchy.

Specifically:

* tree-sitter "standard capture names"
  (3f44b89685/highlight/src/lib.rs (L20-L72)):

  - `@parameter` -> `@variable.parameter`
  - `@field` -> `@variable.member`
  - `@namespace` -> `@module`
  - `@float` -> `@number.float`
  - `@symbol` -> `@string.special.symbol`
  - `@string.regex` -> `@string.regexp`
  - `@text.*` -> `@markup.*` (`strong`, `italic`, `link`, `strikethrough`; with exceptions; see below)
  - `@text.title` -> `@markup.heading`
  - `@text.literal` -> `@markup.raw`
  - `@text.reference` -> `@markup.link`
  - `@text.uri` -> `@markup.link.url` (in markup links)
  - `@string.special` -> `@markup.link.label` (non-url links)
  - `@punctuation.special` -> `@markup.list` (markdown lists only; move subitems from `@text.todo`)

* Helix captures
  (https://docs.helix-editor.com/master/themes.html#syntax-highlighting):

  - `@method` -> `@function.method`
  - `@method.call` -> `@function.method.call`
  - `@text.{todo,warning,note,danger}` -> `@comment.{error,warning,hint,info,todo}`
  - `@text.diff.{add,delete,}` -> `@diff.{plus,minus,delta}`
  - `@text.uri` -> `@string.special.url` (outside markup)
  - `@preproc` -> `@keyword.directive`
  - `@define` -> `@keyword.directive`(`.define`?)
  - `@storageclass` -> `@keyword.storage`
  - `@conditional` -> `@keyword.conditional`
  - `@debug` -> `@keyword.debug`
  - `@exception` -> `@keyword.exception`
  - `@include` -> `@keyword.import`
  - `@repeat` -> `@keyword.repeat`

* cleanup

  - remove some redundant `@conceal` (but still allow it for conceal-only patterns)
  - remove obsolete `@error` (syntax linting is out of scope for this repo)
  - sort, cleanup capture list in `CONTRIBUTING.md`
2024-01-19 16:58:37 +01:00
Pham Huy Hoang
107e61afb7 refactor: Remove all (ERROR) @error captures
As discussed in PR#5421, capturing `@error` is inconsistent, requiring
deep nesting (or priority) in order to correctly have red backgrounds to
it.

Some queries has this capture, some don't. For consistency purposes,
removing all of them is more preferable.

For re-enabling error, either add `(ERROR) @error` or `(ERROR _ @error)`
to your custom queries.
2023-10-25 18:18:50 +02:00
Amaan Qureshi
e0f4782978 feat(c): mention how to highlight K&R functions 2023-08-13 18:57:23 -04:00
Amaan Qureshi
acd9d2115d feat(c): update highlights 2023-08-11 14:38:50 -04:00
Amaan Qureshi
6aababfca4 chore: update C, improve preproc_arg highlights 2023-07-27 07:29:33 -04:00
Amaan Qureshi
ad3805f5c3
fix(c)!: update C, CPP parsers and queries
also update derived parsers (arduino, cuda, glsl, hlsl, ispc, objc)
2023-07-27 09:51:13 +02:00
Christian Clason
a034c7aa25
fix(highlights): lower priority for codeblocks with injections (#4905) 2023-06-05 14:09:44 +02:00
Amaan Qureshi
654216eb04 fix(c): types are optional in sized_type_specifier 2023-04-21 04:55:20 -04:00
Amaan Qureshi
b9ed96bb6f feat(c): highlight parenthesized function pointer decl identifiers as @function 2023-04-21 03:26:13 -04:00
Amaan Qureshi
5a87bc98da feat: add @comment.documentation where applicable 2023-03-05 17:15:32 -05:00
ObserverOfTime
6ae94e0341 highlights(c): extern in linkage specification 2023-01-26 17:39:24 +01:00
Stephan Seitz
d6a2ecb8b7 highlights: create subscoping for ternary operator
After https://github.com/nvim-treesitter/nvim-treesitter/issues/470,
we decided to use `@conditional` for ternary operator instead of
operator despite `@conditional` is documented for keywords only.
A sub-scoping can make it easier for people to highlight this operator
group differently.

Also unify the usage of `@conditional...` across languages.
2022-12-02 21:42:11 +01:00
Aaron Rancsik
4b99343d6e highlights(c): primitive type as builtin 2022-12-01 15:08:07 +01:00
ObserverOfTime
7ce62670b2 highlights(c): use more specific groups
Co-Authored-By: Stephan Seitz <stephan.seitz@fau.de>
2022-11-26 13:17:51 +02:00
ObserverOfTime
9b43ab819c highlights: use @preproc where appropriate 2022-10-15 08:49:01 -07:00
ObserverOfTime
b945aa0aab highlights(c): highlight standard streams 2022-10-15 08:12:55 -07:00
Lewis Russell
37398c7d68 feat(spell): support more languages 2022-09-26 13:47:12 +01:00
Lewis Russell
2a63ea5665 feat(spell): upstream spell queries from spellsitter 2022-09-06 12:44:19 +01:00
lfenzo
04e62a2027 Split func/method definition from calls in C highlighting queries 2022-08-03 12:05:30 -07:00
Stephan Seitz
f9176e560c highlights(c/cpp): move attributes to C (again)
Let's hope that this time the C tests pass, also for the built-in C
parser.
2022-07-28 08:24:51 +02:00
mliszcz
71395d90c0 highlights(c): Lower the priority of @variable
Lower the priority of @variable to prefer @parameter
highlight when identifier appears in parameter_declaration.

Fixes #3061
2022-07-20 17:10:51 +02:00
guijan
8f13ef1563
highlights(c): highlight , operator as operator (#3107) 2022-07-08 09:00:56 +02:00
guijan
9832666cfa
highlights(c): highlight member-access as operator (#3096) 2022-07-01 15:47:11 +02:00
Stephan Seitz
8c56988d79 highlights(c): highlight field_designator as @property 2022-05-29 11:11:10 +02:00
Stephan Seitz
e4675bc410 highlights(c/cpp): highlight case labels as constants 2022-01-29 13:11:56 +01:00
Stephan Seitz
1d3111ccb1 highlights(c): highlight enum variants as @constant
Fixes #2120
2022-01-29 13:11:56 +01:00
John Drouhard
d0158c053d highlights(c): don't highlight type qualifiers in declarations as types 2022-01-20 08:40:51 +01:00
Lewis Russell
011ac894ec Prefer lua-match over match
as string.find is much quicker than vim.regex:match*
2021-11-23 10:02:06 +01:00
Santos Gallegos
b972f1d985 C: fix preproc parameters
This was capturing too much,
we only want to highlight the identifier.

Fixes https://github.com/nvim-treesitter/nvim-treesitter/issues/1999
2021-11-14 11:02:57 +01:00
Stephan Seitz
18dc243188 highlights(c): add Mircosoft attributes 2021-09-19 20:02:28 +02:00
Stephan Seitz
5fa6e27427 highlights(c): add __attribute__ 2021-09-19 14:13:50 +02:00
Stephan Seitz
440d666b68 test 2021-09-17 22:03:47 +02:00
Stephan Seitz
37d93ec017 highlights(c/cpp): react to upstream changes to attributes 2021-09-17 22:03:47 +02:00
Sergio Alejandro Vargas
9446ff4aa4 highlights(c): make sizeof a keyword.operator 2021-09-01 07:07:16 +02:00
Gregory Anders
27f5e99cdd c: don't treat uppercase functions as constants
A macro function such as

    #define FOO(x) ...

should be highlighted with @function.macro, even though the name is in
all-caps (which would otherwise be treated as a constant). Similarly,
call sites of such functions, e.g.

    int y = FOO(x);

should be highlighted with @function instead of @constant.

This is as simple as moving the query definition for macro functions
after the query definition for constants.
2021-07-18 16:44:40 +00:00
antonk52
90f15d9bf7 feat(keywords) merge return and yield into keyword.return group 2021-07-04 21:49:17 +02:00
antonk52
bd9095e969 feat(keywords) add keyword.return & keyword.yield 2021-07-04 21:49:17 +02:00
Stephan Seitz
506e998da2 highlights(c/c++): "..." also exists in C (variadic macros) 2021-05-18 07:07:16 +02:00
Stephan Seitz
2873d1efda highlights(c): highlight (escape_sequence) 2021-05-01 09:39:41 +02:00
Stephan Seitz
423fb7b4aa C highlights: Make char_literal @character 2021-04-21 18:37:38 +02:00
Stephan Seitz
866f39bb71 highlights(c): update declaration and cast_expression 2021-03-02 16:55:18 +01:00