Skip to content

Commit

Permalink
Use config defaults based on prettier version. Closes #1290
Browse files Browse the repository at this point in the history
  • Loading branch information
ntotten committed Apr 9, 2020
1 parent ca5ea1d commit 5baeeb6
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
16 changes: 13 additions & 3 deletions src/ConfigResolver.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as prettier from "prettier";
import * as semver from "semver";
import { LoggingService } from "./LoggingService";

interface IResolveConfigResult {
Expand All @@ -18,6 +19,7 @@ export class ConfigResolver {
fileName: string,
parser: prettier.BuiltInParserName,
vsCodeConfig: prettier.Options,
prettierVersion: string,
resolveConfigOptions: prettier.ResolveConfigOptions,
rangeFormattingOptions?: RangeFormattingOptions
): Promise<{ options?: Partial<prettier.Options>; error?: Error }> {
Expand All @@ -34,10 +36,16 @@ export class ConfigResolver {

const fallbackToVSCodeConfig = configOptions === null;

const usePrettierV2Defaults = semver.gte(prettierVersion, "2.0.0");

if (fallbackToVSCodeConfig) {
vsOpts.arrowParens = vsCodeConfig.arrowParens;
vsOpts.arrowParens = usePrettierV2Defaults
? vsCodeConfig.arrowParens
: "avoid";
vsOpts.bracketSpacing = vsCodeConfig.bracketSpacing;
vsOpts.endOfLine = vsCodeConfig.endOfLine;
vsOpts.endOfLine = usePrettierV2Defaults
? vsCodeConfig.endOfLine
: "auto";
vsOpts.htmlWhitespaceSensitivity = vsCodeConfig.htmlWhitespaceSensitivity;
vsOpts.insertPragma = vsCodeConfig.insertPragma;
vsOpts.jsxBracketSameLine = vsCodeConfig.jsxBracketSameLine;
Expand All @@ -49,7 +57,9 @@ export class ConfigResolver {
vsOpts.semi = vsCodeConfig.semi;
vsOpts.singleQuote = vsCodeConfig.singleQuote;
vsOpts.tabWidth = vsCodeConfig.tabWidth;
vsOpts.trailingComma = vsCodeConfig.trailingComma;
vsOpts.trailingComma = usePrettierV2Defaults
? vsCodeConfig.trailingComma
: "none";
vsOpts.useTabs = vsCodeConfig.useTabs;
vsOpts.vueIndentScriptAndStyle = vsCodeConfig.vueIndentScriptAndStyle;
}
Expand Down
3 changes: 2 additions & 1 deletion src/PrettierEditService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ export default class PrettierEditService implements Disposable {
fileInfo = await prettierInstance.getFileInfo(fileName, {
ignorePath,
resolveConfig: true, // Fix for 1.19 (https://prettier.io/blog/2019/11/09/1.19.0.html#api)
withNodeModules: vscodeConfig.withNodeModules
withNodeModules: vscodeConfig.withNodeModules,
});
this.loggingService.logInfo("File Info:", fileInfo);
}
Expand Down Expand Up @@ -297,6 +297,7 @@ export default class PrettierEditService implements Disposable {
fileName,
parser as prettier.BuiltInParserName,
vscodeConfig,
prettierInstance.version,
{
config: vscodeConfig.configPath
? getWorkspaceRelativePath(fileName, vscodeConfig.configPath)
Expand Down

0 comments on commit 5baeeb6

Please sign in to comment.