Fixed a bug where documents that were not initialized with a supported language wouldn't recieve language reconfiguration events

This commit is contained in:
dakedres 2023-12-27 03:24:33 -05:00
parent 4648240842
commit 5d6bdecdfc
2 changed files with 12 additions and 11 deletions

@ -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"
}

@ -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)
})