ruby-lsp-fabrication 0.2.1 → 0.3.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: 940ac09ae1e963c0a53c69c1d5a947e492b01c7cd78e8b4986a6c7d365262a50
4
- data.tar.gz: d8edbb7d5fcb57d98aa4a74f8dcde6ddf30a610b1076720e20cc3f346ebf8b59
3
+ metadata.gz: 6dfcaaeba451c5437a79bb927dd6c817c73757112a4168dd4b7d049f48100a71
4
+ data.tar.gz: d4dc18ec2ffdd331f642c4283c8e27d8f83843fd052539ead712edb31ec6d431
5
5
  SHA512:
6
- metadata.gz: 5f2dc494a04ccc2b94ef8292e098e6879109d0606013337060dfb95ee2a3b6a5a43c42baf5793d6dce4a9feb8cd582841f15550ee622708e5f7a8cbcf44f1813
7
- data.tar.gz: be1ac796a6168610f01b878376217b27f2dcea51503a351b99ff4838494b0bc9481cd94847c33a76cfcbb982ac424ce05c10317bd906db2b30b0e13c7515e10a
6
+ metadata.gz: 91abb3ec38b1bef86f7d0367dcea20d5567ec5e5285d81dd8b428ec66b97716dbf70abc8fb352eec4d754214553c15e671f318ee1cb40636fe128e56fdcdafa3
7
+ data.tar.gz: 6aae1b41682d74aa96db2e00c3296ddad751cd33734e90f7715a4d9f31ad30b58fe70752e2869f6a5df02192aae2283ae87779c4e5e7d011321471d638545fc4
data/.rubocop.yml CHANGED
@@ -1,3 +1,6 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.0
3
+
1
4
  Style/Documentation:
2
5
  Enabled: false
3
6
 
@@ -10,7 +10,7 @@ require_relative 'definition'
10
10
  module RubyLsp
11
11
  module Fabrication
12
12
  class Addon < ::RubyLsp::Addon
13
- def activate(global_state, message_queue)
13
+ def activate(global_state, _message_queue)
14
14
  @index = global_state.index
15
15
  @index.register_enhancement(IndexingEnhancement.new)
16
16
  end
@@ -10,13 +10,29 @@ module RubyLsp
10
10
  @uri = uri
11
11
  @node_context = node_context
12
12
  @index = index
13
- dispatcher.register(self, :on_call_node_enter)
13
+ dispatcher.register(self, :on_symbol_node_enter)
14
14
  end
15
15
 
16
- def on_call_node_enter(node)
17
- return unless node.message == 'Fabricate'
16
+ def on_symbol_node_enter(node)
17
+ if @node_context.call_node.message == 'Fabricator' && inherited?(node)
18
+ entries = @index["#{node.value}Fabricator"]
18
19
 
19
- fabricator_name = generate_fabricator_name(node)
20
+ return if entries.blank? || entries.empty?
21
+
22
+ entries.each do |entry|
23
+ @response_builder << Interface::LocationLink.new(
24
+ target_uri: URI::Generic.from_path(path: entry.file_path).to_s,
25
+ target_range: range_from_location(entry.location),
26
+ target_selection_range: range_from_location(entry.name_location)
27
+ )
28
+ end
29
+
30
+ return
31
+ end
32
+
33
+ return unless @node_context.call_node.message == 'Fabricate'
34
+
35
+ fabricator_name = generate_fabricator_name(@node_context.call_node)
20
36
  entries = @index[fabricator_name]
21
37
  return if entries.blank? || entries.empty?
22
38
 
@@ -29,6 +45,21 @@ module RubyLsp
29
45
  end
30
46
  end
31
47
 
48
+ def inherited?(node)
49
+ @node_context.parent.compact_child_nodes.first.compact_child_nodes.each do |n|
50
+ next unless n.type == :keyword_hash_node
51
+
52
+ first_child = n.compact_child_nodes.first
53
+ next unless first_child.type == :assoc_node
54
+ next unless first_child.key.value == 'from'
55
+ next unless first_child.value.value == node.value
56
+
57
+ return true
58
+ end
59
+
60
+ false
61
+ end
62
+
32
63
  def generate_fabricator_name(node)
33
64
  arguments = node.compact_child_nodes.first
34
65
  name = arguments.compact_child_nodes.first.value
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyLsp
4
4
  module Fabrication
5
- VERSION = '0.2.1'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-fabrication
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isaac McAuley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-20 00:00:00.000000000 Z
11
+ date: 2024-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-lsp
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
- rubygems_version: 3.3.26
64
+ rubygems_version: 3.5.16
65
65
  signing_key:
66
66
  specification_version: 4
67
67
  summary: Ruby LSP Addon for Fabrication support