Merge pull request #2963 from rcjsuen/model-markers-example
Create example for model markerspull/3211/head
commit
005d096784
@ -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…
Reference in New Issue