mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
lsp: Set diagnostic relatedInformation
This commit is contained in:
parent
d987b15374
commit
aca8dd794b
1 changed files with 19 additions and 10 deletions
|
@ -245,7 +245,7 @@ class LanguageServer:
|
||||||
{
|
{
|
||||||
"title": action.title,
|
"title": action.title,
|
||||||
"kind": "quickfix",
|
"kind": "quickfix",
|
||||||
"diagnostics": [self._create_diagnostic(open_file.text, diagnostic)],
|
"diagnostics": [self._create_diagnostic(open_file.text, open_file.uri, diagnostic)],
|
||||||
"edit": {
|
"edit": {
|
||||||
"changes": {
|
"changes": {
|
||||||
open_file.uri: [{
|
open_file.uri: [{
|
||||||
|
@ -266,21 +266,30 @@ class LanguageServer:
|
||||||
def _send_file_updates(self, open_file: OpenFile):
|
def _send_file_updates(self, open_file: OpenFile):
|
||||||
self._send_notification("textDocument/publishDiagnostics", {
|
self._send_notification("textDocument/publishDiagnostics", {
|
||||||
"uri": open_file.uri,
|
"uri": open_file.uri,
|
||||||
"diagnostics": [self._create_diagnostic(open_file.text, err) for err in open_file.diagnostics],
|
"diagnostics": [self._create_diagnostic(open_file.text, open_file.uri, err) for err in open_file.diagnostics],
|
||||||
})
|
})
|
||||||
|
|
||||||
def _create_diagnostic(self, text, err):
|
def _create_diagnostic(self, text, uri, err):
|
||||||
if isinstance(err, CompileWarning):
|
result = {
|
||||||
severity = DiagnosticSeverity.Warning
|
|
||||||
else:
|
|
||||||
severity = DiagnosticSeverity.Error
|
|
||||||
|
|
||||||
return {
|
|
||||||
"range": utils.idxs_to_range(err.start, err.end, text),
|
"range": utils.idxs_to_range(err.start, err.end, text),
|
||||||
"message": err.message,
|
"message": err.message,
|
||||||
"severity": severity,
|
"severity": DiagnosticSeverity.Warning if isinstance(err, CompileWarning) else DiagnosticSeverity.Error,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(err.references) > 0:
|
||||||
|
result["relatedInformation"] = [
|
||||||
|
{
|
||||||
|
"location": {
|
||||||
|
"uri": uri,
|
||||||
|
"range": utils.idxs_to_range(ref.start, ref.end, text),
|
||||||
|
},
|
||||||
|
"message": ref.message
|
||||||
|
}
|
||||||
|
for ref in err.references
|
||||||
|
]
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
for name in dir(LanguageServer):
|
for name in dir(LanguageServer):
|
||||||
item = getattr(LanguageServer, name)
|
item = getattr(LanguageServer, name)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue