From ca1eff66d7efdbc4aa5b86f2d456a92dcc1467c2 Mon Sep 17 00:00:00 2001 From: Alejandro Cardona Date: Sun, 23 Nov 2025 01:27:22 -0500 Subject: [PATCH 1/4] Add outline improvements --- languages/java/outline.scm | 141 +++++++++++++++++++++++++++++++++---- 1 file changed, 128 insertions(+), 13 deletions(-) diff --git a/languages/java/outline.scm b/languages/java/outline.scm index ffd036e..b7f24aa 100644 --- a/languages/java/outline.scm +++ b/languages/java/outline.scm @@ -10,11 +10,15 @@ "final" "strictfp" "static" - ]* @context) + ]* @context)? "class" @context name: (_) @name) @item (record_declaration + "record" @context + name: (_) @name) @item + +(interface_declaration (modifiers [ "private" @@ -23,28 +27,66 @@ "abstract" "sealed" "non-sealed" - "final" "strictfp" "static" - ]* @context) - "record" @context + ]* @context)? + "interface" @context name: (_) @name) @item -(interface_declaration +(enum_declaration (modifiers [ "private" "public" "protected" - "abstract" - "sealed" - "non-sealed" + "static" + "final" "strictfp" + ]* @context)? + "enum" @context + name: (_) @name) @item + +(annotation_type_declaration + (modifiers + [ + "private" + "public" + "protected" + "abstract" "static" - ]* @context) - "interface" @context + "strictfp" + ]* @context)? + "@interface" @context name: (_) @name) @item +(enum_constant + name: (identifier) @name) @item + +(method_declaration + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + "final" + "native" + "strictfp" + "synchronized" + ]* @context)? + type: (_) @context + name: (_) @name + parameters: (formal_parameters + "(" @context + (formal_parameter + type: (_) @context)? + ("," @context + (formal_parameter + type: (_) @context)?)* + ")" @context) + body: (_) @item) + (method_declaration (modifiers [ @@ -57,11 +99,62 @@ "native" "strictfp" "synchronized" - ]* @context) + ]* @context)? + type: (_) @context + name: (_) @name + parameters: (formal_parameters + "(" @context + (formal_parameter + type: (_) @context)? + ("," @context + (formal_parameter + type: (_) @context)?)* + ")" @context) + ";" @item) + +(constructor_declaration + (modifiers + [ + "private" + "public" + "protected" + "static" + "final" + ]* @context)? name: (_) @name parameters: (formal_parameters "(" @context - ")" @context)) @item + (formal_parameter + type: (_) @context)? + ("," @context + (formal_parameter + type: (_) @context)?)* + ")" @context) + body: (_) @item) + +(compact_constructor_declaration + (modifiers + [ + "private" + "public" + "protected" + ]* @context)? + name: (_) @name + body: (_) @item) + +(annotation_type_element_declaration + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "static" + ]* @context)? + type: (_) @context + name: (_) @name + "(" @context + ")" @context) @item (field_declaration (modifiers @@ -73,6 +166,28 @@ "final" "transient" "volatile" - ]* @context) + ]* @context)? + type: (_) @context declarator: (variable_declarator name: (_) @name)) @item + +(constant_declaration + (modifiers + [ + "public" + "static" + "final" + ]* @context)? + type: (_) @context + declarator: (variable_declarator + name: (_) @name)) @item + +(static_initializer + "static" @context + (block) @item) + +(record_declaration + (formal_parameters + (formal_parameter + type: (_) @context + name: (_) @name @item))) From 27da451deaddfc717d452606d6431977cdb65104 Mon Sep 17 00:00:00 2001 From: Alejandro Cardona Date: Sun, 23 Nov 2025 10:15:03 -0500 Subject: [PATCH 2/4] Fix sticky scroll showing only annotation for annotation types --- languages/java/outline.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/languages/java/outline.scm b/languages/java/outline.scm index b7f24aa..4a00807 100644 --- a/languages/java/outline.scm +++ b/languages/java/outline.scm @@ -57,7 +57,8 @@ "strictfp" ]* @context)? "@interface" @context - name: (_) @name) @item + name: (_) @name + body: (_) @item) (enum_constant name: (identifier) @name) @item From 54895091d96c595ae464bc4ee49ce71f94a1c9aa Mon Sep 17 00:00:00 2001 From: Alejandro Cardona Date: Sun, 23 Nov 2025 12:07:34 -0500 Subject: [PATCH 3/4] Fix sticky scroll showing only annotation for classes, interfaces, enums, and records --- languages/java/outline.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/languages/java/outline.scm b/languages/java/outline.scm index 4a00807..f77a149 100644 --- a/languages/java/outline.scm +++ b/languages/java/outline.scm @@ -12,11 +12,13 @@ "static" ]* @context)? "class" @context - name: (_) @name) @item + name: (_) @name + body: (_) @item) (record_declaration "record" @context - name: (_) @name) @item + name: (_) @name + body: (_) @item) (interface_declaration (modifiers @@ -31,7 +33,8 @@ "static" ]* @context)? "interface" @context - name: (_) @name) @item + name: (_) @name + body: (_) @item) (enum_declaration (modifiers @@ -44,7 +47,8 @@ "strictfp" ]* @context)? "enum" @context - name: (_) @name) @item + name: (_) @name + body: (_) @item) (annotation_type_declaration (modifiers From bbf2bed49054140042b093b4c0b55e3b14074a6b Mon Sep 17 00:00:00 2001 From: Alejandro Cardona Date: Sun, 23 Nov 2025 14:03:34 -0500 Subject: [PATCH 4/4] Fix modifiers not appearing in the outline for the record declaration --- languages/java/outline.scm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/languages/java/outline.scm b/languages/java/outline.scm index f77a149..59a07e2 100644 --- a/languages/java/outline.scm +++ b/languages/java/outline.scm @@ -16,6 +16,18 @@ body: (_) @item) (record_declaration + (modifiers + [ + "private" + "public" + "protected" + "abstract" + "sealed" + "non-sealed" + "final" + "strictfp" + "static" + ]* @context)? "record" @context name: (_) @name body: (_) @item) @@ -192,7 +204,7 @@ (block) @item) (record_declaration - (formal_parameters + parameters: (formal_parameters (formal_parameter type: (_) @context - name: (_) @name @item))) + name: (_) @name) @item))