Skip to content

Commit ddb054f

Browse files
authored
feat(ecma): import statements (#759)
1 parent a7168a6 commit ddb054f

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

queries/ecma/textobjects.scm

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,3 +292,48 @@
292292
(export_statement)
293293
(lexical_declaration)
294294
] @statement.outer
295+
296+
; 1. default import
297+
(import_statement
298+
(import_clause
299+
(identifier) @parameter.inner @parameter.outer))
300+
301+
; 2. namespace import e.g. `* as React`
302+
(import_statement
303+
(import_clause
304+
(namespace_import
305+
(identifier) @parameter.inner) @parameter.outer))
306+
307+
; 3. named import e.g. `import { Bar, Baz } from ...`
308+
(import_statement
309+
(import_clause
310+
(named_imports
311+
(import_specifier) @parameter.inner)))
312+
313+
; 3‑A. named import followed by a comma
314+
((import_statement
315+
(import_clause
316+
(named_imports
317+
(import_specifier) @_start
318+
.
319+
"," @_end)))
320+
(#make-range! "parameter.outer" @_start @_end))
321+
322+
; 3‑B. comma followed by named import
323+
((import_statement
324+
(import_clause
325+
(named_imports
326+
"," @_start
327+
.
328+
(import_specifier) @_end)))
329+
(#make-range! "parameter.outer" @_start @_end))
330+
331+
; 3-C. only one named import without a comma
332+
(import_statement
333+
(import_clause
334+
(named_imports
335+
"{"
336+
.
337+
(import_specifier) @parameter.outer
338+
.
339+
"}")))

0 commit comments

Comments
 (0)