Class: LanguageServer::Protocol::Interface::SymbolInformation

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/protocol/interface/symbol_information.rb

Overview

Represents information about programming constructs like variables, classes, interfaces etc.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(deprecated: nil, location:, name:, kind:, tags: nil, container_name: nil) ⇒ SymbolInformation

Returns a new instance of SymbolInformation.



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 9

def initialize(deprecated: nil, location:, name:, kind:, tags: nil, container_name: nil)
  @attributes = {}

  @attributes[:deprecated] = deprecated if deprecated
  @attributes[:location] = location
  @attributes[:name] = name
  @attributes[:kind] = kind
  @attributes[:tags] = tags if tags
  @attributes[:containerName] = container_name if container_name

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



85
86
87
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 85

def attributes
  @attributes
end

Instance Method Details

#container_namestring | nil

The name of the symbol containing this symbol. This information is for user interface purposes (e.g. to render a qualifier in the user interface if necessary). It can’t be used to re-infer a hierarchy for the document symbols.

Returns:

  • (string | nil)


81
82
83
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 81

def container_name
  attributes.fetch(:containerName)
end

#deprecatedboolean | nil

Deprecated.

Use tags instead

Indicates if this symbol is deprecated.

Returns:

  • (boolean | nil)


28
29
30
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 28

def deprecated
  attributes.fetch(:deprecated)
end

#kindSymbolKind

The kind of this symbol.

Returns:

  • (SymbolKind)


60
61
62
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 60

def kind
  attributes.fetch(:kind)
end

#locationLocation

The location of this symbol. The location’s range is used by a tool to reveal the location in the editor. If the symbol is selected in the tool the range’s start information is used to position the cursor. So the range usually spans more than the actual symbol’s name and does normally include things like visibility modifiers.

The range doesn’t have to denote a node range in the sense of an abstract syntax tree. It can therefore not be used to re-construct a hierarchy of the symbols.

Returns:



44
45
46
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 44

def location
  attributes.fetch(:location)
end

#namestring

The name of this symbol.

Returns:

  • (string)


52
53
54
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 52

def name
  attributes.fetch(:name)
end

#tagsSymbolTag[] | nil

Tags for this symbol.

Returns:

  • (SymbolTag[] | nil)

Since:

  • 3.16.0



70
71
72
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 70

def tags
  attributes.fetch(:tags)
end

#to_hashObject



87
88
89
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 87

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



91
92
93
# File 'lib/language_server/protocol/interface/symbol_information.rb', line 91

def to_json(*args)
  to_hash.to_json(*args)
end