Class: RubyLsp::Requests::Support::Sorbet

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

Constant Summary collapse

ANNOTATIONS =
T.let(
  {
    "abstract!" => Annotation.new(arity: 0),
    "absurd" => Annotation.new(arity: 1, receiver: true),
    "all" => Annotation.new(arity: (2..), receiver: true),
    "any" => Annotation.new(arity: (2..), receiver: true),
    "assert_type!" => Annotation.new(arity: 2, receiver: true),
    "attached_class" => Annotation.new(arity: 0, receiver: true),
    "bind" => Annotation.new(arity: 2, receiver: true),
    "cast" => Annotation.new(arity: 2, receiver: true),
    "class_of" => Annotation.new(arity: 1, receiver: true),
    "enums" => Annotation.new(arity: 0),
    "interface!" => Annotation.new(arity: 0),
    "let" => Annotation.new(arity: 2, receiver: true),
    "mixes_in_class_methods" => Annotation.new(arity: 1),
    "must" => Annotation.new(arity: 1, receiver: true),
    "must_because" => Annotation.new(arity: 1, receiver: true),
    "nilable" => Annotation.new(arity: 1, receiver: true),
    "noreturn" => Annotation.new(arity: 0, receiver: true),
    "requires_ancestor" => Annotation.new(arity: 0),
    "reveal_type" => Annotation.new(arity: 1, receiver: true),
    "sealed!" => Annotation.new(arity: 0),
    "self_type" => Annotation.new(arity: 0, receiver: true),
    "sig" => Annotation.new(arity: 0),
    "type_member" => Annotation.new(arity: (0..1)),
    "type_template" => Annotation.new(arity: 0),
    "unsafe" => Annotation.new(arity: 1),
    "untyped" => Annotation.new(arity: 0, receiver: true),
  },
  T::Hash[String, Annotation],
)

Class Method Summary collapse

Class Method Details

.annotation?(node) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
53
54
55
56
# File 'lib/ruby_lsp/requests/support/sorbet.rb', line 48

def annotation?(node)
  annotation = annotation(node)

  return false if annotation.nil?

  return false unless annotation.supports_receiver?(receiver_name(node))

  annotation.supports_arity?(node.arity)
end