class Solargraph::Pin::Constant

Attributes

visibility[R]

Public Class Methods

new(visibility: :public, **splat) click to toggle source
Calls superclass method Solargraph::Pin::BaseVariable.new
# File lib/solargraph/pin/constant.rb, line 7
def initialize visibility: :public, **splat
  super(**splat)
  @visibility = visibility
end

Public Instance Methods

completion_item_kind() click to toggle source
# File lib/solargraph/pin/constant.rb, line 16
def completion_item_kind
  Solargraph::LanguageServer::CompletionItemKinds::CONSTANT
end
path() click to toggle source
# File lib/solargraph/pin/constant.rb, line 25
def path
  @path ||= context.namespace.to_s.empty? ? name : "#{context.namespace}::#{name}"
end
return_type() click to toggle source
# File lib/solargraph/pin/constant.rb, line 12
def return_type
  @return_type ||= generate_complex_type
end
symbol_kind() click to toggle source

@return [Integer]

# File lib/solargraph/pin/constant.rb, line 21
def symbol_kind
  LanguageServer::SymbolKinds::CONSTANT
end

Private Instance Methods

generate_complex_type() click to toggle source

@return [ComplexType]

# File lib/solargraph/pin/constant.rb, line 32
def generate_complex_type
  tags = docstring.tags(:return).map(&:types).flatten.reject(&:nil?)
  if tags.empty?
    tags = docstring.tags(:type).map(&:types).flatten.reject(&:nil?)
  end
  return ComplexType::UNDEFINED if tags.empty?
  ComplexType.try_parse *tags
end