From 352c95cf0d4426ef72d23c0fafef8ca58d27d1c8 Mon Sep 17 00:00:00 2001 From: Affan Shahid Date: Fri, 23 Aug 2024 23:36:45 +0500 Subject: [PATCH] Add injections for GraphQL template literals and function calls (#16368) This PR adds syntax highlighting support for `gql` and `graphql` tagged literals. It also adds highlighting for `graphql()` and `gql()` function calls, which are another common way to define queries. Note: I am using the [`graphql`](https://github.com/11bit/zed-extension-graphql) extension to provide syntax highlighting Before: image After: image Release Notes: - Added syntax highlighting for `graphql` tagged template literals and function calls in javascript, typescript and tsx languages. --- crates/languages/src/javascript/injections.scm | 11 +++++++++++ crates/languages/src/tsx/injections.scm | 11 +++++++++++ crates/languages/src/typescript/injections.scm | 12 ++++++++++++ 3 files changed, 34 insertions(+) diff --git a/crates/languages/src/javascript/injections.scm b/crates/languages/src/javascript/injections.scm index d629a2b3df970e46ef394809c96cff1fca8da82a..180608944aba5e33cd0c351c9d64ffd760761920 100644 --- a/crates/languages/src/javascript/injections.scm +++ b/crates/languages/src/javascript/injections.scm @@ -47,3 +47,14 @@ (#set! "language" "yaml")) ) +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (template_string (string_fragment) @content + (#set! "language" "graphql")) +) + +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (arguments (template_string (string_fragment) @content + (#set! "language" "graphql"))) +) diff --git a/crates/languages/src/tsx/injections.scm b/crates/languages/src/tsx/injections.scm index 681e476b181f5357003f6935888d10e9d85358c3..3aa6bfd7455ecfb9ecadffb6eeb8253c340e9928 100644 --- a/crates/languages/src/tsx/injections.scm +++ b/crates/languages/src/tsx/injections.scm @@ -47,3 +47,14 @@ (#set! "language" "yaml")) ) +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (template_string (string_fragment) @content + (#set! "language" "graphql")) +) + +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (arguments (template_string (string_fragment) @content + (#set! "language" "graphql"))) +) diff --git a/crates/languages/src/typescript/injections.scm b/crates/languages/src/typescript/injections.scm index c47fc5efb4631ce2554f50d45a816a6a495ca6c1..db8d7a9b59cb9fe4e99a2a7b8e688b81e5f2eea7 100644 --- a/crates/languages/src/typescript/injections.scm +++ b/crates/languages/src/typescript/injections.scm @@ -50,3 +50,15 @@ arguments: (template_string (string_fragment) @content (#set! "language" "yaml")) ) + +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (template_string (string_fragment) @content + (#set! "language" "graphql")) +) + +(call_expression + function: (identifier) @_name (#match? @_name "^g(raph)?ql$") + arguments: (arguments (template_string (string_fragment) @content + (#set! "language" "graphql"))) +)