-
Скажите пожалуйста, а какие именно изменения вносились в алгоритм подсветки, чтобы она стала понимать правила подсветки 1С?
Я так понимаю, это изменения, связанные с юникодом.
Я использую старую версию подсветки и по разным причинам не хочу её апргрейдить. Так вот у меня подсветка 1С не работает вообще. Даже если убрать все правила, а оставить только основной keywords.
Заранее спасибо за помощь. -
Я ничего не понял, если честно... Подсветка 1С работает уже довольно давно, и я не припомню каких-то специальных изменений для этого.
-
Не, это был мой косяк.
У меня класс <code> был "1c", а такой не допустим, надо чтобы с буквы обязательно начиналось. -
Всё-таки я был поспешен, сказав, что подсветка 1С работает.
Она работает во всех браузерах кроме IE.
Я долго локализовывал ошибку и нашёл то место где она отваливается.
Это функция:
Код вылетает на правиле:function langRe(language, value, global) {
var mode = 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '');
return new RegExp(value, mode);
}
где IDENT_RE_RU ={
className: 'title',
lexems: [IDENT_RE_RU],
begin: IDENT_RE_RU, end: '^'
}
(уникод здесь, из-под фара не виден)var IDENT_RE_RU = '[a-zA-Z╨░-╤П╨Р-╨п][a-zA-Z0-9_╨░-╤П╨Р-╨п]*';
Когда я написал функцию так:
то получил следующее:function langRe(language, value, global) {
var mode = 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '');
try {
new RegExp(value, mode);
} catch(e) {
alert(value+'='+e);
}
return new RegExp(value, mode);
}
Исключение возникает на 'title' -> begin.---------------------------
Windows Internet Explorer
---------------------------
^[a-zA-ZР°-СЏРђ-РЇ][a-zA-Z0-9_Р°-СЏРђ-РЇ]*=[object Error]
---------------------------
ОК
---------------------------
Если правило title убрать, то исключение возникает при обработке keywords, т.к. там тоже используется IDENT_RE_RU.
В других браузерах исключение не возникает.
Помогите пожалуйста. Не знаю чего не нравится ослику :( -
Это, случаем, происходит не тогда, когда js-файл с диска берется? Если так, то вполне может быть, что IE пытается читать файл в кодировке windows-1251, отчего ему и сносит крышу.
-
Нет, это на сервере. При загрузке страницы.
Если я правильно понял ваш вопрос. -
Тогда возможно на сервер javascript отдается без указания кодировки или с неверной кодировкой. Надо смотреть в заголовок Content-type. Если там не написано явно "charset=utf-8", то русские буквы, конечно, работать не будут.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

