提交 07c6d4cf 编写于 作者: M Matt Bierner

Ensure we use the proper formatting settings for js/ts

上级 599fdbd6
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
* Licensed under the MIT License. See License.txt in the project root for license information. * Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import { workspace as Workspace, FormattingOptions, TextDocument, CancellationToken, window, Disposable, workspace, Uri } from 'vscode'; import { workspace as Workspace, FormattingOptions, TextDocument, CancellationToken, window, Disposable, workspace } from 'vscode';
import * as Proto from '../protocol'; import * as Proto from '../protocol';
import { ITypescriptServiceClient } from '../typescriptService'; import { ITypescriptServiceClient } from '../typescriptService';
import * as languageIds from '../utils/languageModeIds';
namespace FormattingConfiguration { namespace FormattingConfiguration {
export function equals(a: Proto.FormatCodeSettings, b: Proto.FormatCodeSettings): boolean { export function equals(a: Proto.FormatCodeSettings, b: Proto.FormatCodeSettings): boolean {
...@@ -71,7 +72,7 @@ export default class FormattingConfigurationManager { ...@@ -71,7 +72,7 @@ export default class FormattingConfigurationManager {
const key = document.uri.toString(); const key = document.uri.toString();
const cachedOptions = this.formatOptions[key]; const cachedOptions = this.formatOptions[key];
const formatOptions = this.getFormatOptions(document.uri, options); const formatOptions = this.getFormatOptions(document, options);
if (cachedOptions && FormattingConfiguration.equals(cachedOptions, formatOptions)) { if (cachedOptions && FormattingConfiguration.equals(cachedOptions, formatOptions)) {
return; return;
...@@ -90,10 +91,14 @@ export default class FormattingConfigurationManager { ...@@ -90,10 +91,14 @@ export default class FormattingConfigurationManager {
} }
private getFormatOptions( private getFormatOptions(
resource: Uri, document: TextDocument,
options: FormattingOptions options: FormattingOptions
): Proto.FormatCodeSettings { ): Proto.FormatCodeSettings {
const config = workspace.getConfiguration('typescript', resource); const config = workspace.getConfiguration(
document.languageId === languageIds.typescript || document.languageId === languageIds.typescriptreact
? 'typescript.format'
: 'javascript.format',
document.uri);
return { return {
tabSize: options.tabSize, tabSize: options.tabSize,
indentSize: options.tabSize, indentSize: options.tabSize,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册