From c4fd62a206f4c9526890654f2af7df5cc1fab895 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 11 May 2021 22:36:05 +0200 Subject: [PATCH 1/5] (chore) bump versions - bump svelte - bump svelte-preprocess - bump prettier and prettier-plugin-svelte and format accordingly --- package.json | 2 +- packages/language-server/package.json | 10 ++-- .../lib/semanticToken/semanticTokenLegend.ts | 52 ++++++++++--------- .../src/plugins/css/CSSPlugin.ts | 3 +- .../src/plugins/html/HTMLPlugin.ts | 3 +- .../src/plugins/svelte/SvelteDocument.ts | 14 ++--- .../src/plugins/svelte/SveltePlugin.ts | 3 +- .../getCodeActions/getRefactorings.ts | 3 +- .../plugins/typescript/DocumentSnapshot.ts | 3 +- .../plugins/typescript/LSAndTSDocResolver.ts | 4 +- .../plugins/typescript/TypeScriptPlugin.ts | 3 +- .../typescript/features/CompletionProvider.ts | 9 ++-- .../typescript/features/RenameProvider.ts | 19 +++---- .../src/plugins/typescript/module-loader.ts | 8 ++- .../src/plugins/typescript/utils.ts | 3 +- packages/language-server/src/server.ts | 11 ++-- .../test/plugins/css/CSSPlugin.test.ts | 3 +- .../test/plugins/html/HTMLPlugin.test.ts | 3 +- .../svelte/features/getHoverInfo.test.ts | 12 +++-- .../typescript/TypescriptPlugin.test.ts | 21 +++----- .../getDirectiveCommentCompletions.test.ts | 9 ++-- .../plugins/typescript/module-loader.test.ts | 18 ++----- packages/svelte-vscode/src/extension.ts | 6 ++- packages/svelte2tsx/package.json | 4 +- .../src/svelte2tsx/nodes/ExportedNames.ts | 3 +- packages/typescript-plugin/package.json | 2 +- yarn.lock | 42 +++++++-------- 27 files changed, 132 insertions(+), 141 deletions(-) diff --git a/package.json b/package.json index d09836956..0468be668 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint": "^7.7.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-svelte3": "^2.7.3", - "prettier": "2.2.1", + "prettier": "2.3.0", "cross-env": "^7.0.2" } } diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 6273ab5b8..1b872a3c2 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -40,7 +40,7 @@ "@types/lodash": "^4.14.116", "@types/mocha": "^7.0.2", "@types/node": "^13.9.0", - "@types/prettier": "^1.13.2", + "@types/prettier": "^2.2.3", "@types/sinon": "^7.5.2", "@types/source-map": "^0.5.7", "cross-env": "^7.0.2", @@ -53,11 +53,11 @@ "estree-walker": "^2.0.1", "glob": "^7.1.6", "lodash": "^4.17.21", - "prettier": "2.2.1", - "prettier-plugin-svelte": "~2.2.0", + "prettier": "2.3.0", + "prettier-plugin-svelte": "~2.3.0", "source-map": "^0.7.3", - "svelte": "~3.35.0", - "svelte-preprocess": "~4.6.1", + "svelte": "~3.38.2", + "svelte-preprocess": "~4.7.3", "svelte2tsx": "*", "typescript": "*", "vscode-css-languageservice": "5.0.0", diff --git a/packages/language-server/src/lib/semanticToken/semanticTokenLegend.ts b/packages/language-server/src/lib/semanticToken/semanticTokenLegend.ts index 87bbc3f0c..736093d85 100644 --- a/packages/language-server/src/lib/semanticToken/semanticTokenLegend.ts +++ b/packages/language-server/src/lib/semanticToken/semanticTokenLegend.ts @@ -42,34 +42,38 @@ export const enum TokenModifier { export function getSemanticTokenLegends(): SemanticTokensLegend { const tokenModifiers: string[] = []; - ([ - [TokenModifier.declaration, SemanticTokenModifiers.declaration], - [TokenModifier.static, SemanticTokenModifiers.static], - [TokenModifier.async, SemanticTokenModifiers.async], - [TokenModifier.readonly, SemanticTokenModifiers.readonly], - [TokenModifier.defaultLibrary, SemanticTokenModifiers.defaultLibrary], - [TokenModifier.local, 'local'] - ] as const).forEach(([tsModifier, legend]) => (tokenModifiers[tsModifier] = legend)); + ( + [ + [TokenModifier.declaration, SemanticTokenModifiers.declaration], + [TokenModifier.static, SemanticTokenModifiers.static], + [TokenModifier.async, SemanticTokenModifiers.async], + [TokenModifier.readonly, SemanticTokenModifiers.readonly], + [TokenModifier.defaultLibrary, SemanticTokenModifiers.defaultLibrary], + [TokenModifier.local, 'local'] + ] as const + ).forEach(([tsModifier, legend]) => (tokenModifiers[tsModifier] = legend)); const tokenTypes: string[] = []; - ([ - [TokenType.class, SemanticTokenTypes.class], - [TokenType.enum, SemanticTokenTypes.enum], - [TokenType.interface, SemanticTokenTypes.interface], - [TokenType.namespace, SemanticTokenTypes.namespace], - [TokenType.typeParameter, SemanticTokenTypes.typeParameter], - [TokenType.type, SemanticTokenTypes.type], - [TokenType.parameter, SemanticTokenTypes.parameter], - [TokenType.variable, SemanticTokenTypes.variable], - [TokenType.enumMember, SemanticTokenTypes.enumMember], - [TokenType.property, SemanticTokenTypes.property], - [TokenType.function, SemanticTokenTypes.function], + ( + [ + [TokenType.class, SemanticTokenTypes.class], + [TokenType.enum, SemanticTokenTypes.enum], + [TokenType.interface, SemanticTokenTypes.interface], + [TokenType.namespace, SemanticTokenTypes.namespace], + [TokenType.typeParameter, SemanticTokenTypes.typeParameter], + [TokenType.type, SemanticTokenTypes.type], + [TokenType.parameter, SemanticTokenTypes.parameter], + [TokenType.variable, SemanticTokenTypes.variable], + [TokenType.enumMember, SemanticTokenTypes.enumMember], + [TokenType.property, SemanticTokenTypes.property], + [TokenType.function, SemanticTokenTypes.function], - // member is renamed to method in vscode codebase to match LSP default - [TokenType.member, SemanticTokenTypes.method], - [TokenType.event, SemanticTokenTypes.event] - ] as const).forEach(([tokenType, legend]) => (tokenTypes[tokenType] = legend)); + // member is renamed to method in vscode codebase to match LSP default + [TokenType.member, SemanticTokenTypes.method], + [TokenType.event, SemanticTokenTypes.event] + ] as const + ).forEach(([tokenType, legend]) => (tokenTypes[tokenType] = legend)); return { tokenModifiers, diff --git a/packages/language-server/src/plugins/css/CSSPlugin.ts b/packages/language-server/src/plugins/css/CSSPlugin.ts index e594dace3..7f706d98f 100644 --- a/packages/language-server/src/plugins/css/CSSPlugin.ts +++ b/packages/language-server/src/plugins/css/CSSPlugin.ts @@ -52,7 +52,8 @@ export class CSSPlugin DocumentColorsProvider, ColorPresentationsProvider, DocumentSymbolsProvider, - SelectionRangeProvider { + SelectionRangeProvider +{ private configManager: LSConfigManager; private cssDocuments = new WeakMap(); private triggerCharacters = ['.', ':', '-', '/']; diff --git a/packages/language-server/src/plugins/html/HTMLPlugin.ts b/packages/language-server/src/plugins/html/HTMLPlugin.ts index 874376b95..3f7320fee 100644 --- a/packages/language-server/src/plugins/html/HTMLPlugin.ts +++ b/packages/language-server/src/plugins/html/HTMLPlugin.ts @@ -34,7 +34,8 @@ import { import { isInsideMoustacheTag, toRange } from '../../lib/documents/utils'; export class HTMLPlugin - implements HoverProvider, CompletionsProvider, RenameProvider, LinkedEditingRangesProvider { + implements HoverProvider, CompletionsProvider, RenameProvider, LinkedEditingRangesProvider +{ private configManager: LSConfigManager; private lang = getLanguageService({ customDataProviders: [svelteHtmlDataProvider], diff --git a/packages/language-server/src/plugins/svelte/SvelteDocument.ts b/packages/language-server/src/plugins/svelte/SvelteDocument.ts index 32e652fb0..2d489bf6e 100644 --- a/packages/language-server/src/plugins/svelte/SvelteDocument.ts +++ b/packages/language-server/src/plugins/svelte/SvelteDocument.ts @@ -69,7 +69,9 @@ export class SvelteDocument { if (!this.transpiledDoc) { this.transpiledDoc = await TranspiledSvelteDocument.create( this.parent, - (await this.config)?.preprocess + ( + await this.config + )?.preprocess ); } return this.transpiledDoc; @@ -294,9 +296,8 @@ export class SvelteFragmentMapper implements PositionMapper { getOriginalPosition(generatedPosition: Position): Position { // Map the position to be relative to the transpiled fragment - const positionInTranspiledFragment = this.transpiledFragmentMapper.getGeneratedPosition( - generatedPosition - ); + const positionInTranspiledFragment = + this.transpiledFragmentMapper.getGeneratedPosition(generatedPosition); // Map the position, using the sourcemap, to the original position in the source fragment const positionInOriginalFragment = this.sourceMapper.getOriginalPosition( positionInTranspiledFragment @@ -309,9 +310,8 @@ export class SvelteFragmentMapper implements PositionMapper { * Reversing `getOriginalPosition` */ getGeneratedPosition(originalPosition: Position): Position { - const positionInOriginalFragment = this.originalFragmentMapper.getGeneratedPosition( - originalPosition - ); + const positionInOriginalFragment = + this.originalFragmentMapper.getGeneratedPosition(originalPosition); const positionInTranspiledFragment = this.sourceMapper.getGeneratedPosition( positionInOriginalFragment ); diff --git a/packages/language-server/src/plugins/svelte/SveltePlugin.ts b/packages/language-server/src/plugins/svelte/SveltePlugin.ts index 3f314c0fe..7901fb025 100644 --- a/packages/language-server/src/plugins/svelte/SveltePlugin.ts +++ b/packages/language-server/src/plugins/svelte/SveltePlugin.ts @@ -38,7 +38,8 @@ export class SveltePlugin CompletionsProvider, HoverProvider, CodeActionsProvider, - SelectionRangeProvider { + SelectionRangeProvider +{ private docManager = new Map(); constructor(private configManager: LSConfigManager) {} diff --git a/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts b/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts index eaa30bf55..8b041662e 100644 --- a/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts +++ b/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts @@ -137,7 +137,8 @@ async function executeExtractComponentCommand( // `import {...} from '..'` or `import ... from '..'` // eslint-disable-next-line max-len -const scriptRelativeImportRegex = /import\s+{[^}]*}.*['"`](((\.\/)|(\.\.\/)).*?)['"`]|import\s+\w+\s+from\s+['"`](((\.\/)|(\.\.\/)).*?)['"`]/g; +const scriptRelativeImportRegex = + /import\s+{[^}]*}.*['"`](((\.\/)|(\.\.\/)).*?)['"`]|import\s+\w+\s+from\s+['"`](((\.\/)|(\.\.\/)).*?)['"`]/g; // `@import '..'` const styleRelativeImportRege = /@import\s+['"`](((\.\/)|(\.\.\/)).*?)['"`]/g; diff --git a/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts b/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts index c02f8b826..ff6cfb156 100644 --- a/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts +++ b/packages/language-server/src/plugins/typescript/DocumentSnapshot.ts @@ -322,7 +322,8 @@ export class SvelteDocumentSnapshot implements DocumentSnapshot { */ export class JSOrTSDocumentSnapshot extends IdentityMapper - implements DocumentSnapshot, SnapshotFragment { + implements DocumentSnapshot, SnapshotFragment +{ scriptKind = getScriptKindFromFileName(this.filePath); scriptInfo = null; diff --git a/packages/language-server/src/plugins/typescript/LSAndTSDocResolver.ts b/packages/language-server/src/plugins/typescript/LSAndTSDocResolver.ts index 702291920..637da71c9 100644 --- a/packages/language-server/src/plugins/typescript/LSAndTSDocResolver.ts +++ b/packages/language-server/src/plugins/typescript/LSAndTSDocResolver.ts @@ -63,9 +63,7 @@ export class LSAndTSDocResolver { return getLanguageServiceForPath(path, this.workspaceUris, this.lsDocumentContext); } - async getLSAndTSDoc( - document: Document - ): Promise<{ + async getLSAndTSDoc(document: Document): Promise<{ tsDoc: SvelteDocumentSnapshot; lang: ts.LanguageService; userPreferences: ts.UserPreferences; diff --git a/packages/language-server/src/plugins/typescript/TypeScriptPlugin.ts b/packages/language-server/src/plugins/typescript/TypeScriptPlugin.ts index c23165c02..3d5caf707 100644 --- a/packages/language-server/src/plugins/typescript/TypeScriptPlugin.ts +++ b/packages/language-server/src/plugins/typescript/TypeScriptPlugin.ts @@ -83,7 +83,8 @@ export class TypeScriptPlugin SemanticTokensProvider, OnWatchFileChanges, CompletionsProvider, - UpdateTsOrJsFile { + UpdateTsOrJsFile +{ private readonly configManager: LSConfigManager; private readonly lsAndTsDocResolver: LSAndTSDocResolver; private readonly completionProvider: CompletionsProviderImpl; diff --git a/packages/language-server/src/plugins/typescript/features/CompletionProvider.ts b/packages/language-server/src/plugins/typescript/features/CompletionProvider.ts index 4d8663048..9c8d98e27 100644 --- a/packages/language-server/src/plugins/typescript/features/CompletionProvider.ts +++ b/packages/language-server/src/plugins/typescript/features/CompletionProvider.ts @@ -295,10 +295,8 @@ export class CompletionsProviderImpl implements CompletionsProvider = await this.mapAndFilterRenameLocations(renameLocations, docs); // eslint-disable-next-line max-len - const additionalRenameForPropRenameInsideComponentWithProp = await this.getAdditionLocationsForRenameOfPropInsideComponentWithProp( - document, - tsDoc, - fragment, - position, - convertedRenameLocations, - docs, - lang - ); + const additionalRenameForPropRenameInsideComponentWithProp = + await this.getAdditionLocationsForRenameOfPropInsideComponentWithProp( + document, + tsDoc, + fragment, + position, + convertedRenameLocations, + docs, + lang + ); const additionalRenamesForPropRenameOutsideComponentWithProp = // This is an either-or-situation, don't do both additionalRenameForPropRenameInsideComponentWithProp.length > 0 diff --git a/packages/language-server/src/plugins/typescript/module-loader.ts b/packages/language-server/src/plugins/typescript/module-loader.ts index 6b19e78c1..16053100a 100644 --- a/packages/language-server/src/plugins/typescript/module-loader.ts +++ b/packages/language-server/src/plugins/typescript/module-loader.ts @@ -97,8 +97,12 @@ export function createSvelteModuleLoader( // Delegate to the TS resolver first. // If that does not bring up anything, try the Svelte Module loader // which is able to deal with .svelte files. - const tsResolvedModule = ts.resolveModuleName(name, containingFile, compilerOptions, ts.sys) - .resolvedModule; + const tsResolvedModule = ts.resolveModuleName( + name, + containingFile, + compilerOptions, + ts.sys + ).resolvedModule; if (tsResolvedModule && !isVirtualSvelteFilePath(tsResolvedModule.resolvedFileName)) { return tsResolvedModule; } diff --git a/packages/language-server/src/plugins/typescript/utils.ts b/packages/language-server/src/plugins/typescript/utils.ts index 112adc6cc..e497164b9 100644 --- a/packages/language-server/src/plugins/typescript/utils.ts +++ b/packages/language-server/src/plugins/typescript/utils.ts @@ -270,7 +270,8 @@ const commentsRegex = /^(\s*\/\/.*\s*)*/; // [ \t\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] // is just \s (a.k.a any whitespace character) without linebreak and vertical tab // eslint-disable-next-line max-len -const tsCheckRegex = /\/\/[ \t\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*(@ts-(no)?check)($|\s)/; +const tsCheckRegex = + /\/\/[ \t\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*(@ts-(no)?check)($|\s)/; /** * Returns `// @ts-check` or `// @ts-nocheck` if content starts with comments and has one of these diff --git a/packages/language-server/src/server.ts b/packages/language-server/src/server.ts index 41a798a9f..fa6eccca8 100644 --- a/packages/language-server/src/server.ts +++ b/packages/language-server/src/server.ts @@ -37,11 +37,8 @@ import { isNotNullOrUndefined, urlToPath } from './utils'; import { FallbackWatcher } from './lib/FallbackWatcher'; namespace TagCloseRequest { - export const type: RequestType< - TextDocumentPositionParams, - string | null, - any - > = new RequestType('html/tag'); + export const type: RequestType = + new RequestType('html/tag'); } export interface LSOptions { @@ -128,8 +125,8 @@ export function startServer(options?: LSOptions) { ); pluginHost.initialize({ - filterIncompleteCompletions: !evt.initializationOptions - ?.dontFilterIncompleteCompletions, + filterIncompleteCompletions: + !evt.initializationOptions?.dontFilterIncompleteCompletions, definitionLinkSupport: !!evt.capabilities.textDocument?.definition?.linkSupport }); pluginHost.register((sveltePlugin = new SveltePlugin(configManager))); diff --git a/packages/language-server/test/plugins/css/CSSPlugin.test.ts b/packages/language-server/test/plugins/css/CSSPlugin.test.ts index c29cc1695..cc029d3ee 100644 --- a/packages/language-server/test/plugins/css/CSSPlugin.test.ts +++ b/packages/language-server/test/plugins/css/CSSPlugin.test.ts @@ -89,8 +89,7 @@ describe('CSS Plugin', () => { kind: CompletionItemKind.Keyword, documentation: { kind: 'markdown', - value: - 'Defines character set of the document\\.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/CSS/@charset)' + value: 'Defines character set of the document\\.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/CSS/@charset)' }, textEdit: TextEdit.insert(Position.create(0, 7), '@charset'), tags: [] diff --git a/packages/language-server/test/plugins/html/HTMLPlugin.test.ts b/packages/language-server/test/plugins/html/HTMLPlugin.test.ts index f1301c421..35edbe811 100644 --- a/packages/language-server/test/plugins/html/HTMLPlugin.test.ts +++ b/packages/language-server/test/plugins/html/HTMLPlugin.test.ts @@ -28,8 +28,7 @@ describe('HTML Plugin', () => { assert.deepStrictEqual(plugin.doHover(document, Position.create(0, 2)), { contents: { kind: 'markdown', - value: - 'The h1 element represents a section heading.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements)' + value: 'The h1 element represents a section heading.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements)' }, range: Range.create(0, 1, 0, 3) diff --git a/packages/language-server/test/plugins/svelte/features/getHoverInfo.test.ts b/packages/language-server/test/plugins/svelte/features/getHoverInfo.test.ts index d8f692937..c49de2292 100644 --- a/packages/language-server/test/plugins/svelte/features/getHoverInfo.test.ts +++ b/packages/language-server/test/plugins/svelte/features/getHoverInfo.test.ts @@ -84,11 +84,13 @@ describe('SveltePlugin#getHoverInfo', () => { }); describe('should return hover for definite :', () => { - ([ - ['if', 'else if'], - ['await', 'then'], - ['await', 'catch'] - ] as const).forEach((tag) => { + ( + [ + ['if', 'else if'], + ['await', 'then'], + ['await', 'catch'] + ] as const + ).forEach((tag) => { it(`(:${tag[1]})`, () => { expectHoverInfoFor(`{:${tag[1]}}`, Position.create(0, 3)).toEqual(tag[0]); expectHoverInfoFor(`{:${tag[1]} `, Position.create(0, 3)).toEqual(tag[0]); diff --git a/packages/language-server/test/plugins/typescript/TypescriptPlugin.test.ts b/packages/language-server/test/plugins/typescript/TypescriptPlugin.test.ts index b184ef8b1..c19f79ffc 100644 --- a/packages/language-server/test/plugins/typescript/TypescriptPlugin.test.ts +++ b/packages/language-server/test/plugins/typescript/TypescriptPlugin.test.ts @@ -389,11 +389,8 @@ describe('TypescriptPlugin', () => { }; it('bumps snapshot version when watched file changes', async () => { - const { - snapshotManager, - projectJsFile, - plugin - } = await setupForOnWatchedFileUpdateOrDelete(); + const { snapshotManager, projectJsFile, plugin } = + await setupForOnWatchedFileUpdateOrDelete(); const firstSnapshot = snapshotManager.get(projectJsFile); const firstVersion = firstSnapshot?.version; @@ -412,11 +409,8 @@ describe('TypescriptPlugin', () => { }); it('should delete snapshot cache when file delete', async () => { - const { - snapshotManager, - projectJsFile, - plugin - } = await setupForOnWatchedFileUpdateOrDelete(); + const { snapshotManager, projectJsFile, plugin } = + await setupForOnWatchedFileUpdateOrDelete(); const firstSnapshot = snapshotManager.get(projectJsFile); assert.notEqual(firstSnapshot, undefined); @@ -484,11 +478,8 @@ describe('TypescriptPlugin', () => { }); it('should update ts/js file after document change', async () => { - const { - snapshotManager, - projectJsFile, - plugin - } = await setupForOnWatchedFileUpdateOrDelete(); + const { snapshotManager, projectJsFile, plugin } = + await setupForOnWatchedFileUpdateOrDelete(); const firstSnapshot = snapshotManager.get(projectJsFile); const firstVersion = firstSnapshot?.version; diff --git a/packages/language-server/test/plugins/typescript/features/getDirectiveCommentCompletions.test.ts b/packages/language-server/test/plugins/typescript/features/getDirectiveCommentCompletions.test.ts index a2196df42..cd6a0122b 100644 --- a/packages/language-server/test/plugins/typescript/features/getDirectiveCommentCompletions.test.ts +++ b/packages/language-server/test/plugins/typescript/features/getDirectiveCommentCompletions.test.ts @@ -30,8 +30,7 @@ describe('can get typescript directive comment completions', () => { isIncomplete: false, items: [ { - detail: - 'Enables semantic checking in a JavaScript file. Must be at the top of a file.', + detail: 'Enables semantic checking in a JavaScript file. Must be at the top of a file.', kind: 15, label: '@ts-check', textEdit: { @@ -49,8 +48,7 @@ describe('can get typescript directive comment completions', () => { } }, { - detail: - 'Disables semantic checking in a JavaScript file. Must be at the top of a file.', + detail: 'Disables semantic checking in a JavaScript file. Must be at the top of a file.', kind: 15, label: '@ts-nocheck', textEdit: { @@ -86,8 +84,7 @@ describe('can get typescript directive comment completions', () => { } }, { - detail: - 'Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.', + detail: 'Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.', kind: 15, label: '@ts-expect-error', textEdit: { diff --git a/packages/language-server/test/plugins/typescript/module-loader.test.ts b/packages/language-server/test/plugins/typescript/module-loader.test.ts index 2b5e08bdf..5f1cd5bed 100644 --- a/packages/language-server/test/plugins/typescript/module-loader.test.ts +++ b/packages/language-server/test/plugins/typescript/module-loader.test.ts @@ -104,13 +104,8 @@ describe('createSvelteModuleLoader', () => { extension: ts.Extension.Ts, resolvedFileName: 'filename.svelte.ts' }; - const { - resolveStub, - svelteSys, - moduleResolver, - compilerOptions, - getSvelteSnapshotStub - } = setup(resolvedModule); + const { resolveStub, svelteSys, moduleResolver, compilerOptions, getSvelteSnapshotStub } = + setup(resolvedModule); const result = moduleResolver.resolveModuleNames( ['./svelte.svelte'], 'C:/somerepo/somefile.svelte' @@ -136,13 +131,8 @@ describe('createSvelteModuleLoader', () => { extension: ts.Extension.Ts, resolvedFileName: 'filename.svelte.ts' }; - const { - resolveStub, - svelteSys, - moduleResolver, - compilerOptions, - getSvelteSnapshotStub - } = setup(resolvedModule); + const { resolveStub, svelteSys, moduleResolver, compilerOptions, getSvelteSnapshotStub } = + setup(resolvedModule); const result = moduleResolver.resolveModuleNames( ['/@/svelte.svelte'], 'C:/somerepo/somefile.svelte' diff --git a/packages/svelte-vscode/src/extension.ts b/packages/svelte-vscode/src/extension.ts index dbbd2ed9d..2077f3e72 100644 --- a/packages/svelte-vscode/src/extension.ts +++ b/packages/svelte-vscode/src/extension.ts @@ -186,7 +186,8 @@ export function activate(context: ExtensionContext) { // Or matches open curly brace // // eslint-disable-next-line max-len, no-useless-escape - increaseIndentPattern: /<(?!\?|(?:area|base|br|col|frame|hr|html|img|input|link|meta|param)\b|[^>]*\/>)([-_\.A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*<\/\1>)|)|\{[^}"']*$/, + increaseIndentPattern: + /<(?!\?|(?:area|base|br|col|frame|hr|html|img|input|link|meta|param)\b|[^>]*\/>)([-_\.A-Za-z0-9]+)(?=\s|>)\b[^>]*>(?!.*<\/\1>)|)|\{[^}"']*$/, // Matches a closing tag that: // - Follows optional whitespace // - Is not `` @@ -203,7 +204,8 @@ export function activate(context: ExtensionContext) { // any of the following: `~!@$^&*()=+[{]}\|;:'",.<>/ // // eslint-disable-next-line max-len, no-useless-escape - wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\#\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + wordPattern: + /(-?\d*\.\d\w*)|([^\`\~\!\@\$\#\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, onEnterRules: [ { // Matches an opening tag that: diff --git a/packages/svelte2tsx/package.json b/packages/svelte2tsx/package.json index d400a2be2..639991891 100644 --- a/packages/svelte2tsx/package.json +++ b/packages/svelte2tsx/package.json @@ -33,8 +33,8 @@ "rollup-plugin-delete": "^2.0.0", "source-map": "^0.6.1", "source-map-support": "^0.5.16", - "sourcemap-codec": "^1.4.4", - "svelte": "~3.35.0", + "sourcemap-codec": "^1.4.8", + "svelte": "~3.38.2", "tiny-glob": "^0.2.6", "tslib": "^1.10.0", "typescript": "^4.2.2" diff --git a/packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts b/packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts index c29778f03..77691d61b 100644 --- a/packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts +++ b/packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts @@ -15,7 +15,8 @@ export class ExportedNames doc?: string; } > - implements IExportedNames { + implements IExportedNames +{ /** * Adds export to map */ diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json index 98bff9f19..7139618a5 100644 --- a/packages/typescript-plugin/package.json +++ b/packages/typescript-plugin/package.json @@ -24,6 +24,6 @@ }, "dependencies": { "svelte2tsx": "*", - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } } diff --git a/yarn.lock b/yarn.lock index 3794b0e5e..d16f01af8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -265,10 +265,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.61.tgz#d299136ce54bcaf1abaa4a487f9e4bedf6b0d393" integrity sha512-l+zSbvT8TPRaCxL1l9cwHCb0tSqGAGcjPJFItGGYat5oCTiq1uQQKYg5m7AF1mgnEBzFXGLJ2LRmNjtreRX76Q== -"@types/prettier@^1.13.2": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.0.tgz#a2502fb7ce9b6626fdbfc2e2a496f472de1bdd05" - integrity sha512-gDE8JJEygpay7IjA/u3JiIURvwZW08f0cZSZLAzFoX/ZmeqvS0Sqv+97aKuHpNsalAMMhwPe+iAS6fQbfmbt7A== +"@types/prettier@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" + integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== "@types/pug@^2.0.4": version "2.0.4" @@ -2047,15 +2047,15 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-plugin-svelte@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.2.0.tgz#4bd94992fa5b76413a8a5556f90b128c4fdaf7a6" - integrity sha512-Xdmqgr71tAuMqqzNCK52/v94g/Yv7V7lz+nmbO9NEA+9ol15VV3uUHOfydMNOo3SWvFaVlBcp947ebEaMWqVfQ== +prettier-plugin-svelte@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.3.0.tgz#9956a39d18b217557ab8766c264d8cd003983608" + integrity sha512-HTzXvSq7lWFuLsSaxYOUkGkVNCl3RrSjDCOgQjkBX5FQGmWjL8o3IFACSGhjPMMfWKADpapAr0zdbBWkND9mqw== -prettier@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +prettier@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== progress@^2.0.0: version "2.0.3" @@ -2273,7 +2273,7 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -2432,20 +2432,20 @@ svelte-preprocess@^4.0.0: detect-indent "^6.0.0" strip-indent "^3.0.0" -svelte-preprocess@~4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.6.1.tgz#a7de4d91b32d5608b6637da960ee81e6089ae276" - integrity sha512-s7KdhR2pOsffyOzZIMEb315f6pfgeDnOWN47m6YKFeSEx3NMf/79Znc3vuG/Ai79SL/vsi86WDrjFPLGRfDesg== +svelte-preprocess@~4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz#454fa059c2400b15e7a3caeca18993cff9df0e96" + integrity sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA== dependencies: "@types/pug" "^2.0.4" "@types/sass" "^1.16.0" detect-indent "^6.0.0" strip-indent "^3.0.0" -svelte@~3.35.0: - version "3.35.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.35.0.tgz#e0d0ba60c4852181c2b4fd851194be6fda493e65" - integrity sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g== +svelte@~3.38.2: + version "3.38.2" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.38.2.tgz#55e5c681f793ae349b5cc2fe58e5782af4275ef5" + integrity sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg== table@^5.2.3: version "5.4.6" From 491df31f979c80cc32b4beb4041755ddb7c8191b Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 11 May 2021 22:38:26 +0200 Subject: [PATCH 2/5] format --- docs/preprocessors/typescript.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/preprocessors/typescript.md b/docs/preprocessors/typescript.md index aecbd95c1..99eac69b9 100644 --- a/docs/preprocessors/typescript.md +++ b/docs/preprocessors/typescript.md @@ -52,13 +52,14 @@ The first and possibly most often used way is to type the `createEventDispatcher From f798c9240d41bc36f2291857fd8d8f3ac1998811 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 11 May 2021 22:44:19 +0200 Subject: [PATCH 3/5] lint --- .../plugins/svelte/features/getCodeActions/getRefactorings.ts | 2 +- packages/svelte-vscode/src/extension.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts b/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts index 8b041662e..aac624f98 100644 --- a/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts +++ b/packages/language-server/src/plugins/svelte/features/getCodeActions/getRefactorings.ts @@ -136,8 +136,8 @@ async function executeExtractComponentCommand( } // `import {...} from '..'` or `import ... from '..'` -// eslint-disable-next-line max-len const scriptRelativeImportRegex = + // eslint-disable-next-line max-len /import\s+{[^}]*}.*['"`](((\.\/)|(\.\.\/)).*?)['"`]|import\s+\w+\s+from\s+['"`](((\.\/)|(\.\.\/)).*?)['"`]/g; // `@import '..'` const styleRelativeImportRege = /@import\s+['"`](((\.\/)|(\.\.\/)).*?)['"`]/g; diff --git a/packages/svelte-vscode/src/extension.ts b/packages/svelte-vscode/src/extension.ts index 2077f3e72..3dbd66673 100644 --- a/packages/svelte-vscode/src/extension.ts +++ b/packages/svelte-vscode/src/extension.ts @@ -185,8 +185,8 @@ export function activate(context: ExtensionContext) { // Or matches `)|\{[^}"']*$/, // Matches a closing tag that: // - Follows optional whitespace @@ -203,8 +203,8 @@ export function activate(context: ExtensionContext) { // - Is a sequence of characters without spaces and not containing // any of the following: `~!@$^&*()=+[{]}\|;:'",.<>/ // - // eslint-disable-next-line max-len, no-useless-escape wordPattern: + // eslint-disable-next-line max-len, no-useless-escape /(-?\d*\.\d\w*)|([^\`\~\!\@\$\#\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, onEnterRules: [ { From 67bbfa10e9528217a7a88a66bbbdd380699401b0 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Tue, 11 May 2021 22:56:00 +0200 Subject: [PATCH 4/5] revert preprocess bump for now --- packages/language-server/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 1b872a3c2..b3602776f 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -57,7 +57,7 @@ "prettier-plugin-svelte": "~2.3.0", "source-map": "^0.7.3", "svelte": "~3.38.2", - "svelte-preprocess": "~4.7.3", + "svelte-preprocess": "~4.6.1", "svelte2tsx": "*", "typescript": "*", "vscode-css-languageservice": "5.0.0", diff --git a/yarn.lock b/yarn.lock index d16f01af8..7403a0a01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2432,10 +2432,10 @@ svelte-preprocess@^4.0.0: detect-indent "^6.0.0" strip-indent "^3.0.0" -svelte-preprocess@~4.7.3: - version "4.7.3" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz#454fa059c2400b15e7a3caeca18993cff9df0e96" - integrity sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA== +svelte-preprocess@~4.6.1: + version "4.6.9" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.6.9.tgz#073d923eb351b98b6c6a454ba5feee981cd9dbf5" + integrity sha512-SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA== dependencies: "@types/pug" "^2.0.4" "@types/sass" "^1.16.0" From 76ba42585e52a35e3f0ccf6f5d1626e01da93003 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Wed, 12 May 2021 08:03:03 +0200 Subject: [PATCH 5/5] svelte-preprocess --- packages/language-server/package.json | 2 +- .../test/plugins/svelte/testfiles/tsconfig.json | 10 ++++++++++ yarn.lock | 8 ++++---- 3 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 packages/language-server/test/plugins/svelte/testfiles/tsconfig.json diff --git a/packages/language-server/package.json b/packages/language-server/package.json index b3602776f..1b872a3c2 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -57,7 +57,7 @@ "prettier-plugin-svelte": "~2.3.0", "source-map": "^0.7.3", "svelte": "~3.38.2", - "svelte-preprocess": "~4.6.1", + "svelte-preprocess": "~4.7.3", "svelte2tsx": "*", "typescript": "*", "vscode-css-languageservice": "5.0.0", diff --git a/packages/language-server/test/plugins/svelte/testfiles/tsconfig.json b/packages/language-server/test/plugins/svelte/testfiles/tsconfig.json new file mode 100644 index 000000000..ccbc2ad98 --- /dev/null +++ b/packages/language-server/test/plugins/svelte/testfiles/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "strict": true, + /** + This is actually not needed, but makes the tests faster + because TS does not look up other types. + */ + "types": ["svelte"] + } +} diff --git a/yarn.lock b/yarn.lock index 7403a0a01..d16f01af8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2432,10 +2432,10 @@ svelte-preprocess@^4.0.0: detect-indent "^6.0.0" strip-indent "^3.0.0" -svelte-preprocess@~4.6.1: - version "4.6.9" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.6.9.tgz#073d923eb351b98b6c6a454ba5feee981cd9dbf5" - integrity sha512-SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA== +svelte-preprocess@~4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz#454fa059c2400b15e7a3caeca18993cff9df0e96" + integrity sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA== dependencies: "@types/pug" "^2.0.4" "@types/sass" "^1.16.0"