Skip to content

Commit 6f06ccf

Browse files
johnsoncodehksxzz
authored andcommitted
Redo onFetchCdnFile
1 parent d173d07 commit 6f06ccf

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/monaco/env.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ export function initMonaco(store: Store) {
4141
initted = true
4242
}
4343

44+
export class WorkerHost {
45+
onFetchCdnFile(uri: string, text: string) {
46+
getOrCreateModel(Uri.parse(uri), undefined, text)
47+
}
48+
}
49+
4450
let disposeVue: undefined | (() => void)
4551
export async function reloadLanguageTools(store: Store) {
4652
disposeVue?.()
@@ -74,6 +80,7 @@ export async function reloadLanguageTools(store: Store) {
7480
const worker = editor.createWebWorker<LanguageService>({
7581
moduleId: 'vs/language/vue/vueWorker',
7682
label: 'vue',
83+
host: new WorkerHost(),
7784
createData: {
7885
tsconfig: store.getTsConfig?.() || {},
7986
dependencies,

src/monaco/vue.worker.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
createVueLanguagePlugin,
1313
resolveVueCompilerOptions,
1414
} from '@vue/language-service'
15-
import type { WorkerMessage } from './env'
15+
import type { WorkerHost, WorkerMessage } from './env'
1616
import { URI } from 'vscode-uri'
1717

1818
export interface CreateData {
@@ -36,7 +36,7 @@ self.onmessage = async (msg: MessageEvent<WorkerMessage>) => {
3636

3737
worker.initialize(
3838
(
39-
ctx: monaco.worker.IWorkerContext,
39+
ctx: monaco.worker.IWorkerContext<WorkerHost>,
4040
{
4141
tsconfig,
4242
// TODO
@@ -58,7 +58,12 @@ self.onmessage = async (msg: MessageEvent<WorkerMessage>) => {
5858
tsconfig.vueCompilerOptions || {},
5959
)
6060

61-
activateAutomaticTypeAcquisition(env, { asFileName })
61+
activateAutomaticTypeAcquisition(env, { asFileName }, (path, content) => {
62+
ctx.host.onFetchCdnFile(
63+
asUri('/node_modules/' + path).toString(),
64+
content,
65+
)
66+
})
6267

6368
return createTypeScriptWorkerService({
6469
typescript: ts,

0 commit comments

Comments
 (0)