Class: RubyLsp::Requests::FoldingRanges::PartialRange

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_line, end_line, kind) ⇒ PartialRange

Returns a new instance of PartialRange.



121
122
123
124
125
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 121

def initialize(start_line, end_line, kind)
  @start_line = start_line
  @end_line = end_line
  @kind = kind
end

Instance Attribute Details

#end_lineObject (readonly)

Returns the value of attribute end_line.



109
110
111
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 109

def end_line
  @end_line
end

#kindObject (readonly)

Returns the value of attribute kind.



106
107
108
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 106

def kind
  @kind
end

Class Method Details

.from(node, kind) ⇒ Object



115
116
117
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 115

def from(node, kind)
  new(node.location.start_line - 1, node.location.end_line - 1, kind)
end

Instance Method Details

#extend_to(node) ⇒ Object



128
129
130
131
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 128

def extend_to(node)
  @end_line = node.location.end_line - 1
  self
end

#multiline?Boolean

Returns:

  • (Boolean)


148
149
150
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 148

def multiline?
  @end_line > @start_line
end

#new_section?(node) ⇒ Boolean

Returns:

  • (Boolean)


134
135
136
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 134

def new_section?(node)
  node.is_a?(SyntaxTree::Comment) && @end_line + 1 != node.location.start_line - 1
end

#to_rangeObject



139
140
141
142
143
144
145
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 139

def to_range
  LanguageServer::Protocol::Interface::FoldingRange.new(
    start_line: @start_line,
    end_line: @end_line,
    kind: @kind,
  )
end