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

← ksoftware.ya.ru
     блог
 

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

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);
 }  
}