⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code.js

📁 BizIdea 是基于.net开发平台全新研发的企业级电子商务平台系统
💻 JS
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------
// 双鱼文本编辑器 PiscesTextEditor V1.0
// 作者:月伤 melody
// 作品链接:http://www.2fstory.net/blog/View.aspx?blogID=47
// 动易系统,引用了此插件,特此给予著名 感谢 月伤 melody。
//---------------------------------------------------------

var CodeDivBgColor = "#eeeeee";
var CodeDivFontColor = "#000000";

var oEditor = window.parent.InnerDialogLoaded() ;
var FCKConfig = oEditor.FCKConfig ;
var CodeImagePath	= FCKConfig.CodePath ;//得到路径

function code()
{
	var str = document.getElementById('txtCode').innerHTML;
    var language = document.getElementById('LanguageDropDownList').value;
	var showLine = document.getElementById('chkLineNumberMarginVisible').checked;
	var canCollapse = document.getElementById('chkOutliningEnabled').checked;
	var canAllCollapse = document.getElementById('ckbIsCollapse').checked;
	var allRegion = document.getElementById('txbCollapseText').value;
	return FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion);
}

// 转化为代码格式(代码,语言,是否有行号,是否折叠,是否全部折叠,整个代码的标题)
function FormateCode(str,language,showLine,canCollapse,canAllCollapse,allRegion)
{
	var CodeDivStyle = "color: "+CodeDivFontColor+";BACKGROUND-COLOR: "+CodeDivBgColor+";font-family: Verdana,宋体;width: 98%;line-height:16px;BORDER: #cccccc 1px solid;PADDING: 4px;FONT-SIZE: 10pt;WORD-BREAK: break-all;";
	if (language != "CSS") {
	    // 将双引号替换成"
	    str = str.replace(/([^\\])"/g,"$1"");
	}
	switch (language)
	{
        case "C#": str = FormatCSharp(str,canCollapse); break;
		case "HTML": str = FormatHTML(str,canCollapse); break;
		case "VBScript": str = FormatVBScript(str,canCollapse); break;
		case "JScript": str = FormatJScript(str,canCollapse); break;
		case "CSS": str = FormatCSS(str,canCollapse); break;
		case "XML": str = FormatXML(str,canCollapse); break;
		case "SQL": str = FormatSQL(str,canCollapse); break;
		case "VB.NET": str = FormatVBDOTNET(str,canCollapse); break;
	}
	// 加行号	
	if (showLine) str = AddLineNumber(str);	
    // 替换换行符为<BR>
	str = str.replace(/\n/g,"<BR>");
    // 全部折叠
	if (canAllCollapse) str = GetHeader(" ",allRegion,"Code",canAllCollapse,true)+"<BR>"+str+"</span>";
	// 给代码加一个边框
	str = "<!--Code--><div style=\""+CodeDivStyle+"\">" + str + "</div><!--Code-->";
	str = str.replace(/\s{2}/g,"&nbsp;&nbsp;");
	// 改为正确路径		
	var src = /\b(src=")\b/g;
	str = str.replace(src,'src="'+CodeImagePath);
    // 替换1个Tab为4个空格,使界面美观一些
    str = str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");    
    return(str);
}

//---------------------------------------   格式化C#代码   ----------------------------------------
// 格式化C#代码
function FormatCSharp(str,canCollapse)
{	
	// 值变为棕色
    str = FormatValue(str);
	if (str.match(/using/g)!=null)//格式化using
		str = FormatUsing(str,canCollapse);
	//格式化Region窗体
	str = FormatRegion(str,canCollapse);
	// 格式化{}
	str = FormatBrace(str); 
	//格式化函数头
	str = FormatFunctionRemark(str);
	// 给所有没有收缩功能的行的行头加图片
	str = str.replace(/(^|\n)([^<])/g,"$1<IMG src=\"InBlock.gif\" align=\"top\">$2");
	// 所有关键字变成蓝色
	var re = /\b(abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string)\b/g;
	str = str.replace(re,"<font color=\"#0000FF\">$1</font>");
	//替换字符串中关键字颜色
	str = FormatKeyWords(str);
	//格式化注释//和/**/
	str = FormatCodeRemark(str);
	//替换收缩图片
    str = FormatImage(str);
	return (str);

}

// 格式化using
function FormatUsing(str)
{
	// 给using和正式代码之间的行的行头加上空白图片
	str = str.replace(/^([\s\S]*?)({)/g,
			function() {
				var s = arguments[1].replace(/(\n)([^u])/g,"$1<IMG src=\"None.gif\" align=\"top\">$2");
				s = s.replace(/(\n)([^u<])/g,"$1<IMG src=\"None.gif\" align=\"top\">$2");
				return(s+arguments[2]);
			});
	// using加一个收缩功能
	str = str.replace(/^([\s\S]*?)\b(using\s)/i,
			function() {
				
				var s = arguments[1].replace(/(.*)([^\n]*)$/g,"$2")
						+GetHeader(arguments[1].replace(/(.*)([^\n]*)$/g,"$2")+arguments[2],"...","CodeUsing",false,true);
				return(s);
			});	
	var arr = str.match(/.*using.*/g);
	if (arr!=null)
		str = str.replace(arr[arr.length-1],
			"<IMG src=\"ExpandedBlockEnd.gif\" align=\"top\">"+arr[arr.length-1]+"</span>");	
//	str = str.replace(/([\s\S]*\n)(using[\s\S]*?)\n/g,"$1<IMG src=\"ExpandedBlockEnd.gif\" align=\"top\">$2</span>");
	return(str);
}

// 格式化Region
function FormatRegion(str,canCollapse)
{
	// 替换region处
	str = str.replace(/(.*)(#region\s+)([^\r\n]*)/g,	
		function() {				
				var s = GetHeader(arguments[1],arguments[3],"CodeRegion",canCollapse,false)
						+"<font color=\"#0000ff\">"+arguments[2]+"</font>"+arguments[3];
				return(s);
			});
	// 替换endregion处
	str = str.replace(/(.*)(#endregion)/g,
		"<IMG src=\"ExpandedSubBlockEnd.gif\" align=\"top\"/>$1<font color=\"#0000ff\">$2</font></span>");
	return(str);
}

// 格式化{}
function FormatBrace(str)
{
	// 替换左边大括号
	str = str.replace(/([^{]*\n)(.*?)(\{)/g, 
			function() {
					var str = arguments[1]+GetHeader(arguments[2],"...","CodeFunction",false,false)+arguments[3];
					return(str);
    					});
	// 替换右边大括号
	str = str.replace(/(.*\})/g,
		"<IMG src=\"ExpandedSubBlockEnd.gif\" align=\"top\">$1</span>"); 
	return str;
}

// 格式化函数头注释
function FormatFunctionRemark(str)
{
	// 函数头注释处的<summary>值变绿色
	str = str.replace(/(\/{3}\s{0,}&lt;summary&gt;.*?\n)([\s\S]*?)(\/{3}\s{0,}&lt;\/summary&gt;)/g,
			function() {
				str = arguments[2].replace(/(\/{3})([\s\S]*?)(\n)/g,"$1<font color=\"#008000\">$2</font>$3");
				return(arguments[1]+str+arguments[3]); 
			});
	// <param>值变为绿色
	str = str.replace(/(\/{3}\s{0,}&lt;param([\s\S]*?)&gt;)([\s\S]*?)(&lt;\/param&gt;)/g,"$1<font color=\"#008000\">$3</font>$4");
	// <returns><example><remarks><value>值变为绿色
	str = str.replace(/(\/{3}\s{0,}&lt;(returns|example|remarks|value)&gt;)([\s\S]*?)(&lt;\/\2&gt;)/g,
		"$1<font color=\"#008000\">$3</font>$4");
	// 加收缩功能
	str = str.replace(/(.*)(\/{3}\s{0,}&lt;summary&gt;)([\s\S]*?)(\n\s{0,}\b(public|protected|private)\b)/g,
			function() {
				var s1 = GetHeader(arguments[1],"/**/","CodeRemark",false,false)+arguments[2];
				var arr = arguments[3].match(/[\s\S]*?\n/g);
				var maxStr = arr[arr.length-1];
				var s2 = arguments[3].replace(maxStr,maxStr+"<IMG src=\"ExpandedSubBlockEnd.gif\" align=\"top\">");
				return(s1+s2+"</span>"+arguments[4]);
			});
	// 函数头注释处其它字符变为灰色
	str = str.replace(/(\/{3})([\s\S]*?)(<\/SPAN>|\n|$)/gi,"<font color=\"#808080\">$1$2</font>$3");
	return(str);
}


//---------------------------------------   格式化HTML代码   ----------------------------------------
// 格式化HTML代码
function FormatHTML(str,canCollapse)
{
	// 给Flash加折叠功能,默认为收缩状态
//	str = str.replace(/(.*)(&lt;object)([\s\S]*)(\n)(.*&lt;\/object.*)/gi,
//			function() {
//				var s = GetHeader(arguments[1],"<-- OBJECT class=ShockwaveFlash -->","CodeFlash",true,true)+arguments[2]+arguments[3].replace(/(\n)/g,"$1<IMG src=\"InBlock.gif\" align=\"top\">")+arguments[4]+"<IMG src=\"ExpandedBlockEnd.gif\" align=\"top\">"+arguments[5]+"</span>";
//				return (s);
//			});
	// 替换HTML注释为绿色
	str = str.replace(/(&lt;!)(--.*?--)(&gt;)/g,"$1<font color=\"#008000\">$2</font>$3");
	// 替换HTML标签的属性为红色,HTML标签为棕色
/*	str = str.replace(/(&lt;)([^\s\/%!]*?)((\s+.*?)*)(\/?&gt;)/gi,
		function() {
			var s="<font color=\"#0000FF\">"+arguments[1]+"</font><font color=\"#800000\">"+
			    arguments[2]+"</font>"+arguments[3].replace(/(\s+)([^\s]*?)(=)(&quot;|')(.*?)\4/g,"$1<font color=\"#FF0000\">$2</font><font color=\"#0000FF\">$3$4$5$4</font>")+"<font color=\"#0000FF\">"+arguments[5]+"</font>";
			return (s);
		});*/
	str = str.replace(/(&lt;\/?)([^\s\/\&!]*)(.*?)(\/?&gt;)/gi,
			function() {
			var s="<font color=\"#0000FF\">"+arguments[1]+"</font><font color=\"#800000\">"+arguments[2]+"</font>"+
			arguments[3].replace(/(\s+)([^\s]*?)(=)(&quot;|')(.*?)\4/g,"$1<font color=\"#FF0000\">$2</font><font color=\"#0000FF\">$3$4$5$4</font>")+
			"<font color=\"#0000FF\">"+arguments[4]+"</font>";
			return (s);
            });

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -