为SyntaxHighlighter添加新语言的方法

随心笔谈9个月前更新 admin
203 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

本文介绍了针对Lua语言的SyntaxHighlighter刷子配置,旨在实现代码高亮功能。该刷子定义了多个正则表达式规则,用于高亮代码中的关键字、函数、字符串以及注释。关键词包括`break, do, end, else, elseif, function, if, local, nil, not, or, repeat, return, and, then, until, while, this`等,正则表达式规则涵盖多行注释、单行注释、字符串、双引号字符串、单引号字符串、关键字、函数名称等高亮显示。该配置通过CSS样式表指定高亮样式,实现了对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’];

© 版权声明

相关文章