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.



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

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.



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

def end_line
  @end_line
end

#kindObject (readonly)

Returns the value of attribute kind.



102
103
104
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 102

def kind
  @kind
end

Class Method Details

.from(node, kind) ⇒ Object



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

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

Instance Method Details

#extend_to(node) ⇒ Object



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

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

#new_section?(node) ⇒ Boolean

Returns:

  • (Boolean)


126
127
128
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 126

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

#to_rangeObject



131
132
133
134
135
136
137
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 131

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