右へ1つインデントするツール
Pukiwikiのソースで右1つインデントすると、ソースファイルとして
認識する整形ルールがあるのですが、これが意外と
手作業でやると面倒なので、ソースファイルを
右一つだけインデントするプログラムを作ってみました。
http://nadesi.com/tools/right-indent/EditConv.html
以下、そのソースです。
MXMLのソース
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:TitleWindow x="0" y="0" width="470" height="446" layout="absolute" title="ソース編集"> <mx:TextArea x="10" y="10" width="430" height="356" id="a_txt" fontSize="12" fontStyle="normal" fontFamily="_typewriter"/> <mx:Button label="右一つインデント" width="130" x="10" y="374" click="convIndent()"/> <mx:Button x="148" y="374" label="左スペース1つ削除" width="117" click="convIndentLeft()"/> </mx:TitleWindow> <mx:Script source="EditConv.as"/> </mx:Application>
上記MXMLから取り込まれるActionScriptファイル
// ActionScript file // indent private function convIndent():void { var s:String = a_txt.text; s = replaceStr(s, "\r\n", "\n"); s = replaceStr(s, "\r", "\n"); var r:String = ""; var a:Array = s.split("\n"); var i:int; for (i = 0; i < a.length; i++) { var line:String = a[i]; line = replaceStr(line, "\t", " "); r += " " + line + "\n"; } a_txt.text = r + "\n"; } private function convIndentLeft():void { var r:String = ""; var s:String = a_txt.text; s = replaceStr(s, "\r\n", "\n"); s = replaceStr(s, "\r", "\n"); var a:Array = s.split("\n"); var i:int; for (i = 0; i < a.length; i++) { var line:String = a[i]; if (line.substr(0,1) == " ") { line = line.substr(1); } r += line + "\n"; } a_txt.text = r + "\n"; } private function replaceStr(s:String, a:String, b:String):String { var a_ary:Array = s.split(a); var s_str:String = a_ary.join(b); return s_str; }
はっきり言って、はてなのWiki記法の方が記述が楽が・・・。
文字列の置換は、正規表現を使って以下のような書き方もできるそうです。
s = s.replace(/(\r\n|\r)/g, "\n");
-
-
- -
-