Class: RBS::Buffer
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/rbs/buffer.rb |
Class Method Summary
- .new(name:, content:) ⇒ Buffer constructor
Instance Attribute Summary
Instance Method Summary
Constructor Details
.new(name:, content:) ⇒ Buffer
Instance Attribute Details
#content (readonly)
[ GitHub ]# File 'lib/rbs/buffer.rb', line 6
attr_reader :content
#name (readonly)
[ GitHub ]# File 'lib/rbs/buffer.rb', line 5
attr_reader :name
Instance Method Details
#inspect
[ GitHub ]#last_position
[ GitHub ]# File 'lib/rbs/buffer.rb', line 59
def last_position content.size end
#lines
[ GitHub ]# File 'lib/rbs/buffer.rb', line 13
def lines @lines ||= content.lines end
#loc_to_pos(loc)
[ GitHub ]# File 'lib/rbs/buffer.rb', line 49
def loc_to_pos(loc) line, column = loc if range = ranges[line - 1] range.begin + column else last_position end end
#pos_to_loc(pos)
[ GitHub ]#ranges
[ GitHub ]# File 'lib/rbs/buffer.rb', line 17
def ranges @ranges ||= begin @ranges = [] offset = 0 lines.each do |line| size = line.size range = offset...(offset+size) @ranges << range offset += size end if !content.end_with?("\n") && content.size > 0 @ranges[-1] = @ranges[-1].begin...(@ranges[-1].end+1) end @ranges end end