injections.scm

  1; Refer to https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/go/injections.scm#L4C1-L16C41
  2((comment) @injection.content
  3 (#set! injection.language "comment")
  4)
  5
  6(call_expression
  7  (selector_expression) @_function
  8  (#any-of? @_function
  9    "regexp.Match" "regexp.MatchReader" "regexp.MatchString" "regexp.Compile" "regexp.CompilePOSIX"
 10    "regexp.MustCompile" "regexp.MustCompilePOSIX")
 11  (argument_list
 12    .
 13    [
 14      (raw_string_literal)
 15      (interpreted_string_literal)
 16    ] @injection.content
 17    (#set! injection.language "regex")
 18    ))
 19
 20; INJECT SQL
 21(
 22    [
 23        (const_spec
 24            name: (identifier)
 25            "="
 26            (comment) @_comment
 27            value: (expression_list
 28            [
 29                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 30                (raw_string_literal (raw_string_literal_content) @injection.content)
 31            ]
 32        ))
 33
 34        (var_spec
 35            name: (identifier)
 36            "="
 37            (comment) @_comment
 38            value: (expression_list
 39            [
 40                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 41                (raw_string_literal (raw_string_literal_content) @injection.content)
 42            ]
 43        ))
 44
 45        (assignment_statement
 46        left: (expression_list)
 47        "="
 48        (comment) @_comment
 49        right: (expression_list
 50            [
 51                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 52                (raw_string_literal (raw_string_literal_content) @injection.content)
 53            ]
 54        ))
 55
 56        (short_var_declaration
 57        left: (expression_list)
 58        ":="
 59        (comment) @_comment
 60        right: (expression_list
 61            [
 62                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 63                (raw_string_literal (raw_string_literal_content) @injection.content)
 64            ]
 65        ))
 66
 67        (composite_literal
 68            body: (literal_value
 69            (keyed_element
 70            (comment) @_comment
 71            value: (literal_element
 72            [
 73                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 74                (raw_string_literal (raw_string_literal_content) @injection.content)
 75            ]
 76        ))))
 77
 78        (expression_statement
 79            (call_expression
 80            (argument_list
 81            (comment) @_comment
 82            [
 83               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
 84                (raw_string_literal (raw_string_literal_content) @injection.content)
 85            ]
 86        )))
 87    ]
 88  (#match? @_comment "^\\/\\*\\s*sql\\s*\\*\\/$")
 89  (#set! injection.language "sql")
 90)
 91
 92; INJECT JSON
 93(
 94    [
 95        (const_spec
 96            name: (identifier)
 97            "="
 98            (comment) @_comment
 99            value: (expression_list
100            [
101                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
102                (raw_string_literal (raw_string_literal_content) @injection.content)
103            ]
104        ))
105
106        (var_spec
107            name: (identifier)
108            "="
109            (comment) @_comment
110            value: (expression_list
111            [
112                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
113                (raw_string_literal (raw_string_literal_content) @injection.content)
114            ]
115        ))
116
117        (assignment_statement
118        left: (expression_list)
119        "="
120        (comment) @_comment
121        right: (expression_list
122            [
123                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
124                (raw_string_literal (raw_string_literal_content) @injection.content)
125            ]
126        ))
127
128        (short_var_declaration
129        left: (expression_list)
130        ":="
131        (comment) @_comment
132        right: (expression_list
133            [
134                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
135                (raw_string_literal (raw_string_literal_content) @injection.content)
136            ]
137        ))
138
139        (composite_literal
140            body: (literal_value
141            (keyed_element
142            (comment) @_comment
143            value: (literal_element
144            [
145                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
146                (raw_string_literal (raw_string_literal_content) @injection.content)
147            ]
148        ))))
149
150        (expression_statement
151            (call_expression
152            (argument_list
153            (comment) @_comment
154            [
155               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
156                (raw_string_literal (raw_string_literal_content) @injection.content)
157            ]
158        )))
159    ]
160    (#match? @_comment "^\\/\\*\\s*json\\s*\\*\\/") ; /* json */ or /*json*/
161    (#set! injection.language "json")
162)
163
164; INJECT YAML
165(
166    [
167        (const_spec
168            name: (identifier)
169            "="
170            (comment) @_comment
171            value: (expression_list
172            [
173                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
174                (raw_string_literal (raw_string_literal_content) @injection.content)
175            ]
176        ))
177
178        (var_spec
179            name: (identifier)
180            "="
181            (comment) @_comment
182            value: (expression_list
183            [
184                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
185                (raw_string_literal (raw_string_literal_content) @injection.content)
186            ]
187        ))
188
189        (assignment_statement
190        left: (expression_list)
191        "="
192        (comment) @_comment
193        right: (expression_list
194            [
195                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
196                (raw_string_literal (raw_string_literal_content) @injection.content)
197            ]
198        ))
199
200        (short_var_declaration
201        left: (expression_list)
202        ":="
203        (comment) @_comment
204        right: (expression_list
205            [
206                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
207                (raw_string_literal (raw_string_literal_content) @injection.content)
208            ]
209        ))
210
211        (composite_literal
212            body: (literal_value
213            (keyed_element
214            (comment) @_comment
215            value: (literal_element
216            [
217                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
218                (raw_string_literal (raw_string_literal_content) @injection.content)
219            ]
220        ))))
221
222        (expression_statement
223            (call_expression
224            (argument_list
225            (comment) @_comment
226            [
227               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
228                (raw_string_literal (raw_string_literal_content) @injection.content)
229            ]
230        )))
231    ]
232    (#match? @_comment "^\\/\\*\\s*yaml\\s*\\*\\/") ; /* yaml */ or /*yaml*/
233    (#set! injection.language "yaml")
234)
235
236; INJECT XML
237(
238    [
239        (const_spec
240            name: (identifier)
241            "="
242            (comment) @_comment
243            value: (expression_list
244            [
245                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
246                (raw_string_literal (raw_string_literal_content) @injection.content)
247            ]
248        ))
249
250        (var_spec
251            name: (identifier)
252            "="
253            (comment) @_comment
254            value: (expression_list
255            [
256                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
257                (raw_string_literal (raw_string_literal_content) @injection.content)
258            ]
259        ))
260
261        (assignment_statement
262        left: (expression_list)
263        "="
264        (comment) @_comment
265        right: (expression_list
266            [
267                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
268                (raw_string_literal (raw_string_literal_content) @injection.content)
269            ]
270        ))
271
272        (short_var_declaration
273        left: (expression_list)
274        ":="
275        (comment) @_comment
276        right: (expression_list
277            [
278                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
279                (raw_string_literal (raw_string_literal_content) @injection.content)
280            ]
281        ))
282
283        (composite_literal
284            body: (literal_value
285            (keyed_element
286            (comment) @_comment
287            value: (literal_element
288            [
289                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
290                (raw_string_literal (raw_string_literal_content) @injection.content)
291            ]
292        ))))
293
294        (expression_statement
295            (call_expression
296            (argument_list
297            (comment) @_comment
298            [
299               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
300                (raw_string_literal (raw_string_literal_content) @injection.content)
301            ]
302        )))
303    ]
304    (#match? @_comment "^\\/\\*\\s*xml\\s*\\*\\/") ; /* xml */ or /*xml*/
305    (#set! injection.language "xml")
306)
307
308; INJECT HTML
309(
310    [
311        (const_spec
312            name: (identifier)
313            "="
314            (comment) @_comment
315            value: (expression_list
316            [
317                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
318                (raw_string_literal (raw_string_literal_content) @injection.content)
319            ]
320        ))
321
322        (var_spec
323            name: (identifier)
324            "="
325            (comment) @_comment
326            value: (expression_list
327            [
328                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
329                (raw_string_literal (raw_string_literal_content) @injection.content)
330            ]
331        ))
332
333        (assignment_statement
334        left: (expression_list)
335        "="
336        (comment) @_comment
337        right: (expression_list
338            [
339                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
340                (raw_string_literal (raw_string_literal_content) @injection.content)
341            ]
342        ))
343
344        (short_var_declaration
345        left: (expression_list)
346        ":="
347        (comment) @_comment
348        right: (expression_list
349            [
350                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
351                (raw_string_literal (raw_string_literal_content) @injection.content)
352            ]
353        ))
354
355        (composite_literal
356            body: (literal_value
357            (keyed_element
358            (comment) @_comment
359            value: (literal_element
360            [
361                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
362                (raw_string_literal (raw_string_literal_content) @injection.content)
363            ]
364        ))))
365
366        (expression_statement
367            (call_expression
368            (argument_list
369            (comment) @_comment
370            [
371               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
372                (raw_string_literal (raw_string_literal_content) @injection.content)
373            ]
374        )))
375    ]
376    (#match? @_comment "^\\/\\*\\s*html\\s*\\*\\/") ; /* html */ or /*html*/
377    (#set! injection.language "html")
378)
379
380; INJECT JS
381(
382    [
383        (const_spec
384            name: (identifier)
385            "="
386            (comment) @_comment
387            value: (expression_list
388            [
389                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
390                (raw_string_literal (raw_string_literal_content) @injection.content)
391            ]
392        ))
393
394        (var_spec
395            name: (identifier)
396            "="
397            (comment) @_comment
398            value: (expression_list
399            [
400                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
401                (raw_string_literal (raw_string_literal_content) @injection.content)
402            ]
403        ))
404
405        (assignment_statement
406        left: (expression_list)
407        "="
408        (comment) @_comment
409        right: (expression_list
410            [
411                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
412                (raw_string_literal (raw_string_literal_content) @injection.content)
413            ]
414        ))
415
416        (short_var_declaration
417        left: (expression_list)
418        ":="
419        (comment) @_comment
420        right: (expression_list
421            [
422                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
423                (raw_string_literal (raw_string_literal_content) @injection.content)
424            ]
425        ))
426
427        (composite_literal
428            body: (literal_value
429            (keyed_element
430            (comment) @_comment
431            value: (literal_element
432            [
433                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
434                (raw_string_literal (raw_string_literal_content) @injection.content)
435            ]
436        ))))
437
438        (expression_statement
439            (call_expression
440            (argument_list
441            (comment) @_comment
442            [
443               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
444                (raw_string_literal (raw_string_literal_content) @injection.content)
445            ]
446        )))
447    ]
448    (#match? @_comment "^\\/\\*\\s*js\\s*\\*\\/") ; /* js */ or /*js*/
449    (#set! injection.language "javascript")
450)
451
452
453; INJECT CSS
454(
455    [
456        (const_spec
457            name: (identifier)
458            "="
459            (comment) @_comment
460            value: (expression_list
461            [
462                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
463                (raw_string_literal (raw_string_literal_content) @injection.content)
464            ]
465        ))
466
467        (var_spec
468            name: (identifier)
469            "="
470            (comment) @_comment
471            value: (expression_list
472            [
473                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
474                (raw_string_literal (raw_string_literal_content) @injection.content)
475            ]
476        ))
477
478        (assignment_statement
479        left: (expression_list)
480        "="
481        (comment) @_comment
482        right: (expression_list
483            [
484                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
485                (raw_string_literal (raw_string_literal_content) @injection.content)
486            ]
487        ))
488
489        (short_var_declaration
490        left: (expression_list)
491        ":="
492        (comment) @_comment
493        right: (expression_list
494            [
495                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
496                (raw_string_literal (raw_string_literal_content) @injection.content)
497            ]
498        ))
499
500        (composite_literal
501            body: (literal_value
502            (keyed_element
503            (comment) @_comment
504            value: (literal_element
505            [
506                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
507                (raw_string_literal (raw_string_literal_content) @injection.content)
508            ]
509        ))))
510
511        (expression_statement
512            (call_expression
513            (argument_list
514            (comment) @_comment
515            [
516               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
517                (raw_string_literal (raw_string_literal_content) @injection.content)
518            ]
519        )))
520    ]
521    (#match? @_comment "^\\/\\*\\s*css\\s*\\*\\/") ; /* css */ or /*css*/
522    (#set! injection.language "css")
523)
524
525
526; INJECT LUA
527(
528    [
529        (const_spec
530            name: (identifier)
531            "="
532            (comment) @_comment
533            value: (expression_list
534            [
535                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
536                (raw_string_literal (raw_string_literal_content) @injection.content)
537            ]
538        ))
539
540        (var_spec
541            name: (identifier)
542            "="
543            (comment) @_comment
544            value: (expression_list
545            [
546                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
547                (raw_string_literal (raw_string_literal_content) @injection.content)
548            ]
549        ))
550
551        (assignment_statement
552        left: (expression_list)
553        "="
554        (comment) @_comment
555        right: (expression_list
556            [
557                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
558                (raw_string_literal (raw_string_literal_content) @injection.content)
559            ]
560        ))
561
562        (short_var_declaration
563        left: (expression_list)
564        ":="
565        (comment) @_comment
566        right: (expression_list
567            [
568                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
569                (raw_string_literal (raw_string_literal_content) @injection.content)
570            ]
571        ))
572
573        (composite_literal
574            body: (literal_value
575            (keyed_element
576            (comment) @_comment
577            value: (literal_element
578            [
579                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
580                (raw_string_literal (raw_string_literal_content) @injection.content)
581            ]
582        ))))
583
584        (expression_statement
585            (call_expression
586            (argument_list
587            (comment) @_comment
588            [
589               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
590                (raw_string_literal (raw_string_literal_content) @injection.content)
591            ]
592        )))
593    ]
594    (#match? @_comment "^\\/\\*\\s*lua\\s*\\*\\/") ; /* lua */ or /*lua*/
595    (#set! injection.language "lua")
596)
597
598; INJECT BASH
599(
600    [
601        (const_spec
602            name: (identifier)
603            "="
604            (comment) @_comment
605            value: (expression_list
606            [
607                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
608                (raw_string_literal (raw_string_literal_content) @injection.content)
609            ]
610        ))
611
612        (var_spec
613            name: (identifier)
614            "="
615            (comment) @_comment
616            value: (expression_list
617            [
618                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
619                (raw_string_literal (raw_string_literal_content) @injection.content)
620            ]
621        ))
622
623        (assignment_statement
624        left: (expression_list)
625        "="
626        (comment) @_comment
627        right: (expression_list
628            [
629                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
630                (raw_string_literal (raw_string_literal_content) @injection.content)
631            ]
632        ))
633
634        (short_var_declaration
635        left: (expression_list)
636        ":="
637        (comment) @_comment
638        right: (expression_list
639            [
640                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
641                (raw_string_literal (raw_string_literal_content) @injection.content)
642            ]
643        ))
644
645        (composite_literal
646            body: (literal_value
647            (keyed_element
648            (comment) @_comment
649            value: (literal_element
650            [
651                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
652                (raw_string_literal (raw_string_literal_content) @injection.content)
653            ]
654        ))))
655
656        (expression_statement
657            (call_expression
658            (argument_list
659            (comment) @_comment
660            [
661               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
662                (raw_string_literal (raw_string_literal_content) @injection.content)
663            ]
664        )))
665    ]
666    (#match? @_comment "^\\/\\*\\s*bash\\s*\\*\\/") ; /* bash */ or /*bash*/
667    (#set! injection.language "bash")
668)
669
670; INJECT CSV
671(
672    [
673        (const_spec
674            name: (identifier)
675            "="
676            (comment) @_comment
677            value: (expression_list
678            [
679                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
680                (raw_string_literal (raw_string_literal_content) @injection.content)
681            ]
682        ))
683
684        (var_spec
685            name: (identifier)
686            "="
687            (comment) @_comment
688            value: (expression_list
689            [
690                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
691                (raw_string_literal (raw_string_literal_content) @injection.content)
692            ]
693        ))
694
695        (assignment_statement
696        left: (expression_list)
697        "="
698        (comment) @_comment
699        right: (expression_list
700            [
701                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
702                (raw_string_literal (raw_string_literal_content) @injection.content)
703            ]
704        ))
705
706        (short_var_declaration
707        left: (expression_list)
708        ":="
709        (comment) @_comment
710        right: (expression_list
711            [
712                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
713                (raw_string_literal (raw_string_literal_content) @injection.content)
714            ]
715        ))
716
717        ((comment) @_comment
718            value: (literal_element
719            [
720                (interpreted_string_literal (interpreted_string_literal_content) @injection.content)
721                (raw_string_literal (raw_string_literal_content) @injection.content)
722            ]
723        ))
724
725        (argument_list
726            (comment) @_comment
727            [
728               	(interpreted_string_literal (interpreted_string_literal_content) @injection.content)
729                (raw_string_literal (raw_string_literal_content) @injection.content)
730            ]
731        )
732    ]
733    (#match? @_comment "^\\/\\*\\s*csv\\s*\\*\\/") ; /* csv */ or /*csv */
734    (#set! injection.language "csv")
735)