module Solargraph::Pin::Conversions

@todo Move this stuff. It should be the responsibility of the language server.

Public Instance Methods

completion_item() click to toggle source

@return [Hash]

# File lib/solargraph/pin/conversions.rb, line 10
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
detail() click to toggle source

@return [String]

# File lib/solargraph/pin/conversions.rb, line 46
def detail
  # This property is not cached in an instance variable because it can
  # change when pins get proxied.
  detail = String.new
  detail += "(#{parameters.map(&:full).join(', ')}) " unless !is_a?(Pin::Method) || parameters.empty?
  detail += "=#{probed? ? '~' : (proxied? ? '^' : '>')} #{return_type.to_s}" unless return_type.undefined?
  detail.strip!
  return nil if detail.empty?
  detail
end
reset_conversions() click to toggle source
# File lib/solargraph/pin/conversions.rb, line 70
def reset_conversions
  @completion_item = nil
  @resolve_completion_item = nil
  @signature_help = nil
  @detail = nil
  @link_documentation = nil
end
resolve_completion_item() click to toggle source

@return [Hash]

# File lib/solargraph/pin/conversions.rb, line 25
def resolve_completion_item
  @resolve_completion_item ||= begin
    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?
    completion_item.merge(extra)
  end
end
signature_help() click to toggle source

@return [Hash]

# File lib/solargraph/pin/conversions.rb, line 38
def signature_help
  @signature_help ||= {
    label: name + '(' + parameters.map(&:full).join(', ') + ')',
    documentation: documentation
  }
end
text_documentation() click to toggle source
# File lib/solargraph/pin/conversions.rb, line 64
def text_documentation
  this_path = path || return_type.tag
  return nil if this_path == 'undefined'
  escape_brackets this_path
end

Private Instance Methods

escape_brackets(text) click to toggle source

@param text [String] @return [String]

# File lib/solargraph/pin/conversions.rb, line 90
def escape_brackets text
  # text.gsub(/(\<|\>)/, "\\#{$1}")
  text.gsub("<", '\<').gsub(">", '\>')
end