module Steep module Services module HoverProvider class Ruby class TypeContent attr_reader node: Parser::AST::Node attr_reader type: AST::Types::t attr_reader location: Parser::Source::Range def initialize: (node: Parser::AST::Node, type: AST::Types::t, location: Parser::Source::Range) -> void end # Hover content for a local variable, references or assignments # # ```ruby # a = 123 # # ^^^^ Hover popups # # ^ Location covers # # a + 1 # # ^ Hover popups # # ^ Location covers # ``` class VariableContent attr_reader node: Parser::AST::Node attr_reader name: Symbol attr_reader type: AST::Types::t attr_reader location: Parser::Source::Range def initialize: (node: Parser::AST::Node, name: Symbol, type: AST::Types::t, location: Parser::Source::Range) -> void end class TypeAssertionContent attr_reader node: Parser::AST::Node attr_reader original_type: AST::Types::t attr_reader asserted_type: AST::Types::t attr_reader location: Parser::Source::Range def initialize: (node: Parser::AST::Node, original_type: AST::Types::t, asserted_type: AST::Types::t, location: Parser::Source::Range) -> void end class MethodCallContent attr_reader node: Parser::AST::Node type call = TypeInference::MethodCall::Typed | TypeInference::MethodCall::Special | TypeInference::MethodCall::Error attr_reader method_call: call attr_reader location: Parser::Source::Range def initialize: (node: Parser::AST::Node, method_call: TypeInference::MethodCall::t, location: Parser::Source::Range) -> void end class DefinitionContent attr_reader node: Parser::AST::Node attr_reader method_name: method_name attr_reader method_type: Interface::MethodType attr_reader definition: ::RBS::Definition::Method attr_reader location: Parser::Source::Range def initialize: (node: Parser::AST::Node, method_name: method_name, method_type: Interface::MethodType, definition: ::RBS::Definition::Method, location: Parser::Source::Range) -> void end class ConstantContent attr_reader location: Parser::Source::Range attr_reader full_name: ::RBS::TypeName attr_reader type: AST::Types::t type decl = ::RBS::Environment::ClassEntry | ::RBS::Environment::ModuleEntry | ::RBS::Environment::SingleEntry[::RBS::TypeName, ::RBS::AST::Declarations::Constant] attr_reader decl: decl attr_reader class_decl(): ::RBS::Environment::ClassEntry | ::RBS::Environment::ModuleEntry | nil attr_reader constant_decl(): ::RBS::Environment::SingleEntry[::RBS::TypeName, ::RBS::AST::Declarations::Constant]? def initialize: (location: Parser::Source::Range, full_name: ::RBS::TypeName, type: AST::Types::t, decl: decl) -> void def comments: () -> Array[::RBS::AST::Comment] # Returns true if `decl` is a class/module definition def class_or_module?: () -> (::RBS::Environment::ClassEntry | ::RBS::Environment::ModuleEntry | nil) # Returns true if `decl` is a constant definition def constant?: () -> ::RBS::Environment::SingleEntry[::RBS::TypeName, ::RBS::AST::Declarations::Constant]? end type content = TypeContent | VariableContent | MethodCallContent | DefinitionContent | ConstantContent | TypeAssertionContent attr_reader service: TypeCheckService def initialize: (service: TypeCheckService) -> void def project: () -> Project def method_definition_for: (AST::Types::Factory factory, ::RBS::TypeName type_name, singleton_method: Symbol) -> ::RBS::Definition::Method | (AST::Types::Factory factory, ::RBS::TypeName type_name, instance_method: Symbol) -> ::RBS::Definition::Method def typecheck: (Project::Target target, path: Pathname, content: String, line: Integer, column: Integer) -> Typing? def method_name_from_method: (TypeInference::Context::MethodContext context, builder: ::RBS::DefinitionBuilder) -> method_name def content_for: (target: Project::Target, path: Pathname, line: Integer, column: Integer) -> content? end end end end