mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
Add new injections for Go (#37605)
support for injecting sql, json, yaml, xml, html, css, js, lua and csv value if you use `/* lang */` before string literals, highlights them **Example:** ```go const sqlQuery = /* sql */ "SELECT * FROM users;" // highlights as SQL code ``` <img width="629" height="46" alt="Screenshot 2025-09-05 at 06 17 49" src="https://github.com/user-attachments/assets/80f404d8-0a47-428d-bdb5-09fbee502cfe" /> Closes #ISSUE Release Notes: - Go: Added support for injecting sql, json, yaml, xml, html, css, js, lua and csv language highlights into string literals, when they are prefixed with `/* lang */` **Example:** ```go const sqlQuery = /* sql */ "SELECT * FROM users;" // Will be highlighted as SQL code ```
This commit is contained in:
parent
35e5aa4e71
commit
63586ff2e4
1 changed files with 362 additions and 1 deletions
|
|
@ -10,4 +10,365 @@
|
|||
(raw_string_literal)
|
||||
(interpreted_string_literal)
|
||||
] @injection.content
|
||||
(#set! injection.language "regex")))
|
||||
(#set! injection.language "regex")
|
||||
))
|
||||
|
||||
; INJECT SQL
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*sql\\s*\\*\\/") ; /* sql */ or /*sql*/
|
||||
(#set! injection.language "sql")
|
||||
)
|
||||
|
||||
; INJECT JSON
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*json\\s*\\*\\/") ; /* json */ or /*json*/
|
||||
(#set! injection.language "json")
|
||||
)
|
||||
|
||||
; INJECT YAML
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*yaml\\s*\\*\\/") ; /* yaml */ or /*yaml*/
|
||||
(#set! injection.language "yaml")
|
||||
)
|
||||
|
||||
; INJECT XML
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*xml\\s*\\*\\/") ; /* xml */ or /*xml*/
|
||||
(#set! injection.language "xml")
|
||||
)
|
||||
|
||||
; INJECT HTML
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*html\\s*\\*\\/") ; /* html */ or /*html*/
|
||||
(#set! injection.language "html")
|
||||
)
|
||||
|
||||
; INJECT JS
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*js\\s*\\*\\/") ; /* js */ or /*js*/
|
||||
(#set! injection.language "javascript")
|
||||
)
|
||||
|
||||
; INJECT CSS
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*css\\s*\\*\\/") ; /* css */ or /*css*/
|
||||
(#set! injection.language "css")
|
||||
)
|
||||
|
||||
; INJECT LUA
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*lua\\s*\\*\\/") ; /* lua */ or /*lua*/
|
||||
(#set! injection.language "lua")
|
||||
)
|
||||
|
||||
; INJECT BASH
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*bash\\s*\\*\\/") ; /* bash */ or /*bash*/
|
||||
(#set! injection.language "bash")
|
||||
)
|
||||
|
||||
; INJECT CSV
|
||||
(
|
||||
[
|
||||
; var, const or short declaration of raw or interpreted string literal
|
||||
((comment) @comment
|
||||
.
|
||||
(expression_list
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a literal element (to struct field eg.)
|
||||
((comment) @comment
|
||||
.
|
||||
(literal_element
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content
|
||||
))
|
||||
|
||||
; when passing as a function parameter
|
||||
((comment) @comment
|
||||
.
|
||||
[
|
||||
(interpreted_string_literal)
|
||||
(raw_string_literal)
|
||||
] @injection.content)
|
||||
]
|
||||
|
||||
(#match? @comment "^\\/\\*\\s*csv\\s*\\*\\/") ; /* csv */ or /*csv*/
|
||||
(#set! injection.language "csv")
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue