Change summary
crates/zed/src/languages/c/outline.scm | 64 +++++++++++++++++++++----
crates/zed/src/languages/cpp/outline.scm | 48 +++++++++++++++++++
2 files changed, 100 insertions(+), 12 deletions(-)
Detailed changes
@@ -14,17 +14,57 @@
declarator: (_) @name) @item
(declaration
- type: (_) @context
- declarator: (function_declarator
- declarator: (_) @name
- parameters: (parameter_list
- "(" @context
- ")" @context))) @item
+ (type_qualifier)? @context
+ type: (_)? @context
+ declarator: [
+ (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))
+ (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context)))
+ (pointer_declarator
+ "*" @context
+ declarator: (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))))
+ ]
+) @item
(function_definition
- type: (_) @context
- declarator: (function_declarator
- declarator: (_) @name
- parameters: (parameter_list
- "(" @context
- ")" @context))) @item
+ (type_qualifier)? @context
+ type: (_)? @context
+ declarator: [
+ (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))
+ (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context)))
+ (pointer_declarator
+ "*" @context
+ declarator: (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))))
+ ]
+) @item
@@ -51,6 +51,22 @@
parameters: (parameter_list
"(" @context
")" @context)))
+ (pointer_declarator
+ "*" @context
+ declarator: (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))))
+ (reference_declarator
+ ["&" "&&"] @context
+ (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context)))
]
(type_qualifier)? @context) @item
@@ -74,6 +90,22 @@
parameters: (parameter_list
"(" @context
")" @context)))
+ (pointer_declarator
+ "*" @context
+ declarator: (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))))
+ (reference_declarator
+ ["&" "&&"] @context
+ (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context)))
]
(type_qualifier)? @context) @item
@@ -97,5 +129,21 @@
parameters: (parameter_list
"(" @context
")" @context)))
+ (pointer_declarator
+ "*" @context
+ declarator: (pointer_declarator
+ "*" @context
+ declarator: (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context))))
+ (reference_declarator
+ ["&" "&&"] @context
+ (function_declarator
+ declarator: (_) @name
+ parameters: (parameter_list
+ "(" @context
+ ")" @context)))
]
(type_qualifier)? @context) @item