Как подружить ahdl и ctags

Вот пришлось просматривать старенький проект на AHDL. Как выяснилось, ctags AHDL не поддерживает, а без него очень тяжко.

Но если гора не идет к Магомету, то Магомет идет к горе. Оказывается, можно самому «прикрутить» поддержку любого языка.

Для примитивной поддержки языка ahdl нужно добавить следующие строчки в файл ~/.ctags:

--langdef=ahdl
--langmap=ahdl:.tdf
--regex-ahdl=/^[ \t]*SUBDESIGN[ \t]*([a-zA-Z_0-9]+)/\1/m,SUBDESIGN/
--ahdl-kinds=+m

Радуемся жизни :)

3 комментария

  1. Антон Фельдман:

    век живи — век учись. я не знал :(

  2. Павел Курочкин:

    Лёша, супер!

    я так понимаю, что в этом случае ctags будет находить все entity, описанные при помощи SUBDESIGN.
    для полной поддержки нужно ещё CONSTANT, DEFINE. может ещё чего-нибудь…
    но теперь это просто дело техники.

    спасибо!

  3. Алексей Литвинов:

    —langdef=ahdl
    —langmap=ahdl:.tdf.inc
    —regex-ahdl=/^[ \t]*SUBDESIGN[ \t]*([a-zA-Z_0-9]+)/\1/m,SUBDESIGN/
    —regex-ahdl=/^[ \t]*CONSTANT[ \t]*([a-zA-Z_0-9]+)/\1/m,CONSTANT/
    —regex-ahdl=/^[ \t]*DEFINE[ \t]*([a-zA-Z_0-9]+)/\1/m,DEFINE/
    —ahdl-kinds=+m

    как-то так=)