eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2017-01-11 12:48 pm
Entry tags:

Век живи — век читай документацию!

Geany вполне способен работать с автодополнением — нужно лишь сгенерировать для него файлы с тегами. Его формат не совсем совместим с ctags, но здесь доступно описывается, что geany -g генерирует файлы с тегами, которые затем можно вставить в проект. Можно добавить в Makefile правило для автоматической перезаписи этого файла.

Таким образом, для библиотечных файлов той же opencm3 можно сгенерировать теги и автодополнение будет работать. Отсюда можно скачать уже сгенерированные теги для некоторых библиотек.

Вот так генерируется файл для libopencm3 под F0:
CFLAGS="-DSTM32F0 -DSTM32F042x6 -I/usr/local/arm-none-eabi/include" geany -g opencm3f0.c.tags /usr/local/arm-none-eabi/include/libopencm3/stm32/*.h /usr/local/arm-none-eabi/include/libopencm3/stm32/f0/* /usr/local/arm-none-eabi/include/libopencm3/cm3/*.h  /usr/local/arm-none-eabi/include/libopencmsis/core_cm3.h /usr/local/arm-none-eabi/include/libopencmsis/stm32/f0/irqhandlers.h /usr/local/arm-none-eabi/include/libopencm3/stm32/common/*.h 2>/dev/null


Жаль только, что при щелчке с ctrl по функциям/переменным файл с их определением не открывается. В перечнях плагинов я такой вещи не встречал. Будем ждать реализации...

[identity profile] dlinyj.livejournal.com 2017-01-11 07:45 pm (UTC)(link)
эээээээээээээ.... Как это работает? Никак не прояснило суть вопроса.

[identity profile] eddy-em.livejournal.com 2017-01-11 07:47 pm (UTC)(link)
По всем файлам, указанным в аргументах geany -g, создается список тегов. Далее ты его открываешь в geany (теоретически, открытые "проекты" должны эти настройки запоминать), и дальше все работает.
Это аналогично работе команды ctags, но та для вима генерирует список.

[identity profile] dlinyj.livejournal.com 2017-01-11 07:53 pm (UTC)(link)
видимо надо попробовать, так как ты никак не прояснил что это

[identity profile] eddy-em.livejournal.com 2017-01-11 07:58 pm (UTC)(link)
Да чего там пробовать?
Я ж говорю: обычно geany только по открытым файлам (ну и самой-самой базовой части, которая у него по умолчанию в тегах есть) дополняет. А если ты генерируешь теги, затем подключаешь этот файл к проекту, то geany дополняет и по тому, что не открыто.
Есть, кстати, плагин ctags, который это должен делать, но я так и не понял, где его "ручки".

[identity profile] dlinyj.livejournal.com 2017-01-11 08:03 pm (UTC)(link)
Переформулирую вопрос: что означает дополняет?

[identity profile] eddy-em.livejournal.com 2017-01-11 08:12 pm (UTC)(link)
Ну автодополнение же! Ты начинаешь поле структуры писать, а оно тебе — фигакс, и список вываливает. Аналогично с типами, глобальными переменными и функциями. Локальные переменные, к сожалению, geany не автодополняет, а жаль...

[identity profile] dlinyj.livejournal.com 2017-01-11 08:15 pm (UTC)(link)
Аааааааааааа! Я просто никогда такого не видел, и не знал что оно бывает :)))

[identity profile] mbr.livejournal.com 2017-01-12 06:06 am (UTC)(link)
Как можно писать код без автодополнений?! Они же раза в три повышают производительность!