45 lines
1.2 KiB
Scheme
45 lines
1.2 KiB
Scheme
((comment) @injection.content
|
|
(#set! injection.language "comment"))
|
|
|
|
; The right side of =~ literals
|
|
(regex_literal
|
|
(_) @injection.content
|
|
(#set! injection.language "regex"))
|
|
|
|
; Default to bash highlighting for non-shebang recipes and commands
|
|
(recipe
|
|
(recipe_body
|
|
!shebang) @injection.content
|
|
(#set! injection.include-children)
|
|
(#set! injection.language "bash"))
|
|
|
|
(external_command
|
|
(command_body) @injection.content
|
|
(#set! injection.language "bash"))
|
|
|
|
; For shebang recipes, use the shebang executable name as the language by default
|
|
(recipe
|
|
(recipe_body
|
|
(shebang
|
|
(language) @injection.language)) @injection.content
|
|
(#not-any-of? @injection.language "python3" "nodejs" "node")
|
|
(#set! injection.include-children))
|
|
|
|
; python3 -> python
|
|
(recipe
|
|
(recipe_body
|
|
(shebang
|
|
(language) @_lang)) @injection.content
|
|
(#eq? @_lang "python3")
|
|
(#set! injection.language "python")
|
|
(#set! injection.include-children))
|
|
|
|
; node/nodejs -> javascript
|
|
(recipe
|
|
(recipe_body
|
|
(shebang
|
|
(language) @_lang)) @injection.content
|
|
(#any-of? @_lang "node" "nodejs")
|
|
(#set! injection.language "javascript")
|
|
(#set! injection.include-children))
|