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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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