📄 code.js
字号:
function() {
var s;
if (arguments[3].substr(0,1) != "/")
s = "<font color=\"#008000\">"+arguments[2]+ClearColorTag(arguments[3])+"</font>";
else
s = arguments[2]+arguments[3];
return(arguments[1]+s);
});
str = str.replace(/(\/\*)([\s\S]*?)(\*\/)/g,
function() {
var s = arguments[1];
if (arguments[2] != "")
s = "<font color=\"#008000\">"+s+ClearColorTag(arguments[2])+arguments[3]+"</font>";
else
s += arguments[3];
return(s);
});
return(str);
}
// 格式化值
function FormatValue(str)
{
// 所有值(双引号或单引号之间的字符串)变为棕色
str = str.replace(/(@?)(")(.*?)\2/g,
function() {
var s = arguments[3].replace(/<.*?>/g,"");
return("<font color=\"#800000\">"+arguments[1]+arguments[2]+s+arguments[2]+"</font>");
});
return (str);
}
// 清除字符串中所有的颜色标签
function ClearColorTag(str)
{
str = str.replace(/<\/?font.*?>/g,"");
return (str);
}
//--------------------------------------- 格式化VB.NET代码 ----------------------------------------
// 格式化VB.NET代码
function FormatVBDOTNET(str,canCollapse)
{
// 值变为棕色
str = FormatValue(str);
str = FormatCodeRemark_VBDOTNET(str); //首先要格式化注释,否则会把GetHeader函数中的'也替换掉
if (str.match(/Imports/g)!=null)//格式化Imports
str = FormatImports(str,canCollapse);
//格式化函数头
str = FormatFunctionRemark_VBDOTNET(str);
//格式化函数
str = FormatBrace_VBDOTNET(str);
//格式化Region窗体
str = FormatRegion_VBDOTNET(str,canCollapse);
// 给所有没有收缩功能的行的行头加图片
str = str.replace(/(^|\n)([^<])/g,"$1<IMG src=\"InBlock.gif\" align=\"top\">$2");
// 所有关键字变成蓝色
var re = /\b(And|As|ByRef|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Erase|Execute|ExecuteGlobal|Exit|Explicit|False|For|Get|Goto|If|Imp|In|Is|Let|Loop|Mod|Next|Not|Nothing|Null|On|Option|Or|Private|Public|Randomize|ReDim|Resume|Select|Set|Stop|Then|To|True|Until|Wend|While|With|Xor|Sub|Len|Right|Function|IsNull|IsEmpty|Left|Cint|Instr|Cstr|Chr|Error|Trim|Mid|Instrrev|LCase|UCase|Hex|Imports|Inherits|Protected|WithEvents|ByVal|Handles|MyBase|New|String|IsNothing|IsDbNull|Optional|Integer|Date|Overloads|Overrides|Friend|Me)\b/gi;
str = str.replace(re,"<font color=\"#0000FF\">$1</font>");
//字符串中关键字颜色不变
str = FormatKeyWords(str);
//替换收缩图片
str = FormatImage(str);
return (str);
}
// 格式化Imports
function FormatImports(str)
{
// 给Imports和正式代码之间的行的行头加上空白图片
str = str.replace(/^([\s\S]*?)/g,
function() {
var s = arguments[1].replace(/(\n)([^I])/g,"$1<IMG src=\"None.gif\" align=\"top\">$2");
s = s.replace(/(\n)([^I<])/g,"$1<IMG src=\"None.gif\" align=\"top\">$2");
return(s);
});
// Imports加一个收缩功能
str = str.replace(/^([\s\S]*?)\b(Imports\s)/gi,
function() {
var s = arguments[1].replace(/(.*)([^\n]*)$/g,"$2")
+GetHeader(arguments[1].replace(/(.*)([^\n]*)$/g,"$2")+arguments[2],"...","CodeImports",false,true);
return(s);
});
var arr = str.match(/.*Imports.*/gi);
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)(Imports[\s\S]*?)\n/g,"$1<IMG src=\"ExpandedBlockEnd.gif\" align=\"top\">$2</span>");
return(str);
}
// 格式化VB.NET的Region
function FormatRegion_VBDOTNET(str,canCollapse)
{
// 替换Region处
str = str.replace(/(.*)(#Region\s+)([^\r\n]*)/gi,
function() {
var s = GetHeader(arguments[1],arguments[3],"CodeRegion",canCollapse,false)
+"<font color=\"#0000ff\">"+arguments[2]+"</font>"+arguments[3];
return(s);
});
// 替换End Region处
str = str.replace(/(.*)(#End Region)/gi,
"<IMG src=\"ExpandedSubBlockEnd.gif\" align=\"top\"/>$1<font color=\"#0000ff\">$2</font></span>");
return(str);
}
// 格式化VB.NET函数代码注释rem和'
function FormatCodeRemark_VBDOTNET(str)
{
// 注释变为绿色
str = str.replace(/('.*)/g,
function() {
return ("<font color=\"#008000\">" + arguments[1].replace(/<.*?>/g,"") + "</font>");
});
str = str.replace(/(Rem\s.*)/gi,
function() {
return ("<font color=\"#008000\">" + arguments[1].replace(/<.*?>/g,"") + "</font>");
});
return(str);
}
// 格式化VB.NET函数头注释
function FormatFunctionRemark_VBDOTNET(str)
{
// 函数头注释处的<summary>值变绿色
str = str.replace(/(\'{3}\s{0,}<summary>.*?\n)([\s\S]*?)(\'{3}\s{0,}<\/summary>)/gi,
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,}<param([\s\S]*?)>)([\s\S]*?)(<\/param>)/gi,"$1<font color=\"#008000\">$3</font>$4");
// <returns><example><remarks><value>值变为绿色
str = str.replace(/(\'{3}\s{0,}<(returns|example|remarks|value)>)([\s\S]*?)(<\/\2>)/gi,
"$1<font color=\"#008000\">$3</font>$4");
// 函数头注释处其它字符变为灰色
str = str.replace(/(\'{3})([\s\S]*?)(<\/SPAN>|\n|$)/gi,"<font color=\"#808080\">$1$2</font>$3");
return(str);
}
// 格式化VB.NET函数
function FormatBrace_VBDOTNET(str)
{
// 替换函数头
str = str.replace(/(.*?)\b(Public|Protected|Private|Function|Sub)\b(.*?)(\()/gi,
function() {
var s = GetHeader(arguments[1]+arguments[2],arguments[3]+arguments[4]+")","CodeFunction",false,false)
+arguments[3]+arguments[4];
return(s);
});
// 替换函数尾
str = str.replace(/(.*\b(End Function|End Sub)\b)/gi,
"<IMG src=\"ExpandedSubBlockEnd.gif\" align=\"top\"/>$1</span>");
return(str);
}
//替换收缩图片
function FormatImage(str)
{
// 展开和收缩在同一行时,去掉ExpandedSubBlockEnd.gif
// str = str.replace(/(<IMG src="ContractedSubBlock.gif.*?>)<IMG src="ExpandedSubBlockEnd.gif.*?>/gi,"$1");
str = str.replace(/(<IMG src="Contracted(Sub)?Block.gif)([\s\S]*?)(\n)/gi,
function() {
var s = arguments[3].replace(/<IMG src="Expanded(Sub)?BlockEnd.gif.*?>/gi,"");
return(arguments[1]+s+arguments[4]);
});
// 替换第一个收缩图片为ExpandedBlockStart.gif,并替换第一个收缩图片前的全部InBlock.gif图片为None.gif
str = str.replace(/([\s\S]*?)(<IMG src="Expanded)(?:Sub)(BlockStart.gif)/i,
function() {
var s = arguments[1].replace(/(<IMG src=")(InBlock)(.gif".*?>)/gi,"$1None$3");
s += arguments[2]+arguments[3];
return (s);
});
str = str.replace(/(<IMG src="Contracted)(?:Sub)(Block.gif)/i,"$1$2");
// 替换最后一个收缩图片为ExpandedBlockEnd.gif,并替换最后一个收缩图片后的全部InBlock.gif图片为None.gif
str = str.replace(/([\s\S]*)(<IMG src=.*?Expanded)(?:Sub)(BlockEnd.gif)([\s\S]*?)$/i,
function() {
var s = arguments[1]+arguments[2]+arguments[3];
s += arguments[4].replace(/(<IMG src=")(InBlock)(.gif".*?>)/gi,"$1None$3");
return (s);
});
str = str.replace(/<IMG src="ExpandedSubBlockEnd.gif" align="top"><IMG src="ExpandedSubBlockStart.gif[\s\S]*?><IMG src="ContractedSubBlock.gif[\s\S]*?>/gi,"<IMG src=\"InBlock.gif\" align=\"top\">");
return(str);
}
//替换字符串中关键字
function FormatKeyWords(str)
{
// 字符串值中关键字不变色
str = str.replace(/(".*?")/g,
function() {
return (ClearColorTag(arguments[1]));
});
return(str);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -