避免在 cgo 导出的函数文档中出现空行
Avoid empty line in cgo exported function documentation
我正在用 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 上,当解析该头文件时,它们很难正确显示智能感知,从而使头文件的使用稍微困难一些。特别是当你考虑 cgo
的方式时
有什么方法可以避免生成后不手动修改头文件吗?
编辑:
我发现我认为 是 Go 源代码中导致此问题的区域:
https://github.com/golang/go/blob/master/src/cmd/cgo/out.go#L922
go 1.15 中应该包含对此的修复。
我正在用 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 上,当解析该头文件时,它们很难正确显示智能感知,从而使头文件的使用稍微困难一些。特别是当你考虑 cgo
有什么方法可以避免生成后不手动修改头文件吗?
编辑:
我发现我认为 是 Go 源代码中导致此问题的区域:
https://github.com/golang/go/blob/master/src/cmd/cgo/out.go#L922
go 1.15 中应该包含对此的修复。