コードの書式設定

3162 ワード


js正規表現を使用してC#ソースコードをフォーマットする
よく、Webページでいろいろなコードを見ることができます.例えば、次のCSharp Source Codeは、一般的にはそうかもしれません.
	private DataSet _dsContacts;
            private string _sSort;
            private void Page_Load(object sender, System.EventArgs e)
            {
            //code here
            }
            
ですが、もし彼らがこのように表示していたら、もっと楽に見えると思います.
	private DataSet _dsContacts;
            private string _sSort;
            private void Page_Load(object sender, System.EventArgs e)
            {
            	  //code here
            	}
            

CodeProjectdotnetjunkiesなど、ある言語のキーワードをハイライト表示するサイトもありますが、特定のcssスタイルを定義し、スタイルアプリケーションを1つずつハイライト表示します.このテクノロジーがバックグラウンドでサポートされていないと、Javascriptの強力な正規表現機能を利用して、かなりの作業量が発生します.私たちはバックグラウンドのサポートなしに少量の仕事でこの機能を完成することができます.String.Replace()は、すべてのコア作業を完了します
   //     
            for (thiskey in CsharpKeyword)
            {
            reg = new RegExp("\\b("+CsharpKeyword[thiskey].toString()+"){1}\\b","g");
            text = text.replace(reg,"<font color=blue>$1</font>");
            }
            //  "..."             
            text = text.replace(/\"([^\"]*)\"/g,function($1){return $1.replace(/<\/?font.*?>/gi,"")});
            //.          Unicode          (       )
            text = text.replace(/(\/\/.*)/g,function($1){return "<font color=green>"+$1.replace(/<\/?font.*?>/gi,"")+"</font>"});
            text = text.replace(/(\/\*[\S\s]*\*\/)/g,function($1){return "<font color=green>"+$1.replace(/<\/?font.*?>/gi, "")+"</font>"});//       
            
基本的には、ここで特別なコードをハイライトするには、キーの置換->文字列の置換(")のキーの置換(最初のステップでは、いくつかの文字列のキーがハイライトされ、このステップではそれらを戻す必要があります)->置換//単行コメント->置換/**/複数行コメント、各置換は、ネストを解決するために元のタグを消去しなければならない.そうしないと、//abcが最終的に所望の//abcではなく//abcを表示する可能性がある.これは最も重要な場所です.注意しなければならないのはStringReplace(regex,replacement)メソッド;replacementが関数であればJavascript 1が必要です.2またはJscript 5.5(IE 5.5)以上でBTWを実現できる:BLUEIDEAに感謝するJS斑竹子犬は、交換するたびに前回の交換のラベルを消去する構想の完全なソースコードを提供し、以下の接続からダウンロードすることができ、簡単にHTCにパッケージされ、You can view the demos from here FormatCsharpCode.htcを呼び出すのに便利である
 copyright 2003 by MMKK