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

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

Constant Summary collapse

ANNOTATIONS =
{
  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),
}

Class Method Summary collapse

Class Method Details

.annotation?(node) ⇒ Boolean

: (Prism::CallNode node) -> bool

Returns:

  • (Boolean)


39
40
41
# File 'lib/ruby_lsp/requests/support/sorbet.rb', line 39

def annotation?(node)
  !!ANNOTATIONS[node.name]&.match?(node)
end