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