aboutsummaryrefslogtreecommitdiffstats
path: root/queries/ecma
diff options
context:
space:
mode:
authorSteve Occhipinti <dev@stevenocchipinti.com>2021-07-25 16:10:58 +1000
committerStephan Seitz <stephan.seitz@fau.de>2021-11-28 15:02:55 +0100
commitc6b90ee9bd5118aeed32b4717afc56dd7c97be53 (patch)
tree35f2ebf2a2c0d7c9be961f58683bdb0a53475b2a /queries/ecma
parentSupport both styled.div and styled(Component) (diff)
downloadnvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar.gz
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar.bz2
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar.lz
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar.xz
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.tar.zst
nvim-treesitter-c6b90ee9bd5118aeed32b4717afc56dd7c97be53.zip
Handle .attrs() cases
Now that there are 4 cases handled, I thought it probably needs some comments to show which case each injection is for. There are other unsupported cases, such as `.withConfig` but I'm not sure if they all belong here or into their own plugin or something. The API reference is available here: https://styled-components.com/docs/api Also, not sure if there is a more generic way of handling all these cases at once, a rule that would read: "any template string descendant from 'styled'". Will attempt to open a PR and get some advice.
Diffstat (limited to 'queries/ecma')
-rw-r--r--queries/ecma/injections.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/queries/ecma/injections.scm b/queries/ecma/injections.scm
index 52746ff9a..f97f9cd2c 100644
--- a/queries/ecma/injections.scm
+++ b/queries/ecma/injections.scm
@@ -18,6 +18,7 @@
arguments: ((template_string) @glimmer
(#offset! @glimmer 0 1 0 -1)))
+; styled.div`<css>`
(call_expression
function: (member_expression
object: (identifier) @_name
@@ -25,6 +26,7 @@
arguments: ((template_string) @css
(#offset! @css 0 1 0 -1)))
+; styled(Component)`<css>`
(call_expression
function: (call_expression
function: (identifier) @_name
@@ -32,4 +34,25 @@
arguments: ((template_string) @css
(#offset! @css 0 1 0 -1)))
+; styled.div.attrs({ prop: "foo" })`<css>`
+(call_expression
+ function: (call_expression
+ function: (member_expression
+ object: (member_expression
+ object: (identifier) @_name
+ (#eq? @_name "styled"))))
+ arguments: ((template_string) @css
+ (#offset! @css 0 1 0 -1)))
+
+
+; styled(Component).attrs({ prop: "foo" })`<css>`
+(call_expression
+ function: (call_expression
+ function: (member_expression
+ object: (call_expression
+ function: (identifier) @_name
+ (#eq? @_name "styled"))))
+ arguments: ((template_string) @css
+ (#offset! @css 0 1 0 -1)))
+
(regex_pattern) @regex