module.exports = {
  // 配置vscode优先使用本文件格式化文件 https://blog.csdn.net/a843334549/article/details/115391605
  // 以下为 @trivago/prettier-plugin-sort-imports 配置，若未使用可删去
  // importOrder 中的文件顺序规范，可依据项目实际情况自行更改
  // 改完 importOrder 重启一下vscode才会生效
  plugins: [require.resolve('@trivago/prettier-plugin-sort-imports')],
  importOrder: [
    '^vite',
    '^react',
    '^react-router',
    '^zustand',
    'store',
    'router',
    '<THIRD_PARTY_MODULES>',
    'hooks/',
    'api/',
    'utils/',
    'constants/',
    'pages/',
    '^antd',
    '^@ant-design',
    'styles/',
    'theme/',
    'components/',
    '^[./]'
  ],
  importOrderSortSpecifiers: true, // 一个布尔值，用于启用或禁用 import declarations 中说明符的排序。
  importOrderGroupNamespaceSpecifiers: true, // 一个布尔值，用于启用或禁用将命名空间说明符排序到导入组的顶部。
  importOrderCaseInsensitive: true, // 一个布尔值，用于在排序算法中启用不区分大小写，用于对每个匹配组中的导入进行排序。

  /**
   * 换行宽度，当代码宽度达到多少时换行
   * @default 100
   * @type {number}
   */
  printWidth: 100,
  /**
   * 缩进的空格数量
   * @default 2
   * @type {number}
   */
  tabWidth: 2,
  /**
   * 是否使用制表符代替空格
   * @default false
   * @type {boolean}
   */
  useTabs: false,
  /**
   * 是否在代码块结尾加上分号
   * @default true
   * @type {boolean}
   */
  semi: false,
  /**
   * 是否使用单引号替代双引号
   * @default false
   * @type {boolean}
   */
  singleQuote: true,
  /**
   * 对象属性的引号处理
   * @default "as-needed"
   * @type {"as-needed"|"consistent"|"preserve"}
   */
  quoteProps: 'as-needed',
  /**
   * jsx中是否使用单引号替代双引号
   * @default false
   * @type {boolean}
   */
  jsxSingleQuote: true,
  /**
   * 将多行 JSX 元素的 > 放在最后一行的末尾，而不是单独放在下一行
   * @default false
   * @type {boolean}
   */
  jsxBracketSameLine: true,
  /**
   * 末尾是否加上逗号
   * @default "es5"
   * @type {"es5"|"none"|"all"}
   */
  trailingComma: 'none',
  /**
   * 在对象，数组括号与文字之间加空格 "{ foo: bar }"
   * @default true
   * @type {boolean}
   */
  bracketSpacing: true,
  /**
   * 把多行HTML (HTML, JSX, Vue, Angular)元素的>放在最后一行的末尾，而不是单独放在下一行(不适用于自关闭元素)。
   * @default false
   * @type {boolean}
   */
  bracketSameLine: true,
  /**
   * 当箭头函数只有一个参数是否加括号
   * @default "always"
   * @type {"always"|"avoid"}
   */
  arrowParens: 'always',
  /**
   * 为HTML、Vue、Angular和Handlebars指定全局空格敏感性
   * @default "css"
   * @type {"css"|"strict"|"ignore"}
   */
  htmlWhitespaceSensitivity: 'ignore',
  /**
   * 文件结束符
   * @default "lf"
   * @type {"lf"|"crlf"|"cr"|"auto"}
   */
  endOfLine: 'crlf',
  /**
   * 因为使用了一些折行敏感型的渲染器（如GitHub comment）而按照markdown文本样式进行折行
   */
  proseWrap: 'never',
  /**
   * HTML\VUE\JSX每行只有单个属性
   * @default true
   * @type {boolean}
   */
  singleAttributePerLine: false,
  endOfLine: 'auto',
  ignorePath: '.prettierignore'
}
