class LsifParser::Docs
Processes and stores documents data and links to their ranges
Constants
- PREFIX
Attributes
doc_ranges[R]
docs[R]
prefix[R]
ranges[R]
Public Class Methods
new(prefix)
click to toggle source
# File lib/lsif_parser/docs.rb, line 10 def initialize(prefix) @prefix = prefix.delete_prefix('/') @docs = {} @doc_ranges = {} @ranges = Ranges.new end
Public Instance Methods
each() { |id, path| ... }
click to toggle source
# File lib/lsif_parser/docs.rb, line 28 def each docs.each do |id, path| next if path.start_with?(PREFIX) yield id, path end end
find(id)
click to toggle source
# File lib/lsif_parser/docs.rb, line 36 def find(id) @docs[id] end
read(line)
click to toggle source
# File lib/lsif_parser/docs.rb, line 17 def read(line) case line['label'] when 'document' add(line) when 'contains' add_ranges(line) else @ranges.read(line) end end
Private Instance Methods
add(line)
click to toggle source
# File lib/lsif_parser/docs.rb, line 42 def add(line) id = line['id'] url = line['uri'] docs[id] = url .delete_prefix("#{PREFIX}/#{prefix}") .delete_prefix('/') end
add_ranges(line)
click to toggle source
# File lib/lsif_parser/docs.rb, line 52 def add_ranges(line) @doc_ranges[line['outV']] = line['inVs'] end