lib/solargraph/pin/namespace.rb
module Solargraph module Pin class Namespace < Pin::Base attr_reader :visibility attr_reader :type # @return [Pin::Reference] attr_reader :superclass_reference def initialize location, namespace, name, docstring, type, visibility, superclass super(location, namespace, name, docstring) @type = type @visibility = visibility # @superclass_reference = Reference.new(self, superclass) unless superclass.nil? @superclass_reference = Pin::Reference.new(location, namespace, superclass) unless superclass.nil? end # @return [Array<Pin::Reference>] def include_references @include_references ||= [] end # @return [Array<String>] def extend_references @extend_references ||= [] end def kind Pin::NAMESPACE end def named_context path end def scope :class end def completion_item_kind (type == :class ? LanguageServer::CompletionItemKinds::CLASS : LanguageServer::CompletionItemKinds::MODULE) end # @return [Integer] def symbol_kind (type == :class ? LanguageServer::SymbolKinds::CLASS : LanguageServer::SymbolKinds::MODULE) end def path @path ||= (namespace.empty? ? '' : "#{namespace}::") + name end def return_type @return_type ||= (type == :class ? 'Class' : 'Module') + "<#{path}>" end end end end