2025-02-21
This commit is contained in:
parent
98131c3b78
commit
5d5918f0d7
69 changed files with 1481 additions and 305 deletions
26
cfg/.prettierignore
Executable file
26
cfg/.prettierignore
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
# Tout ce qui est traité par dprint
|
||||
*.css
|
||||
*.html
|
||||
*.js
|
||||
*.json
|
||||
*.jsonc
|
||||
*.md
|
||||
*.mjs
|
||||
*.mts
|
||||
*.ts
|
||||
*.vue
|
||||
*.yaml
|
||||
*.yml
|
||||
!package.json
|
||||
|
||||
# Cache
|
||||
.cache
|
||||
|
||||
# Compilation
|
||||
dist
|
||||
|
||||
# Jujutsu
|
||||
.jj
|
||||
|
||||
# Zed
|
||||
.zed
|
||||
112
cfg/dprint.json
Normal file
112
cfg/dprint.json
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{
|
||||
"excludes": ["node_modules/", ".cache/", "dist/", "bun.lock"],
|
||||
"exec": {
|
||||
"cacheKey": "1",
|
||||
"commands": [{ "command": "just --dump", "fileNames": ["justfile"], "stdin": false }],
|
||||
"cwd": "${originConfigDir}",
|
||||
"indentWidth": 2,
|
||||
"lineWidth": 120,
|
||||
"timeout": 30,
|
||||
"useTabs": false
|
||||
},
|
||||
"indentWidth": 2,
|
||||
"json": {
|
||||
"commentLine.forceSpaceAfterSlashes": true,
|
||||
"indentWidth": 2,
|
||||
"jsonTrailingCommaFiles": [".swcrc", "biome.jsonc", "settings.json", "tsconfig.json"],
|
||||
"lineWidth": 120,
|
||||
"newLineKind": "lf",
|
||||
"preferSingleLine": false,
|
||||
"trailingCommas": "never",
|
||||
"useTabs": false
|
||||
},
|
||||
"lineWidth": 120,
|
||||
"malva": {
|
||||
"alignComments": true,
|
||||
"attrValueQuotes": "always",
|
||||
"blockSelectorLinebreak": "wrap",
|
||||
"declarationOrder": null,
|
||||
"formatComments": true,
|
||||
"hexCase": "lower",
|
||||
"hexColorLength": "short",
|
||||
"indentWidth": 2,
|
||||
"keyframeSelectorNotation": "keyword",
|
||||
"lineBreak": "lf",
|
||||
"linebreakInPseudoParens": true,
|
||||
"omitNumberLeadingZero": false,
|
||||
"operatorLinebreak": "before",
|
||||
"preferSingleLine": true,
|
||||
"printWidth": 100,
|
||||
"quotes": "alwaysDouble",
|
||||
"singleLineBlockThreshold": null,
|
||||
"singleLineTopLevelDeclarations": false,
|
||||
"trailingComma": false,
|
||||
"useTabs": false
|
||||
},
|
||||
"markup": {
|
||||
"closingBracketSameLine": false,
|
||||
"closingTagLineBreakForEmpty": "never",
|
||||
"component.selfClosing": false,
|
||||
"doctypeKeywordCase": "lower",
|
||||
"formatComments": true,
|
||||
"html.normal.selfClosing": false,
|
||||
"html.void.selfClosing": false,
|
||||
"indentWidth": 2,
|
||||
"lineBreak": "lf",
|
||||
"maxAttrsPerLine": 3,
|
||||
"preferAttrsSingleLine": false,
|
||||
"printWidth": 120,
|
||||
"quotes": "double",
|
||||
"scriptFormatter": "dprint",
|
||||
"scriptIndent": true,
|
||||
"styleIndent": true,
|
||||
"svg.selfClosing": true,
|
||||
"useTabs": false,
|
||||
"whitespaceSensitivity": "strict"
|
||||
},
|
||||
"newLineKind": "lf",
|
||||
"plugins": [
|
||||
"https://plugins.dprint.dev/typescript-0.93.3.wasm",
|
||||
"https://plugins.dprint.dev/json-0.19.4.wasm",
|
||||
"https://plugins.dprint.dev/markdown-0.17.8.wasm",
|
||||
"https://plugins.dprint.dev/toml-0.6.4.wasm",
|
||||
"https://plugins.dprint.dev/g-plane/malva-v0.11.1.wasm",
|
||||
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.18.0.wasm",
|
||||
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm",
|
||||
"https://plugins.dprint.dev/exec-0.5.1.json@492414e39dea4dccc07b4af796d2f4efdb89e84bae2bd4e1e924c0cc050855bf"
|
||||
],
|
||||
"toml": {
|
||||
"cargo.applyConventions": true,
|
||||
"comment.forceLeadingSpace": true,
|
||||
"indentWidth": 2,
|
||||
"lineWidth": 120,
|
||||
"newLineKind": "lf",
|
||||
"useTabs": false
|
||||
},
|
||||
"typescript": {
|
||||
"arrowFunction.useParentheses": "preferNone",
|
||||
"conditionalExpression.operatorPosition": "nextLine",
|
||||
"conditionalExpression.preferSingleLine": true,
|
||||
"exportDeclaration.sortNamedExports": "maintain",
|
||||
"importDeclaration.sortNamedImports": "maintain",
|
||||
"module.sortExportDeclarations": "maintain",
|
||||
"module.sortImportDeclarations": "maintain",
|
||||
"quoteProps": "asNeeded",
|
||||
"trailingCommas": "onlyMultiLine",
|
||||
"useBraces": "whenNotSingleLine"
|
||||
},
|
||||
"yaml": {
|
||||
"braceSpacing": true,
|
||||
"bracketSpacing": false,
|
||||
"formatComments": true,
|
||||
"indentBlockSequenceInMap": true,
|
||||
"indentWidth": 2,
|
||||
"lineBreak": "lf",
|
||||
"preferSingleLine": false,
|
||||
"printWidth": 120,
|
||||
"quotes": "preferDouble",
|
||||
"trailingComma": true,
|
||||
"trimTrailingWhitespaces": true,
|
||||
"trimTrailingZero": false
|
||||
}
|
||||
}
|
||||
69
cfg/eslint.config.mts
Normal file
69
cfg/eslint.config.mts
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript";
|
||||
import perfectionist from "eslint-plugin-perfectionist";
|
||||
import vue from "eslint-plugin-vue";
|
||||
import globals from "globals";
|
||||
|
||||
export default defineConfigWithVueTs(
|
||||
{
|
||||
files: ["**/*.{js,mjs,ts,mts,vue}"],
|
||||
languageOptions: { ecmaVersion: "latest", globals: { ...globals.browser, ...globals.es2025 } },
|
||||
name: "app/files-to-lint",
|
||||
},
|
||||
{ ignores: [".cache/", "dist/", "node_modules/"], name: "app/files-to-ignore" },
|
||||
vueTsConfigs.strictTypeChecked,
|
||||
vueTsConfigs.stylisticTypeChecked,
|
||||
vue.configs["flat/recommended"],
|
||||
{
|
||||
name: "app/no-vue-formatting",
|
||||
rules: {
|
||||
"vue/array-bracket-newline": "off",
|
||||
"vue/array-bracket-spacing": "off",
|
||||
"vue/array-element-newline": "off",
|
||||
"vue/arrow-spacing": "off",
|
||||
"vue/attributes-order": ["error", { alphabetical: true }],
|
||||
"vue/block-spacing": "off",
|
||||
"vue/block-tag-newline": "off",
|
||||
"vue/brace-style": "off",
|
||||
"vue/comma-dangle": "off",
|
||||
"vue/comma-spacing": "off",
|
||||
"vue/comma-style": "off",
|
||||
"vue/dot-location": "off",
|
||||
"vue/first-attribute-linebreak": "off",
|
||||
"vue/func-call-spacing": "off",
|
||||
"vue/html-closing-bracket-newline": "off",
|
||||
"vue/html-closing-bracket-spacing": "off",
|
||||
"vue/html-comment-content-newline": "off",
|
||||
"vue/html-comment-content-spacing": "off",
|
||||
"vue/html-comment-indent": "off",
|
||||
"vue/html-indent": "off",
|
||||
"vue/html-quotes": "off",
|
||||
"vue/html-self-closing": "off",
|
||||
"vue/key-spacing": "off",
|
||||
"vue/keyword-spacing": "off",
|
||||
"vue/max-attributes-per-line": "off",
|
||||
"vue/max-len": "off",
|
||||
"vue/multiline-html-element-content-newline": "off",
|
||||
"vue/multiline-ternary": "off",
|
||||
"vue/new-line-between-multi-line-property": "off",
|
||||
"vue/no-extra-parens": "off",
|
||||
"vue/no-multi-spaces": "off",
|
||||
"vue/no-spaces-around-equal-signs-in-attribute": "off",
|
||||
"vue/object-curly-newline": "off",
|
||||
"vue/object-curly-spacing": "off",
|
||||
"vue/object-property-newline": "off",
|
||||
"vue/operator-linebreak": "off",
|
||||
"vue/padding-line-between-blocks": "off",
|
||||
"vue/padding-line-between-tags": "off",
|
||||
"vue/padding-lines-in-component-definition": "off",
|
||||
"vue/quote-props": "off",
|
||||
"vue/script-indent": "off",
|
||||
"vue/singleline-html-element-content-newline": "off",
|
||||
"vue/space-in-parens": "off",
|
||||
"vue/space-infix-ops": "off",
|
||||
"vue/space-unary-ops": "off",
|
||||
"vue/template-curly-spacing": "off",
|
||||
"vue/v-for-delimiter-style": "off",
|
||||
},
|
||||
},
|
||||
perfectionist.configs["recommended-natural"],
|
||||
);
|
||||
13
cfg/knip.config.ts
Normal file
13
cfg/knip.config.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import type { KnipConfig } from "knip";
|
||||
|
||||
const config: KnipConfig = {
|
||||
entry: [
|
||||
"vite.config.mts",
|
||||
"src/main.ts",
|
||||
"src/App.vue",
|
||||
"pages/**/*.vue",
|
||||
],
|
||||
project: ["src/**/*.{ts,vue}"],
|
||||
};
|
||||
|
||||
export default config;
|
||||
26
cfg/prettier.config.mjs
Normal file
26
cfg/prettier.config.mjs
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/** @type {import("prettier").Config} */
|
||||
const config = {
|
||||
arrowParens: "avoid",
|
||||
bracketSameLine: false,
|
||||
bracketSpacing: true,
|
||||
embeddedLanguageFormatting: "auto",
|
||||
endOfLine: "lf",
|
||||
experimentalOperatorPosition: "start",
|
||||
experimentalTernaries: true,
|
||||
htmlWhitespaceSensitivity: "ignore",
|
||||
jsxSingleQuote: false,
|
||||
objectWrap: "collapse",
|
||||
overrides: [{ files: ["package.json"], options: { plugins: ["prettier-plugin-pkg"] } }],
|
||||
plugins: ["prettier-plugin-sh"],
|
||||
printWidth: 120,
|
||||
proseWrap: "never",
|
||||
quoteProps: "as-needed",
|
||||
semi: true,
|
||||
singleAttributePerLine: true,
|
||||
singleQuote: false,
|
||||
tabWidth: 2,
|
||||
trailingComma: "all",
|
||||
useTabs: false,
|
||||
};
|
||||
|
||||
export default config;
|
||||
Loading…
Add table
Add a link
Reference in a new issue