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 9 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 42 def detail # This property is not cached in an instance variable because it can # change when pins get proxied. detail = String.new detail += "=#{probed? ? '~' : (proxied? ? '^' : '>')} #{return_type.to_s}" unless return_type.undefined? detail.strip! return nil if detail.empty? detail end
link_documentation()
click to toggle source
Get a markdown-flavored link to a documentation page.
@return [String]
# File lib/solargraph/pin/conversions.rb, line 55 def link_documentation @link_documentation ||= generate_link end
reset_conversions()
click to toggle source
# File lib/solargraph/pin/conversions.rb, line 65 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 24 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 [Array<Hash>]
# File lib/solargraph/pin/conversions.rb, line 37 def signature_help [] end
text_documentation()
click to toggle source
# File lib/solargraph/pin/conversions.rb, line 59 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 85 def escape_brackets text # text.gsub(/(\<|\>)/, "\\#{$1}") text.gsub("<", '\<').gsub(">", '\>') end
generate_link()
click to toggle source
@return [String]
# File lib/solargraph/pin/conversions.rb, line 76 def generate_link this_path = path || return_type.tag return nil if this_path == 'undefined' return nil if this_path.nil? || this_path == 'undefined' "[#{escape_brackets(this_path).gsub('_', '\\\\_')}](solargraph:/document?query=#{CGI.escape(this_path)})" end