@@ -18,7 +18,7 @@ class CodeLens < ::RubyLsp::Listener
1818 def initialize ( uri , emitter , message_queue )
1919 @_response = T . let ( [ ] , ResponseType )
2020 @path = T . let ( uri . to_standardized_path , T . nilable ( String ) )
21- emitter . register ( self , :on_command , :on_command_call , : on_call)
21+ emitter . register ( self , :on_call )
2222
2323 @base_command = T . let (
2424 begin
@@ -40,81 +40,43 @@ def initialize(uri, emitter, message_queue)
4040 super ( emitter , message_queue )
4141 end
4242
43- sig { params ( node : SyntaxTree ::CallNode ) . void }
43+ sig { params ( node : YARP ::CallNode ) . void }
4444 def on_call ( node )
45- add_group_code_lens ( node )
46- end
47-
48- sig { params ( node : SyntaxTree ::CommandCall ) . void }
49- def on_command_call ( node )
50- add_group_code_lens ( node )
51- end
52-
53- sig { params ( node : SyntaxTree ::Command ) . void }
54- def on_command ( node )
55- message_value = node . message . value
45+ message_value = node . message
5646 if message_value == "it"
57- argument = node . arguments . parts . first
58-
59- name = case argument
60- when SyntaxTree ::StringLiteral
61- argument . parts . first . value
62- when SyntaxTree ::VarRef
63- argument . value . value
64- end
65-
47+ name = generate_name ( node )
6648 add_test_code_lens ( node , name : name , kind : :example )
6749 elsif message_value == "describe" || message_value == "context"
68- add_group_code_lens ( node )
69- end
70- end
71-
72- private
50+ return if node . receiver && node . receiver . name . to_s != "RSpec"
7351
74- sig do
75- params ( node : T . any (
76- SyntaxTree ::StringLiteral ,
77- SyntaxTree ::ConstPathRef ,
78- SyntaxTree ::ConstRef ,
79- SyntaxTree ::TopConstRef ,
80- SyntaxTree ::VarRef ,
81- ) ) . returns ( T . nilable ( String ) )
82- end
83- def get_group_name ( node )
84- case node
85- when SyntaxTree ::StringLiteral
86- node . parts . first . value
87- when SyntaxTree ::ConstPathRef , SyntaxTree ::ConstRef , SyntaxTree ::TopConstRef
88- full_constant_name ( node )
89- when SyntaxTree ::VarRef
90- node . value . value
52+ name = generate_name ( node )
53+ add_test_code_lens ( node , name : name , kind : :group )
9154 end
9255 end
9356
94- sig { params ( node : T . any ( SyntaxTree ::CallNode , SyntaxTree ::CommandCall , SyntaxTree ::Command ) ) . void }
95- def add_group_code_lens ( node )
96- return unless node . message . value == "describe" || node . message . value == "context"
97-
98- case node
99- when SyntaxTree ::CommandCall , SyntaxTree ::CallNode
100- return if node . receiver && node . receiver . value . value != "RSpec"
101- end
102-
103- argument = case node
104- when SyntaxTree ::CallNode
105- node . arguments . arguments . parts . first
106- when SyntaxTree ::CommandCall , SyntaxTree ::Command
107- node . arguments . parts . first
57+ sig { params ( node : YARP ::CallNode ) . returns ( String ) }
58+ def generate_name ( node )
59+ if node . arguments
60+ argument = node . arguments . arguments . first
61+
62+ case argument
63+ when YARP ::StringNode
64+ argument . content
65+ when YARP ::CallNode
66+ "<#{ argument . name } >"
67+ when nil
68+ ""
69+ else
70+ argument . slice
71+ end
72+ else
73+ "<unnamed>"
10874 end
109-
110- name = get_group_name ( argument )
111-
112- return unless name
113-
114- add_test_code_lens ( node , name : name , kind : :group )
11575 end
11676
117- sig { params ( node : SyntaxTree ::Node , name : String , kind : Symbol ) . void }
77+ private
78+
79+ sig { params ( node : YARP ::Node , name : String , kind : Symbol ) . void }
11880 def add_test_code_lens ( node , name :, kind :)
11981 return unless @path
12082
0 commit comments