diff --git a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts index f267c73bd10..2d970d1cf4b 100644 --- a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts +++ b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts @@ -11,6 +11,7 @@ import API from '../utils/api'; import { Delayer } from '../utils/async'; import { disposeAll } from '../utils/dispose'; import * as languageModeIds from '../utils/languageModeIds'; +import * as typeConverters from '../utils/typeConverters'; import { ResourceMap } from './resourceMap'; enum BufferKind { @@ -96,12 +97,8 @@ class SyncedBuffer { public onContentChanged(events: TextDocumentContentChangeEvent[]): void { for (const { range, text } of events) { const args: Proto.ChangeRequestArgs = { - file: this.filepath, - line: range.start.line + 1, - offset: range.start.character + 1, - endLine: range.end.line + 1, - endOffset: range.end.character + 1, - insertString: text + insertString: text, + ...typeConverters.Range.toFormattingRequestArgs(this.filepath, range) }; this.client.execute('change', args, false); } diff --git a/extensions/typescript-language-features/src/features/formatting.ts b/extensions/typescript-language-features/src/features/formatting.ts index e0556c99ec8..029db28f870 100644 --- a/extensions/typescript-language-features/src/features/formatting.ts +++ b/extensions/typescript-language-features/src/features/formatting.ts @@ -51,17 +51,11 @@ class TypeScriptFormattingProvider implements vscode.DocumentRangeFormattingEdit options: vscode.FormattingOptions, token: vscode.CancellationToken ): Promise { - const absPath = this.client.toPath(document.uri); - if (!absPath) { + const file = this.client.toPath(document.uri); + if (!file) { return []; } - const args: Proto.FormatRequestArgs = { - file: absPath, - line: range.start.line + 1, - offset: range.start.character + 1, - endLine: range.end.line + 1, - endOffset: range.end.character + 1 - }; + const args = typeConverters.Range.toFormattingRequestArgs(file, range); return this.doFormat(document, options, args, token); } diff --git a/extensions/typescript-language-features/src/utils/typeConverters.ts b/extensions/typescript-language-features/src/utils/typeConverters.ts index 8c87338893d..44ad7f4ae5e 100644 --- a/extensions/typescript-language-features/src/utils/typeConverters.ts +++ b/extensions/typescript-language-features/src/utils/typeConverters.ts @@ -24,6 +24,14 @@ export namespace Range { endLine: range.end.line + 1, endOffset: range.end.character + 1 }); + + export const toFormattingRequestArgs = (file: string, range: vscode.Range): Proto.FormatRequestArgs => ({ + file, + line: range.start.line + 1, + offset: range.start.character + 1, + endLine: range.end.line + 1, + endOffset: range.end.character + 1 + }); } export namespace Position {