diff options
author | Charles Hall | 2022-09-02 22:26:42 +0000 |
---|---|---|
committer | GitHub | 2022-09-02 22:26:42 +0000 |
commit | b3b164f0d5decd02a02d7c3b571749fac47d7005 (patch) | |
tree | 9e21196a95af07718fc3ddabf729191121612563 /runtime | |
parent | 6e5e38c2ba3a99d1827fa53851b88a50055f744a (diff) |
Highlight SQL in `sqlx::{query,query_as}!()` in Rust (#3647)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/queries/rust/injections.scm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/runtime/queries/rust/injections.scm b/runtime/queries/rust/injections.scm index 77c70805..704d8494 100644 --- a/runtime/queries/rust/injections.scm +++ b/runtime/queries/rust/injections.scm @@ -24,3 +24,30 @@ name: (identifier) @_new (#eq? @_new "new")) arguments: (arguments (raw_string_literal) @injection.content) (#set! injection.language "regex")) + +; Highlight SQL in `sqlx::query!()` +(macro_invocation + macro: (scoped_identifier + path: (identifier) @_sqlx (#eq? @_sqlx "sqlx") + name: (identifier) @_query (#eq? @_query "query")) + (token_tree + ; Only the first argument is SQL + . + [(string_literal) (raw_string_literal)] @injection.content + ) + (#set! injection.language "sql")) + +; Highlight SQL in `sqlx::query_as!()` +(macro_invocation + macro: (scoped_identifier + path: (identifier) @_sqlx (#eq? @_sqlx "sqlx") + name: (identifier) @_query_as (#eq? @_query_as "query_as")) + (token_tree + ; Only the second argument is SQL + . + ; Allow anything as the first argument in case the user has lower case type + ; names for some reason + (_) + [(string_literal) (raw_string_literal)] @injection.content + ) + (#set! injection.language "sql")) |