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