Geany: Подсветка синтаксиса и автозаполнение не работают, если у меня не открыт файл заголовка в Geany

3313
user1068446

В настоящее время я пишу программу, которая использует библиотеку GTK.

Программы компилируются и работают нормально.

Проблема в том, что Geany, похоже, не «знает», что такое структуры и методы в заголовочном файле GTK.

Он не выделяет структуры и не предлагает автозаполнение функций.

Я немного поэкспериментировал - если я # включая мои собственные заголовочные файлы - он будет выполнять автозаполнение, только если этот файл открыт в geany. Хотя это нормально для других заголовочных файлов std, таких как stdlib.h и math.h

Что мне сделать, чтобы это исправить?

2

1 ответ на вопрос

2
iuz

я столкнулся с этой же проблемой сегодня ..

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

даже если geany хочет автоматически искать в заголовочных файлах, которые вы включаете, он не сможет угадать, какую версию gtk вы хотите использовать для вашего проекта (gtk2, gtk3, ...) ..

помните, что Джани легкий вес :-)

но вот мой обходной путь .. (я думаю, вы находитесь на Linux, и у вас есть оболочка, GCC и т. д.)

чтобы сделать работу я сделал это:

echo "#include <gtk/gtk.h>" > gtk_headers.c gcc -E gtk_headers.c `pkg-config gtk+-3.0 --cflags --libs` -o gtk_headers.h 

(я работаю с gtk версии 3, настройте строку pkg-config в соответствии с вашими потребностями)

затем я открываю файлы своего проекта и gtk_headers.h, таким образом, geany может копировать заголовки библиотеки gtk, над которой я работаю ..

про: просто

минусы: я открываю заголовки в geany ~ 1.6 МБ О_о