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

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

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

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

Сообщение iN0k » 25.12.2018 11:40:01

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

Код: Выделить всё
{$IFOPT D+}
{$else}
{$endF}


В примере выше, у меня всегда светится активной ветка then, в не зависимости от опций компиляции.
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

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

Сообщение wadman » 25.12.2018 16:56:04

Endf? Не должен быть endif?
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

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

Сообщение zub » 25.12.2018 20:35:50

у меня не работает. откуда предпологается редактор должен брать опции компилятора? из исходников? из настроек лазаря? или из fpc.cfg?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение iN0k » 26.12.2018 09:52:42

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

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


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

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

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

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

Сообщение zub » 26.12.2018 12:06:19

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

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


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

Рейтинг@Mail.ru