Skip to content

Commit b61e281

Browse files
committed
pass language more data to code actions
1 parent 6c0e962 commit b61e281

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

typescript/src/codeActions/decorateProxy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { handleFunctionRefactorEdits, processApplicableRefactors } from './funct
33
import getCodeActions, { REFACTORS_CATEGORY } from './getCodeActions'
44
import improveBuiltin from './improveBuiltin'
55

6-
export default (proxy: ts.LanguageService, languageService: ts.LanguageService, c: GetConfig) => {
6+
export default (proxy: ts.LanguageService, languageService: ts.LanguageService, languageServiceHost: ts.LanguageServiceHost, c: GetConfig) => {
77
proxy.getApplicableRefactors = (fileName, positionOrRange, preferences) => {
88
let prior = languageService.getApplicableRefactors(fileName, positionOrRange, preferences)
99

@@ -16,7 +16,7 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService,
1616

1717
const program = languageService.getProgram()
1818
const sourceFile = program!.getSourceFile(fileName)!
19-
const { info: refactorInfo } = getCodeActions(sourceFile, positionOrRange)
19+
const { info: refactorInfo } = getCodeActions(sourceFile, positionOrRange, languageService, languageServiceHost)
2020
if (refactorInfo) prior = [...prior, refactorInfo]
2121

2222
return prior
@@ -27,7 +27,7 @@ export default (proxy: ts.LanguageService, languageService: ts.LanguageService,
2727
if (category === REFACTORS_CATEGORY) {
2828
const program = languageService.getProgram()
2929
const sourceFile = program!.getSourceFile(fileName)!
30-
const { edit } = getCodeActions(sourceFile, positionOrRange, actionName)
30+
const { edit } = getCodeActions(sourceFile, positionOrRange, languageService, languageServiceHost, formatOptions, actionName)
3131
return edit
3232
}
3333
if (refactorName === 'Extract Symbol' && actionName.startsWith('function_scope')) {

typescript/src/codeActions/getCodeActions.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { compact } from '@zardoy/utils'
22
import { findChildContainingPosition } from '../utils'
33
import objectSwapKeysAndValues from './custom/objectSwapKeysAndValues'
44
import changeStringReplaceToRegex from './custom/changeStringReplaceToRegex'
5-
import toggleBraces from './custom/toggleBraces'
65

76
type SimplifiedRefactorInfo =
87
| {
@@ -17,6 +16,9 @@ export type ApplyCodeAction = (
1716
position: number,
1817
range: ts.TextRange | undefined,
1918
node: ts.Node | undefined,
19+
formatOptions: ts.FormatCodeSettings,
20+
languageService: ts.LanguageService,
21+
languageServiceHost: ts.LanguageServiceHost,
2022
) => ts.RefactorEditInfo | SimplifiedRefactorInfo[] | undefined
2123

2224
export type CodeAction = {
@@ -34,14 +36,17 @@ export const REFACTORS_CATEGORY = 'essential-refactors'
3436
export default (
3537
sourceFile: ts.SourceFile,
3638
positionOrRange: ts.TextRange | number,
39+
languageService: ts.LanguageService,
40+
languageServiceHost: ts.LanguageServiceHost,
41+
formatOptions?: ts.FormatCodeSettings,
3742
requestingEditsId?: string,
3843
): { info?: ts.ApplicableRefactorInfo; edit: ts.RefactorEditInfo } => {
3944
const range = typeof positionOrRange !== 'number' && positionOrRange.pos !== positionOrRange.end ? positionOrRange : undefined
4045
const pos = typeof positionOrRange === 'number' ? positionOrRange : positionOrRange.pos
4146
const node = findChildContainingPosition(ts, sourceFile, pos)
4247
const appliableCodeActions = compact(
4348
codeActions.map(action => {
44-
const edits = action.tryToApply(sourceFile, pos, range, node)
49+
const edits = action.tryToApply(sourceFile, pos, range, node, formatOptions ?? {}, languageService, languageServiceHost)
4550
if (!edits) return
4651
return {
4752
...action,

typescript/src/codeFixes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import namespaceAutoImports from './namespaceAutoImports'
88
// codeFixes that I managed to put in files
99
const externalCodeFixes = [addMissingProperties]
1010

11-
export default (proxy: ts.LanguageService, languageService: ts.LanguageService, c: GetConfig, languageServiceHost: ts.LanguageServiceHost) => {
11+
export default (proxy: ts.LanguageService, languageService: ts.LanguageService, languageServiceHost: ts.LanguageServiceHost, c: GetConfig) => {
1212
proxy.getCodeFixesAtPosition = (fileName, start, end, errorCodes, formatOptions, preferences) => {
1313
const sourceFile = languageService.getProgram()?.getSourceFile(fileName)!
1414
const node = findChildContainingPosition(ts, sourceFile, start)

typescript/src/decorateProxy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ export const decorateLanguageService = (
8181

8282
proxy.getCompletionEntryDetails = (...inputArgs) => completionEntryDetails(inputArgs, languageService, prevCompletionsMap, c, prevCompletionsAdittionalData)
8383

84-
decorateCodeActions(proxy, languageService, c)
85-
decorateCodeFixes(proxy, languageService, c, languageServiceHost)
84+
decorateCodeActions(proxy, languageService, languageServiceHost, c)
85+
decorateCodeFixes(proxy, languageService, languageServiceHost, c)
8686
decorateSemanticDiagnostics(proxy, languageService, languageServiceHost, c)
8787
decorateDefinitions(proxy, languageService, languageServiceHost, c)
8888
decorateReferences(proxy, languageService, c)

0 commit comments

Comments
 (0)