Избегайте пустой строки в cgo экспортированной документации по функциям - PullRequest
0 голосов
/ 07 марта 2020

Я пишу библиотеку в Go, которую я компилирую в собственную библиотеку, используя CGo, однако, когда функции экспортируются, они имеют эту досадную пустую строку между объявлением функции и комментарием к документации .

В качестве примера, скажем, у меня есть это в моем go файле

/**
 * Prints an integer.
 *
 * @param p0 an integer to print.
 */
//export PrintInteger
func PrintInteger(val C.int) {
    fmt.Printf("%v", val);
}

Как только он экспортирован в мой C заголовочный файл, он выглядит следующим образом

/**
 * Prints an integer.
 *
 * @param p0 an integer to print.
 */

extern void PrintInteger(int p0);

Эта пустая строка по большей части не является проблемой, но в некоторых средах IDE при синтаксическом анализе этого файла заголовка им трудно правильно отобразить intellisense, что несколько усложняет использование заголовка. Особенно, если учесть способ, которым cgo переименовывает параметры функции

Есть ли способ избежать этого без изменения файла заголовка вручную после его создания?

Редактировать:

Я нашел что я считаю - это область в go исходном коде, которая вызывает это:

https://github.com/golang/go/blob/master/src/cmd/cgo/out.go#L922

1 Ответ

0 голосов
/ 18 марта 2020

Исправление для этого должно быть включено в go 1.15.

https://go-review.googlesource.com/c/go/+/222419/

...