На днях залил новый патч для ctags, в котором было исправлено несколько багов, связанных c C++, в том числе один весьма серьезный - c неправильной обработкой символа '<'. Ну а самое главное - это добавление поддержки переменных, инициализируемых конструктором, например
int a( 90 ); SomeType b( "a_word" );
В текущей версии ctags такие переменные просто пропускаются, или иногда рассматриваются как прототипы функций (также см. описание бага здесь).
Патч можно взять здесь. Он может быть наложен как на последнюю стабильную версию ctags, так и на trunk. Вместе c патчем выложен тестовый файл test.cpp, на котором можно опробовать текущую и пропатченную версии ctags и сравнить их.
Если кто-то вдруг захочет опробовать патч и найдет регрессионные ошибки, то я попрошу по возможности прокомментировать их здесь (ну или на трекере ctags). Лично я проверял патч на довольно большом C++ проекте и серьезных регрессий не нашел. Напомню, что для включения в теги локальных переменных и прототипов функций, нужно в ctags добавить опцию --c++-kinds=+pl, кроме того, для получения максимальной информации о тегах можно добавить опцию c перечислением всех возможных полей: --fields=afmikKlnsStz.
Патч можно взять здесь. Он может быть наложен как на последнюю стабильную версию ctags, так и на trunk. Вместе c патчем выложен тестовый файл test.cpp, на котором можно опробовать текущую и пропатченную версии ctags и сравнить их.
Если кто-то вдруг захочет опробовать патч и найдет регрессионные ошибки, то я попрошу по возможности прокомментировать их здесь (ну или на трекере ctags). Лично я проверял патч на довольно большом C++ проекте и серьезных регрессий не нашел. Напомню, что для включения в теги локальных переменных и прототипов функций, нужно в ctags добавить опцию --c++-kinds=+pl, кроме того, для получения максимальной информации о тегах можно добавить опцию c перечислением всех возможных полей: --fields=afmikKlnsStz.
Комментариев нет:
Отправить комментарий