aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/ispc
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/ispc
parentfeat(c-family): inherit injections (diff)
downloadnvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/ispc')
-rw-r--r--runtime/queries/ispc/folds.scm8
-rw-r--r--runtime/queries/ispc/highlights.scm110
-rw-r--r--runtime/queries/ispc/indents.scm9
-rw-r--r--runtime/queries/ispc/injections.scm1
-rw-r--r--runtime/queries/ispc/locals.scm18
5 files changed, 146 insertions, 0 deletions
diff --git a/runtime/queries/ispc/folds.scm b/runtime/queries/ispc/folds.scm
new file mode 100644
index 000000000..45d0ba131
--- /dev/null
+++ b/runtime/queries/ispc/folds.scm
@@ -0,0 +1,8 @@
+; inherits: c
+
+[
+ (foreach_statement)
+ (foreach_instance_statement)
+ (unmasked_statement)
+ (template_declaration)
+] @fold
diff --git a/runtime/queries/ispc/highlights.scm b/runtime/queries/ispc/highlights.scm
new file mode 100644
index 000000000..fd9c7262e
--- /dev/null
+++ b/runtime/queries/ispc/highlights.scm
@@ -0,0 +1,110 @@
+; inherits: c
+
+[
+ "soa"
+ "task"
+ "launch"
+ "unmasked"
+ "template"
+ "typename"
+ (sync_expression)
+] @keyword
+
+[
+ "in"
+ "new"
+ "delete"
+] @keyword.operator
+
+[
+ "cdo"
+ "cfor"
+ "cwhile"
+ "foreach"
+ "foreach_tiled"
+ "foreach_active"
+ "foreach_unique"
+] @keyword.repeat
+
+"cif" @keyword.conditional
+
+[
+ "varying"
+ "uniform"
+] @keyword.modifier
+
+"__regcall" @attribute
+
+(overload_declarator
+ name: _ @function)
+
+(foreach_statement
+ range_operator: _ @operator)
+
+(short_vector
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+(soa_qualifier
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+(template_argument_list
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+(template_parameter_list
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
+
+(llvm_identifier) @function.builtin
+
+; built-in variables
+((identifier) @variable.builtin
+ (#any-of? @variable.builtin
+ "programCount" "programIndex" "taskCount" "taskCount0" "taskCount1" "taskCount2" "taskIndex"
+ "taskIndex0" "taskIndex1" "taskIndex2" "threadCount" "threadIndex"))
+
+; preprocessor constants
+((identifier) @constant.builtin
+ (#any-of? @constant.builtin
+ "ISPC" "ISPC_FP16_SUPPORTED" "ISPC_FP64_SUPPORTED" "ISPC_LLVM_INTRINSICS_ENABLED"
+ "ISPC_MAJOR_VERSION" "ISPC_MINOR_VERSION" "ISPC_POINTER_SIZE" "ISPC_TARGET_AVX"
+ "ISPC_TARGET_AVX2" "ISPC_TARGET_AVX512KNL" "ISPC_TARGET_AVX512SKX" "ISPC_TARGET_AVX512SPR"
+ "ISPC_TARGET_NEON" "ISPC_TARGET_SSE2" "ISPC_TARGET_SSE4" "ISPC_UINT_IS_DEFINED" "PI"
+ "TARGET_ELEMENT_WIDTH" "TARGET_WIDTH"))
+
+; standard library built-in
+((type_identifier) @type.builtin
+ (#lua-match? @type.builtin "^RNGState"))
+
+(call_expression
+ function: (identifier) @function.builtin
+ (#any-of? @function.builtin
+ "abs" "acos" "all" "alloca" "and" "any" "aos_to_soa2" "aos_to_soa3" "aos_to_soa4" "asin"
+ "assert" "assume" "atan" "atan2" "atomic_add_global" "atomic_add_local" "atomic_and_global"
+ "atomic_and_local" "atomic_compare_exchange_global" "atomic_compare_exchange_local"
+ "atomic_max_global" "atomic_max_local" "atomic_min_global" "atomic_min_local" "atomic_or_global"
+ "atomic_or_local" "atomic_subtract_global" "atomic_subtract_local" "atomic_swap_global"
+ "atomic_swap_local" "atomic_xor_global" "atomic_xor_local" "avg_down" "avg_up" "broadcast"
+ "ceil" "clamp" "clock" "cos" "count_leading_zeros" "count_trailing_zeros" "doublebits"
+ "exclusive_scan_add" "exclusive_scan_and" "exclusive_scan_or" "exp" "extract" "fastmath"
+ "float16bits" "floatbits" "float_to_half" "float_to_half_fast" "float_to_srgb8" "floor"
+ "frandom" "frexp" "half_to_float" "half_to_float_fast" "insert" "intbits" "invoke_sycl" "isnan"
+ "ISPCAlloc" "ISPCLaunch" "ISPCSync" "lanemask" "ldexp" "log" "max" "memcpy" "memcpy64" "memmove"
+ "memmove64" "memory_barrier" "memset" "memset64" "min" "none" "num_cores" "or"
+ "packed_load_active" "packed_store_active" "packed_store_active2" "packmask" "popcnt" "pow"
+ "prefetch_l1" "prefetch_l2" "prefetch_l3" "prefetch_nt" "prefetchw_l1" "prefetchw_l2"
+ "prefetchw_l3" "print" "random" "rcp" "rcp_fast" "rdrand" "reduce_add" "reduce_equal"
+ "reduce_max" "reduce_min" "rotate" "round" "rsqrt" "rsqrt_fast" "saturating_add"
+ "saturating_div" "saturating_mul" "saturating_sub" "seed_rng" "select" "shift" "shuffle"
+ "signbits" "sign_extend" "sin" "sincos" "soa_to_aos2" "soa_to_aos3" "soa_to_aos4" "sqrt"
+ "streaming_load" "streaming_load_uniform" "streaming_store" "tan" "trunc"))
diff --git a/runtime/queries/ispc/indents.scm b/runtime/queries/ispc/indents.scm
new file mode 100644
index 000000000..f8c04e3a9
--- /dev/null
+++ b/runtime/queries/ispc/indents.scm
@@ -0,0 +1,9 @@
+; inherits: c
+
+((foreach_statement
+ body: (_) @_body) @indent.begin
+ (#not-kind-eq? @_body "compound_statement"))
+
+((foreach_instance_statement
+ body: (_) @_body) @indent.begin
+ (#not-kind-eq? @_body "compound_statement"))
diff --git a/runtime/queries/ispc/injections.scm b/runtime/queries/ispc/injections.scm
new file mode 100644
index 000000000..a5a5208ca
--- /dev/null
+++ b/runtime/queries/ispc/injections.scm
@@ -0,0 +1 @@
+; inherits: c
diff --git a/runtime/queries/ispc/locals.scm b/runtime/queries/ispc/locals.scm
new file mode 100644
index 000000000..985b3c9e0
--- /dev/null
+++ b/runtime/queries/ispc/locals.scm
@@ -0,0 +1,18 @@
+; inherits: c
+
+(reference_declarator
+ (identifier) @local.definition.var)
+
+(type_parameter_declaration
+ (type_identifier) @local.definition.type)
+
+(template_declaration) @local.scope
+
+(template_function
+ name: (identifier) @local.definition.function) @local.scope
+
+[
+ (foreach_statement)
+ (foreach_instance_statement)
+ (unmasked_statement)
+] @local.scope