Module: Solargraph::Pin::Conversions
- Included in:
- Base
- Defined in:
- lib/solargraph/pin/conversions.rb
Instance Method Summary collapse
- #completion_item ⇒ Hash
- #detail ⇒ String
-
#link_documentation ⇒ String
Get a markdown-flavored link to a documentation page.
- #reset_conversions ⇒ Object
- #resolve_completion_item ⇒ Hash
- #signature_help ⇒ Hash
- #text_documentation ⇒ Object
Instance Method Details
#completion_item ⇒ Hash
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# 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 ⇒ String
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/solargraph/pin/conversions.rb', line 47 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::BaseMethod) || parameters.empty? detail += "=#{probed? ? '~' : (proxied? ? '^' : '>')} #{return_type.to_s}" unless return_type.undefined? detail.strip! return nil if detail.empty? detail end |
#link_documentation ⇒ String
Get a markdown-flavored link to a documentation page.
61 62 63 |
# File 'lib/solargraph/pin/conversions.rb', line 61 def link_documentation @link_documentation ||= generate_link end |
#reset_conversions ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/solargraph/pin/conversions.rb', line 71 def reset_conversions @completion_item = nil @resolve_completion_item = nil @signature_help = nil @detail = nil @link_documentation = nil end |
#resolve_completion_item ⇒ Hash
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/solargraph/pin/conversions.rb', line 25 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 |
#signature_help ⇒ Hash
39 40 41 42 43 44 |
# File 'lib/solargraph/pin/conversions.rb', line 39 def signature_help @signature_help ||= { label: name + '(' + parameters.map(&:full).join(', ') + ')', documentation: documentation } end |
#text_documentation ⇒ Object
65 66 67 68 69 |
# File 'lib/solargraph/pin/conversions.rb', line 65 def text_documentation this_path = path || return_type.tag return nil if this_path == 'undefined' escape_brackets this_path end |