自動インデンテーション機能についてNo.32273
masami さん 13/05/27 11:13
 
秀丸でサポートしていない言語で書かれたプログラムソースの「{」と「}」が記述さ
れている箇所を自動的にインデントする方法があれば教えて下さい。
「{」が見つかったら1段階字下げし、
「}」が出て来た所で1段階字下げを戻す機能(処理)です。

[ ]
RE:32273 自動インデンテーション機能につNo.32274
秀丸担当 さん 13/05/27 12:40
 

>秀丸でサポートしていない言語で書かれたプログラムソースの「{」と「}」が記述さ
>れている箇所を自動的にインデントする方法があれば教えて下さい。
>「{」が見つかったら1段階字下げし、
>「}」が出て来た所で1段階字下げを戻す機能(処理)です。

自動インデントの機能としては、「{」を入力した後にEnterを入力すると自動的
にインデントするという機能がありますが、そういう機能のことではなく、おそ
らく既にどこかから入手されたソースがあって、それを整形するというお話かと
思います。

どういう言語かわからないのでなんとも言えませんが、秀丸エディタ用の整形す
るようなマクロを探してみるか、またはプログラム実行で外部のプログラムを通
すことが考えられると思います。


古くから知られるところでは、C言語ではcbやindentといったコマンドを入手し
てそれを実行するといいようです。
最近では他にもいろいろあるかもしれません。

そういったものをプログラム実行の標準入出力を使って実行するとできると思い
ます。
たとえばWindows標準であるソートを使う場合は、[その他]→[プログラム実行]
で、コマンドラインに「sort <con >con」入力して実行すると、現在のテキスト
をsortコマンドを使ってソートできます。

それと同じように、例えばindentコマンドでもできると思います。(別途入手が
必要です)
標準エラー出力が混ざってしまうと都合が悪いと思うので、「プログラム実行」
の「オプション>>」ボタンから標準入力と標準出力だけにしたほうが確実になり
ます。
または[その他]→[動作環境]→[その他のコマンド]→[プログラム実行]で「標準
エラー出力も出力する」をOFFにするといいです。

あと、遅い場合は「オプション>>」ボタンから「標準出力をリダイレクト中は描
画しない」にするといいと思います。

プログラムの実行はパスが通っていないといけないので、パスが通っていない場
合は
「c:\myfolder\indent.exe <con >con」のようにフルパスで実行することになる
と思います。

[ ]
RE:32274 自動インデンテーション機能につNo.32275
masami さん 13/05/27 16:28
 
ご丁寧なレス、ありがとうございます。
>
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>と思います。

[ ]