← kolan.mobi
     хоумпэйдж
 Главная

← ksoftware.ya.ru
     блог
 

Это — старая версия документа!


Подсветка синтаксиса в DMClient

[0] guav © (29.03.08 18:08) Удалось прикрутить ко-какую подсетку к DMCilent 3.0 beta 1.21

Идея навеяна easy © http://www.delphimaster.ru/cgi-bin/forum.pl?id=1206729020&n=3

В клиенте есть фалй hint.js, загружаемый для каждой страницы, в него вписан код, выделяющий все keywords в тэге code тэгом . Не блеск - комментарии игнорируются, и кейворды подсвечиваются и в комментариях - но уже что-то.

document.body.onload = function() 
{ 
 var codePieces = document.getElementsByTagName("CODE");
 var keywords = new Array("and", "array", "as", "asm", "begin", "case",
   "class", "const", "constructor", "destructor", "dispinterface", "div", 
   "do", "downto", "else", "end", "except", "exports", "file", 
   "finalization", "finally", "for", "function", "goto", "if",
   "implementation", "in", "inherited", "initialization", "inline",
   "interface", "is", "label", "library", "mod", "nil", "not", "object",
   "of", "or", "out", "packed", "procedure", "program", "property" ,"raise",
   "record", "repeat", "resourcestring", "set", "shl", "shr", "string",
   "then", "threadvar", "to", "try", "type", "unit", "until", "uses", 
   "var", "while", "with", "xor");
 re = new RegExp("(^|[^a-z0-9_])(" + keywords.join('|') + ")([^a-z0-9_]|$)", "gim");
 for (var i = 0; i != codePieces.length; ++i)
 {
   codePieces[i].innerHTML = 
     codePieces[i].innerHTML.replace(re, "$1$2$3");
 }  
}