【问题标题】:How can I get syntax highlighting for cgo (golang)如何获得 cgo (golang) 的语法高亮显示
【发布时间】:2017-12-25 12:30:53
【问题描述】:

cgo 在 go 中是用“cmets”编写的,这意味着默认情况下它具有注释语法突出显示。如果在 cgo 文件中有适当的 golang 和 C 语法高亮显示,那就太好了。

package main

// ... C code or #include here ...
import "C"

... Go code here ...

Example

我希望这适用于 Visual Studio Code 或 ViM。

如何做到这一点?

【问题讨论】:

  • 您可以在编辑器(vim、atom、vscode 等)中添加用于语法高亮的 cgo 文件扩展名。你的编辑是什么?
  • 你用的是什么编辑器,它有 cgo 语法高亮功能?
  • 我正在使用 atom 它确实为 .go、.c、.h 等提供语法高亮显示。
  • 我正在寻找 more 而不仅仅是.go 突出显示我正在寻找cgo,它是在 go 文件中用 cmets 编写的 c。示例:github.com/AlekSi/cgo-by-example/blob/master/main.go#L4
  • 我怀疑,你会得到一个。大多数语法荧光笔使用编辑器中的文件扩展名工作。对于.go ext,它会将其视为 go 文件。祝你好运。

标签: go visual-studio-code syntax-highlighting cgo


【解决方案1】:

一种方法是将 C 代码放在头文件中,例如 example.h,然后在您的 Go 程序中使用:

// #include "example.h"
import "C"

打开example.h 时,您会获得语法高亮显示。

另外,对于 ViM,SyntaxRange 插件据说可以突出显示作为 Go 代码一部分的 C 代码,但配置起来可能并不简单。

【讨论】:

    【解决方案2】:

    我会说,这取决于您的编辑器,这介于不可能和毫无意义的困难之间。

    唯一可以区分普通注释块和 cgo 使用的注释块的方法是,cgo 块后面紧跟import "C"。根据您的编辑器的语法高亮词法分析器的构造方式,它可能检测到也可能检测不到。

    一个可能的部分解决方案是编写 C 荧光笔的简化子集,只影响明显的代码,然后将其应用于所有注释块。不是一个很好的解决方案,但总比没有好。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-01
      • 2010-11-26
      • 2016-06-09
      • 1970-01-01
      • 2011-08-26
      • 2011-09-22
      • 2016-08-16
      • 2015-05-22
      相关资源
      最近更新 更多