Skip to content

Commit f9f650a

Browse files
committed
fix: debounce reloadLanguageTools in monaco
closes #275 closes #263
1 parent 00176d0 commit f9f650a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/monaco/env.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type { CreateData } from './vue.worker'
88
import vueWorker from './vue.worker?worker'
99
import * as languageConfigs from './language-configs'
1010
import type { LanguageService } from '@vue/language-service'
11+
import { debounce } from '../utils'
1112

1213
let initted = false
1314
export function initMonaco(store: Store) {
@@ -155,7 +156,12 @@ export function loadMonacoEnv(store: Store) {
155156
languages.setLanguageConfiguration('typescript', languageConfigs.ts)
156157
languages.setLanguageConfiguration('css', languageConfigs.css)
157158

158-
store.reloadLanguageTools = () => reloadLanguageTools(store)
159+
let languageToolsPromise: Promise<void> | undefined
160+
store.reloadLanguageTools = debounce(async () => {
161+
;(languageToolsPromise ||= reloadLanguageTools(store)).finally(() => {
162+
languageToolsPromise = undefined
163+
})
164+
}, 250)
159165
languages.onLanguage('vue', () => store.reloadLanguageTools!())
160166

161167
// Support for go to definition

0 commit comments

Comments
 (0)