diff --git a/src/public/javascripts/note_editor.js b/src/public/javascripts/note_editor.js index 607c7844a..c742c8551 100644 --- a/src/public/javascripts/note_editor.js +++ b/src/public/javascripts/note_editor.js @@ -142,7 +142,6 @@ const noteEditor = (function() { else if (currentNote.detail.type === 'code') { if (!codeEditor) { await requireLibrary(CODE_MIRROR); - await requireLibrary(JS_LINT); CodeMirror.keyMap.default["Shift-Tab"] = "indentLess"; CodeMirror.keyMap.default["Tab"] = "indentMore"; diff --git a/src/public/javascripts/utils.js b/src/public/javascripts/utils.js index 6444493d1..c826b7e57 100644 --- a/src/public/javascripts/utils.js +++ b/src/public/javascripts/utils.js @@ -143,24 +143,18 @@ const CODE_MIRROR = { "libraries/codemirror/addon/edit/matchbrackets.js", "libraries/codemirror/addon/edit/matchtags.js", "libraries/codemirror/addon/search/match-highlighter.js", - "libraries/codemirror/mode/meta.js" - ], - css: [ - "libraries/codemirror/codemirror.css" - ] -}; - -const JS_LINT = { - js: [ + "libraries/codemirror/mode/meta.js", "libraries/codemirror/addon/lint/lint.js", - "libraries/codemirror/addon/lint/eslint.js", - "libraries/eslint.js" + "libraries/codemirror/addon/lint/eslint.js" ], css: [ + "libraries/codemirror/codemirror.css", "libraries/codemirror/addon/lint/lint.css" ] }; +const ESLINT = { js: [ "libraries/eslint.js" ] }; + async function requireLibrary(library) { if (library.css) { library.css.map(cssUrl => requireCss(cssUrl)); @@ -173,13 +167,13 @@ async function requireLibrary(library) { } } -async function requireScript(url) { - const scripts = Array - .from(document.querySelectorAll('script')) - .map(scr => scr.src); +const dynamicallyLoadedScripts = []; - if (!scripts.includes(url)) { - return $.ajax({ +async function requireScript(url) { + if (!dynamicallyLoadedScripts.includes(url)) { + dynamicallyLoadedScripts.push(url); + + return await $.ajax({ url: url, dataType: "script", cache: true diff --git a/src/public/libraries/codemirror/addon/lint/eslint.js b/src/public/libraries/codemirror/addon/lint/eslint.js index d3457ea42..210f1d096 100644 --- a/src/public/libraries/codemirror/addon/lint/eslint.js +++ b/src/public/libraries/codemirror/addon/lint/eslint.js @@ -11,8 +11,8 @@ })(function(CodeMirror) { "use strict"; - function validator(text, options) { - console.log("Validating script"); + async function validator(text, options) { + await requireLibrary(ESLINT); var errors = new eslint().verify(text, { root: true, @@ -42,8 +42,6 @@ } }); - console.log(errors); - var result = []; if (errors) parseErrors(errors, result); return result;