From 2a8d3997edfe1317eacd722134db675185c33393 Mon Sep 17 00:00:00 2001 From: Dan Freeman Date: Thu, 3 Dec 2020 17:28:51 +0100 Subject: [PATCH] Get tests passing with TS nightly --- .../__tests__/integration.test.ts | 22 ++++++------------- .../tsserver-plugin/src/language-service.ts | 21 ++++++++++++------ 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/packages/tsserver-plugin/__tests__/integration.test.ts b/packages/tsserver-plugin/__tests__/integration.test.ts index ea0965b53..e9045fd18 100644 --- a/packages/tsserver-plugin/__tests__/integration.test.ts +++ b/packages/tsserver-plugin/__tests__/integration.test.ts @@ -192,7 +192,7 @@ describe('tsserver plugin', () => { offset: 12, }); - expect(completions).toEqual({ + expect(completions).toMatchObject({ isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: false, @@ -201,13 +201,11 @@ describe('tsserver plugin', () => { name: 'bar', kind: 'property', kindModifiers: 'optional', - sortText: '1', }, { name: 'foo', kind: 'property', kindModifiers: 'optional', - sortText: '1', }, ], }); @@ -244,11 +242,10 @@ describe('tsserver plugin', () => { offset: 13, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'message')).toMatchObject({ kind: 'property', kindModifiers: 'private', name: 'message', - sortText: '0', }); let details = await server.request(CommandTypes.CompletionDetails, { @@ -285,11 +282,10 @@ describe('tsserver plugin', () => { offset: 9, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'items')).toMatchObject({ kind: 'property', kindModifiers: '', name: 'items', - sortText: '0', }); let details = await server.request(CommandTypes.CompletionDetails, { @@ -324,11 +320,10 @@ describe('tsserver plugin', () => { offset: 8, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'letter')).toMatchObject({ kind: 'parameter', kindModifiers: '', name: 'letter', - sortText: '0', }); let details = await server.request(CommandTypes.CompletionDetails, { @@ -363,11 +358,10 @@ describe('tsserver plugin', () => { offset: 8, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'greeting')).toMatchObject({ kind: 'const', kindModifiers: '', name: 'greeting', - sortText: '0', }); let details = await server.request(CommandTypes.CompletionDetails, { @@ -406,11 +400,10 @@ describe('tsserver plugin', () => { offset: 10, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'Greeting')).toMatchObject({ name: 'Greeting', kind: 'class', kindModifiers: 'export', - sortText: '5', hasAction: true, source: project.filePath('greeting'), }); @@ -470,11 +463,10 @@ describe('tsserver plugin', () => { offset: 10, }); - expect(completions?.entries).toContainEqual({ + expect(completions?.entries.find((entry) => entry.name === 'Greeting')).toMatchObject({ name: 'Greeting', kind: 'class', kindModifiers: 'export', - sortText: '5', hasAction: true, source: project.filePath('greeting'), }); diff --git a/packages/tsserver-plugin/src/language-service.ts b/packages/tsserver-plugin/src/language-service.ts index e3f4129e4..ce4f2e583 100644 --- a/packages/tsserver-plugin/src/language-service.ts +++ b/packages/tsserver-plugin/src/language-service.ts @@ -272,9 +272,11 @@ export default class GlintLanguageService implements Partial if (info) { let transformedOffset = info.transformedModule.getTransformedOffset(offset); let result = this.ls.getRenameInfo(info.transformedPath, transformedOffset, options); + this.logger.log('getRenameInfo result before', result); if (result.canRename) { result.triggerSpan = rewriteTextSpan(result.triggerSpan, info.transformedModule); } + this.logger.log('getRenameInfo result before', result); return result; } @@ -289,13 +291,18 @@ export default class GlintLanguageService implements Partial providePrefixAndSuffixTextForRename?: boolean | undefined ): readonly ts.RenameLocation[] | undefined { let result = this.flatMapDefinitions(fileName, offset, (fileName, offset) => { - return this.ls.findRenameLocations( - fileName, - offset, - findInStrings, - findInComments, - providePrefixAndSuffixTextForRename - ); + let shouldConsiderRenaming = + isTransformedPath(fileName) || this.ls.getRenameInfo(fileName, offset).canRename; + + if (shouldConsiderRenaming) { + return this.ls.findRenameLocations( + fileName, + offset, + findInStrings, + findInComments, + providePrefixAndSuffixTextForRename + ); + } }); return result