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[Symbol, Annotation],
)

Class Method Summary collapse

Class Method Details

.annotation?(node) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/ruby_lsp/requests/support/sorbet.rb', line 48

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