Я пишу библиотеку на 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
^extern .*);$
, и удалите пустую строку.) - person torek   schedule 07.03.2020