diff options
| author | Steve Occhipinti <dev@stevenocchipinti.com> | 2021-07-25 16:10:58 +1000 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2021-11-28 15:02:55 +0100 |
| commit | c6b90ee9bd5118aeed32b4717afc56dd7c97be53 (patch) | |
| tree | 35f2ebf2a2c0d7c9be961f58683bdb0a53475b2a /queries/ecma | |
| parent | Support both styled.div and styled(Component) (diff) | |
| download | nvim-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.scm | 23 |
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 |
