aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/erlang
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/erlang')
-rw-r--r--runtime/queries/erlang/highlights.scm16
-rw-r--r--runtime/queries/erlang/injections.scm10
-rw-r--r--runtime/queries/erlang/locals.scm2
3 files changed, 23 insertions, 5 deletions
diff --git a/runtime/queries/erlang/highlights.scm b/runtime/queries/erlang/highlights.scm
index 6d0ec36d..f09f6104 100644
--- a/runtime/queries/erlang/highlights.scm
+++ b/runtime/queries/erlang/highlights.scm
@@ -3,7 +3,7 @@
(attribute
name: (atom) @keyword
(arguments (atom) @namespace)
- (#match? @keyword "(module|behaviou?r)"))
+ (#any-of? @keyword "module" "behaviour" "behavior"))
(attribute
name: (atom) @keyword
@@ -50,12 +50,20 @@
name: (atom) @keyword
(arguments
(_) @keyword.directive)
- (#match? @keyword "ifn?def"))
+ (#any-of? @keyword "ifndef" "ifdef"))
(attribute
name: (atom) @keyword
module: (atom) @namespace
- (#match? @keyword "(spec|callback)"))
+ (#any-of? @keyword "spec" "callback"))
+
+(attribute
+ name: (atom) @keyword
+ (arguments [
+ (string)
+ (sigil)
+ ] @comment.block.documentation)
+ (#any-of? @keyword "doc" "moduledoc"))
; Functions
(function_clause name: (atom) @function)
@@ -84,7 +92,7 @@
((attribute
name: (atom) @keyword
(stab_clause
- pattern: (arguments (variable) @variable.parameter)
+ pattern: (arguments (variable)? @variable.parameter)
body: (variable)? @variable.parameter))
(#match? @keyword "(spec|callback)"))
; functions
diff --git a/runtime/queries/erlang/injections.scm b/runtime/queries/erlang/injections.scm
index 11cbd01e..798882f5 100644
--- a/runtime/queries/erlang/injections.scm
+++ b/runtime/queries/erlang/injections.scm
@@ -5,3 +5,13 @@
((comment (comment_content) @injection.content)
(#set! injection.language "comment"))
+
+; EEP-59 doc attributes use markdown by default.
+(attribute
+ name: (atom) @_attribute
+ (arguments [
+ (string (quoted_content) @injection.content)
+ (sigil (quoted_content) @injection.content)
+ ])
+ (#set! injection.language "markdown")
+ (#any-of? @_attribute "doc" "moduledoc"))
diff --git a/runtime/queries/erlang/locals.scm b/runtime/queries/erlang/locals.scm
index 7379926b..156e4038 100644
--- a/runtime/queries/erlang/locals.scm
+++ b/runtime/queries/erlang/locals.scm
@@ -1,7 +1,7 @@
; Specs and Callbacks
(attribute
(stab_clause
- pattern: (arguments (variable) @local.definition)
+ pattern: (arguments (variable)? @local.definition)
; If a spec uses a variable as the return type (and later a `when` clause to type it):
body: (variable)? @local.definition)) @local.scope