diff --git a/crates/languages/src/elixir/outline.scm b/crates/languages/src/elixir/outline.scm index a3311fb6d4640aa4ff5469c638022c1fde02e912..12a1a25e5f12d9efe5085dd6ceeac480bd9b18b2 100644 --- a/crates/languages/src/elixir/outline.scm +++ b/crates/languages/src/elixir/outline.scm @@ -3,6 +3,26 @@ (arguments (alias) @name) (#match? @context "^(defmodule|defprotocol)$")) @item +(unary_operator + operator: "@" @name + operand: (call + target: (identifier) @context + (arguments + [ + (binary_operator + left: (identifier) @name) + (binary_operator + left: (call + target: (identifier) @name + (arguments + "(" @context.extra + _* @context.extra + ")" @context.extra))) + ] + ) +) +(#match? @context "^(callback|type|typep)$")) @item + (call target: (identifier) @context (arguments