yozhic
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Друзья, помогите, пожалуйста, разобраться с синтаксисом Coder. В справке, в секции «Описание иерархии...» читаем: Например, разделитель "/" будет найден и подсвечен "#FF0000", только если находится между "<" и ">". Quotes: ;=================================================================================== ;Flags Font Color Color Quote Quote Escape Quote Quote Parent Rule ; style text bkgrnd start end char include exclude ID ID ;=================================================================================== ;5=1+4 5 0 0 0 "<" ">" "" "" "" 0 123 Delimiters: ;=============================================== ;Flags Font Color Color Char(s) Parent ; style text bkgrnd ID ;=============================================== 1 0 #FF0000 0 "/" 123 Это правило работает – слэш подсвечивается красным. Но стоит изменить в Quotes: всего один параметр оформления (например, Font style = 2): Quotes: ;=================================================================================== ;Flags Font Color Color Quote Quote Escape Quote Quote Parent Rule ; style text bkgrnd start end char include exclude ID ID ;=================================================================================== ;5=1+4 5 2 0 0 "<" ">" "" "" "" 0 123 как подсветка слэша перестаёт срабатывать. Не помогает и замена Parent ID в Delimiters: на -2 или на -3: Delimiters: ;=============================================== ;Flags Font Color Color Char(s) Parent ; style text bkgrnd ID ;=============================================== 1 0 #FF0000 0 "/" -2 Несмотря на то, что в справке говорится: - Если родитель (Parent ID) равен -2: - Внутри родителя с идентификатором (Rule ID) == 0, правило не обрабатывается. - Внутри родителя с идентификатором (Rule ID) > 0: - Идентификатор правила (Rule ID) отсутствует, правило обрабатывается. У нас родитель в Quotes: больше нуля? Да, 123. Rule ID в правиле Delimiters: отсутствует? Да. Почему же тогда правило не обрабатывается? Но сегодня я обратил внимание вот на эти строки из «Описания иерархии...» в справке: - Родителем (Parent ID) для секции "Delimiters:" может быть "Quotes:", "QuotesRE:", "Folds:". - Родителем (Parent ID) для секции "Words:" может быть "Quotes:", "QuotesRE:", "Folds:". - Родителем (Parent ID) для секции "Quotes:" может быть "Quotes:", "QuotesRE:", "Folds:". - Родителем (Parent ID) для секции "QuotesRE:" может быть "Quotes:", "QuotesRE:", "Folds:". - Родителем (Parent ID) для секции "Folds:" может быть "Folds:". В coder-файлах секции Delimiters: и Words: располагаются ниже Quotes: и QuotesRE: "Quotes:" "QuotesRE:" "Delimiters:" "Words:" "Folds:" А в приведённых строках из справки они выше: "Delimiters:" "Words:" "Quotes:" "QuotesRE:" "Folds:" Не означает ли это, что тут такой неявный намёк на последовательность обработки секций? Т.е. вначале обрабатывается Delimiters:, а потом уже Quotes:? Если да, то тогда становится понятно почему слэш перестаёт подсвечиваться. Тогда становится понятно почему и здесь правило в Words: не подсвечивается, а такое же правило в QuotesRE: подсвечивается. А вы как думаете? |