aboutsummaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
Commit message (Collapse)AuthorAgeFilesLines
* feat(parsers)!: remove gitlab-hosted blueprint, fusion, jsoncChristian Clason2025-12-061-0/+3
| | | | | | | Problem: Gitlab has too frequent outages, which break automation. Solution: Drop all Gitlab-hosted parsers (two of which have been unmaintained for years).
* chore: remove format-queries scriptChristian Clason2025-11-141-1/+1
| | | | | | The source of truth for formatting (according to make formatquery and CI) is now ts_query_ls, so remove the no longer required script to prevent divergence and bitrotting.
* feat(install): remove node requirementChristian Clason2025-10-301-1/+3
| | | | | | * supported parsers _must_ commit at least `grammar.json` * set `TREE_SITTER_JS_RUNTIME=native` when generating parser to use built-in quickjs instead of node (requires tree-sitter 0.26)
* docs: specify fold dos and don'tsRiley Bruins2025-07-151-2/+25
|
* docs: final update after rewriteChristian Clason2025-05-211-3/+3
| | | | Make clear this is not the default branch
* docs: update to rewriteChristian Clason2025-05-121-103/+205
| | | | | | | | | | | This updates * README * CONTRIBUTING * the `:h nvim-treesitter` documentation to the current state of `main`. It also adds a pull request template for adding a new language.
* feat!: update tier 1 parsers to versionsChristian Clason2025-05-121-0/+5
|
* feat(locals)!: remove locals moduleChristian Clason2025-05-121-3/+4
| | | | | | | | | Problem: `locals.lua` was neither used nor tested, and providing it goes against the goal of nvim-treesitter not being a required dependency for other plugins. Solution: Remove the module and document that the queries are provided as-is for limited backward compatibility only.
* feat: add .tsqueryrc.jsonChristian Clason2025-05-121-0/+1
|
* feat(parsers): rework tiersChristian Clason2025-05-121-3/+2
| | | | | | | * stable: updates follow semver releases (todo) * unstable: updates follow HEAD (default) * unmaintained: no automatic updates * unsupported: no updates, cannot be installed
* feat!: track parser revision in LuaChristian Clason2025-05-121-13/+5
| | | | | | | | | | | 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.
* feat(install)!: generate from json instead of requiring nodeChristian Clason2025-05-121-2/+2
| | | | | | | | | | | | Problem: Many parsers require node/npm to evaluate the `grammar.js` before being able to generate a parser from it. Solution: Generate from `grammar.json` instead, which is fully resolved. Drops `node` and `npm` as (optional) requirements for nvim-treesitter. Note that this requires parsers to commit the generated json iff the grammar requires evaluation (which is currently the case for all tracked languages).
* feat(install)!: remove support for C++ scannersChristian Clason2025-05-121-2/+2
|
* doc: better clarification of highlights/injectionsPhạm Huy Hoàng2025-05-121-1/+2
|
* docs: update CONTRIBUTING.mdChristian Clason2025-05-121-19/+46
|
* feat!: drop modules, general refactor and cleanupChristian Clason2025-05-121-24/+3
|
* refactor(queries): Remove quotes from properties in set! directiveOmar Valdez2024-07-281-2/+2
|
* feat: standardize and document export keywordsRiley Bruins2024-05-131-1/+1
| | | | | | Many export keywords are captured as `@keyword.import`. This commit makes it so they are all captured like that, and mentions it in the documentation.
* feat: more `@keyword.type` capturesRiley Bruins2024-05-011-1/+1
|
* feat(rust,lalrpop): `@attribute` for lifetimesJaehwang Jung2024-03-161-1/+1
| | | | `@keyword` is only for language-defined keywords.
* feat(highlights)!: remove non-keyword `@type.qualifier`Jaehwang Jung2024-03-161-1/+0
| | | | | | | | * blueprint: Don't specially highlight template_name_qualifier. This is similar to inheritance base class. Other languages don't highlight them specially. * eds: `@type` for all `*Type` keys * chatito: `@attribute` for variation
* feat(highlights)!: `@keyword.storage` → `@keyword.modifier`Jaehwang Jung2024-03-161-1/+0
|
* feat(highlights)!: keyword `@type.qualifier` → `@keyword.modifier`Jaehwang Jung2024-03-161-0/+1
|
* fix(comment): remove duplicate 'FIXME'Christian Clason2024-03-031-4/+4
|
* feat(highlights)!: enforce documented captures (#6232)Christian Clason2024-03-031-7/+17
| | | | | | | | | | | | | | | Problem: Allowing undocumented "secret" (sub)captures makes it harder to write comprehensive colorschemes and catch inconsistent captures. Solution: Only allow captures listed in CONTRIBUTING.md. Add useful (cross-language) subcaptures and drop language-specific or too niche ones. Follow-up: Adding further `*.builtin` captures and changing queries to use them. Language-specific subcaptures should instead be added in user config or a custom language plugin.
* docs(contributing): typos and examplesChristian Clason2024-01-211-9/+9
|
* fix(comments)!: consolidate note capturesChristian Clason2024-01-201-5/+4
| | | | | Distinguishing `hint` and `info` is too confusing; it's enough to have `error`, `warning`, `todo`, and `note`.
* docs: update CONTRIBUTING.md with formattingChristian Clason2024-01-191-6/+17
|
* feat!: align standard captures with upstreamChristian Clason2024-01-191-103/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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" (https://github.com/tree-sitter/tree-sitter/blob/3f44b896852eb7daaa6df4fb778c9bb52c70c815/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`
* feat(locals)!: switch to upstream capturesChristian Clason2024-01-191-22/+22
|
* docs: improve description of `@type.definition` captureaMOPel2023-10-201-1/+1
| | | Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
* chore(injections)!: update injection syntax to 0.9Pham Huy Hoang2023-08-121-7/+20
| | | | | | | | | Since 0.9, @lang syntax is still available as fallback but will soon be deprecated. Because of that, new syntax should be adopted once 0.9 becomes the baseline requirements for nvim-treesitter - update health check - update doc
* fix(spell): do not spell check certain types of strings (#5203)Lewis Russell2023-08-071-0/+4
| | | | | | - Document that only certain kinds of strings are spell checked, and reasons why they may not. - Remove spell checking for bash strings.
* fix(highlights): lower priority for codeblocks with injections (#4905)Christian Clason2023-06-051-4/+13
|
* docs: add a small note about local queriesChris Kipp2023-04-031-0/+6
| | | | | This just adds a small note in the CONTRIBUTING section about local queries and how they differ from those listed upstream.
* use indent.X syntax for captures and properties of set directivesGeorge Harker2023-03-241-8/+8
| | | | | | | | update CONTRIBUTING.md adjust indents for bass fix doc capture comment
* docs: add `@comment.documentation`Amaan Qureshi2023-03-051-6/+7
|
* docs: add `@string.documentation`Amaan Qureshi2023-03-051-9/+10
|
* docs: add `@keyword.coroutine`Amaan Qureshi2023-03-031-0/+1
|
* Update CONTRIBUTING.mdBulgantamir Gankhuyag2023-02-181-1/+1
| | | Fixed link of the supported languages.
* prettier formatting yml and mdKiyoon Kim2023-02-161-4/+3
|
* docs: fix comment alignmentObserverOfTime2023-01-211-23/+24
|
* docs: swap life-time aroundChris Kipp2023-01-151-1/+1
| | | Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
* docs: clarify @storageclass in CONTRIBUTING docsChris Kipp2023-01-151-1/+1
| | | | | | | | | | | This is just a tiny change that was in reference to https://github.com/nvim-treesitter/nvim-treesitter/pull/4153#discussion_r1070276800. The basis is that `@storageclass` should only be used unless it's actually affecting storage in memory. There are further conversations about this in the following places: - https://github.com/nvim-treesitter/nvim-treesitter/pull/3648#issuecomment-1279923861 - https://github.com/nvim-treesitter/nvim-treesitter/pull/3648#issuecomment-1291624844
* markdown: add strikethrough and blockquote capturesChristian Clason2023-01-141-1/+2
|
* docs: remove remaining references to ZulipStephan Seitz2023-01-111-7/+5
|
* highlights: create subscoping for ternary operatorStephan Seitz2022-12-021-0/+1
| | | | | | | | | | 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.
* docs: fix contributing guidelinesObserverOfTime2022-11-261-13/+2
|
* docs: add `@nospell` to contributing.mdChristian Clason2022-11-191-1/+2
| | | supported as of Neovim v0.8.1
* rust: use @type.qualifier and @storageclassTrard2022-11-061-8/+9
|