ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Go​Tools

ironcladlou ST3

Sublime Text 3的Golang集成

详情

  • 0.1.9
  • github.​com
  • 9年前
  • 1小时前
  • 9年前

安装

  • 总计 13K
  • Win 5K
  • Mac 5K
  • Linux 3K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 2 1 0 0 0 0 1 1 1 2 0
Mac 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 2 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 2 0 1 0 0 1 0 1 0 0 0 0 1 2 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

:警告: 此项目不再维护。 :警告

我推荐使用Visual Studio Codevscode-go 扩展以获得更好的Go编程体验。

GoTools

GoTools 是一个受 Go编程语言 启发的 Sublime Text 3 插件,类似于 vim-go。它不试图重新发明各种支持的IDE组件,而是提供与现有社区支持的工具的集成。

特性

  • 跳转到符号/声明(使用您选择的 oraclegodef
  • 保存时格式化和语法检查,包括括号(使用 gofmt
  • 自动完成(使用 gocode
  • 构建和测试集成
  • 源分析(使用 oracle
  • 标识符重命名(使用 gorename
  • 改进的语法支持(借鉴自 GoSublime

先决条件

GoTools 将尝试使用 GOPATHGOROOT(而不是 PATH)找到所有外部Go工具(oraclegofmtgocode等)。如果您没有这些二进制文件,请使用 go get 安装它们

go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v golang.org/x/tools/cmd/oracle
go get -u -v golang.org/x/tools/cmd/gorename

GoTools 仅与 Go 1.4 进行了测试。请注意,现在 gofmt 已包含在Go发布中,您安装到 GOPATH 的任何 gofmt 很可能来自旧版Go版本,并可能需要删除。

安装

安装GoTools最简单的方法是使用 Package Control。只需安装Package Control,然后使用命令面板中的“Package Control: Install Package”安装“GoTools”包。

如果您想手动安装 GoTools,请下载最新版本并将其解压到 Linux 上的 ~/.config/sublime-text-3/Packages/GoTools 或 OS X 上的 ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/GoTools

配置 GoTools

通过 Sublime Text 偏好设置菜单创建 GoTools 设置文件:Package Settings -> GoTools -> Settings -> User

默认设置 已提供,可通过 Sublime Text 偏好设置菜单在 Package Settings -> GoTools -> Settings - Default 中访问。每个选项都在设置文件中有所说明。

配置您的项目

在 Sublime Text 的 .sublime-project 文件中创建一个 GoTools 设置键(通过菜单中的 Project -> Edit Project)。

提供了一个文档化的示例项目文件

使用 GoTools

注意:大多数 GoTools 命令都可通过 Sublime Text 命令面板访问。在查看 Go 源文件时打开面板,搜索“GoTools”以查看可用选项。

许多构建命令也可以通过上下文菜单访问。

保存时格式化

GoTools 会将 Go 源缓冲区在保存时进行格式化。要禁用自动格式化,请设置GoTools 设置中的 format_on_save

以下是一个示例键绑定,当按下 <ctrl>+<alt>+f 时将格式化源文件

{"keys": ["ctrl+alt+f"], "command": "gotools_format"}

默认情况下使用gofmt 进行格式化。要更改后端,请设置GoTools 设置中的 format_backend。也可用goimports,以及先运行 goimports,然后运行 gofmt 的选项。这个第三个选项在您需要同时使用自动导入解析以及 gofmt 的简化(-s)功能时很有用。

转到定义

GoTools 提供了一个 gotools_goto_def Sublime Text 命令,可以跳转到光标处的符号定义。

以下是一个示例键绑定,当按下 <ctrl+g> 时将会转到定义

{"keys": ["ctrl+g"], "command": "gotools_goto_def"}

以下是一个示例 sublime-mousemap 条目,它将使用 <ctrl>+<左鼠标键> 跳转到定义

{"button": "button1", "count": 1, "modifiers": ["ctrl"], "command": "gotools_goto_def"}

默认情况下使用godef 进行定义支持。要更改后端,请在GoTools 设置中设置 goto_def_backend

自动完成

GoTools 将 Sublime Text 自动完成引擎与 gocode 集成。

以下是一个示例键绑定,当按下 <ctrl>+<空格> 时将自动完成

{"keys": ["ctrl+space"], "command": "auto_complete"}

当有可用建议时,将出现一个格式化的建议列表,包括每个建议的类型信息。

要禁用自动完成集成,请设置GoTools 设置中的 autocomplete

构建

GoTools 将 Sublime Text 构建系统与 go build 集成。

通过在 Sublime Text 菜单中选择Tools -> Build System来激活 GoTools 构建系统。如果构建系统设置为Automatic,则在编辑 Go 源文件时将自动使用 GoTools 进行构建。

有几种执行构建的方法

  • 在 Sublime Text 菜单中的 Tools -> Build
  • 绑定到 build 命令的键
  • 命令面板,如 Build: Build

还提供了一个“Clean Build”命令变体,在执行常规构建之前会递归删除所有 GOPATH/pkg 目录内容。

构建结果放置在 Sublime Text 构建输出面板中,可以使用如下的命令切换:

{ "keys" : ["ctrl+m"], "command" : "show_panel" , "args" : {"panel": "output.exec", "toggle": true}},

以下是一个示例键绑定,当按下 <ctrl>+<b> 时将运行构建

{ "keys": ["ctrl+b"], "command": "build" },

以下是一个示例快捷键绑定示例,当按下 <ctrl>+<alt>+b 时运行 "Clean Build"。

{ "keys": ["ctrl+alt+b"], "command": "build", "args": {"variant": "Clean Build"}},

测试

GoTools 将 Sublime Text 构建系统与 go test 集成。

GoTools 根据上下文尝试 "理解你的意图"。例如,当在需要一个 integration Go 构建标签的测试文件中使用 "在光标处运行测试" 时,GoTools 会注意到这一点,并自动将 -tags integration 添加到测试执行中。

以下 GoTools 构建变体可供使用

变体 描述
运行测试 根据项目的 project_packagetest_packages 设置(相对项目的 gopath)发现测试包并执行它们。
在光标处运行测试 在光标处或其周围运行单个测试方法。
运行当前包测试 运行当前文件所含包的测试。
运行标签测试 类似于 "运行测试",但对于在 tagged_packages 设置中指定的包。
运行最后测试 运行最后执行的测试变体。

测试结果放在内置的 Sublime Text 构建输出面板中,可以使用命令切换,例如:

{ "keys" : ["ctrl+m"], "command" : "show_panel" , "args" : {"panel": "output.exec", "toggle": true}},

以下是一个示例快捷键绑定示例,当按下 <ctrl>+<alt>+t 时运行光标处的测试。

{ "keys": ["ctrl+alt+t"], "command": "build", "args": {"variant": "Run Test at Cursor"}},

将命令中的 variant 替换为前面表中的任何变体名称以进行其他绑定。

Oracle 分析(实验性)

GoTools 通过 gotools_oracle Sublime Text 命令将 Sublime Text 集成到 oracle

以下是一个示例,当按下 <ctrl+alt+i> 时运行 oracle 的 "implements" 命令。

{ "keys" : ["ctrl+alt+i"], "command" : "gotools_oracle" , "args" : {"command": "implements"}},

以下运算符是作为 gotools_oracle 命令参数支持的:

命令 说明
调用方 在大型代码库上较慢。
被调用方 在大型代码库上较慢。
调用栈 在大型代码库上较慢。
描述
自由变量 需要选择。
实现
同伴
引用者

Oracle 结果放在 Sublime Text 输出面板中,可以使用命令切换,例如:

{ "keys" : ["ctrl+m"], "command" : "show_panel" , "args" : {"panel": "output.gotools_oracle", "toggle": true}},

重命名(实验性)

GoTools 提供了一个由 gorename 支持的 gotools_rename 命令,该命令支持类型安全的标识符重命名。

当执行 gotools_rename 命令时,将出现一个标签为 "Go 重命名:" 的输入面板。重命名结果将放在 Sublime Text 输出面板中,可以使用命令切换,例如:

{ "keys" : ["ctrl+m"], "command" : "show_panel" , "args" : {"panel": "output.gotools_rename", "toggle": true}},

重要:gorename 工具会原地写入文件,没有模拟运行选项。更改可能会破坏性,该工具已知存在错误。

Gocode 注意事项

重要:使用 gocode 支持将修改 gocode 守护进程中的 lib-path 设置。更改将影响所有客户端,包括其他 Sublime Text 会话、Vim 实例等。如果您担心与其他与 gocode 集成的工具进行互操作性,请勿使用此设置。

某些项目使用依赖项隔离工具,例如 Godep,且许多项目使用某种自定义构建脚本。此外,gocode 使用客户端/服务器架构,目前依赖于全局服务器端设置来解决建议计算中 Go 包路径。默认情况下,gocode 只搜索 GOROOTGOPATH/pkg 中的包,如果项目将这些编译到多个 GOPATH条目(例如 Godeps/_workspace/pkg),则这可能不足够。

对于此类项目,为了从 gocode 获取最佳建议,必须在客户端请求建议请求之前配置 gocode 守护进程,以告知 gocode 项目编译包的位置。

GoTools 将通过构建包含所有项目 GOPATH 条目的路径来推断正确的 gocode lib-path

GoSublime 注意事项

与 GoSublime 一起安装 GoTools 未经过测试或支持,所以您的体验可能与描述不同。