Skip to content

Prettier and Vim-Prettier don't break lines the same when set to the same print width #290

Description

@rschristian

Do you want to request a feature or report a bug?

Bug

What is the current/expected behavior?

I'd like vim-prettier to match the output of prettier, but it does not. It seems like the print_width of vim-prettier needs to be much less in order to get the same output.

This is just an excerpt of a package.json file, formatted with Prettier via yarn prettier package.json --write

{
  "eslintConfig": {
    "parser": "@typescript-eslint/parser",
    "extends": [
      "preact",
      "plugin:@typescript-eslint/recommended"
    ],
    "rules": {
      "@typescript-eslint/explicit-module-boundary-types": "off",
      "@typescript-eslint/no-explicit-any": "off"
    }
  },
  "prettier": {
    "singleQuote": true,
    "trailingComma": "none",
    "useTabs": true,
    "arrowParens": "avoid"
  },
  "jest": {
    "preset": "ts-jest",
    "testPathIgnorePatterns": [
      "<rootDir>/{dist,src}"
    ],
    "setupFilesAfterEnv": [
      "<rootDir>/test/setup-tests.ts"
    ],
    "collectCoverageFrom": [
      "<rootDir>/src/**/*.{ts,tsx}",
      "!<rootDir>/src/types/**/*"
    ],
    "moduleNameMapper": {
      "^react$": "preact/compat",
      "^react-dom/test-utils$": "preact/test-utils",
      "^react-dom$": "preact/compat"
    }
  }
}

And this is the following after saving with vim-prettier:

{
  "eslintConfig": {
    "parser": "@typescript-eslint/parser",
    "extends": ["preact", "plugin:@typescript-eslint/recommended"],
    "rules": {
      "@typescript-eslint/explicit-module-boundary-types": "off",
      "@typescript-eslint/no-explicit-any": "off"
    }
  },
  "prettier": {
    "singleQuote": true,
    "trailingComma": "none",
    "useTabs": true,
    "arrowParens": "avoid"
  },
  "jest": {
    "preset": "ts-jest",
    "testPathIgnorePatterns": ["<rootDir>/{dist,src}"],
    "setupFilesAfterEnv": ["<rootDir>/test/setup-tests.ts"],
    "collectCoverageFrom": [
      "<rootDir>/src/**/*.{ts,tsx}",
      "!<rootDir>/src/types/**/*"
    ],
    "moduleNameMapper": {
      "^react$": "preact/compat",
      "^react-dom/test-utils$": "preact/test-utils",
      "^react-dom$": "preact/compat"
    }
  }
}

As you can see, the output formatting is incorrect.

I noticed I have to set vim-prettier to have about a print_width of 60 in order to get output that better resembles 80 with prettier, though still has some issues. Something's not calculated right.

What version of vim-prettier are you using - (output of :PrettierVersion) ?

1.0.0-beta

What version of prettier are you using - (output of :PrettierCliVersion) ?

2.2.1

What is your prettier executable path - (output of :PrettierCliPath) ?

/home/username/Projects/project-name/node_modules/.bin/prettier

Did this work in previous versions of vim-prettier and/or prettier ?

Not that I see, no

Vim-Prettier config

" --- Prettier ---
let g:prettier#autoformat = 1
let g:prettier#autoformat_require_pragma = 0
let g:prettier#config#print_width = 80

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions