Merge pull request 'update build w/ language highlighting' (#9) from update-build into pages

Reviewed-on: https://codeberg.org/macchiato/editor-lib-codemirror/pulls/9
pages
bat 3 years ago
commit 4f68065751

@ -33,6 +33,10 @@ import {
closeBracketsKeymap
} from '@codemirror/autocomplete'
import {lintKeymap} from '@codemirror/lint'
import { javascriptLanguage } from '@codemirror/lang-javascript'
import { cssLanguage } from '@codemirror/lang-css'
import { jsonLanguage } from '@codemirror/lang-json'
import { htmlLanguage } from '@codemirror/lang-html'
window.CodeMirrorBasic = {
// @codemirror/view
@ -64,6 +68,14 @@ window.CodeMirrorBasic = {
closeBracketsKeymap,
// @codemirror/lint
lintKeymap,
// @codemirror/lang-javascript
javascriptLanguage,
// @codemirror/lang-css
cssLanguage,
// @codemirror/lang-json
jsonLanguage,
// @codemirror/lang-html
htmlLanguage,
}` + "\n"
class Builder {
@ -85,6 +97,10 @@ class Builder {
"@codemirror/search",
"@codemirror/state",
"@codemirror/view",
"@codemirror/lang-html",
"@codemirror/lang-css",
"@codemirror/lang-json",
"@codemirror/lang-javascript",
]
constructor() {
@ -345,6 +361,26 @@ class Editor extends HTMLElement {
`
}
function req(method, path, value = undefined) {
return new Promise((resolve, reject) => {
const ch = new MessageChannel()
const port = ch.port1
port.onmessage = e => {
resolve(e.data)
port.close()
}
window.parent.postMessage(
(
method === 'get' ?
[method, path] :
[method, path, value]
),
'*',
[ch.port2]
)
})
}
customElements.define('m-build-view', BuildView)
customElements.define('m-editor', Editor)
@ -359,6 +395,7 @@ class App {
async run() {
await this.build()
await this.save()
await this.display()
}
@ -374,6 +411,21 @@ class App {
}
}
async save() {
try {
const resp = await req(
'put',
'/editor-lib-codemirror/codemirror-bundle.js',
this.builder.code
)
if (resp.status !== 200) {
throw new Error(`save attempt returned ${resp.status}`)
}
} catch (e) {
this.buildView.log(`${e}`)
}
}
async display() {
await new Promise(r => setTimeout(() => r(), 500))
this.editor = document.createElement('m-editor')

Loading…
Cancel
Save