@tms/eslint-plugin-align-assignments
連続する変数宣言の代入演算子を整列する、ESLint Flat Config用プラグインです。
このツールについて
変数宣言が連続している箇所で、代入演算子の=を縦に揃えます。通常の変数宣言に加え、トップレベルのexport constにも対応しています。
宣言の間にコメント行だけがある場合は同じグループとして扱います。空行、コメント以外の文、異なるブロックはグループの境界になります。
動作例
ESLintの自動修正を実行すると、次のように整列します。
修正前:
const hoge = 'hoge';
// コメント行を挟んでも同じグループ
const hogeHoge = 'hogehoge';
修正後:
const hoge = 'hoge';
// コメント行を挟んでも同じグループ
const hogeHoge = 'hogehoge';
対応環境
- Node.js 18.18以降
- ESLint 9または10
- ESLint Flat Config
インストール
npmレジストリには公開していません。 GitHub Releaseで公開しているバージョン固定のパッケージを指定します。
npm install --save-dev "https://github.com/TMSystems-Rights/tms-eslint-plugin-align-assignments/releases/download/v<バージョン>/tms-eslint-plugin-align-assignments-<バージョン>.tgz"
例:v1.0.3の場合
npm install --save-dev "https://github.com/TMSystems-Rights/tms-eslint-plugin-align-assignments/releases/download/v1.0.3/tms-eslint-plugin-align-assignments-1.0.3.tgz"
Flat Configの設定
eslint.config.mjsへプラグインとルールを追加します。
import alignAssignments from '@tms/eslint-plugin-align-assignments';
export default [
{
plugins: {
'align-assignments': alignAssignments
},
rules: {
'align-assignments/align-assignments': 'error'
}
}
];
組み込みの推奨設定を使う場合は、次のように記述できます。
import alignAssignments from '@tms/eslint-plugin-align-assignments';
export default [
alignAssignments.configs['flat/recommended']
];
オプション
requiresOnly: trueを指定すると、変数宣言のうち、宣言文内にrequire()を含むものだけを整列対象にします。CommonJS形式の依存モジュール宣言だけを整列し、通常の変数宣言には手を加えたくない場合に利用できます。
rules: {
'align-assignments/align-assignments': ['error', { requiresOnly: true }]
}
修正前:
const fs = require('node:fs');
const path = require('node:path');
const port = 3000;
const developmentMode = true;
require()を含む宣言だけが整列され、通常の変数宣言は変更されません。
修正後:
const fs = require('node:fs');
const path = require('node:path');
const port = 3000;
const developmentMode = true;
更新のしかた
- GitHub Releasesで新しいバージョンを確認します。
package.jsonのURLに含まれるバージョン番号とファイル名を、新しいバージョンへ変更します。npm installを実行し、package-lock.jsonも更新します。- ESLintを実行して、対象プロジェクトに意図しない変更がないことを確認します。
詳細・不具合報告
仕様、ソースコード、ライセンスの詳細はGitHubリポジトリを参照してください。
不具合はGitHub Issuesで受け付けています。