mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 23:13:02 +01:00
Merge pull request #2963 from rcjsuen/model-markers-example
Create example for model markers
This commit is contained in:
commit
005d096784
4 changed files with 55 additions and 0 deletions
|
|
@ -156,6 +156,12 @@
|
|||
id: 'extending-language-services-hover-provider-example',
|
||||
path: 'extending-language-services/hover-provider-example'
|
||||
},
|
||||
{
|
||||
chapter: 'Extending Language Services',
|
||||
name: 'Model markers example',
|
||||
id: 'extending-language-services-model-markers-example',
|
||||
path: 'extending-language-services/model-markers-example'
|
||||
},
|
||||
{
|
||||
chapter: 'Extending Language Services',
|
||||
name: 'Semantic tokens provider example',
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
<div id="container" style="height: 100%"></div>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
function validate(model) {
|
||||
const markers = [];
|
||||
// lines start at 1
|
||||
for (let i = 1; i < model.getLineCount() + 1; i++) {
|
||||
const range = {
|
||||
startLineNumber: i,
|
||||
startColumn: 1,
|
||||
endLineNumber: i,
|
||||
endColumn: model.getLineLength(i) + 1
|
||||
};
|
||||
const content = model.getValueInRange(range).trim();
|
||||
const number = Number(content);
|
||||
if (Number.isNaN(number)) {
|
||||
markers.push({
|
||||
message: 'not a number',
|
||||
severity: monaco.MarkerSeverity.Error,
|
||||
startLineNumber: range.startLineNumber,
|
||||
startColumn: range.startColumn,
|
||||
endLineNumber: range.endLineNumber,
|
||||
endColumn: range.endColumn
|
||||
});
|
||||
} else if (!Number.isInteger(number)) {
|
||||
markers.push({
|
||||
message: 'not an integer',
|
||||
severity: monaco.MarkerSeverity.Warning,
|
||||
startLineNumber: range.startLineNumber,
|
||||
startColumn: range.startColumn,
|
||||
endLineNumber: range.endLineNumber,
|
||||
endColumn: range.endColumn
|
||||
});
|
||||
}
|
||||
}
|
||||
monaco.editor.setModelMarkers(model, 'owner', markers);
|
||||
}
|
||||
|
||||
const value = `12345
|
||||
abcd
|
||||
234.56
|
||||
12345
|
||||
abcd
|
||||
234.56`;
|
||||
const uri = monaco.Uri.parse('inmemory://test');
|
||||
const model = monaco.editor.createModel(value, 'demoLanguage', uri);
|
||||
editor = monaco.editor.create(document.getElementById('container'), { model });
|
||||
validate(model);
|
||||
model.onDidChangeContent(() => {
|
||||
validate(model);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue