Class: LanguageServer::Protocol::Interface::DocumentSymbol
- Inherits:
-
Object
- Object
- LanguageServer::Protocol::Interface::DocumentSymbol
- Defined in:
- lib/language_server/protocol/interface/document_symbol.rb
Overview
Represents programming constructs like variables, classes, interfaces etc. that appear in a document. Document symbols can be hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, e.g. the range of an identifier.
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
Instance Method Summary collapse
-
#children ⇒ DocumentSymbol[]
Children of this symbol, e.g.
-
#deprecated ⇒ boolean
Indicates if this symbol is deprecated.
-
#detail ⇒ string
More detail for this symbol, e.g the signature of a function.
-
#initialize(name:, detail: nil, kind:, tags: nil, deprecated: nil, range:, selection_range:, children: nil) ⇒ DocumentSymbol
constructor
A new instance of DocumentSymbol.
-
#kind ⇒ SymbolKind
The kind of this symbol.
-
#name ⇒ string
The name of this symbol.
-
#range ⇒ Range
The range enclosing this symbol not including leading/trailing whitespace but everything else like comments.
-
#selection_range ⇒ Range
The range that should be selected and revealed when this symbol is being picked, e.g.
-
#tags ⇒ 1[]
Tags for this document symbol.
- #to_hash ⇒ Object
- #to_json(*args) ⇒ Object
Constructor Details
#initialize(name:, detail: nil, kind:, tags: nil, deprecated: nil, range:, selection_range:, children: nil) ⇒ DocumentSymbol
Returns a new instance of DocumentSymbol.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 11 def initialize(name:, detail: nil, kind:, tags: nil, deprecated: nil, range:, selection_range:, children: nil) @attributes = {} @attributes[:name] = name @attributes[:detail] = detail if detail @attributes[:kind] = kind @attributes[:tags] = if @attributes[:deprecated] = deprecated if deprecated @attributes[:range] = range @attributes[:selectionRange] = selection_range @attributes[:children] = children if children @attributes.freeze end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
96 97 98 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 96 def attributes @attributes end |
Instance Method Details
#children ⇒ DocumentSymbol[]
Children of this symbol, e.g. properties of a class.
92 93 94 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 92 def children attributes.fetch(:children) end |
#deprecated ⇒ boolean
Indicates if this symbol is deprecated.
64 65 66 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 64 def deprecated attributes.fetch(:deprecated) end |
#detail ⇒ string
More detail for this symbol, e.g the signature of a function.
40 41 42 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 40 def detail attributes.fetch(:detail) end |
#kind ⇒ SymbolKind
The kind of this symbol.
48 49 50 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 48 def kind attributes.fetch(:kind) end |
#name ⇒ string
The name of this symbol. Will be displayed in the user interface and therefore must not be an empty string or a string only consisting of white spaces.
32 33 34 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 32 def name attributes.fetch(:name) end |
#range ⇒ Range
The range enclosing this symbol not including leading/trailing whitespace but everything else like comments. This information is typically used to determine if the clients cursor is inside the symbol to reveal in the symbol in the UI.
75 76 77 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 75 def range attributes.fetch(:range) end |
#selection_range ⇒ Range
The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function. Must be contained by the ‘range`.
84 85 86 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 84 def selection_range attributes.fetch(:selectionRange) end |
#tags ⇒ 1[]
Tags for this document symbol.
56 57 58 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 56 def attributes.fetch(:tags) end |
#to_hash ⇒ Object
98 99 100 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 98 def to_hash attributes end |
#to_json(*args) ⇒ Object
102 103 104 |
# File 'lib/language_server/protocol/interface/document_symbol.rb', line 102 def to_json(*args) to_hash.to_json(*args) end |