Подсветка синтаксиса {$IFOPT D+}.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
iN0k
постоялец
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Подсветка синтаксиса {$IFOPT D+}.

Сообщение iN0k »

Подсветка синтаксиса для директив компилятора $IFOPT (аналогичная $IFDEF) только у меня не работает?
Или это я что-то не так делаю?

Код: Выделить всё

{$IFOPT D+}
{$else}
{$endF}


В примере выше, у меня всегда светится активной ветка then, в не зависимости от опций компиляции.
wadman
постоялец
Сообщения: 122
Зарегистрирован: 18.10.2016 14:54:28
Контактная информация:

Сообщение wadman »

Endf? Не должен быть endif?
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

у меня не работает. откуда предпологается редактор должен брать опции компилятора? из исходников? из настроек лазаря? или из fpc.cfg?
iN0k
постоялец
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Сообщение iN0k »

wadman писал(а):Endf? Не должен быть endif?

Да, вы правы. Опечатался.


zub писал(а):у меня не работает. откуда предпологается редактор должен брать опции компилятора? из исходников? из настроек лазаря? или из fpc.cfg?

гм ... Лазарус формирует список опций для компилятора ... наверно как-то должен знать, что он там понаписал :-)
При настройке проекта, я имею возможность поставить галочку "Генерировать отладочную информацию", которая успешно трансформируется в параметры командной строки fpc.exe..-g. При этом работа компилятора верная, сам FPC прекрасно разруливает {$IFOPT D+} и {$IFOPT D-} в зависимости от параметра -g.

Вчера копался в исходниках Лазаруса. Функционал расположен ..components\codetools\LinkScaner.pas:TLinkScanner.IfOptDirective.
Мои предположения о внутренней работе: На основе настроек проекта, "парсинга" исходников, создается список "переменных" отражающий параметры компиляции. Однако, галочка "Генерировать отладочную информацию" в этих переменных никак не отражается, по этому редактор Лазаруса не корректно определяет активную ветку {$IFOPT D+}. Баг это или фича, для меня не ясно ... как и где повлиять на формирование списка, я пока тоже не нашел )))
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Предположу что будет работать с опциями задаными в исходниках. проверять лень.
для -g насколько я знаю управления из исходников нет.

>>Баг это или фича, для меня не ясно ...
ИМХО не баг и не фича - обычное состояние небольшой недоделки, но репорт кинуть стоит - "создается список "переменных" отражающий параметры компиляции" начальные значения этих переменных согласуют с опциями компилятора и заработает
Ответить