ruby-lsp-rails-factory-bot 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01d1b4f936612100587a05ace6ca2c46fd654484c7d1125245e3c3afd7ce2fb2
4
- data.tar.gz: cd15946860a27dbaa31ba14b8f429c5afb7f4bd21a9eeb1aca0f01411006bebf
3
+ metadata.gz: 36e804a6875a0e627b7723e82840cbd502cc7dd4d352a740e9d7917379a2929a
4
+ data.tar.gz: e87ef45262a4740710ceae3229b7f681faaf002987d5a611f355e80a4e883378
5
5
  SHA512:
6
- metadata.gz: e09bd8301b1003c30ba6efdba15c6c945f4f0ca0adbda81e8f290bcf4a0dff480c1c482e28499a5477d80a656a358018788a6a5022441da8698c940272089e2c
7
- data.tar.gz: 3b145ca533d21b291cd545dde273f4c6f333ea255beca536c01f44e488b02a813d4beab114a4d4269b3c0add785b020df3cc875777d28183b2f338a7005a38df
6
+ metadata.gz: a60ac6a177b638d4ecb930c2ccb0c0f59f1d457b421ebdcd6b64f55efe26aa179d8de68b80498b7701929c34a357410bc1e0d195835b51dc95312834648790ce
7
+ data.tar.gz: aa3ea96af8da24ef905db823967fac046a2a6900bb1f39033d8cbd20a5e284003df43669272ad48ff9eec49c5a433be534145d0855171d4423443114a9b2cc02
@@ -32,13 +32,8 @@ module RubyLsp
32
32
  Completion.new(response_builder, node_context, dispatcher, runner_client)
33
33
  end
34
34
 
35
- # TODO: need URI param to be able to filter by file name
36
35
  def create_hover_listener(response_builder, node_context, dispatcher)
37
- unless @addon_registered
38
- register_addon!
39
- return
40
- end
41
-
36
+ register_addon!
42
37
  Hover.new(response_builder, node_context, dispatcher, runner_client, @ruby_index)
43
38
  end
44
39
 
@@ -43,8 +43,12 @@ module RubyLsp
43
43
  in [^symbol_node, *]
44
44
  handle_factory(symbol_node)
45
45
  in [Prism::SymbolNode => _factory_node, *, ^symbol_node] |
46
+ [Prism::SymbolNode => _factory_node, *, ^symbol_node, Prism::KeywordHashNode] |
47
+ [Prism::SymbolNode => _factory_node, *, ^symbol_node, Prism::HashNode] |
46
48
  [Prism::SymbolNode => _factory_node, ^symbol_node, *] |
47
- [Prism::SymbolNode => _factory_node, Integer, ^symbol_node, *]
49
+ [Prism::SymbolNode => _factory_node, Prism::IntegerNode, ^symbol_node, *] |
50
+ [Prism::SymbolNode => _factory_node, Prism::IntegerNode, *, ^symbol_node, Prism::KeywordHashNode] |
51
+ [Prism::SymbolNode => _factory_node, Prism::IntegerNode, *, ^symbol_node, Prism::HashNode]
48
52
 
49
53
  handle_trait(symbol_node, _factory_node)
50
54
 
@@ -88,6 +92,11 @@ module RubyLsp
88
92
  @response_builder.push(hint, category: :documentation)
89
93
  end
90
94
 
95
+ def trait_tooltip(trait, factory_name)
96
+ source = trait[:source]&.length&.positive? ? trait[:source] : nil
97
+ source || "#{trait[:name]} (trait of #{trait[:owner] || factory_name})"
98
+ end
99
+
91
100
  def handle_trait(symbol_node, factory_node)
92
101
  factory_name = factory_node.value.to_s
93
102
  trait_name = symbol_node.value.to_s
@@ -98,10 +107,7 @@ module RubyLsp
98
107
 
99
108
  return unless trait
100
109
 
101
- @response_builder.push(
102
- "#{trait[:name]} (trait of #{trait[:owner] || factory_name})",
103
- category: :documentation,
104
- )
110
+ @response_builder.push(trait_tooltip(trait, factory_name), category: :documentation)
105
111
  end
106
112
 
107
113
  def make_request(request_name, **params)
@@ -3,7 +3,7 @@
3
3
  module RubyLsp
4
4
  module Rails
5
5
  module FactoryBot
6
- VERSION = "0.3.0"
6
+ VERSION = "0.4.0"
7
7
  REQUIRED_RUBY_LSP_RAILS_VERSION = "~> 0.4"
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rails-factory-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - johansenja