Skip to content

Commit 322406a

Browse files
committed
chore: integrate monaco editor
1 parent 220d515 commit 322406a

File tree

6 files changed

+55
-5
lines changed

6 files changed

+55
-5
lines changed

.npmrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
registry=https://registry.npmmirror.com
1+
registry=https://registry.npmmirror.com
2+
ignore-workspace-root-check=true

apps/web/src/main.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { createApp } from 'vue'
33
import App from './App.vue'
44
import { setupComponents } from './utils/setup-components'
55

6+
import './userWorker'
7+
68
import 'vue-sonner/style.css'
79
import 'codemirror/lib/codemirror.css'
810
import 'codemirror/theme/xq-light.css'

apps/web/src/userWorker.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import * as monaco from 'monaco-editor'
2+
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
3+
import CssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'
4+
import HtmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
5+
import JsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
6+
import TsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
7+
8+
// @ts-expect-error
9+
globalThis.MonacoEnvironment = {
10+
getWorker(_: any, label: string) {
11+
if (label === `json`) {
12+
return new JsonWorker()
13+
}
14+
if (label === `css` || label === `scss` || label === `less`) {
15+
return new CssWorker()
16+
}
17+
if (label === `html` || label === `handlebars` || label === `razor`) {
18+
return new HtmlWorker()
19+
}
20+
if (label === `typescript` || label === `javascript`) {
21+
return new TsWorker()
22+
}
23+
return new EditorWorker()
24+
},
25+
}
26+
27+
monaco.languages.typescript.typescriptDefaults.setEagerModelSync(true)

eslint.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ export default antfu({
1313
'no-console': `off`,
1414
'no-debugger': `off`,
1515
'ts/no-namespace': `off`,
16+
'ts/ban-ts-comment': `off`,
1617
},
1718
})

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
"postinstall": "simple-git-hooks",
2424
"inspector": "pnpx node-modules-inspector"
2525
},
26+
"dependencies": {
27+
"monaco-editor": "^0.53.0"
28+
},
2629
"devDependencies": {
2730
"@antfu/eslint-config": "5.4.1",
2831
"@types/node": "^24.5.2",

pnpm-lock.yaml

Lines changed: 20 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)