これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド tidyallp です。
プログラム:
NAME
tidyall - オールインワンのコード整頓およびバリデーター
SYNOPSIS
# プロジェクトの先頭に tidyall.ini または .tidyallrc を作成します
#
[パールタイディ]
select = **/*.{pl,pm,t}
argv = -noll -it=2
[Perl評論家]
選択 = lib/**/*.pm
無視 = lib/UtterHack.pm
argv = -重大度 3
# 現在のプロジェクトのすべてのファイルを処理し、
# cwd から上方向に conf ファイルを探す
#
% ティディオール -a
# XNUMX つまたは複数の特定のファイルを処理します。
# 最初のファイルから上方向に conf ファイルを探す
#
% tidyall ファイル [ファイル...]
# ディレクトリを再帰的に処理する
#
% tinyall -r ディレクトリ
DESCRIPTION
優れたコード整理ツールやバリデーターがたくさんあります。 「tidyall」はそれらを作ります
単一の統合インターフェイスから利用できます。
単一のファイルまたはプロジェクト階層全体で「tidyall」を実行し、構成することができます
どのファイター/バリデーターがどのファイルに適用されるか。 「tidyall」はファイルをバックアップします
事前に、そして効率のために、変更された後に変更されたファイルのみを考慮します
最後に処理されました。
何 a 整頓? 何 a バリデータ?
A より整然とした セマンティクスを変更せずにファイルの外観を改善するようにファイルを変換します。
例には、perltidy、podtidy、および js-beautify が含まれます。
美化>。
A バリ 正確さの定義のためにファイルを分析します。 例としては
perlcritic、podchecker、jshinthttp://www.jshint.com/>.
多くの tidier はバリデーターでもあります。
Perl。
「tidyall」で整頓またはバリデータを使用するには、対応するプラグイン クラスが必要です。
通常、接頭辞「Code::TidyAll::Plugin::」の下にあります。 このディストリビューションにはプラグインが付属しています
ために:
· Perl: perlcritic、perltidy、perltidy-sweet
・ポッド:podchecker、podspell、podtidy
・メイソン:masontidy
・JavaScript:js-beautify、jshint、jslint
・JSON:JSON
· CSS: cssunminifier
・PHP:phpcs
· その他: Code::TidyAll::Plugin::SortLines
独自のプラグインの作成については、Code::TidyAll::Plugin を参照してください。
使用する 整理整頓
「tidyall」はプロジェクトベースで機能します。プロジェクトは単なるディレクトリ階層です
ファイル。 svn または git 作業ディレクトリは、プロジェクトの典型的な例です。
プロジェクトのトップは、 ルート ディレクトリにジョブを開始します。. ルートディレクトリには、
「tidyall.ini」または「.tidyallrc」という名前の構成ファイル。 さまざまな整頓方法を定義し、
プロジェクト内のファイルにバリデーターが適用されます。
「tidyall」は、ルートディレクトリと構成ファイルを自動的に見つけます。
あれを呼べ:
「tidyall ファイル [ファイル...]」
「tidyall」は、最初のファイルから上に向かって conf ファイルを検索します。
「tidyall -p/--パイプファイル」
「tidyall」は、指定されたファイルから上方に conf ファイルを検索します。
「tidyall -a/--all」または「tidyall -s/--svn」または「tidyall -g/--git」
「tidyall」は、現在の作業ディレクトリから上方向に conf ファイルを検索します。
「tidyall -a --root-dir dir」
「tidyall」は、指定されたルート ディレクトリに conf ファイルがあることを期待します。
--conf-name を渡して検索対象の名前を変更したり、 --conf-file を渡して検索することもできます。
明示的なパスを指定します。
CONFIGURATION
構成ファイル (「tidyall.ini」または「.tidyallrc」) は Config::INI 形式です。 ここにある
サンプル:
[パールタイディ]
select = **/*.{pl,pm,t}
argv = -noll -it=2
[Perl評論家]
選択 = lib/**/*.pm
無視 = lib/UtterHack.pm lib/OneTime/*.pm
argv = -重大度 3
[ポッドティディ]
select = lib/**/*.{pm,pod}
順番に、XNUMX つのセクションは次のように宣言します。
· すべての *.pl、*.pm、および *.t ファイルに "-noll -it=2" を設定した "PerlTidy" を適用します。
· "lib/" の下のどこかにあるすべての Perl モジュールに重大度 3 の "PerlCritic" を適用します。
「lib/UtterHack.pm」を除く。
· "lib/" の下にあるすべての *.pm および *.pod ファイルに、デフォルト設定で "PodTidy" を適用します。
スタンダード の監視 要素は
[クラス] または [クラスの説明]
各セクションのヘッダーはtidyallを参照しています プラグイン. 名前は自動的に
「+」で始まらない限り、「Code::TidyAll::Plugin::」という接頭辞が付きます。
; プラグインを使用 Code::TidyAll::Plugin::PerlTidy
;
[パールタイディ]
; プラグインを使用 My::TidyAll::Plugin
;
[+My::TidyAll::プラグイン]
クラスの後にオプションの説明を含めることもできます。 説明は
無視され、最初の単語のみがプラグインに使用されます。 これにより、リストを作成できます
毎回異なる構成で、プラグインを複数回。 たとえば、XNUMX
異なる "PerlCritic" 構成:
; 図書館に残忍になろう
;
[PerlCritic 厳密]
選択 = lib/**/*.pm
argv = --残忍な
; しかし台本には優しい
;
[寛大なPerlCritic]
選択 = bin/**/*.pl
argv = --優しい
警告: 同じプラグインを説明なしで XNUMX 回 (または同じ
説明)、そのうちの XNUMX つは黙って無視されます。
select
空白または複数行で区切られた XNUMX つまたは複数の File::Zglob パターン
選択するファイルを示します。 少なくとも XNUMX つ必要です。 例えば
; すべての .t および .pl は、bin および t の下のどこかにあります。
; さらに、lib/Foo および lib/Bar の直下にあるすべての .pm ファイル
;
select = {bin,t}/**/*.p[lm]
select = lib/{Foo,Bar}/*.pm
; プロジェクト内のすべての .txt ファイル
;
選択 = **/*.txt
パターンはルート ディレクトリに相対的であり、先頭にスラッシュを付けないでください。 全て
標準のグロブ文字 (「*」、「?」、「[]」、「{}」) は機能します。 さらに、「**」は
XNUMX 個以上のディレクトリを表すために使用されます。 詳細については、File::Zglob のドキュメントを参照してください
詳細。
無視する
空白または複数行で区切られた XNUMX つまたは複数の File::Zglob パターン
無視するファイルを示します。 これはオプションで、"select" をオーバーライドします。 例えば
; bin/awful.pl またはその他の場所を除く、bin の下のすべての .pl ファイル
; bin/tmp の下
;
選択 = bin/**/*.pl
無視 = bin/awful.pl bin/tmp/**/*.pl
シェバング
空白または複数行で区切られた XNUMX つ以上の単語。
受け入れるシバン行。 これはオプションであり、さらにフィルターを「選択」します。 例えば
; "perl" または
; 「perl5」シバン行。
選択 = ビン/**/*
無視 = ビン/**/*.*
シバン = perl perl5
のみ_モード
空白で区切られたモードのリスト。 例えば
only_modes = テスト CLI
プラグインは の これらのモードのいずれかが「-m」または「tidyall」に渡された場合に実行されます。
" - モード"。
例外モード
空白で区切られたモードのリスト。 例えば
except_modes = コミット エディター
プラグインは これらのモードのいずれかが「-m」または「tidyall」に渡された場合に実行されます。
" - モード"。
引数
多くのプラグイン (perltidy、perlcritic、podtidy など) はこのオプションを使用します。
基になるコマンドライン ユーティリティに渡す引数を指定します。
重量
これは、プラグインのソートに使用される整数です。 デフォルトでは、より整頓されたプラグインが最初に実行されます。
次に、各グループがアルファベット順にソートされたバリデータプラグイン。
プラグイン 注文 そして 原子性
複数のプラグインがファイルに一致する場合、バリデーターの前に tidier が適用されるため、バリデーターは
最終結果を確認しています。 これら XNUMX つのグループ内で、プラグインが適用されます。
プラグイン名/説明のアルファベット順。
各プラグインの重みを明示的に設定することもできます。 デフォルトでは、tidiers には重みがあります
は 50 で、バリデーターの重みは 60 です。重みは任意の整数に設定できます。
プラグイン実行時の影響。
複数のプラグインの適用はオール オア ナッシングです。 途中でエラーが発生した場合
プラグインを適用しても、ファイルはまったく変更されません。
コマンドライン OPTIONS
-a、-all
すべてのファイルを処理します。 プロジェクト階層内のすべてのファイルを再帰的に検索します。
ルートから開始し、ファイル内の少なくとも XNUMX つのプラグインに一致するすべてのファイルを処理します。
構成。
-g、--git
現在の git 作業ディレクトリで追加または変更されたすべてのファイルを処理します。
-h、-help
ヘルプメッセージを印刷する
-l、-list
一致するプラグインのリストとともに各ファイルを一覧表示します (一致するファイルがない
スキップされます)。 実際にはファイルを処理せず、ファイルが処理されているかどうかは気にしません。
キャッシュされました。 通常、-a、-g、または -seg とともに使用されます
% tinyall -a -l
lib/CHI.pm (PerlCritic、PerlTidy、PodTidy)
lib/CHI/Benchmarks.pod (PodTidy)
lib/CHI/CacheObject.pm (PerlCritic、PerlTidy、PodTidy)
-m、--mode
実行するプラグインに影響を与えるオプションのモード。 デフォルトは「cli」です。 「モード」を参照してください。
-p パス、--パイプ パス
STDIN からコンテンツを読み取り、結果のコンテンツを STDOUT に書き込みます。 成功した場合、
tidyall はステータス 0 で終了します。エラーが発生した場合、tidyall はエラー メッセージを
STDERR、 ミラー コンテンツ 変更なしで STDOUT になり、ステータス 1 で終了します。
ミラーリングは、かどうかに関係なく、宛先に安全にパイプできることを意味します。
エラーが発生します。
このオプションを指定するときは、相対ファイル名または相対ファイル名を XNUMX つだけ指定する必要があります。
どのプラグインを適用するか、またどこに適用するかを決定するために使用されます。
ルートディレクトリと設定ファイルです。 ファイルは実際には読み取られません。
存在する必要さえあります。
このオプションは --no-backups と --no-cache (実際のファイルがないため) を意味し、
--quiet (無関係な出力を整頓された結果と混ぜたくないため)。
# 適切なプラグインを使用して、STDIN から読み取り、STDOUT に書き込みます
# some/path.pl (存在する必要はありません)
#
% tinyall --pipe some/path.pl
-r、-recursive
コマンドラインにリストされているディレクトリを再帰的に入力し、すべてのファイルを処理します
内部。 デフォルトでは、コマンドラインで検出されたディレクトリは、
警告。
-s、--svn
現在の svn 作業ディレクトリで追加または変更されたすべてのファイルを処理します。
-q、-quiet
エラー以外の出力を抑制します。
-v、-verbose
余分な出力を表示します。
-I パス 1、パス 2、...
Perl の -I のように、XNUMX つ以上のライブラリ パスを @INC に追加します。 --tidyall-class または
プラグインは別の lib ディレクトリにあります。
--バックアップ-ttl デュレーション
バックアップ ファイルがパージされるまでの時間。 秒数または任意の数を指定できます
Time::Duration::Parse によって認識される文字列。たとえば、「4h」または「1day」。 デフォルトは「1h」です。
-チェックのみ
実際にファイルを整理する代わりに、各ファイルが整理されているかどうか (つまり、ファイルが整理されているかどうか) を確認します。
version は現在のバージョンと同じ)、そうでない場合はエラーと見なします。 これが使われています
たとえば、Test::Code::TidyAll と svn および git pre-commit フックにより、強制的に
ファイルを整理したこと。
--conf ファイル path
conf ファイルで検索するのではなく、conf ファイルへの相対パスまたは絶対パスを指定します。
通常の方法。
--conf-name 名
デフォルトの代わりに検索する conf ファイル名を指定します ("tidyall.ini" /
".tidyallrc")。
--データディレクトリ path
バックアップやキャッシュなどのデータが含まれます。 デフォルトは root_dir/.tidyall.d
-反復 カウント
各整然とした変換を実行する カウント 回。 デフォルトは 1 です。
場合によっては (まれであることを願っています)、tidier からの出力が異なる場合があります。
複数回適用されます。 複数の反復を実行して、
コンテンツは最終的な整頓された形に「落ち着く」。
バージョン管理フックまたはテストで強制されます。 もちろん、パフォーマンスは低下します。
少し。 これを 2 より大きく設定する必要はほとんどありません。
これはバリデーターではなく、tidier にのみ影響します。 たとえば、perlcritic と jshint は引き続き
一度だけ実行されます。
--バックアップなし
処理前にファイルをバックアップしないでください。
-キャッシュなし
最終処理時刻をキャッシュしません。 毎回すべてのファイルを処理します。 こちらもご覧ください
「--リフレッシュキャッシュ」。
--出力サフィックス サフィックス
変更されたバージョンを出力する前にファイル名に追加する接尾辞 (例: ".tdy")。
デフォルトは none で、ファイルを上書きすることを意味します。
--リフレッシュキャッシュ
各ファイルを処理する前に既存のキャッシュ情報を消去してから、新しいキャッシュ情報を書き込みます。
「--no-cache」も参照してください。
--ルートディレクトリ
ルート ディレクトリを明示的に指定します。 通常、これは指定されたファイルから推測されます
または現在の作業ディレクトリ。
--tidyall クラス class
「Code::TidyAll」の代わりに使用するサブクラス。
指定 オプション in の監視
ほとんどすべてのコマンド ライン オプションは、設定ファイルの先頭で指定できます。
プラグイン セクション。 ダッシュをアンダースコアに置き換えます。 例えば
バックアップ_ttl = 4h
反復 = 2
tidyall_class = 私の::コード::TidyAll
[パールタイディ]
select = **/*.{pl,pm,t}
argv = -noll -it=2
...
オプションが両方の場所で渡された場合、コマンドラインが優先されます。
EXIT ステータス
「tidyall」は、ファイルの処理中にエラーが発生した場合はステータス 1 で終了し、ステータス 0 で終了します。
さもないと。
モード
さまざまなコンテキストで tidyall を使用できますが、すべてを実行したくない場合があります。
それらすべてのプラグイン。
「-m」または「--mode」を介して tidyall にモードを渡し、特定のプラグインを指定することができます。
(「only_modes」を介して) 特定のモードでのみ実行するか、特定以外のすべてのモードで実行する必要があります。
モード (「except_modes」経由)。
モードの例:
· "cli" - モードを指定せずにコマンドラインから明示的に tidyall を呼び出す場合
・「editor」 - エディタから起動する場合
· "commit" - Code::TidyAll::SVN::Precommit または
コード::TidyAll::Git::プリコミット
· "test" - Test::Code::TidyAll を使用する場合
perlcritic は少し時間がかかるため、テスト中にのみ実行したい場合があります。
および明示的なコマンドライン呼び出し:
[Perl評論家]
選択 = lib/**/*.pm
only_modes = テスト CLI
...
または、すべてのモードで実行するように指定できます 以下は除く 編集者:
[Perl評論家]
選択 = lib/**/*.pm
except_modes = エディター
...
プラグインに「only_modes」も「except_modes」も指定しない場合、常に
実行されます。
最終処理済み キャッシュ
「tidyall」は、最後に処理された後、各ファイルの署名を追跡します。 その後に
署名が変更された場合にのみファイルを処理します。 キャッシュはファイルに保存されます
データディレクトリの下。
「--refresh-cache」を使用してキャッシュを強制的に更新するか、動作をオフにすることができます
完全に「--no-cache」を使用します。
バックアップ
「tidyall」は、各ファイルを変更する前にバックアップします。 タイムスタンプ付きのバックアップは、
データディレクトリの下に別のディレクトリ階層。
古いバックアップ ファイルは、不定期の「tidyall」実行の一部として自動的に削除されます。 の
「--backup-ttl」で指定された期間は、バックアップ時間の最小量を示します
維持する必要があり、パージを実行する必要があります。 「30m」と指定される場合があります
または「4 時間」または Time::Duration::Parse で受け入れられる任意の文字列。 デフォルトは「1h」(1
時間)。
「--no-backups」でバックアップをオフにすることができます。
"ない" 前提条件
"Code::TidyAll" ディストリビューションは、意図的に必要な前提条件に依存しません。
各プラグイン。 これは、perltidy を使用したい場合は、
Perl::Tidy モジュールを手動で。
関連 ツール
· etc/editors/tidyall.el
tidyall/master/etc/editors/tidyall.el> および etc/editors/tidyall.vim
このディストリビューションには、「tidyall」を実行するための Emacs および Vim コマンドが含まれています。
現在のバッファ。 これを選択したキーストロークに割り当てることができます (例: ctrl-t または
、t)。
· Code::TidyAll::SVN::Precommit は Subversion pre-commit フックを実装します。
すべてのファイルは「tidyall」に従って整頓され、有効であり、そうでない場合はコミットを拒否します。
· Code::TidyAll::Git::Precommit と Code::TidyAll::Git::Prereceive で git pre- を実装
commit フックと pre-receive フックはそれぞれ、すべてのファイルが整頓されているかどうかをチェックし、
「tidyall」に従って有効です。
· Test::Code::TidyAll は、プロジェクト内のすべてのファイルをチェックするためのテスト ライブラリです。
整頓された有効な状態です。
KNOWN バグ
· Windows ではまだ動作しません
onworks.net サービスを使用して tidyallp オンラインを使用する