I have setup eslint to enforce airbnb rules alongside prettier for stylist rules.
.eslintrc.cjs
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
extends: [
'airbnb-base',
'airbnb-typescript/base',
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:svelte/recommended',
'plugin:prettier/recommended',
],
plugins: ['@typescript-eslint'],
ignorePatterns: ['*.cjs'],
overrides: [
{
files: ['**/*.svelte'],
parser: 'svelte-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser',
},
},
],
parserOptions: {
project: './tsconfig.eslint.json',
sourceType: 'module',
ecmaVersion: 2020,
extraFileExtensions: ['.svelte'],
},
env: {
browser: true,
es2017: true,
node: true,
},
rules: {
'import/no-extraneous-dependencies': 0,
},
};
.prettierrc.cjs
module.exports = {
bracketSameLine: true,
useTabs: true,
singleQuote: true,
trailingComma: 'es5',
printWidth: 100,
plugins: ['prettier-plugin-svelte', 'prettier-plugin-tailwindcss'],
tailwindConfig: './tailwind.config.cjs',
pluginSearchDirs: ['.'],
overrides: [{ files: '*.svelte', options: { parser: 'svelte' } }],
semi: true,
};
The problem that I am having is the top two rules (bracketSameLine and useTabs) specified in the .prettierrc.cjs file are not being enforced. For example when I run the npm run lint (which is setup as: eslint . --ext .js,.cjs,.ts,.svelte --fix), I expect the following file to be formatted based on the prettierrc config.
Header.svelte
<script>
import { AppBar } from '@skeletonlabs/skeleton';
</script>
<AppBar
><svelte:fragment slot="lead">left</svelte:fragment>(Welcome)<svelte:fragment slot="trail"
>(actions)</svelte:fragment
></AppBar>