ruby-lsp-rspec 0.1.2 → 0.1.4
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 +4 -4
- data/README.md +1 -1
- data/lib/ruby-lsp-rspec.rb +1 -1
- data/lib/ruby_lsp/ruby_lsp_rspec/{extension.rb → addon.rb} +3 -3
- data/lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb +31 -69
- data/lib/ruby_lsp_rspec/version.rb +1 -1
- metadata +7 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: '069b0b51df97131fda2b2f12ae5c60b121e137264ebfed035f7598109b6736d6'
         | 
| 4 | 
            +
              data.tar.gz: ef08e13d94031ddb243085a85f24cf53ec57d67bcd32ef2feeae44c7c6e672a7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9f09130b66123ed6d61f9857e7da3bcc575d5b154b53b331c77dfd0a578c46b5bb92276e53778b0148500986190da677efb2afea20804732b58e687f4933ddfa
         | 
| 7 | 
            +
              data.tar.gz: 6b33d00c07a2ec17fc3fc9c77f6efcb3fda86481b40357f32e7cb5b9f045a6928c47ec2bc0d2d0781f11de9156cc72cf881b6f06f6179d5174d0b3204387b1e5
         | 
    
        data/README.md
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            [](https://badge.fury.io/rb/ruby-lsp-rspec)
         | 
| 4 4 |  | 
| 5 | 
            -
            Ruby LSP RSpec is a [Ruby LSP](https://github.com/Shopify/ruby-lsp)  | 
| 5 | 
            +
            Ruby LSP RSpec is a [Ruby LSP](https://github.com/Shopify/ruby-lsp) addon for displaying CodeLens for RSpec tests.
         | 
| 6 6 |  | 
| 7 7 | 
             
            
         | 
| 8 8 |  | 
    
        data/lib/ruby-lsp-rspec.rb
    CHANGED
    
    
| @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            # typed: strict
         | 
| 2 2 | 
             
            # frozen_string_literal: true
         | 
| 3 3 |  | 
| 4 | 
            -
            require "ruby_lsp/ | 
| 4 | 
            +
            require "ruby_lsp/addon"
         | 
| 5 5 | 
             
            require "ruby_lsp/internal"
         | 
| 6 6 |  | 
| 7 7 | 
             
            require_relative "code_lens"
         | 
| 8 8 |  | 
| 9 9 | 
             
            module RubyLsp
         | 
| 10 10 | 
             
              module RSpec
         | 
| 11 | 
            -
                class  | 
| 11 | 
            +
                class Addon < ::RubyLsp::Addon
         | 
| 12 12 | 
             
                  extend T::Sig
         | 
| 13 13 |  | 
| 14 14 | 
             
                  sig { override.void }
         | 
| @@ -21,7 +21,7 @@ module RubyLsp | |
| 21 21 | 
             
                  sig do
         | 
| 22 22 | 
             
                    override.params(
         | 
| 23 23 | 
             
                      uri: URI::Generic,
         | 
| 24 | 
            -
                      emitter:  | 
| 24 | 
            +
                      emitter: Prism::Dispatcher,
         | 
| 25 25 | 
             
                      message_queue: Thread::Queue,
         | 
| 26 26 | 
             
                    ).returns(T.nilable(Listener[T::Array[Interface::CodeLens]]))
         | 
| 27 27 | 
             
                  end
         | 
| @@ -14,11 +14,11 @@ module RubyLsp | |
| 14 14 | 
             
                  sig { override.returns(ResponseType) }
         | 
| 15 15 | 
             
                  attr_reader :_response
         | 
| 16 16 |  | 
| 17 | 
            -
                  sig { params(uri: URI::Generic,  | 
| 18 | 
            -
                  def initialize(uri,  | 
| 17 | 
            +
                  sig { params(uri: URI::Generic, dispatcher: Prism::Dispatcher, message_queue: Thread::Queue).void }
         | 
| 18 | 
            +
                  def initialize(uri, dispatcher, message_queue)
         | 
| 19 19 | 
             
                    @_response = T.let([], ResponseType)
         | 
| 20 20 | 
             
                    @path = T.let(uri.to_standardized_path, T.nilable(String))
         | 
| 21 | 
            -
                     | 
| 21 | 
            +
                    dispatcher.register(self, :on_call_node_enter)
         | 
| 22 22 |  | 
| 23 23 | 
             
                    @base_command = T.let(
         | 
| 24 24 | 
             
                      begin
         | 
| @@ -37,84 +37,46 @@ module RubyLsp | |
| 37 37 | 
             
                      String,
         | 
| 38 38 | 
             
                    )
         | 
| 39 39 |  | 
| 40 | 
            -
                    super( | 
| 40 | 
            +
                    super(dispatcher, message_queue)
         | 
| 41 41 | 
             
                  end
         | 
| 42 42 |  | 
| 43 | 
            -
                  sig { params(node:  | 
| 44 | 
            -
                  def  | 
| 45 | 
            -
                     | 
| 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
         | 
| 43 | 
            +
                  sig { params(node: Prism::CallNode).void }
         | 
| 44 | 
            +
                  def on_call_node_enter(node)
         | 
| 45 | 
            +
                    message_value = node.message
         | 
| 56 46 | 
             
                    if message_value == "it"
         | 
| 57 | 
            -
                       | 
| 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)
         | 
| 66 48 | 
             
                      add_test_code_lens(node, name: name, kind: :example)
         | 
| 67 49 | 
             
                    elsif message_value == "describe" || message_value == "context"
         | 
| 68 | 
            -
                       | 
| 69 | 
            -
                    end
         | 
| 70 | 
            -
                  end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                  private
         | 
| 50 | 
            +
                      return if node.receiver && node.receiver.name.to_s != "RSpec"
         | 
| 73 51 |  | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 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)
         | 
| 91 54 | 
             
                    end
         | 
| 92 55 | 
             
                  end
         | 
| 93 56 |  | 
| 94 | 
            -
                  sig { params(node:  | 
| 95 | 
            -
                  def  | 
| 96 | 
            -
                     | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 100 | 
            -
                       | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 104 | 
            -
             | 
| 105 | 
            -
             | 
| 106 | 
            -
             | 
| 107 | 
            -
             | 
| 57 | 
            +
                  sig { params(node: Prism::CallNode).returns(String) }
         | 
| 58 | 
            +
                  def generate_name(node)
         | 
| 59 | 
            +
                    if node.arguments
         | 
| 60 | 
            +
                      argument = node.arguments.arguments.first
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                      case argument
         | 
| 63 | 
            +
                      when Prism::StringNode
         | 
| 64 | 
            +
                        argument.content
         | 
| 65 | 
            +
                      when Prism::CallNode
         | 
| 66 | 
            +
                        "<#{argument.name}>"
         | 
| 67 | 
            +
                      when nil
         | 
| 68 | 
            +
                        ""
         | 
| 69 | 
            +
                      else
         | 
| 70 | 
            +
                        argument.slice
         | 
| 71 | 
            +
                      end
         | 
| 72 | 
            +
                    else
         | 
| 73 | 
            +
                      "<unnamed>"
         | 
| 108 74 | 
             
                    end
         | 
| 109 | 
            -
             | 
| 110 | 
            -
                    name = get_group_name(argument)
         | 
| 111 | 
            -
             | 
| 112 | 
            -
                    return unless name
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                    add_test_code_lens(node, name: name, kind: :group)
         | 
| 115 75 | 
             
                  end
         | 
| 116 76 |  | 
| 117 | 
            -
                   | 
| 77 | 
            +
                  private
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                  sig { params(node: Prism::Node, name: String, kind: Symbol).void }
         | 
| 118 80 | 
             
                  def add_test_code_lens(node, name:, kind:)
         | 
| 119 81 | 
             
                    return unless @path
         | 
| 120 82 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ruby-lsp-rspec
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Stan Lo
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023- | 
| 11 | 
            +
            date: 2023-10-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: ruby-lsp
         | 
| @@ -16,15 +16,15 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 0. | 
| 19 | 
            +
                    version: 0.12.0
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 0. | 
| 27 | 
            -
            description: RSpec  | 
| 26 | 
            +
                    version: 0.12.0
         | 
| 27 | 
            +
            description: RSpec addon for ruby-lsp
         | 
| 28 28 | 
             
            email:
         | 
| 29 29 | 
             
            - stan001212@gmail.com
         | 
| 30 30 | 
             
            executables: []
         | 
| @@ -39,8 +39,8 @@ files: | |
| 39 39 | 
             
            - README.md
         | 
| 40 40 | 
             
            - Rakefile
         | 
| 41 41 | 
             
            - lib/ruby-lsp-rspec.rb
         | 
| 42 | 
            +
            - lib/ruby_lsp/ruby_lsp_rspec/addon.rb
         | 
| 42 43 | 
             
            - lib/ruby_lsp/ruby_lsp_rspec/code_lens.rb
         | 
| 43 | 
            -
            - lib/ruby_lsp/ruby_lsp_rspec/extension.rb
         | 
| 44 44 | 
             
            - lib/ruby_lsp_rspec/version.rb
         | 
| 45 45 | 
             
            homepage: https://github.com/st0012/ruby-lsp-rspec
         | 
| 46 46 | 
             
            licenses:
         | 
| @@ -67,5 +67,5 @@ requirements: [] | |
| 67 67 | 
             
            rubygems_version: 3.4.10
         | 
| 68 68 | 
             
            signing_key:
         | 
| 69 69 | 
             
            specification_version: 4
         | 
| 70 | 
            -
            summary: RSpec  | 
| 70 | 
            +
            summary: RSpec addon for ruby-lsp
         | 
| 71 71 | 
             
            test_files: []
         |