class RubyLsp::RBSDocument

: [ParseResultType = Array]

def initialize(source:, version:, uri:, global_state:)

: (source: String, version: Integer, uri: URI::Generic, global_state: GlobalState) -> void
def initialize(source:, version:, uri:, global_state:)
  @syntax_error = false #: bool
  super
end

def language_id

: -> Symbol
@override
def language_id
  :rbs
end

def parse!

: -> bool
@override
def parse!
  return false unless @needs_parsing
  @needs_parsing = false
  _, _, declarations = RBS::Parser.parse_signature(@source)
  @syntax_error = false
  @parse_result = declarations
  true
rescue RBS::ParsingError
  @syntax_error = true
  true
end

def syntax_error?

: -> bool
@override
def syntax_error?
  @syntax_error
end