module Solargraph::Pin::Conversions
def completion_item
-
(Hash)-
def completion_item @completion_item ||= { label: name, kind: completion_item_kind, detail: detail, data: { path: path, return_type: return_type.tag, location: (location ? location.to_hash : nil), deprecated: deprecated? } } end
def detail
-
(String)-
def detail if @detail.nil? @detail = '' @detail += "(#{parameters.join(', ')}) " unless kind != Pin::METHOD or parameters.empty? @detail += "=> #{return_complex_type}" unless return_complex_type.undefined? @detail.strip! end return nil if @detail.empty? @detail end
def generate_link
def generate_link this_path = path || return_type.tag return nil if this_path.nil? || this_path == 'undefined' # return this_path if comments.empty? "[#{this_path.gsub('_', '\\\\_')}](solargraph:/document?query=#{URI.escape(this_path)})" end
def link_documentation
-
(String)-
def link_documentation @link_documentation ||= generate_link end
def reset_conversions
def reset_conversions @completion_item = nil @resolve_completion_item = nil @signature_help = nil @detail = nil @link_documentation = nil end
def resolve_completion_item
-
(Hash)-
def resolve_completion_item if @resolve_completion_item.nil? extra = {} alldoc = '' alldoc += link_documentation unless link_documentation.nil? alldoc += "\n\n" unless alldoc.empty? alldoc += documentation unless documentation.nil? extra[:documentation] = alldoc unless alldoc.empty? @resolve_completion_item = completion_item.merge(extra) end @resolve_completion_item end
def signature_help
-
(Hash)-
def signature_help @signature_help ||= { label: name + '(' + parameters.join(', ') + ')', documentation: documentation } end