Skip to content

Commit 6ae587e

Browse files
sxzzoumoussa98
authored andcommitted
fix: debounce reloadLanguageTools in monaco
closes vuejs#275 closes vuejs#263
1 parent 4869478 commit 6ae587e

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/monaco/env.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type { CreateData } from './vue.worker'
1010
import vueWorker from './vue.worker?worker'
1111
import * as languageConfigs from './language-configs'
1212
import type { LanguageService } from '@vue/language-service'
13+
import { debounce } from '../utils'
1314

1415
let initted = false
1516
export function initMonaco(store: Store) {
@@ -158,7 +159,12 @@ export function loadMonacoEnv(store: Store) {
158159
languages.setLanguageConfiguration('typescript', languageConfigs.ts)
159160
languages.setLanguageConfiguration('css', languageConfigs.css)
160161

161-
store.reloadLanguageTools = () => reloadLanguageTools(store)
162+
let languageToolsPromise: Promise<void> | undefined
163+
store.reloadLanguageTools = debounce(async () => {
164+
;(languageToolsPromise ||= reloadLanguageTools(store)).finally(() => {
165+
languageToolsPromise = undefined
166+
})
167+
}, 250)
162168
languages.onLanguage('vue', () => store.reloadLanguageTools!())
163169

164170
// Support for go to definition

0 commit comments

Comments
 (0)