diff options
| author | osthomas <8322329+osthomas@users.noreply.github.com> | 2023-09-13 03:29:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-12 21:29:22 -0400 |
| commit | 2461e5ac21c59950457fea4b3f9f184f0daa8913 (patch) | |
| tree | 7c31fedfe46bd9149381d9b166f6048b53b45f50 /queries/snakemake | |
| parent | feat: @spell on comments (diff) | |
| download | nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar.gz nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar.bz2 nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar.lz nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar.xz nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.tar.zst nvim-treesitter-2461e5ac21c59950457fea4b3f9f184f0daa8913.zip | |
feat: add Snakemake
Diffstat (limited to 'queries/snakemake')
| -rw-r--r-- | queries/snakemake/folds.scm | 6 | ||||
| -rw-r--r-- | queries/snakemake/highlights.scm | 64 | ||||
| -rw-r--r-- | queries/snakemake/injections.scm | 4 | ||||
| -rw-r--r-- | queries/snakemake/locals.scm | 1 |
4 files changed, 75 insertions, 0 deletions
diff --git a/queries/snakemake/folds.scm b/queries/snakemake/folds.scm new file mode 100644 index 000000000..36ed2318b --- /dev/null +++ b/queries/snakemake/folds.scm @@ -0,0 +1,6 @@ +; inherits: python +[ + (rule_definition) + (module_definition) + (checkpoint_definition) +] @fold diff --git a/queries/snakemake/highlights.scm b/queries/snakemake/highlights.scm new file mode 100644 index 000000000..8b173e0b5 --- /dev/null +++ b/queries/snakemake/highlights.scm @@ -0,0 +1,64 @@ +; inherits: python + +;; Compound directives +["rule" "checkpoint" "module"] @keyword + +;; Top level directives (eg. configfile, include) +(module (directive name: _ @keyword)) + +;; Subordinate directives (eg. input, output) +(_ body: (_ (directive name: _ @label))) + +;; rule/module/checkpoint names +(rule_definition name: (identifier) @type) +(module_definition name: (identifier) @type) +(checkpoint_definition name: (identifier) @type) + + +;; Rule imports +(rule_import + "use" @include + "rule" @include + "from" @include + "as"? @include + "with"? @include +) + + +;; Rule inheritance +(rule_inheritance + "use" @keyword + "rule" @keyword + "with" @keyword +) + + +;; Wildcard names +(wildcard (identifier) @variable) + + +;; builtin variables +((identifier) @variable.builtin + (#any-of? @variable.builtin "checkpoints" "config" "gather" "rules" "scatter" "workflow")) + + +;; References to directive labels in wildcard interpolations + +;; the #any-of? queries are moved above the #has-ancestor? queries to +;; short-circuit the potentially expensive tree traversal, if possible +;; see: +;; https://github.com/nvim-treesitter/nvim-treesitter/pull/4302#issuecomment-1685789790 + +;; directive labels in wildcard context +((wildcard (identifier) @label) + (#any-of? @label "input" "log" "output" "params" "resources" "threads" "wildcards")) +((wildcard (attribute object: (identifier) @label)) + (#any-of? @label "input" "log" "output" "params" "resources" "threads" "wildcards")) +((wildcard (subscript value: (identifier) @label)) + (#any-of? @label "input" "log" "output" "params" "resources" "threads" "wildcards")) + +;; directive labels in block context (eg. within 'run:') +((identifier) @label + (#any-of? @label "input" "log" "output" "params" "resources" "threads" "wildcards") + (#has-ancestor? @label "directive") + (#has-ancestor? @label "block")) diff --git a/queries/snakemake/injections.scm b/queries/snakemake/injections.scm new file mode 100644 index 000000000..dd41cbadb --- /dev/null +++ b/queries/snakemake/injections.scm @@ -0,0 +1,4 @@ +; inherits: python + +(wildcard (constraint) @injection.content + (#set! injection.language "regex")) diff --git a/queries/snakemake/locals.scm b/queries/snakemake/locals.scm new file mode 100644 index 000000000..0b920cbf9 --- /dev/null +++ b/queries/snakemake/locals.scm @@ -0,0 +1 @@ +; inherits: python |
