为SyntaxHighlighter添加新语言的方法

随心笔谈2年前发布 admin
192 0 0

文章摘要

这篇文章介绍了**SyntaxHighlighter.lua**,一个用于高亮Lua代码的库。文章详细定义了其**brushes**(样式)部分,包括五个正则表达式规则,用于识别和格式化注释、字符串、关键字和函数。这些规则分别处理以下内容:多行注释、单行注释、双引号字符串、单引号字符串、关键字、函数名和其他特定内容。文章还提到,**SyntaxHighlighter.lua** 适用于开发者在代码中实现高效的高亮显示。

SyntaxHighlighter.brushes.Lua=function()

{

 var keywords= ‘break do end else elseif function if local nil not or repeat return and then until while this’;

 var funcs=’math\\.\\w+ string\\.\\w+ os\\.\\w+ debug\\.\\w+ io\\.\\w+ error fopen dofile coroutine\\.\\w+ arg getmetatable ipairs loadfile loadlib loadstring longjmp print rawget rawset seek setmetatable assert tonumber tostring’;

 this.regexList=[

  { regex: new RegExp(‘–\\[\\[[\\s\\S]*\\]\\]–‘, ‘gm’),  css: ‘comments’ },

  { regex: new RegExp(‘–[^\\[]{2}.*$’, ‘gm’),       css: ‘comments’ }, // one line comments

  { regex: SyntaxHighlighter.regexLib.doubleQuotedString,     css: ‘string’ },    // strings

  { regex: SyntaxHighlighter.regexLib.singleQuotedString,     css: ‘string’ },    // strings

  { regex: new RegExp(this.getKeywords(keywords), ‘gm’),  css: ‘keyword’ }, // keyword

  { regex: new RegExp(this.getKeywords(funcs), ‘gm’),      css: ‘func’ },  // functions

  ];

}

SyntaxHighlighter.brushes.Lua.prototype =new SyntaxHighlighter.Highlighter();

SyntaxHighlighter.brushes.Lua.aliases=[‘lua’];

© 版权声明

相关文章