Skip to content

Commit 5ce2475

Browse files
committed
Lint on editor load
1 parent eace2a3 commit 5ce2475

File tree

2 files changed

+53
-32
lines changed

2 files changed

+53
-32
lines changed

packages/app/src/app/components/CodeEditor/Monaco/index.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,23 +1046,31 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
10461046
};
10471047

10481048
setupLintWorker = () => {
1049-
this.lintWorker = new LinterWorker();
1050-
1051-
this.lintWorker.addEventListener('message', event => {
1052-
const { markers, version } = event.data;
1053-
1054-
requestAnimationFrame(() => {
1055-
if (this.editor.getModel()) {
1056-
if (version === this.editor.getModel().getVersionId()) {
1057-
this.updateLintWarnings(markers);
1058-
} else {
1059-
this.updateLintWarnings([]);
1049+
if (!this.lintWorker) {
1050+
this.lintWorker = new LinterWorker();
1051+
1052+
this.lintWorker.addEventListener('message', event => {
1053+
const { markers, version } = event.data;
1054+
1055+
requestAnimationFrame(() => {
1056+
if (this.editor.getModel()) {
1057+
if (version === this.editor.getModel().getVersionId()) {
1058+
this.updateLintWarnings(markers);
1059+
} else {
1060+
this.updateLintWarnings([]);
1061+
}
10601062
}
1061-
}
1063+
});
10621064
});
1063-
});
10641065

1065-
this.lint = debounce(this.lint, 400);
1066+
this.lint = debounce(this.lint, 400);
1067+
1068+
this.lint(
1069+
this.getCode(),
1070+
this.currentModule.title,
1071+
this.editor.getModel().getVersionId()
1072+
);
1073+
}
10661074
};
10671075

10681076
setupWorkers = () => {

packages/app/src/app/components/CodeEditor/VSCode/index.js

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,29 +1050,42 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
10501050
};
10511051

10521052
setupLintWorker = () => {
1053-
this.lintWorker = new LinterWorker();
1053+
if (!this.lintWorker) {
1054+
this.lintWorker = new LinterWorker();
10541055

1055-
this.lintWorker.addEventListener('message', event => {
1056-
const { markers, version } = event.data;
1056+
this.lintWorker.addEventListener('message', event => {
1057+
const { markers, version } = event.data;
10571058

1058-
requestAnimationFrame(() => {
1059-
if (this.editor.getActiveCodeEditor().getModel()) {
1060-
if (
1061-
version ===
1062-
this.editor
1063-
.getActiveCodeEditor()
1064-
.getModel()
1065-
.getVersionId()
1066-
) {
1067-
this.updateLintWarnings(markers);
1068-
} else {
1069-
this.updateLintWarnings([]);
1059+
requestAnimationFrame(() => {
1060+
if (this.editor.getActiveCodeEditor().getModel()) {
1061+
if (
1062+
version ===
1063+
this.editor
1064+
.getActiveCodeEditor()
1065+
.getModel()
1066+
.getVersionId()
1067+
) {
1068+
this.updateLintWarnings(markers);
1069+
} else {
1070+
this.updateLintWarnings([]);
1071+
}
10701072
}
1071-
}
1073+
});
10721074
});
1073-
});
10741075

1075-
this.lint = debounce(this.lint, 400);
1076+
this.lint = debounce(this.lint, 400);
1077+
1078+
if (this.editor.getActiveCodeEditor()) {
1079+
this.lint(
1080+
this.getCode(),
1081+
this.currentModule.title,
1082+
this.editor
1083+
.getActiveCodeEditor()
1084+
.getModel()
1085+
.getVersionId()
1086+
);
1087+
}
1088+
}
10761089
};
10771090

10781091
setupWorkers = () => {

0 commit comments

Comments
 (0)