mirror of https://github.com/helix-editor/helix
queries: Highlight interpolations in the `rsx!` macro
parent
b273b89249
commit
e610e7dd80
|
@ -150,31 +150,11 @@
|
|||
|
||||
; std
|
||||
"assert_eq" "debug_assert_eq" "assert_ne" "debug_assert_ne"
|
||||
|
||||
; Dioxus's rsx! macro accepts string interpolation
|
||||
; in all strings, across the entire token tree
|
||||
"rsx"
|
||||
)
|
||||
(#set! injection.language "rust-format-args-macro")
|
||||
(#set! injection.include-children)
|
||||
)
|
||||
|
||||
; Dioxus' "rsx!" macro relies heavily on string interpolation as well. The strings can be nested very deeply
|
||||
(
|
||||
(macro_invocation
|
||||
macro: [
|
||||
(scoped_identifier
|
||||
name: (_) @_macro_name)
|
||||
(identifier) @_macro_name
|
||||
]
|
||||
; TODO: This only captures 1 level of string literals. But in dioxus you can have
|
||||
; nested string literals. For instance:
|
||||
;
|
||||
; rsx! { "{hello} world" }:
|
||||
; -> (token_tree (string_literal))
|
||||
; rsx! { div { "{hello} world" } }
|
||||
; -> (token_tree (token_tree (string_literal)))
|
||||
; rsx! { div { div { "{hello} world" } } }
|
||||
; -> (token_tree (token_tree (token_tree (string_literal))))
|
||||
(token_tree (string_literal) @injection.content)
|
||||
)
|
||||
(#eq? @_macro_name "rsx")
|
||||
(#set! injection.language "rust-format-args")
|
||||
(#set! injection.include-children)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue