aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/c/injections.scm
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/c/injections.scm
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/c/injections.scm')
-rw-r--r--runtime/queries/c/injections.scm128
1 files changed, 128 insertions, 0 deletions
diff --git a/runtime/queries/c/injections.scm b/runtime/queries/c/injections.scm
new file mode 100644
index 000000000..24634864e
--- /dev/null
+++ b/runtime/queries/c/injections.scm
@@ -0,0 +1,128 @@
+((preproc_arg) @injection.content
+ (#set! injection.self))
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((comment) @injection.content
+ (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c")
+ (#set! injection.language "re2c"))
+
+((comment) @injection.content
+ (#lua-match? @injection.content "/[*\/][!*\/]<?[^a-zA-Z]")
+ (#set! injection.language "doxygen"))
+
+((call_expression
+ function: (identifier) @_function
+ arguments: (argument_list
+ .
+ [
+ (string_literal
+ (string_content) @injection.content)
+ (concatenated_string
+ (string_literal
+ (string_content) @injection.content))
+ ]))
+ ; format-ignore
+ (#any-of? @_function
+ "printf" "printf_s"
+ "vprintf" "vprintf_s"
+ "scanf" "scanf_s"
+ "vscanf" "vscanf_s"
+ "wprintf" "wprintf_s"
+ "vwprintf" "vwprintf_s"
+ "wscanf" "wscanf_s"
+ "vwscanf" "vwscanf_s"
+ "cscanf" "_cscanf"
+ "printw"
+ "scanw")
+ (#set! injection.language "printf"))
+
+((call_expression
+ function: (identifier) @_function
+ arguments: (argument_list
+ (_)
+ .
+ [
+ (string_literal
+ (string_content) @injection.content)
+ (concatenated_string
+ (string_literal
+ (string_content) @injection.content))
+ ]))
+ ; format-ignore
+ (#any-of? @_function
+ "fprintf" "fprintf_s"
+ "sprintf"
+ "dprintf"
+ "fscanf" "fscanf_s"
+ "sscanf" "sscanf_s"
+ "vsscanf" "vsscanf_s"
+ "vfprintf" "vfprintf_s"
+ "vsprintf"
+ "vdprintf"
+ "fwprintf" "fwprintf_s"
+ "vfwprintf" "vfwprintf_s"
+ "fwscanf" "fwscanf_s"
+ "swscanf" "swscanf_s"
+ "vswscanf" "vswscanf_s"
+ "vfscanf" "vfscanf_s"
+ "vfwscanf" "vfwscanf_s"
+ "wprintw"
+ "vw_printw" "vwprintw"
+ "wscanw"
+ "vw_scanw" "vwscanw")
+ (#set! injection.language "printf"))
+
+((call_expression
+ function: (identifier) @_function
+ arguments: (argument_list
+ (_)
+ .
+ (_)
+ .
+ [
+ (string_literal
+ (string_content) @injection.content)
+ (concatenated_string
+ (string_literal
+ (string_content) @injection.content))
+ ]))
+ ; format-ignore
+ (#any-of? @_function
+ "sprintf_s"
+ "snprintf" "snprintf_s"
+ "vsprintf_s"
+ "vsnprintf" "vsnprintf_s"
+ "swprintf" "swprintf_s"
+ "snwprintf_s"
+ "vswprintf" "vswprintf_s"
+ "vsnwprintf_s"
+ "mvprintw"
+ "mvscanw")
+ (#set! injection.language "printf"))
+
+((call_expression
+ function: (identifier) @_function
+ arguments: (argument_list
+ (_)
+ .
+ (_)
+ .
+ (_)
+ .
+ [
+ (string_literal
+ (string_content) @injection.content)
+ (concatenated_string
+ (string_literal
+ (string_content) @injection.content))
+ ]))
+ (#any-of? @_function "mvwprintw" "mvwscanw")
+ (#set! injection.language "printf"))
+
+; TODO: add when asm is added
+; (gnu_asm_expression assembly_code: (string_literal) @injection.content
+; (#set! injection.language "asm"))
+; (gnu_asm_expression assembly_code: (concatenated_string (string_literal) @injection.content)
+; (#set! injection.language "asm"))