class RubyLsp::Requests::FoldingRanges

“‘
end # <– folding range end
puts “Hello”
def say_hello # <– folding range start
“`ruby
# Example
request informs the editor of the ranges where and how code can be folded.
The [folding ranges](microsoft.github.io/language-server-protocol/specification#textDocument_foldingRange)
![Folding ranges demo](../../folding_ranges.gif)

def initialize(comments, dispatcher)

def initialize(comments, dispatcher)
  super()
  @response_builder = T.let(
    ResponseBuilders::CollectionResponseBuilder[Interface::FoldingRange].new,
    ResponseBuilders::CollectionResponseBuilder[Interface::FoldingRange],
  )
  @listener = T.let(
    Listeners::FoldingRanges.new(@response_builder, comments, dispatcher),
    Listeners::FoldingRanges,
  )
end

def perform

def perform
  @listener.finalize_response!
  @response_builder.response
end

def provider

def provider
  Interface::FoldingRangeClientCapabilities.new(line_folding_only: true)
end