Skip to content

Commit

Permalink
Svelte を用いてコードブロックプロセッサを実装し直した
Browse files Browse the repository at this point in the history
  • Loading branch information
0918nobita committed May 11, 2024
1 parent 91c649a commit 8bdab46
Show file tree
Hide file tree
Showing 26 changed files with 972 additions and 2,536 deletions.
6 changes: 6 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/** @type {import('prettier').Config} */
export default {
plugins: ['prettier-plugin-svelte'],
singleQuote: true,
semi: true,
};
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
"svelte.svelte-vscode"
]
}
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"svelte.enable-ts-plugin": true,
"[svelte]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
69 changes: 46 additions & 23 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,48 +1,71 @@
// @ts-check

import eslint from '@eslint/js';
import js from '@eslint/js';
import ts from '@typescript-eslint/eslint-plugin';
import tsParser from '@typescript-eslint/parser';
import svelte from 'eslint-plugin-svelte';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import svelteParser from 'svelte-eslint-parser';

const tsRules = {
...ts.configs['strict-type-checked'].rules,
...ts.configs['stylistic-type-checked'].rules,

'@typescript-eslint/array-type': [
'error',
{
default: 'array-simple',
readonly: 'array-simple',
},
],
};

/** @type {import('typescript-eslint').Config} */
export default [
js.configs.recommended,

{
ignores: ['dist'],
},

{
languageOptions: {
globals: {
...globals.browser,
...globals.nodeBuiltin,
},
},
},

eslint.configs.recommended,

{
files: ['**/*.ts'],
ignores: ['.prettierrc.js', '*.config.{js,mjs}'],
plugins: {
'@typescript-eslint': ts,
},
languageOptions: {
parser: tsParser,
parserOptions: {
project: true,
tsconfigRootDir: import.meta.dirname,
project: './tsconfig.json',
parser: tsParser,
extraFileExtensions: ['.svelte'],
},
},
rules: tsRules,
},

{
files: ['**/*.js'],
...tseslint.configs.disableTypeChecked,
files: ['**/*.svelte'],
plugins: {
svelte,
},
processor: svelte.processors.svelte,
languageOptions: {
parser: svelteParser,
parserOptions: {
project: './tsconfig.json',
parser: tsParser,
extraFileExtensions: ['.svelte'],
},
},
rules: {
...svelte.configs.base.rules,
...svelte.configs.recommended.rules,
},
},

...tseslint.configs.recommendedTypeChecked.map((config) => ({
...config,
files: ['**/*.ts'],
})),

...tseslint.configs.stylisticTypeChecked.map((config) => ({
...config,
files: ['**/*.ts'],
})),
];
10 changes: 10 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>Playground</title>
</head>
<body>
<script type="module" src="src/playground.ts"></script>
</body>
</html>
Loading

0 comments on commit 8bdab46

Please sign in to comment.