From 5d6bdecdfccded5b34c8304981047aa2d14dc8b4 Mon Sep 17 00:00:00 2001 From: dakedres Date: Wed, 27 Dec 2023 03:24:33 -0500 Subject: [PATCH] Fixed a bug where documents that were not initialized with a supported language wouldn't recieve language reconfiguration events --- package.json | 2 +- src/qwe.js | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index b6b0eb2..e0cef9b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dev": "neu run", "build": "neu build", "update": "neu update", - "install:neu": "rm src/lib/platform.js && ln lib/platforms/neutralino.js src/lib/platforms.js && ln build/neutralino.js src/lib/neutralino.js" + "install:neu": "rm src/lib/platform.js && ln lib/platforms/neutralino.js src/lib/platform.js && ln build/neutralino.js src/lib/neutralino.js" }, "type": "module" } diff --git a/src/qwe.js b/src/qwe.js index 57108b5..59f7d3f 100644 --- a/src/qwe.js +++ b/src/qwe.js @@ -48,18 +48,19 @@ function Editor() { this.setDoc = async (doc, bind) => { this.doc = doc statusbar.updateFilename() - this.view.setState(await this.doc.createState()) this.doc.setView(this.view) + this.view.setState(await this.doc.createState()) } this.openDirectory = async (path) => { let fileList = (await Platform.readdir(path)) .filter(dirent => dirent.name != '.') .map(dirent => dirent.type == 'FILE' ? dirent.name : dirent.name + '/') + .sort() .join('\n') let doc = new Doc(fileList, Platform.join(path, '~' + Platform.filename(path))) - editor.setDoc(doc) + this.setDoc(doc) } // this.updateFilename = () => { @@ -172,15 +173,10 @@ function Doc(content, initialPath) { cm.crosshairCursor(), cm.highlightSelectionMatches(), cm.history(), + Doc.language.of(this.language ? await langManager.resolveExtension(this.language) : []), Keymaps.default ] - if(this.language) - extensions.push( - await langManager.resolveExtension(this.language) - .then(extension => Doc.language.of(extension)) - ) - return cm.EditorState.create({ extensions, doc: content @@ -200,6 +196,9 @@ function Doc(content, initialPath) { this.setLanguage() } + this.getView = () => + view + this.setLanguage = (newLanguage = getLanguage()) => { let oldLanguage = this.language this.language = newLanguage @@ -208,7 +207,7 @@ function Doc(content, initialPath) { return if(this.language == null) { - setViewLanguageExtension([]) + setViewLanguageExtension() } else if(oldLanguage == null || oldLanguage.name !== this.language.name) { langManager.resolveExtension(this.language) .then(setViewLanguageExtension) @@ -224,7 +223,9 @@ function Doc(content, initialPath) { } } - const setViewLanguageExtension = (extension) => { + const setViewLanguageExtension = (extension = []) => { + console.log('lang!', extension) + view.dispatch({ effects: Doc.language.reconfigure(extension) })