module Solargraph::Pin::Conversions

def completion_item

Returns:
  • (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

Returns:
  • (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

Returns:
  • (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

Returns:
  • (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

Returns:
  • (Hash) -
def signature_help
  @signature_help ||= {
    label: name + '(' + parameters.join(', ') + ')',
    documentation: documentation
  }
end