Class: RubyLsp::Store

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/ruby_lsp/store.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStore

Returns a new instance of Store.



16
17
18
19
# File 'lib/ruby_lsp/store.rb', line 16

def initialize
  @state = T.let({}, T::Hash[String, Document])
  @encoding = T.let("utf-8", String)
end

Instance Attribute Details

#encoding=(value) ⇒ Object (writeonly)

Sets the attribute encoding

Parameters:

  • value

    the value to set the attribute encoding to.



13
14
15
# File 'lib/ruby_lsp/store.rb', line 13

def encoding=(value)
  @encoding = value
end

Instance Method Details

#cache_fetch(uri, request_name, &block) ⇒ Object



64
65
66
# File 'lib/ruby_lsp/store.rb', line 64

def cache_fetch(uri, request_name, &block)
  get(uri).cache_fetch(request_name, &block)
end

#clearObject



42
43
44
# File 'lib/ruby_lsp/store.rb', line 42

def clear
  @state.clear
end

#delete(uri) ⇒ Object



52
53
54
# File 'lib/ruby_lsp/store.rb', line 52

def delete(uri)
  @state.delete(uri)
end

#empty?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/ruby_lsp/store.rb', line 47

def empty?
  @state.empty?
end

#get(uri) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/ruby_lsp/store.rb', line 22

def get(uri)
  document = @state[uri]
  return document unless document.nil?

  set(uri, File.binread(CGI.unescape(URI.parse(uri).path)))
  T.must(@state[uri])
end

#push_edits(uri, edits) ⇒ Object



37
38
39
# File 'lib/ruby_lsp/store.rb', line 37

def push_edits(uri, edits)
  T.must(@state[uri]).push_edits(edits)
end

#set(uri, content) ⇒ Object



31
32
33
34
# File 'lib/ruby_lsp/store.rb', line 31

def set(uri, content)
  document = Document.new(content, @encoding)
  @state[uri] = document
end