Skip to content

Commit

Permalink
feat: completed setModelMarkers
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed Jun 9, 2022
1 parent c599f2b commit 86079ad
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 11 deletions.
44 changes: 44 additions & 0 deletions src/monaco/code2monaco.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,3 +175,47 @@ export function asParameterInformation(parameterInformation: vscode.ParameterInf
documentation: parameterInformation.documentation,
};
}

export function asMarkerData(diagnostic: vscode.Diagnostic): monaco.editor.IMarkerData {
return {
code: diagnostic.code?.toString(),
severity: asMarkerSeverity(diagnostic.severity),
message: diagnostic.message,
source: diagnostic.source,
...asRange(diagnostic.range),
relatedInformation: diagnostic.relatedInformation?.map(asRelatedInformation),
tags: diagnostic.tags?.map(asMarkerTag),
};
}

export function asMarkerTag(tag: vscode.DiagnosticTag): monaco.MarkerTag {
switch (tag) {
case vscode.DiagnosticTag.Unnecessary:
return monaco.MarkerTag.Unnecessary;
case vscode.DiagnosticTag.Deprecated:
return monaco.MarkerTag.Deprecated;
}
}

export function asRelatedInformation(relatedInformation: vscode.DiagnosticRelatedInformation): monaco.editor.IRelatedInformation {
return {
resource: asUri(relatedInformation.location.uri),
message: relatedInformation.message,
...asRange(relatedInformation.location.range),
};
}

export function asMarkerSeverity(severity: vscode.DiagnosticSeverity | undefined): monaco.MarkerSeverity {
switch (severity) {
case vscode.DiagnosticSeverity.Error:
return monaco.MarkerSeverity.Error;
case vscode.DiagnosticSeverity.Warning:
return monaco.MarkerSeverity.Warning;
case vscode.DiagnosticSeverity.Information:
return monaco.MarkerSeverity.Info;
case vscode.DiagnosticSeverity.Hint:
return monaco.MarkerSeverity.Hint;
default:
return monaco.MarkerSeverity.Info;
}
}
19 changes: 8 additions & 11 deletions src/monaco/ls.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,20 +272,17 @@ export function setupValidate(editor: monaco.editor.IStandaloneCodeEditor, ls: L
throw new Error('No model');
}

const diagnostics = await ls.doValidation(model.uri.toString());
const diagnostics = await ls.doValidation(model.uri.toString(), unfinishResult => {
monaco.editor.setModelMarkers(
model,
lang,
unfinishResult.map(code2monaco.asMarkerData),
);
});
monaco.editor.setModelMarkers(
model,
lang,
diagnostics.map((diagnostic) => {
return {
severity: diagnostic.severity === 1 ? monaco.MarkerSeverity.Error : monaco.MarkerSeverity.Warning,
startLineNumber: diagnostic.range.start.line + 1,
startColumn: diagnostic.range.start.character + 1,
endLineNumber: diagnostic.range.end.line + 1,
endColumn: diagnostic.range.end.character + 1,
message: diagnostic.message,
};
}),
diagnostics.map(code2monaco.asMarkerData),
);
};

Expand Down

0 comments on commit 86079ad

Please sign in to comment.