Sha256: 33563f9b90b20867bfe059919da9756e34852b16fd42f44a69340643638b50a6

Contents?: true

Size: 1.22 KB

Versions: 4

Compression:

Stored size: 1.22 KB

Contents

# typed: strict
# frozen_string_literal: true

module RubyIndexer
  class Enhancement
    extend T::Sig
    extend T::Helpers

    abstract!

    sig { params(index: Index).void }
    def initialize(index)
      @index = index
    end

    # The `on_extend` indexing enhancement is invoked whenever an extend is encountered in the code. It can be used to
    # register for an included callback, similar to what `ActiveSupport::Concern` does in order to auto-extend the
    # `ClassMethods` modules
    sig do
      overridable.params(
        owner: T.nilable(Entry::Namespace),
        node: Prism::CallNode,
        file_path: String,
        code_units_cache: T.any(
          T.proc.params(arg0: Integer).returns(Integer),
          Prism::CodeUnitsCache,
        ),
      ).void
    end
    def on_call_node_enter(owner, node, file_path, code_units_cache); end

    sig do
      overridable.params(
        owner: T.nilable(Entry::Namespace),
        node: Prism::CallNode,
        file_path: String,
        code_units_cache: T.any(
          T.proc.params(arg0: Integer).returns(Integer),
          Prism::CodeUnitsCache,
        ),
      ).void
    end
    def on_call_node_leave(owner, node, file_path, code_units_cache); end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-lsp-0.21.3 lib/ruby_indexer/lib/ruby_indexer/enhancement.rb
ruby-lsp-0.21.2 lib/ruby_indexer/lib/ruby_indexer/enhancement.rb
ruby-lsp-0.21.1 lib/ruby_indexer/lib/ruby_indexer/enhancement.rb
ruby-lsp-0.21.0 lib/ruby_indexer/lib/ruby_indexer/enhancement.rb