[✨] Better editor handling
This commit is contained in:
parent
ae536ba584
commit
b1ceeb0fe3
1 changed files with 72 additions and 8 deletions
|
|
@ -3,16 +3,15 @@ import { App } from '../types.ts'
|
||||||
|
|
||||||
import { fullEditor } from 'prism-code-editor/setups'
|
import { fullEditor } from 'prism-code-editor/setups'
|
||||||
import Prism from 'prism-code-editor/prism-core'
|
import Prism from 'prism-code-editor/prism-core'
|
||||||
|
|
||||||
import 'prismjs/components/prism-clike.js'
|
|
||||||
import 'prismjs/components/prism-markup.js'
|
import 'prismjs/components/prism-markup.js'
|
||||||
|
import 'prismjs/components/prism-clike.js'
|
||||||
import 'prismjs/components/prism-javascript.js'
|
import 'prismjs/components/prism-javascript.js'
|
||||||
import 'prismjs/components/prism-typescript.js'
|
import 'prismjs/components/prism-typescript.js'
|
||||||
import 'prismjs/components/prism-css.js'
|
import 'prismjs/components/prism-jsx.js'
|
||||||
import 'prismjs/components/prism-json.js'
|
import 'prismjs/components/prism-tsx.js'
|
||||||
import 'prismjs/components/prism-c.js'
|
import 'prism-code-editor/languages'
|
||||||
import 'prismjs/components/prism-csharp.js'
|
import 'prism-code-editor/prism-markdown'
|
||||||
import 'prismjs/components/prism-cpp.js'
|
|
||||||
import { FlowWindow } from '../wm.ts'
|
import { FlowWindow } from '../wm.ts'
|
||||||
|
|
||||||
interface EditorConfig {
|
interface EditorConfig {
|
||||||
|
|
@ -125,12 +124,77 @@ export default class EditorApp implements App {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
let language
|
||||||
|
|
||||||
|
switch (data.path.split('.').at(-1)?.toLowerCase()) {
|
||||||
|
case 'c':
|
||||||
|
case 'cs':
|
||||||
|
case 'cpp':
|
||||||
|
case 'java': {
|
||||||
|
language = 'clike'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'ts': {
|
||||||
|
language = 'typescript'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'js':
|
||||||
|
case 'mjs':
|
||||||
|
case 'cjs': {
|
||||||
|
language = 'javascript'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'jsx': {
|
||||||
|
language = 'jsx'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'tsx': {
|
||||||
|
language = 'tsx'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case 'html': {
|
||||||
|
language = 'html'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'md': {
|
||||||
|
language = 'md'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'css': {
|
||||||
|
language = 'css'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'xml': {
|
||||||
|
language = 'xml'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'py': {
|
||||||
|
language = 'python'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
language = 'text'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const value = (await window.fs.promises.readFile(data.path)).toString()
|
const value = (await window.fs.promises.readFile(data.path)).toString()
|
||||||
const editor = fullEditor(
|
const editor = fullEditor(
|
||||||
Prism,
|
Prism,
|
||||||
win.content.querySelector('.editor'),
|
win.content.querySelector('.editor'),
|
||||||
{
|
{
|
||||||
language: data.path.split('.').at(-1),
|
language,
|
||||||
theme: 'github-dark',
|
theme: 'github-dark',
|
||||||
value
|
value
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue