aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2025-12-05 09:59:04 +0100
committerChristian Clason <ch.clason+github@icloud.com>2025-12-06 18:10:39 +0100
commitd2350758b39dce3593ffa8b058f863ea4cfa5b0e (patch)
treedbd8591ffc0c59d7993fc91924b5ab42d58ae076
parentfeat(fortran)!: update parser and queries (diff)
downloadnvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar.gz
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar.bz2
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar.lz
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar.xz
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.tar.zst
nvim-treesitter-d2350758b39dce3593ffa8b058f863ea4cfa5b0e.zip
feat(parsers)!: remove gitlab-hosted blueprint, fusion, jsonc
Problem: Gitlab has too frequent outages, which break automation. Solution: Drop all Gitlab-hosted parsers (two of which have been unmaintained for years).
-rw-r--r--CONTRIBUTING.md3
-rw-r--r--SUPPORTED_LANGUAGES.md3
-rw-r--r--lua/nvim-treesitter/_meta/parsers.lua2
-rw-r--r--lua/nvim-treesitter/parsers.lua25
-rw-r--r--runtime/queries/blueprint/highlights.scm75
-rw-r--r--runtime/queries/blueprint/injections.scm2
-rw-r--r--runtime/queries/fusion/folds.scm6
-rw-r--r--runtime/queries/fusion/highlights.scm132
-rw-r--r--runtime/queries/fusion/indents.scm24
-rw-r--r--runtime/queries/fusion/injections.scm5
-rw-r--r--runtime/queries/fusion/locals.scm23
-rw-r--r--runtime/queries/jsonc/folds.scm1
-rw-r--r--runtime/queries/jsonc/highlights.scm3
-rw-r--r--runtime/queries/jsonc/indents.scm3
-rw-r--r--runtime/queries/jsonc/injections.scm2
-rw-r--r--runtime/queries/jsonc/locals.scm1
-rw-r--r--tests/query/highlights/fusion/afx.fusion17
-rw-r--r--tests/query/highlights/fusion/basic.fusion60
-rw-r--r--tests/query/highlights/fusion/expressions.fusion82
19 files changed, 4 insertions, 465 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c4ec8e192..0dc03947b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -42,6 +42,9 @@ zimbu = {
>[!IMPORTANT]
> The "maintainers" here refers to the person maintaining the **queries** in `nvim-treesitter`, not the parser maintainers (who likely don't use Neovim). The maintainers' duty is to review issues and PRs related to the query and to keep them updated with respect to parser changes.
+>[!IMPORTANT]
+> Due to reliability issues with smaller codeforges, only Github-hosted parsers are currently eligible for inclusion. (The development may happen elsewhere, but there must at least exist a Github mirror to pull the source from.) We are monitoring the situation and hope to support more codeforges again in the future.
+
>[!NOTE]
> To qualify for Tier 1 ("stable"), a parser needs to
> * make releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns);
diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md
index 7a3380cd8..695171c15 100644
--- a/SUPPORTED_LANGUAGES.md
+++ b/SUPPORTED_LANGUAGES.md
@@ -28,7 +28,6 @@ Language | Tier | Queries | Maintainer
[bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | unstable | `HFIJL` | @amaanq
[bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq
[blade](https://github.com/EmranMR/tree-sitter-blade) | unstable | `HFIJ ` | @calebdw
-[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint) | unstable | `H  J ` | @gabmus
[bp](https://github.com/ambroisie/tree-sitter-bp)[^bp] | unstable | `HFIJL` | @ambroisie
[brightscript](https://github.com/ajdelcimmuto/tree-sitter-brightscript) | unstable | `HFIJ ` | @ajdelcimmuto
[c](https://github.com/tree-sitter/tree-sitter-c) | unstable | `HFIJL` | @amaanq
@@ -89,7 +88,6 @@ ecma (queries only)[^ecma] | unstable | `HFIJL` | @steelsojka
[fsh](https://github.com/mgramigna/tree-sitter-fsh) | unstable | `H  J ` | @mgramigna
[fsharp](https://github.com/ionide/tree-sitter-fsharp) | unstable | `H  J ` | @nsidorenco
[func](https://github.com/tree-sitter-grammars/tree-sitter-func) | unstable | `H  J ` | @amaanq
-[fusion](https://gitlab.com/jirgn/tree-sitter-fusion) | unstable | `HFIJL` | @jirgn
[gap](https://github.com/gap-system/tree-sitter-gap)[^gap] | unstable | `HF JL` | @reiniscirpons
[gaptst](https://github.com/gap-system/tree-sitter-gaptst)[^gaptst] | unstable | `HF J ` | @reiniscirpons
[gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | unmaintained | `HFIJL` |
@@ -152,7 +150,6 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD
[jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | unstable | `H    ` | @steelsojka
[json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFI L` | @steelsojka
[json5](https://github.com/Joakker/tree-sitter-json5) | unstable | `H  J ` | @Joakker
-[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc) | unstable | `HFIJL` | @WhyNotHugo
[jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | unstable | `HF JL` | @nawordar
jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka
[julia](https://github.com/tree-sitter-grammars/tree-sitter-julia) | unstable | `HFIJL` | @clason
diff --git a/lua/nvim-treesitter/_meta/parsers.lua b/lua/nvim-treesitter/_meta/parsers.lua
index 5af809bb0..3a97b35a5 100644
--- a/lua/nvim-treesitter/_meta/parsers.lua
+++ b/lua/nvim-treesitter/_meta/parsers.lua
@@ -3,7 +3,7 @@ error('Cannot require a meta file')
---@class InstallInfo
---
----URL of parser repo (Github/Gitlab)
+---URL of parser repo (Github)
---@field url string
---
---Commit hash of parser to download (compatible with queries)
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 304e3a24d..1351a00de 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -131,14 +131,6 @@ return {
maintainers = { '@calebdw' },
tier = 2,
},
- blueprint = {
- install_info = {
- revision = '355ef84ef8a958ac822117b652cf4d49bac16c79',
- url = 'https://gitlab.com/gabmus/tree-sitter-blueprint',
- },
- maintainers = { '@gabmus' },
- tier = 2,
- },
bp = {
install_info = {
revision = 'ee641d15390183d7535777947ce0f2f1fbcee69f',
@@ -623,14 +615,6 @@ return {
maintainers = { '@amaanq' },
tier = 2,
},
- fusion = {
- install_info = {
- revision = '19db2f47ba4c3a0f6238d4ae0e2abfca16e61dd6',
- url = 'https://gitlab.com/jirgn/tree-sitter-fusion',
- },
- maintainers = { '@jirgn' },
- tier = 2,
- },
gap = {
install_info = {
revision = '2bac14863b76ad0ff6fd7204c50574732acd66df',
@@ -1142,15 +1126,6 @@ return {
maintainers = { '@Joakker' },
tier = 2,
},
- jsonc = {
- install_info = {
- revision = '02b01653c8a1c198ae7287d566efa86a135b30d5',
- url = 'https://gitlab.com/WhyNotHugo/tree-sitter-jsonc',
- },
- maintainers = { '@WhyNotHugo' },
- requires = { 'json' },
- tier = 2,
- },
jsonnet = {
install_info = {
revision = 'ddd075f1939aed8147b7aa67f042eda3fce22790',
diff --git a/runtime/queries/blueprint/highlights.scm b/runtime/queries/blueprint/highlights.scm
deleted file mode 100644
index f3c39f232..000000000
--- a/runtime/queries/blueprint/highlights.scm
+++ /dev/null
@@ -1,75 +0,0 @@
-(object_id) @variable
-
-(string) @string
-
-(escape_sequence) @string.escape
-
-(comment) @comment @spell
-
-(constant) @constant.builtin
-
-(boolean) @boolean
-
-(using) @keyword.import
-
-(template) @keyword
-
-(decorator) @attribute
-
-(property_definition
- (property_name) @property)
-
-(object) @type
-
-(signal_binding
- (signal_name) @function.builtin)
-
-(signal_binding
- (function
- (identifier)) @function)
-
-(signal_binding
- "swapped" @keyword)
-
-(styles_list
- "styles" @function.macro)
-
-(layout_definition
- "layout" @function.macro)
-
-(gettext_string
- "_" @function.builtin)
-
-(menu_definition
- "menu" @keyword)
-
-(menu_section
- "section" @keyword)
-
-(menu_item
- "item" @function.macro)
-
-(import_statement
- (gobject_library) @module)
-
-(import_statement
- (version_number) @number.float)
-
-(float) @number.float
-
-(number) @number
-
-[
- ";"
- "."
- ","
-] @punctuation.delimiter
-
-[
- "("
- ")"
- "["
- "]"
- "{"
- "}"
-] @punctuation.bracket
diff --git a/runtime/queries/blueprint/injections.scm b/runtime/queries/blueprint/injections.scm
deleted file mode 100644
index 2f0e58eb6..000000000
--- a/runtime/queries/blueprint/injections.scm
+++ /dev/null
@@ -1,2 +0,0 @@
-((comment) @injection.content
- (#set! injection.language "comment"))
diff --git a/runtime/queries/fusion/folds.scm b/runtime/queries/fusion/folds.scm
deleted file mode 100644
index 179fc160b..000000000
--- a/runtime/queries/fusion/folds.scm
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- (comment)
- (block)
- (afx_comment)
- (afx_element)
-] @fold
diff --git a/runtime/queries/fusion/highlights.scm b/runtime/queries/fusion/highlights.scm
deleted file mode 100644
index 7108e5705..000000000
--- a/runtime/queries/fusion/highlights.scm
+++ /dev/null
@@ -1,132 +0,0 @@
-(comment) @comment @spell
-
-(afx_comment) @comment @spell
-
-; identifiers afx
-(afx_opening_element
- (afx_identifier) @tag)
-
-(afx_closing_element
- (afx_identifier) @tag)
-
-(afx_element_self_closing
- (afx_identifier) @tag)
-
-(afx_attribute
- (afx_property_identifier) @tag.attribute)
-
-(afx_text) @spell
-
-; identifiers eel
-(eel_object_path
- (eel_path_identifier) @variable.builtin
- (#any-of? @variable.builtin "this" "props"))
-
-(eel_object_path
- (eel_path_identifier) @variable)
-
-(eel_object_pair
- key: (eel_property_name) @property)
-
-(eel_method_name) @function
-
-(eel_parameter) @variable
-
-; identifiers fusion
-; -----------
-(path_part) @property
-
-(meta_property) @attribute
-
-(prototype_signature
- "prototype" @keyword)
-
-(include_statement
- "include" @keyword.import
- (source_file) @string.special.url)
-
-(namespace_declaration
- "namespace" @keyword.type
- (alias_namespace) @module)
-
-(type
- name: (type_name) @type)
-
-; tokens
-; ------
-(afx_opening_element
- [
- "<"
- ">"
- ] @punctuation.bracket)
-
-(afx_closing_element
- [
- "<"
- ">"
- "/"
- ] @punctuation.bracket)
-
-(afx_element_self_closing
- [
- "<"
- "/>"
- ] @punctuation.bracket)
-
-[
- (package_name)
- (alias_namespace)
-] @module
-
-(namespace_declaration
- "=" @operator)
-
-(assignment
- "=" @operator)
-
-(copy
- "<" @operator)
-
-(deletion) @operator
-
-(eel_binary_expression
- operator: _ @operator)
-
-(eel_not_expression
- [
- "!"
- "not"
- ] @operator)
-
-(string) @string
-
-(number) @number
-
-(boolean) @boolean
-
-(null) @constant.builtin
-
-(value_expression
- start: _ @punctuation.special
- end: _ @punctuation.special)
-
-[
- "("
- ")"
- "{"
- "}"
- "["
- "]"
-] @punctuation.bracket
-
-[
- ":"
- "."
- "?"
-] @punctuation.delimiter
-
-(eel_ternary_expression
- [
- "?"
- ":"
- ] @keyword.conditional.ternary)
diff --git a/runtime/queries/fusion/indents.scm b/runtime/queries/fusion/indents.scm
deleted file mode 100644
index 0ba6cf758..000000000
--- a/runtime/queries/fusion/indents.scm
+++ /dev/null
@@ -1,24 +0,0 @@
-[
- (block)
- (value_dsl)
- (afx_element)
- (afx_element_self_closing)
- (eel_array)
- (eel_object)
-] @indent.begin
-
-(block
- end: _ @indent.branch)
-
-(value_dsl
- end: _ @indent.branch)
-
-(eel_array
- end: _ @indent.branch)
-
-(eel_object
- end: _ @indent.branch)
-
-(afx_closing_element) @indent.branch
-
-(comment) @indent.ignore
diff --git a/runtime/queries/fusion/injections.scm b/runtime/queries/fusion/injections.scm
deleted file mode 100644
index 085cdb458..000000000
--- a/runtime/queries/fusion/injections.scm
+++ /dev/null
@@ -1,5 +0,0 @@
-([
- (comment)
- (afx_comment)
-] @injection.content
- (#set! injection.language "comment"))
diff --git a/runtime/queries/fusion/locals.scm b/runtime/queries/fusion/locals.scm
deleted file mode 100644
index d23e0ab46..000000000
--- a/runtime/queries/fusion/locals.scm
+++ /dev/null
@@ -1,23 +0,0 @@
-; Fusion base
-(block) @local.scope
-
-(namespace_declaration
- (alias_namespace) @local.definition.namespace)
-
-(property
- (path
- (path_part) @local.definition.field))
-
-(type
- namespace: (package_name)? @local.definition.namespace
- name: (type_name) @local.definition.type)
-
-; Eel Expressions
-(eel_arrow_function) @local.scope
-
-(eel_object) @local.scope
-
-(eel_parameter) @local.definition.parameter
-
-(eel_object_pair
- key: (eel_property_name) @local.definition.field)
diff --git a/runtime/queries/jsonc/folds.scm b/runtime/queries/jsonc/folds.scm
deleted file mode 100644
index 41269219e..000000000
--- a/runtime/queries/jsonc/folds.scm
+++ /dev/null
@@ -1 +0,0 @@
-; inherits: json
diff --git a/runtime/queries/jsonc/highlights.scm b/runtime/queries/jsonc/highlights.scm
deleted file mode 100644
index e50112155..000000000
--- a/runtime/queries/jsonc/highlights.scm
+++ /dev/null
@@ -1,3 +0,0 @@
-; inherits: json
-
-(comment) @comment @spell
diff --git a/runtime/queries/jsonc/indents.scm b/runtime/queries/jsonc/indents.scm
deleted file mode 100644
index 3b01ca999..000000000
--- a/runtime/queries/jsonc/indents.scm
+++ /dev/null
@@ -1,3 +0,0 @@
-; inherits: json
-
-(comment) @indent.ignore
diff --git a/runtime/queries/jsonc/injections.scm b/runtime/queries/jsonc/injections.scm
deleted file mode 100644
index 2f0e58eb6..000000000
--- a/runtime/queries/jsonc/injections.scm
+++ /dev/null
@@ -1,2 +0,0 @@
-((comment) @injection.content
- (#set! injection.language "comment"))
diff --git a/runtime/queries/jsonc/locals.scm b/runtime/queries/jsonc/locals.scm
deleted file mode 100644
index 41269219e..000000000
--- a/runtime/queries/jsonc/locals.scm
+++ /dev/null
@@ -1 +0,0 @@
-; inherits: json
diff --git a/tests/query/highlights/fusion/afx.fusion b/tests/query/highlights/fusion/afx.fusion
deleted file mode 100644
index 4ccb8174f..000000000
--- a/tests/query/highlights/fusion/afx.fusion
+++ /dev/null
@@ -1,17 +0,0 @@
-property = afx`
- <!-- some comment -->
-<!-- ^@comment -->
-
- <div attribute="value">text</div>
-<!-- ^@tag -->
-<!-- ^@tag.attribute -->
-<!-- ^@string -->
-<!-- ^@punctuation.bracket -->
-<!-- ^@tag -->
-
- <Namespace:Type {...spread} some={(a) => true} />
-<!-- ^@tag -->
-<!-- ^@variable -->
-<!-- ^@variable -->
-<!-- ^@boolean -->
-`
diff --git a/tests/query/highlights/fusion/basic.fusion b/tests/query/highlights/fusion/basic.fusion
deleted file mode 100644
index 5f3cc346a..000000000
--- a/tests/query/highlights/fusion/basic.fusion
+++ /dev/null
@@ -1,60 +0,0 @@
-include: SomeFile.fusion
-//<- @keyword.import
-// ^ @string.special.url
-
-namespace: ns = Neos.Fusion.Space
-//<- @keyword.type
-// ^ @module
-// ^ @operator
-// ^ @module
-
-prototype(MyType) < prototype(ns:SuperType) {
-//<-keyword
-// ^ @punctuation.bracket
-// ^ @type
-// ^ @punctuation.bracket
-// ^ @operator
-// ^ @module
-// ^ @type
-
- deleteProp >
- // ^ @operator
-
- string = 'value'
- //<- @property
- // ^ @operator
- // ^ @string
-
- number = 10.2
- // ^ @number
-
- null = null
- // ^ @constant.builtin
-
- boolean = true
- // ^ @boolean
-
- property.inner = "value"
- //<- @property
- // ^ @property
-
- property.@meta = "value"
- //<- @property
- // ^ @attribute
-
- property.type = SomeType
- //<- @property
- // ^ @type
-
- property.aliasedType = ns:SomeType
- //<- @property
- // ^ @module
- // ^ @type
-
- property.fullQualifiedType = SomeNamespace:SomeType
- //<- @property
- // ^ @module
- // ^ @type
-
-}
-
diff --git a/tests/query/highlights/fusion/expressions.fusion b/tests/query/highlights/fusion/expressions.fusion
deleted file mode 100644
index b1822dda8..000000000
--- a/tests/query/highlights/fusion/expressions.fusion
+++ /dev/null
@@ -1,82 +0,0 @@
-string = ${'foo'}
-// ^string
-
-string = ${'foo \'bar\' baz'}
-// ^string
-
-string = ${"foo"}
-// ^string
-
-string = ${"foo ${test}"}
-// ^string
-
-boolean = ${true}
-// ^boolean
-
-number = ${1}
-// ^number
-
-number = ${1.2}
-// ^number
-
-propertyPath = ${property.path}
-// ^variable
-// ^variable
-
-thisorProps = ${this.path}
-// ^variable.builtin
-// ^variable
-
-thisorProps = ${props.path}
-// ^variable.builtin
-// ^variable
-
-array = ${[]}
-// ^punctuation.bracket
-
-array = ${[true, 'string', 1, [true]]}
-// ^punctuation.bracket
-// ^boolean
-// ^string
-// ^number
-// ^punctuation.bracket
-// ^boolean
-
-object = ${{}}
-// ^punctuation.bracket
-
-object = ${{first: 'value', second: true, third: [], fourth: object.path }}
-// ^property
-// ^string
-// ^property
-// ^boolean
-// ^property
-// ^punctuation.bracket
-// ^property
-// ^variable
-
-result = ${methodCall()}
-// ^function
-
-result = ${Some.methodCall(param, param)}
-// ^function
-// ^variable
-// ^variable
-
-arrowFunction = ${map(foo, (bar, buz) => bar * buz)}
-// ^function
-// ^variable
-// ^variable
-
-logic = ${!foo && !(bar || baz) and not 'string'}
-// ^operator
-// ^operator
-// ^operator
-// ^operator
-// ^operator
-
-ternary = ${ check ? true : false}
-// ^@keyword.conditional.ternary
-// ^@keyword.conditional.ternary
-
-