Class: LanguageServer::Protocol::Interface::Diagnostic

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(range:, severity: nil, code: nil, code_description: nil, source: nil, message:, tags: nil, related_information: nil, data: nil) ⇒ Diagnostic

Returns a new instance of Diagnostic.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 5

def initialize(range:, severity: nil, code: nil, code_description: nil, source: nil, message:, tags: nil, related_information: nil, data: nil)
  @attributes = {}

  @attributes[:range] = range
  @attributes[:severity] = severity if severity
  @attributes[:code] = code if code
  @attributes[:codeDescription] = code_description if code_description
  @attributes[:source] = source if source
  @attributes[:message] = message
  @attributes[:tags] = tags if tags
  @attributes[:relatedInformation] = related_information if related_information
  @attributes[:data] = data if data

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



98
99
100
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 98

def attributes
  @attributes
end

Instance Method Details

#codestring | number

The diagnostic’s code, which might appear in the user interface.

Returns:

  • (string | number)


42
43
44
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 42

def code
  attributes.fetch(:code)
end

#code_descriptionCodeDescription

An optional property to describe the error code.

Returns:



50
51
52
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 50

def code_description
  attributes.fetch(:codeDescription)
end

#dataunknown

A data entry field that is preserved between a ‘textDocument/publishDiagnostics` notification and `textDocument/codeAction` request.

Returns:

  • (unknown)


94
95
96
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 94

def data
  attributes.fetch(:data)
end

#messagestring

The diagnostic’s message.

Returns:

  • (string)


67
68
69
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 67

def message
  attributes.fetch(:message)
end

#rangeRange

The range at which the message applies.

Returns:



25
26
27
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 25

def range
  attributes.fetch(:range)
end

An array of related diagnostic information, e.g. when symbol-names within a scope collide all definitions can be marked via this property.



84
85
86
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 84

def related_information
  attributes.fetch(:relatedInformation)
end

#severityDiagnosticSeverity

The diagnostic’s severity. Can be omitted. If omitted it is up to the client to interpret diagnostics as error, warning, info or hint.

Returns:

  • (DiagnosticSeverity)


34
35
36
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 34

def severity
  attributes.fetch(:severity)
end

#sourcestring

A human-readable string describing the source of this diagnostic, e.g. ‘typescript’ or ‘super lint’.

Returns:

  • (string)


59
60
61
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 59

def source
  attributes.fetch(:source)
end

#tagsDiagnosticTag[]

Additional metadata about the diagnostic.

Returns:

  • (DiagnosticTag[])


75
76
77
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 75

def tags
  attributes.fetch(:tags)
end

#to_hashObject



100
101
102
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 100

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



104
105
106
# File 'lib/language_server/protocol/interface/diagnostic.rb', line 104

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