Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: improve code consistency #4976

Merged
merged 13 commits into from
Nov 2, 2024
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
"typescript.format.semicolons": "insert",
"editor.insertSpaces": false,
"editor.detectIndentation": false,
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
},
"json.format.keepLines": true,
"typescript.tsdk": "node_modules/typescript/lib",
"[typescript]": {
Expand Down
4 changes: 2 additions & 2 deletions extensions/vscode/src/compatibility.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as vscode from 'vscode';
import * as semver from 'semver';
import { computed, useAllExtensions } from 'reactive-vscode';
import * as semver from 'semver';
import * as vscode from 'vscode';

const extensions = useAllExtensions();

Expand Down
4 changes: 2 additions & 2 deletions extensions/vscode/src/hybridMode.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as path from 'node:path';
import * as fs from 'node:fs';
import * as path from 'node:path';
import { computed, executeCommand, ref, useAllExtensions, useVscodeContext, watchEffect } from "reactive-vscode";
import * as semver from 'semver';
import * as vscode from 'vscode';
import { computed, executeCommand, ref, useAllExtensions, useVscodeContext, watchEffect } from "reactive-vscode";
import { incompatibleExtensions, unknownExtensions } from './compatibility';
import { config } from './config';

Expand Down
4 changes: 2 additions & 2 deletions extensions/vscode/src/languageClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import {
executeCommand,
nextTick,
useActiveTextEditor,
useVisibleTextEditors,
useOutputChannel,
useCommand,
useOutputChannel,
useVisibleTextEditors,
useVscodeContext,
watch,
} from 'reactive-vscode';
Expand Down
4 changes: 2 additions & 2 deletions extensions/vscode/src/middleware.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as lsp from '@volar/vscode';
import { AttrNameCasing, TagNameCasing } from '@vue/language-server/lib/types';
import * as vscode from 'vscode';
import * as lsp from '@volar/vscode';
import { attrNameCasings, tagNameCasings } from './features/nameCasing';
import { config } from './config';
import { attrNameCasings, tagNameCasings } from './features/nameCasing';

export const middleware: lsp.Middleware = {
...lsp.middleware,
Expand Down
6 changes: 3 additions & 3 deletions extensions/vscode/src/nodeClientMain.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { createLabsInfo } from '@volar/vscode';
import * as lsp from '@volar/vscode/node';
import * as protocol from '@vue/language-server/protocol';
import * as fs from 'fs';
import * as vscode from 'vscode';
import * as lsp from '@volar/vscode/node';
import { defineExtension, executeCommand, extensionContext, onDeactivate } from 'reactive-vscode';
import * as vscode from 'vscode';
import { config } from './config';
import { enabledHybridMode, enabledTypeScriptPlugin } from './hybridMode';
import { activate as activateLanguageClient, deactivate as deactivateLanguageClient } from './languageClient';
import { config } from './config';
import { middleware } from './middleware';

export const { activate, deactivate } = defineExtension(async () => {
Expand Down
2 changes: 1 addition & 1 deletion extensions/vscode/tests/grammar.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as path from 'path';
import * as fs from 'fs';
import * as path from 'path';
import { describe, expect, it } from 'vitest';
import { createGrammarSnapshot } from 'vscode-tmlanguage-snapshot';

Expand Down
2 changes: 1 addition & 1 deletion packages/component-meta/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as ts from 'typescript';
import { createCheckerByJsonConfigBase, createCheckerBase } from './lib/base';
import { createCheckerBase, createCheckerByJsonConfigBase } from './lib/base';
import type { MetaCheckerOptions } from './lib/types';

export * from './lib/types';
Expand Down
2 changes: 1 addition & 1 deletion packages/component-meta/tests/index.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as path from 'path';
import { describe, expect, test } from 'vitest';
import { createChecker, createCheckerByJson, MetaCheckerOptions, ComponentMetaChecker, TypeMeta } from '..';
import { ComponentMetaChecker, createChecker, createCheckerByJson, MetaCheckerOptions, TypeMeta } from '..';

const worker = (checker: ComponentMetaChecker, withTsconfig: boolean) => describe(`vue-component-meta ${withTsconfig ? 'with tsconfig' : 'without tsconfig'}`, () => {

Expand Down
2 changes: 1 addition & 1 deletion packages/language-core/lib/codegen/localTypes.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type * as ts from 'typescript';
import { VueCompilerOptions } from '../types';
import { getSlotsPropertyName } from '../utils/shared';
import { endOfLine } from './common';
import { endOfLine } from './utils';

export function getLocalTypesGenerator(compilerOptions: ts.CompilerOptions, vueCompilerOptions: VueCompilerOptions) {
const used = new Set<string>();
Expand Down
2 changes: 1 addition & 1 deletion packages/language-core/lib/codegen/script/component.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ScriptSetupRanges } from '../../parsers/scriptSetupRanges';
import type { Code, Sfc } from '../../types';
import { endOfLine, generateSfcBlockSection, newLine } from '../common';
import { endOfLine, generateSfcBlockSection, newLine } from '../utils';
import type { ScriptCodegenContext } from './context';
import { ScriptCodegenOptions, codeFeatures } from './index';

Expand Down
2 changes: 1 addition & 1 deletion packages/language-core/lib/codegen/script/componentSelf.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as path from 'path-browserify';
import type { Code } from '../../types';
import { endOfLine, generateSfcBlockSection, newLine } from '../common';
import type { TemplateCodegenContext } from '../template/context';
import { endOfLine, generateSfcBlockSection, newLine } from '../utils';
import { generateComponentSetupReturns, generateEmitsOption, generatePropsOption } from './component';
import type { ScriptCodegenContext } from './context';
import { codeFeatures, type ScriptCodegenOptions } from './index';
Expand Down
2 changes: 1 addition & 1 deletion packages/language-core/lib/codegen/script/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import type * as ts from 'typescript';
import type { ScriptRanges } from '../../parsers/scriptRanges';
import type { ScriptSetupRanges } from '../../parsers/scriptSetupRanges';
import type { Code, Sfc, VueCodeInformation, VueCompilerOptions } from '../../types';
import { endOfLine, generateSfcBlockSection, newLine } from '../common';
import { generateGlobalTypes } from '../globalTypes';
import type { TemplateCodegenContext } from '../template/context';
import { endOfLine, generateSfcBlockSection, newLine } from '../utils';
import { generateComponentSelf } from './componentSelf';
import { createScriptCodegenContext, ScriptCodegenContext } from './context';
import { generateScriptSetup, generateScriptSetupImports } from './scriptSetup';
Expand Down
30 changes: 15 additions & 15 deletions packages/language-core/lib/codegen/script/scriptSetup.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ScriptSetupRanges } from '../../parsers/scriptSetupRanges';
import type { Code, Sfc, TextRange } from '../../types';
import { endOfLine, generateSfcBlockSection, newLine } from '../common';
import { endOfLine, generateSfcBlockSection, newLine } from '../utils';
import { generateComponent, generateEmitsOption } from './component';
import { generateComponentSelf } from './componentSelf';
import type { ScriptCodegenContext } from './context';
Expand Down Expand Up @@ -67,14 +67,14 @@ export function* generateScriptSetup(
emitTypes.push(`typeof __VLS_modelEmit`);
}

yield ` return {} as {${newLine}`
+ ` props: ${ctx.localTypes.PrettifyLocal}<typeof __VLS_functionalComponentProps & __VLS_TemplateResult['attrs'] & __VLS_PublicProps> & __VLS_BuiltInPublicProps,${newLine}`
+ ` expose(exposed: import('${options.vueCompilerOptions.lib}').ShallowUnwrapRef<${scriptSetupRanges.expose.define ? 'typeof __VLS_exposed' : '{}'}>): void,${newLine}`
+ ` attrs: any,${newLine}`
+ ` slots: __VLS_TemplateResult['slots'],${newLine}`
+ ` emit: ${emitTypes.length ? emitTypes.join(' & ') : `{}`},${newLine}`
+ ` }${endOfLine}`;
yield ` })(),${newLine}`; // __VLS_setup = (async () => {
yield `return {} as {${newLine}`
+ ` props: ${ctx.localTypes.PrettifyLocal}<typeof __VLS_functionalComponentProps & __VLS_TemplateResult['attrs'] & __VLS_PublicProps> & __VLS_BuiltInPublicProps,${newLine}`
+ ` expose(exposed: import('${options.vueCompilerOptions.lib}').ShallowUnwrapRef<${scriptSetupRanges.expose.define ? 'typeof __VLS_exposed' : '{}'}>): void,${newLine}`
+ ` attrs: any,${newLine}`
+ ` slots: __VLS_TemplateResult['slots'],${newLine}`
+ ` emit: ${emitTypes.length ? emitTypes.join(' & ') : `{}`},${newLine}`
+ `}${endOfLine}`;
yield `})(),${newLine}`; // __VLS_setup = (async () => {
yield `) => ({} as import('${options.vueCompilerOptions.lib}').VNode & { __ctx?: Awaited<typeof __VLS_setup> }))`;
}
else if (!options.sfc.script) {
Expand Down Expand Up @@ -360,12 +360,12 @@ function* generateComponentProps(
yield `})${endOfLine}`;

yield `type __VLS_BuiltInPublicProps = ${options.vueCompilerOptions.target >= 3.4
? `import('${options.vueCompilerOptions.lib}').PublicProps;`
? `import('${options.vueCompilerOptions.lib}').PublicProps`
: options.vueCompilerOptions.target >= 3.0
? `import('${options.vueCompilerOptions.lib}').VNodeProps
& import('${options.vueCompilerOptions.lib}').AllowedComponentProps
& import('${options.vueCompilerOptions.lib}').ComponentCustomProps;`
: `globalThis.JSX.IntrinsicAttributes;`
? `import('${options.vueCompilerOptions.lib}').VNodeProps`
+ ` & import('${options.vueCompilerOptions.lib}').AllowedComponentProps`
+ ` & import('${options.vueCompilerOptions.lib}').ComponentCustomProps`
: `globalThis.JSX.IntrinsicAttributes`
}`;
yield endOfLine;

Expand Down Expand Up @@ -468,7 +468,7 @@ function* generateModelEmit(
yield `type __VLS_ModelEmit = {${newLine}`;
for (const defineModel of defineModels) {
const [propName, localName] = getPropAndLocalName(scriptSetup, defineModel);
yield `'update:${propName}': [value:`;
yield `'update:${propName}': [value: `;
yield* generateDefinePropType(scriptSetup, propName, localName, defineModel);
yield `]${endOfLine}`;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/language-core/lib/codegen/script/src.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Code, Sfc } from '../../types';
import { endOfLine } from '../common';
import { endOfLine } from '../utils';
import { codeFeatures } from './index';

export function* generateSrc(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Code } from '../../types';
import { endOfLine, newLine } from '../utils';
import type { ScriptCodegenContext } from './context';
import { ScriptCodegenOptions, codeFeatures } from './index';
import { generateCssClassProperty } from './template';
import { endOfLine, newLine } from '../common';

export function* generateStyleModulesType(
options: ScriptCodegenOptions,
Expand Down
13 changes: 6 additions & 7 deletions packages/language-core/lib/codegen/script/template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import * as path from 'path-browserify';
import type * as ts from 'typescript';
import type { Code } from '../../types';
import { getSlotsPropertyName, hyphenateTag } from '../../utils/shared';
import { endOfLine, newLine } from '../common';
import { TemplateCodegenContext, createTemplateCodegenContext } from '../template/context';
import { forEachInterpolationSegment } from '../template/interpolation';
import { generateStyleScopedClasses } from '../template/styleScopedClasses';
import { endOfLine, newLine } from '../utils';
import type { ScriptCodegenContext } from './context';
import { codeFeatures, type ScriptCodegenOptions } from './index';

Expand Down Expand Up @@ -60,12 +60,11 @@ function* generateTemplateComponents(options: ScriptCodegenOptions): Generator<C
nameType = `'${options.scriptSetupRanges?.options.name ?? baseName.substring(0, baseName.lastIndexOf('.'))}'`;
}
if (nameType) {
exps.push(`{} as {
[K in ${nameType}]: typeof __VLS_self
& (new () => {
${getSlotsPropertyName(options.vueCompilerOptions.target)}: typeof ${options.scriptSetupRanges?.slots?.name ?? '__VLS_slots'}
})
}`);
exps.push(
`{} as { [K in ${nameType}]: typeof __VLS_self & (new () => { `
+ getSlotsPropertyName(options.vueCompilerOptions.target)
+ ` : typeof ${options.scriptSetupRanges?.slots.name ?? `__VLS_slots`} }) }`
);
}

exps.push(`{} as NonNullable<typeof __VLS_self extends { components: infer C } ? C : {}>`);
Expand Down
4 changes: 2 additions & 2 deletions packages/language-core/lib/codegen/template/context.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type * as CompilerDOM from '@vue/compiler-dom';
import type { Code, VueCodeInformation } from '../../types';
import { endOfLine, newLine, wrapWith } from '../common';
import type { TemplateCodegenOptions } from './index';
import { InlayHintInfo } from '../inlayHints';
import { endOfLine, newLine, wrapWith } from '../utils';
import type { TemplateCodegenOptions } from './index';

const _codeFeatures = {
all: {
Expand Down
Loading