書式
fish_indent [OPTIONS]

概要

fish_indent
fishシェルスクリプトを
インデントします。

fish_indent
標準入力からコマンドを読み込み、
ファイルまたは標準出力に出力します。

訳注:これはビルトインではなくて、
スタンドアロンの実行ファイルになっています。

以下のオプションを受け付けます。

-w / --write
ファイルをインデントし、
そのファイルに上書きする。
-i / --no-indent
インデントせずに、
1行1ジョブに整形するだけ。
-v / --version
fishのバージョンを表示して終了する。
--ansi
ANSIエスケープシーケンスで色付けをする。
$fish_color_command など
定義された色を使って
$TERM の状況にふさわしいように色付けする。
--html

適切なCSSが定義されているときに、
シンタックスハイライト つきの
HTMLを出力する。

CSSのクラス名は
fish_color_command 等の
変数名と同じである。

-d / --debug-level=DEBUG_LEVEL
fish -d 同様にデバッグレベルを
指定してデバッグ出力を有効にする。
デフォルトは0。
-D / --debug-stack-frames=DEBUG_LEVEL

デバッグメッセージを表示する際の
スタックフレーム数を指定する。
デフォルトは0。

128まで指定できるが、
多くの場合3〜4で十分デバッグ呼び出しに
どのように到達したかについてわかるだろう。

--dump-parse-tree
解析木の情報を
標準エラー出力に出力する。
fishのソースコードレベルの動作に
興味がある人向け。

実行例

$it にはfishスクリプト名が
入っているとします。

内容は ; で区切られたスクリプトです。

$ cat $it
function color_test; if isatty stdout; set_color green; echo green!!;
else; set_color normal; echo normal.; end; end

# fish_indentを実行すると見やすく!
$ fish_indent $it
function color_test
    if isatty stdout
        set_color green
        echo green!!

    else
        set_color normal
        echo normal.
    end
end

# 同様だが色付き出力になる
$ fish_indent --ansi $it

# インデントはしない
$ fish_indent -i $it
function color_test
if isatty stdout
set_color green
echo green!!

else
set_color normal
echo normal.
end
end

# html出力
$ fish_indent --html $it
<pre><code><span class="fish_color_command">function</span><span class="fish_color_normal"> color_te
st</span><span class="fish_color_statement_terminator">
    </span><span class="fish_color_command">if</span><span class="fish_color_normal"> </span><span c
lass="fish_color_command">isatty</span><span class="fish_color_normal"> </span><span class="fish_col
or_param">stdout</span><span class="fish_color_statement_terminator">
        </span><span class="fish_color_command">set_color</span><span class="fish_color_normal"> </s
pan><span class="fish_color_param">green</span><span class="fish_color_statement_terminator">
        </span><span class="fish_color_command">echo</span><span class="fish_color_normal"> </span><
span class="fish_color_param">green!!</span><span class="fish_color_statement_terminator">

    </span><span class="fish_color_command">else</span><span class="fish_color_statement_terminator"
>
        </span><span class="fish_color_command">set_color</span><span class="fish_color_normal"> </s
pan><span class="fish_color_param">normal</span><span class="fish_color_statement_terminator">
        </span><span class="fish_color_command">echo</span><span class="fish_color_normal"> </span><
span class="fish_color_param">normal.</span><span class="fish_color_statement_terminator">
    </span><span class="fish_color_command">end</span><span class="fish_color_statement_terminator">
</span><span class="fish_color_command">end</span><span class="fish_color_statement_terminator">
</span></code></pre>⏎

# その場でファイルを上書きする!
$ fish_indent -w $it
$ cat $it
function color_test
    if isatty stdout
        set_color green
        echo green!!

    else
        set_color normal
        echo normal.
    end
end

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。