Skip to content

Commit

Permalink
refactor: move @vue/compiler-sfc to devDependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed May 7, 2023
1 parent 741cf6b commit 31d5ebb
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 17 deletions.
2 changes: 1 addition & 1 deletion packages/vue-language-core/package.json
Expand Up @@ -16,14 +16,14 @@
"@volar/language-core": "1.5.4",
"@volar/source-map": "1.5.4",
"@vue/compiler-dom": "^3.3.0-beta.3",
"@vue/compiler-sfc": "^3.3.0-beta.3",
"@vue/reactivity": "^3.3.0-beta.3",
"@vue/shared": "^3.3.0-beta.3",
"minimatch": "^9.0.0",
"muggle-string": "^0.2.2",
"vue-template-compiler": "^2.7.14"
},
"devDependencies": {
"@vue/compiler-sfc": "^3.3.0-beta.3",
"@types/minimatch": "^5.1.2"
}
}
2 changes: 1 addition & 1 deletion packages/vue-language-core/src/plugins/file-md.ts
@@ -1,5 +1,5 @@
import { buildMappings, Segment, SourceMap, toString } from '@volar/source-map';
import { SFCBlock } from '@vue/compiler-sfc';
import type { SFCBlock } from '@vue/compiler-sfc';
import { VueLanguagePlugin } from '../types';
import { parse } from '../utils/parseSfc';

Expand Down
19 changes: 8 additions & 11 deletions packages/vue-language-core/src/sourceFile.ts
@@ -1,7 +1,7 @@
import { FileCapabilities, VirtualFile, FileKind, FileRangeCapabilities, MirrorBehaviorCapabilities } from '@volar/language-core';
import { buildMappings, Mapping, Segment, toString } from '@volar/source-map';
import * as CompilerDom from '@vue/compiler-dom';
import { SFCBlock, SFCParseResult, SFCScriptBlock, SFCStyleBlock, SFCTemplateBlock } from '@vue/compiler-sfc';
import type { SFCBlock, SFCParseResult, SFCScriptBlock, SFCStyleBlock, SFCTemplateBlock } from '@vue/compiler-sfc';
import { computed, ComputedRef, reactive, pauseTracking, resetTracking } from '@vue/reactivity';
import type * as ts from 'typescript/lib/tsserverlibrary';
import { Sfc, SfcBlock, VueLanguagePlugin } from './types';
Expand Down Expand Up @@ -51,8 +51,6 @@ export class VueFile implements VirtualFile {
return this._embeddedFiles.value;
}

public parsedSfc: SFCParseResult | undefined;

// refs
public sfc = reactive<Sfc>({
template: null,
Expand Down Expand Up @@ -366,8 +364,6 @@ export class VueFile implements VirtualFile {
}
});

// functions

constructor(
public fileName: string,
public snapshot: ts.IScriptSnapshot,
Expand All @@ -380,14 +376,15 @@ export class VueFile implements VirtualFile {
update(newScriptSnapshot: ts.IScriptSnapshot) {

this.snapshot = newScriptSnapshot;
this.parsedSfc = this.parseSfc();

const parsedSfc = this.parseSfc();

updateObj(this.sfc, {
template: this.parsedSfc?.descriptor.template ? this.parseTemplateBlock(this.parsedSfc.descriptor.template) : null,
script: this.parsedSfc?.descriptor.script ? this.parseScriptBlock(this.parsedSfc.descriptor.script) : null,
scriptSetup: this.parsedSfc?.descriptor.scriptSetup ? this.parseScriptSetupBlock(this.parsedSfc.descriptor.scriptSetup) : null,
styles: this.parsedSfc?.descriptor.styles.map(this.parseStyleBlock.bind(this)) ?? [],
customBlocks: this.parsedSfc?.descriptor.customBlocks.map(this.parseCustomBlock.bind(this)) ?? [],
template: parsedSfc?.descriptor.template ? this.parseTemplateBlock(parsedSfc.descriptor.template) : null,
script: parsedSfc?.descriptor.script ? this.parseScriptBlock(parsedSfc.descriptor.script) : null,
scriptSetup: parsedSfc?.descriptor.scriptSetup ? this.parseScriptSetupBlock(parsedSfc.descriptor.scriptSetup) : null,
styles: parsedSfc?.descriptor.styles.map(this.parseStyleBlock.bind(this)) ?? [],
customBlocks: parsedSfc?.descriptor.customBlocks.map(this.parseCustomBlock.bind(this)) ?? [],
templateAst: '__IGNORE__' as any,
scriptAst: '__IGNORE__' as any,
scriptSetupAst: '__IGNORE__' as any,
Expand Down
2 changes: 1 addition & 1 deletion packages/vue-language-core/src/types.ts
@@ -1,5 +1,5 @@
import * as embedded from '@volar/language-core';
import { SFCParseResult } from '@vue/compiler-sfc';
import type { SFCParseResult } from '@vue/compiler-sfc';

import * as CompilerDom from '@vue/compiler-dom';
import type * as ts from 'typescript/lib/tsserverlibrary';
Expand Down
14 changes: 11 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 31d5ebb

Please sign in to comment.