Skip to content

Commit 04f6e10

Browse files
sxzzoumoussa98
authored andcommitted
feat: register language configuration
ref Kingwl/monaco-volar#25
1 parent 538338f commit 04f6e10

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
@@ -9,6 +9,7 @@ import { Store } from '../store'
99
import { getOrCreateModel } from './utils'
1010
import type { CreateData } from './vue.worker'
1111
import vueWorker from './vue.worker?worker'
12+
import * as languageConfigs from './language-configs'
1213

1314
let initted = false
1415
export function initMonaco(store: Store) {
@@ -39,26 +40,6 @@ export function initMonaco(store: Store) {
3940
}
4041
})
4142

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

@@ -171,7 +152,32 @@ export function loadMonacoEnv(store: Store) {
171152
languages.register({ id: 'vue', extensions: ['.vue'] })
172153
languages.register({ id: 'javascript', extensions: ['.js'] })
173154
languages.register({ id: 'typescript', extensions: ['.ts'] })
155+
languages.register({ id: 'css', extensions: ['.css'] })
156+
languages.setLanguageConfiguration('vue', languageConfigs.vue)
157+
languages.setLanguageConfiguration('javascript', languageConfigs.js)
158+
languages.setLanguageConfiguration('typescript', languageConfigs.ts)
159+
languages.setLanguageConfiguration('css', languageConfigs.css)
174160

175161
store.reloadLanguageTools = () => reloadLanguageTools(store)
176162
languages.onLanguage('vue', () => store.reloadLanguageTools!())
163+
164+
// Support for go to definition
165+
editor.registerEditorOpener({
166+
openCodeEditor(_, resource) {
167+
if (resource.toString().startsWith(jsDelivrUriBase + '/')) {
168+
return true
169+
}
170+
171+
const path = resource.path
172+
if (/^\//.test(path)) {
173+
const fileName = path.replace('/', '')
174+
if (fileName !== store.state.activeFile.filename) {
175+
store.setActive(fileName)
176+
return true
177+
}
178+
}
179+
180+
return false
181+
},
182+
})
177183
}

0 commit comments

Comments
 (0)