Page 2 of 3
Posted: 07.06.2013 02:10
by lehanidze
далее по Syntax lexer -> Common -> Line comment string -- как объяснить присутствие этой опции здесь, не является ли это дублирующей функцией парсера коммент? и, что важнее, Line comment string или Token rule для коммента?
Posted: 07.06.2013 12:11
by Alexey
Line comment str не влияет на раскраску. это для кнопок "line comment-uncomment".
Posted: 07.06.2013 15:27
by lehanidze
Аа, понял, интересно. Спасибо!
Продолжим, с закладкой Syntax Lexer -> Styles вроде все ясно, поэтому переходим к следующей: Syntax Lexer -> Parser. Здесь неясных моментов будет много, но начнем по-маленьку.. что значат строки:
- Parent block
- Position in line
Posted: 07.06.2013 15:30
by Alexey
parent - выбор одного из блоков с таба Rules. Этот блок должен быть родителем правила
position - никогда не трогал. не нужно
Posted: 10.06.2013 05:14
by lehanidze
можно поподробнее о Parent, и с реальным примером?
Posted: 10.06.2013 11:21
by Alexey
В табе Rules создаем блок. у него 2 элемента- начало имеет block type = range start, конец имеет block type = range end. Потом заходим в Parser, и в списке Parent выбираем первый из них (который range start). тогда парсер работает только для блоков указанных
Posted: 10.06.2013 12:03
by lehanidze
Понял, спасибо!
Далее, что значат?
- Strict parent block
- Not a parent
- Always enabled
Posted: 10.06.2013 12:25
by Alexey
Strict parent block - flag that specifies that parent block must be immediate parent for the rule.
Not a parent - flag that specifies that "parent block" is not a parent of the rule.
Always enabled - flag that specifies that this rule will be active not only in the current lexer but in the nested lexers too.
For example, in Pascal function we have "asm" range with reference to nested "Assembler" lexer. We can specify that "Comment" token rule is always enabled. In this case in the Assembler block Pascal comments will be highlighted correctly
Posted: 10.06.2013 12:33
by lehanidze
да-да, я в курсе, что есть мануал... однако даже эти объяснения нуждаются в объяснениях и примерах. впрочем, опцию Always enabled можно понять, ее опускаем. но Strict parent block и Not a parent совершенно не понятны -- можно о них поподробнее и с примерами?
Posted: 10.06.2013 12:40
by Alexey
Strict- означает что блок являетя не просто родителем, одним из них (у блока может быть много родителей, один родит другого). А ПРЯМЫМ родителем. т.е. не родителем родителя
Not parent- задает что блок НЕ являетя родителем правила. т.е. он может родитель но не этого правила