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

Inherits:
Object
  • Object
show all
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



89
90
91
92
93
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 89

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.



83
84
85
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 83

def end_line
  @end_line
end

#kindObject (readonly)

Returns the value of attribute kind.



83
84
85
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 83

def kind
  @kind
end

Class Method Details

.from(node, kind) ⇒ Object



85
86
87
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 85

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



95
96
97
98
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 95

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

#new_section?(node) ⇒ Boolean



100
101
102
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 100

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

#to_rangeObject



104
105
106
107
108
109
110
# File 'lib/ruby_lsp/requests/folding_ranges.rb', line 104

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