lint on import

This commit is contained in:
tophf 2017-08-30 01:25:15 +03:00
parent ca8eda20ff
commit 562998e4b2
2 changed files with 24 additions and 28 deletions

View File

@ -470,7 +470,7 @@ function indicateCodeChange(cm, change) {
cm.stylusChanges = cm.stylusChanges || [];
cm.stylusChanges.push(change);
}
updateLintReportIfEnabled(cm);
updateLintReport(cm);
}
function getSectionForChild(e) {
@ -597,7 +597,7 @@ window.onbeforeunload = () => {
if (isCleanGlobal()) {
return;
}
updateLintReportIfEnabled(null, 0);
updateLintReport(null, 0);
// neither confirm() nor custom messages work in modern browsers but just in case
return t('styleChangesNotSaved');
};
@ -1275,21 +1275,9 @@ function initWithStyle({style, codeIsUpdated}) {
function add() {
const sectionDiv = addSection(null, queue.shift());
maximizeCodeHeight(sectionDiv, !queue.length);
const cm = sectionDiv.CodeMirror;
if (prefs.get('editor.linter')) {
setTimeout(() => {
cm.setOption('lint', linterConfig.getForCodeMirror());
updateLintReport(cm, 100);
if (!queue.length) {
setTimeout(() => {
const state = cm.state.lint || {};
clearTimeout(state.renderTimeout);
renderLintReport();
}, 100);
}
});
}
const isLast = !queue.length;
maximizeCodeHeight(sectionDiv, isLast);
updateLintReport(sectionDiv.CodeMirror, !isLast && 100);
}
}
@ -1427,14 +1415,8 @@ function validate() {
return null;
}
function updateLintReportIfEnabled(cm, time) {
if (CodeMirror.lint) {
updateLintReport(cm, time);
}
}
function save() {
updateLintReportIfEnabled(null, 0);
updateLintReport(null, 0);
// save the contents of the CodeMirror editors back into the textareas
for (let i = 0; i < editors.length; i++) {

View File

@ -191,7 +191,24 @@ function updateLinter({immediately} = {}) {
}
function updateLintReport(cm, delay) {
const state = cm && cm.state.lint || {};
if (!CodeMirror.defaults.lint) {
return;
}
if (cm && !cm.options.lint) {
setTimeout(() => {
if (cm.options.lint) {
return;
}
cm.setOption('lint', linterConfig.getForCodeMirror());
if (!delay) {
setTimeout(() => {
clearTimeout((cm.state.lint || {}).renderTimeout);
renderLintReport();
}, 100);
}
});
}
const state = cm && cm.state && cm.state.lint || {};
if (delay === 0) {
// immediately show pending csslint/stylelint messages in onbeforeunload and save
clearTimeout(state.lintTimeout);
@ -213,9 +230,6 @@ function updateLintReport(cm, delay) {
}, delay, cm);
return;
}
if (!state) {
return;
}
// user is editing right now: postpone updating the report for the new issues (default: 500ms lint + 4500ms)
// or update it as soon as possible (default: 500ms lint + 100ms) in case an existing issue was just fixed
clearTimeout(state.reportTimeout);