|
|
@@ -1,34 +1,10 @@
|
|
|
import { ref, onBeforeUnmount, nextTick } from 'vue'
|
|
|
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js'
|
|
|
-import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
|
|
|
-import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
|
|
|
-// import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'
|
|
|
-// import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
|
|
|
-import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
|
|
|
|
|
|
export const useMonacoEditor = (language = 'javascript') => {
|
|
|
let monacoEditor: monaco.editor.IStandaloneCodeEditor | null = null
|
|
|
let initReadOnly = false
|
|
|
const el = ref<HTMLElement | null>(null)
|
|
|
-
|
|
|
- // @ts-ignore
|
|
|
- self.MonacoEnvironment = {
|
|
|
- getWorker(_: any, label: string) {
|
|
|
- if (label === 'json') {
|
|
|
- return new jsonWorker()
|
|
|
- }
|
|
|
- // if (label === 'css' || label === 'scss' || label === 'less') {
|
|
|
- // return new cssWorker()
|
|
|
- // }
|
|
|
- // if (label === 'html' || label === 'handlebars' || label === 'razor') {
|
|
|
- // return new htmlWorker()
|
|
|
- // }
|
|
|
- if (label === 'typescript' || label === 'javascript') {
|
|
|
- return new tsWorker()
|
|
|
- }
|
|
|
- return new editorWorker()
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
// 格式化
|
|
|
const onFormatDoc = async () => {
|