Sha256: 1b8a498793b4d372d71e4a0547e600c3756e8bba9e62deb2074b6f157bcd3154

Contents?: true

Size: 508 Bytes

Versions: 1

Compression:

Stored size: 508 Bytes

Contents

# frozen_string_literal: true

module RubyLsp
  class Document
    attr_reader :tree, :parser, :source

    def initialize(source)
      @source = source
      @parser = SyntaxTree::Parser.new(source)
      @tree = @parser.parse
      @cache = {}
    end

    def ==(other)
      @source == other.source
    end

    def cache_fetch(request_name)
      cached = @cache[request_name]
      return cached if cached

      result = yield(self)
      @cache[request_name] = result
      result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-lsp-0.0.2 lib/ruby_lsp/document.rb