Skip to content

Commit 3ad7035

Browse files
committed
feat: register language configuration
ref Kingwl/monaco-volar#25
1 parent d3ee13d commit 3ad7035

File tree

2 files changed

+555
-20
lines changed

2 files changed

+555
-20
lines changed

src/monaco/env.ts

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { Store } from '../store'
77
import { getOrCreateModel } from './utils'
88
import type { CreateData } from './vue.worker'
99
import vueWorker from './vue.worker?worker'
10+
import * as languageConfigs from './language-configs'
1011

1112
let initted = false
1213
export function initMonaco(store: Store) {
@@ -36,26 +37,6 @@ export function initMonaco(store: Store) {
3637
}
3738
})
3839

39-
// Support for go to definition
40-
editor.registerEditorOpener({
41-
openCodeEditor(_, resource) {
42-
if (resource.toString().startsWith(jsDelivrUriBase + '/')) {
43-
return true
44-
}
45-
46-
const path = resource.path
47-
if (/^\//.test(path)) {
48-
const fileName = path.replace('/', '')
49-
if (fileName !== store.activeFile.filename) {
50-
store.setActive(fileName)
51-
return true
52-
}
53-
}
54-
55-
return false
56-
},
57-
})
58-
5940
initted = true
6041
}
6142

@@ -166,7 +147,32 @@ export function loadMonacoEnv(store: Store) {
166147
languages.register({ id: 'vue', extensions: ['.vue'] })
167148
languages.register({ id: 'javascript', extensions: ['.js'] })
168149
languages.register({ id: 'typescript', extensions: ['.ts'] })
150+
languages.register({ id: 'css', extensions: ['.css'] })
151+
languages.setLanguageConfiguration('vue', languageConfigs.vue)
152+
languages.setLanguageConfiguration('javascript', languageConfigs.js)
153+
languages.setLanguageConfiguration('typescript', languageConfigs.ts)
154+
languages.setLanguageConfiguration('css', languageConfigs.css)
169155

170156
store.reloadLanguageTools = () => reloadLanguageTools(store)
171157
languages.onLanguage('vue', () => store.reloadLanguageTools!())
158+
159+
// Support for go to definition
160+
editor.registerEditorOpener({
161+
openCodeEditor(_, resource) {
162+
if (resource.toString().startsWith(jsDelivrUriBase + '/')) {
163+
return true
164+
}
165+
166+
const path = resource.path
167+
if (/^\//.test(path)) {
168+
const fileName = path.replace('/', '')
169+
if (fileName !== store.activeFile.filename) {
170+
store.setActive(fileName)
171+
return true
172+
}
173+
}
174+
175+
return false
176+
},
177+
})
172178
}

0 commit comments

Comments
 (0)