add textobject queries for elixir
This commit is contained in:
parent
7a9147489e
commit
bcafdf404f
@ -15,7 +15,7 @@
|
||||
| edoc | ✓ | | | |
|
||||
| eex | ✓ | | | |
|
||||
| ejs | ✓ | | | |
|
||||
| elixir | ✓ | | | `elixir-ls` |
|
||||
| elixir | ✓ | ✓ | | `elixir-ls` |
|
||||
| elm | ✓ | | | `elm-language-server` |
|
||||
| erb | ✓ | | | |
|
||||
| erlang | ✓ | ✓ | | `erlang_ls` |
|
||||
|
27
runtime/queries/elixir/textobjects.scm
Normal file
27
runtime/queries/elixir/textobjects.scm
Normal file
@ -0,0 +1,27 @@
|
||||
; Function heads and guards have no body at all, so `keywords` and `do_block` nodes are both optional
|
||||
((call
|
||||
target: (identifier) @_keyword
|
||||
(arguments
|
||||
[
|
||||
(call
|
||||
(arguments (_)? @parameter.inside))
|
||||
; function has a guard
|
||||
(binary_operator
|
||||
left:
|
||||
(call
|
||||
(arguments (_)? @parameter.inside)))
|
||||
]
|
||||
; body is "do: body" instead of a do-block
|
||||
(keywords
|
||||
(pair
|
||||
value: (_) @function.inside))?)?
|
||||
(do_block (_)* @function.inside)?)
|
||||
(#match? @_keyword "^(def|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp|defp|test|describe|setup)$")) @function.around
|
||||
|
||||
(anonymous_function
|
||||
(stab_clause right: (body) @function.inside)) @function.around
|
||||
|
||||
((call
|
||||
target: (identifier) @_keyword
|
||||
(do_block (_)* @class.inside))
|
||||
(#match? @_keyword "^(defmodule|defprotocol|defimpl)$")) @class.around
|
Loading…
Reference in New Issue
Block a user