From 8bf5730e35f8e0e20bd1d9c6a182b774294f674d Mon Sep 17 00:00:00 2001 From: Joel Drapper Date: Mon, 30 Jun 2025 17:26:37 +0100 Subject: [PATCH] Support Rake outlines Add support for rake tasks and namespaces in the outline. --- languages/ruby/outline.scm | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/languages/ruby/outline.scm b/languages/ruby/outline.scm index bd2691e..4ff1396 100644 --- a/languages/ruby/outline.scm +++ b/languages/ruby/outline.scm @@ -239,3 +239,77 @@ ) ) ) + +; Root rake namespace +(program + (call + method: (identifier) @namespace @name (#any-of? @namespace "namespace") + arguments: (argument_list . [ + (string) @name + (simple_symbol) @name + ] + ) + ) @item +) + +; Nested rake namespace +(call + method: (identifier) @parent_namespace (#any-of? @parent_namespace "namespace") + arguments: (argument_list . [ + (string) + (simple_symbol) + ]+ + ) + block: (_ + (_ + (call + method: (identifier) @namespace @name (#any-of? @namespace "namespace") + arguments: (argument_list . [ + (string) @name + (simple_symbol) @name + ] + ) + ) @item + ) + ) +) + +; Root rake task +(program + (call + method: (identifier) @task @name (#any-of? @task "task") + arguments: (argument_list . [ + (string) @name + (simple_symbol) @name + (pair + key: (hash_key_symbol) @name + ) + ] + ) + ) @item +) + +; Nested rake task +(call + method: (identifier) @namespace (#any-of? @namespace "namespace") + arguments: (argument_list . [ + (string) + (simple_symbol) + ]+ + ) + block: (_ + (_ + (call + method: (identifier) @task @name (#any-of? @task "task") + arguments: (argument_list . [ + (string) @name + (simple_symbol) @name + (pair + key: (hash_key_symbol) @name + ) + ] + ) + ) @item + ) + ) +)