Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 22:19   #1
men232
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию SyntaxHighlighter - проблемы с написание шаблона синтаксиса.

Всем доброго времени суток.

Я использую для подсветки синтаксиса скрипт SyntaxHighlighter.
Мне нужно написать шаблон синтаксиса для кода которого нет в библиотеках по стандарту(Wire E2).

В чем собственно проблема. В синтаксисе кода wire e2 присутствует мульти комментирование строк:
Код:
#[
Код
]#
Вот шаблон кода который отвечает за этот синтаксис:
Код:
;(function()
{
    // CommonJS
    typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
 
    function Brush()
    {
        // men232
        // http://www.gmodlive.com

        var keywords = 'and break do else elseif end false for function if in ' +
                       'local nil not or repeat return then true until while';
  
        var functions = '_G _VERSION assert collectgarbage dofile error getfenv ' +
                        'getmetatable ipairs load module next pairs pcall print ' +
                        ' rawequal rawget rawset require select setfenv setmetatable ' +
                        'tonumber tostring type unpack xpcall ' +
                        'coroutine.create coroutine.resume coroutine.running ' +
                        'coroutine.status coroutine.wrap coroutine.yield ' +
                        'debug.debug debug.getfenv debug.gethook debug.getinfo ' +
                        'debug.getlocal debug.getmetatable debug.getregistry ' +
                        'debug.getupvalue debug.setfenv debug.sethook debug.setlocal ' +
                        'debug.setmetatable debug.setupvalue debug.traceback ' +
                        'file:close file:flush file:lines file:read file:seek ' +
                        'file:setvbuf file:write' +
                        'io.close io.flush io.input io.lines io.open io.output ' +
                        'io.popen io.read io.stderr io.stdin io.stdout io.tmpfile ' +
                        'io.type io.write ' +
                        'math.abs math.acos math.asin math.atan math.atan2 math.ceil ' +
                        'math.cos math.cosh math.deg math.exp math.floor math.fmod ' +
                        'math.frexp math.huge math.ldexp math.log math.log10 math.max ' +
                        'math.min math.modf math.pi math.pow math.rad math.random ' +
                        'math.randomseed math.sin math.sinh math.sqrt math.tan math.tanh ' +
                        'os.clock os.date os.difftime os.execute os.exit os.getenv os.remove ' +
                        'os.rename os.setlocale os.time os.tmpname ' +
                        'package.cpath package.loaded package.loaders package.loadlib ' +
                        'package.path package.preload package.seeall ' +
                        'string.byte string.char string.dump string.find string.format ' +
                        'string.gmatch string.gsub string.len string.lower string.match ' +
                        'string.rep string.reverse string.sub string.upper table.concat ' +
                        'table.insert table.maxn table.remove table.sort' +
						
						'math.clamp ';

		var values =	'@name @outputs @inputs @model @trigger @persist';
         
        this.regexList = [
            { regex: /#.*/gm,                                                   css: 'comments' },  // one line comments
            { regex: /\/\*([^\*][\s\S]*)?\*\//gm,                               css: 'comments' },  // multi line comments
            { regex: SyntaxHighlighter.regexLib.doubleQuotedString,             css: 'string' },    // strings
            { regex: SyntaxHighlighter.regexLib.singleQuotedString,             css: 'string' },    // strings
            { regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,    css: 'string' },    // strings
            { regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,    css: 'string' },    // strings
            { regex: new RegExp(this.getKeywords(keywords), 'gm'),              css: 'keyword' },   // keywords
            { regex: new RegExp(this.getKeywords(functions), 'gm'),             css: 'functions' },  // functions
	    { regex: new RegExp(this.getKeywords(values), 'gm'),				css: 'functions' },
            ];
    }
 
    Brush.prototype = new SyntaxHighlighter.Highlighter();
    Brush.aliases   = ['e2'];
 
    SyntaxHighlighter.brushes.e2 = Brush;
 
    // CommonJS
    typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();
Я не могу понять, как сделать этот мулти коммент.
Еще одна ситуация, в переменной values прописаны значение которые нужно в коде подсветить. Дело в том что подсветка работает только если убрать символ @, а он нужен обязательно.

Последний раз редактировалось men232; 02.04.2012 в 22:21.
men232 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка синтаксиса Соффи JavaScript, Ajax 18 29.03.2012 12:56
проблемы синтаксиса kukuruzic JavaScript, Ajax 1 24.12.2011 01:09
Ошибка синтаксиса Santosh Microsoft Office Access 2 18.08.2010 00:15
Подсветка синтаксиса Simply-Art Общие вопросы Delphi 2 29.05.2007 16:22