diff --git a/.agent/workflows/typescript-edit.md b/.agent/workflows/typescript-edit.md new file mode 100644 index 00000000..9dde673c --- /dev/null +++ b/.agent/workflows/typescript-edit.md @@ -0,0 +1,19 @@ +--- +description: TypeScriptファイル編集後の自動整形 +--- + +# TypeScriptファイル編集後のワークフロー + +TypeScriptファイル(`.ts`)を編集した後は、以下の手順を実行してください。 + +## 手順 + +1. TypeScriptファイルの編集を完了する + +// turbo +2. Lintと自動修正を実行する +```bash +npm run lint-fix +``` + +これにより、コードスタイルが自動的に整形され、修正可能なlintエラーが修正されます。 diff --git a/README.md b/README.md index 4022d85a..a0928ca2 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Currently, it identifies the following: - Psalm checks based on the presence of `psalm.xml.dist` or `psalm.xml` files. - PHPStan checks based on the presence of `phpstan.neon`, `phpstan.neon.dist` or `phpstan.dist.neon` files. - ComposerRequireChecker checks based on the presence of `composer-require-checker.json` file. +- composer-dependency-analyser checks based on the presence of `composer-dependency-analyser.php` file. - phpbench benchmarks based on the presence of a `phpbench.json`. - Infection mutation tests based on the presence of `infection.json` or `infection.json.dist`. In case that `roave/infection-static-analysis-plugin` is installed, this will be used instead. - Markdown documentation based on the presence of a `mkdocs.yml` and/or markdown files in the `doc/book/` or `doc/books/` trees. diff --git a/src/tools.ts b/src/tools.ts index 8fb5dafc..a99a01da 100644 --- a/src/tools.ts +++ b/src/tools.ts @@ -6,6 +6,7 @@ import {InfectionTool} from './tools/infection'; import {PhpCodeSnifferTool} from './tools/codesniffer'; import {PsalmTool} from './tools/psalm'; import {ComposerRequireCheckerTool} from './tools/composerRequireChecker'; +import {ComposerDependencyAnalyser} from './tools/composerDependencyAnalyser'; import {PhpBenchTool} from './tools/phpbench'; import {CodeceptionTool} from './tools/codeception'; import {PhpCsFixerTool} from './tools/phpCsFixer'; @@ -80,6 +81,7 @@ export default function createTools(config: Config): Array { PhpCodeSnifferTool, PsalmTool, ComposerRequireCheckerTool, + ComposerDependencyAnalyser, PhpBenchTool, CodeceptionTool, PhpCsFixerTool, @@ -106,4 +108,4 @@ export function removeNonExistentFilesToCheck(tool: Tool): Tool { export function isToolRunningContainerDefaultPhpVersion(tool: Tool): tool is ToolRunningContainerDefaultPhpVersion { return (tool as ToolRunningContainerDefaultPhpVersion).php === CONTAINER_DEFAULT_PHP_VERSION; -} +} \ No newline at end of file diff --git a/src/tools/composerDependencyAnalyser.ts b/src/tools/composerDependencyAnalyser.ts new file mode 100644 index 00000000..81fa739c --- /dev/null +++ b/src/tools/composerDependencyAnalyser.ts @@ -0,0 +1,11 @@ +import { ToolType } from '../enum/toolType'; +import { ToolExecutionType } from '../enum/toolExecutionType'; + +export const ComposerDependencyAnalyser = { + executionType: ToolExecutionType.STATIC, + name: 'Composer Dependency Analyser', + command: './vendor/bin/composer-dependency-analyser', + filesToCheck: ['composer-dependency-analyser.php'], + toolType: ToolType.CODE_CHECK, +}; + diff --git a/tests/code-check-composer-dependency-analyser/.laminas-ci.json b/tests/code-check-composer-dependency-analyser/.laminas-ci.json new file mode 100644 index 00000000..8aec558a --- /dev/null +++ b/tests/code-check-composer-dependency-analyser/.laminas-ci.json @@ -0,0 +1,3 @@ +{ + "stablePHP": "7.4" +} \ No newline at end of file diff --git a/tests/code-check-composer-dependency-analyser/composer-dependency-analyser.php b/tests/code-check-composer-dependency-analyser/composer-dependency-analyser.php new file mode 100644 index 00000000..16838b4a --- /dev/null +++ b/tests/code-check-composer-dependency-analyser/composer-dependency-analyser.php @@ -0,0 +1,9 @@ +