Skip to content

Commit adfa58c

Browse files
Add scope to list of symbols
Fixes #311
1 parent e7f10ea commit adfa58c

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

lib/ruby_lsp/ruby_lsp_rails/document_symbol.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def on_call_node_enter(node)
4242

4343
message = node.message
4444
case message
45-
when *Support::Callbacks::ALL, "validate"
45+
when *Support::Callbacks::ALL, "validate", "scope"
4646
handle_all_arg_types(node, T.must(message))
4747
when "validates", "validates!", "validates_each", "belongs_to", "has_one", "has_many",
4848
"has_and_belongs_to_many", "attr_readonly"

test/ruby_lsp_rails/document_symbol_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,20 @@ class FooModel < ApplicationRecord
168168
assert_equal("attr_readonly :foo", response[0].children[0].name)
169169
end
170170

171+
test "correctly handles scope" do
172+
response = generate_document_symbols_for_source(<<~RUBY)
173+
class FooModel < ApplicationRecord
174+
scope :foo, ->{ where(a: 1).order(:b) }
175+
end
176+
RUBY
177+
178+
assert_equal(1, response.size)
179+
assert_equal("FooModel", response[0].name)
180+
assert_equal(2, response[0].children.size)
181+
assert_equal("scope :foo", response[0].children[0].name)
182+
assert_equal("scope <anonymous>", response[0].children[1].name)
183+
end
184+
171185
test "correctly handles model callbacks with multiple string arguments" do
172186
response = generate_document_symbols_for_source(<<~RUBY)
173187
class FooModel < ApplicationRecord

0 commit comments

Comments
 (0)