自从用了 gomod,VSCode 写 golang 各种问题,一度想放弃。 最近看了 vscode-go 项目,随即切换到了 Google 官方的语言服务器 gopls,发现跳转,hover,Code Complete 等等速度都有质的飞跃,大家不防一试,方法很简单,设置:
"go.useLanguageServer": true
1
rawidn 2019-05-20 09:07:59 +08:00 via iPhone
jetbrain 保平安
|
2
lepig 2019-05-20 09:14:26 +08:00
生在了这么好的时代 为啥不用 goland 省心
|
3
xy2401 2019-05-20 09:17:29 +08:00
goland 免费吗?
|
4
fintan 2019-05-20 09:26:23 +08:00 via iPhone
这个月 Go 语言插件第一次更新的时候就把启用 gopls 这个选项设为默认了
|
6
wweir 2019-05-20 09:32:19 +08:00 via Android
用上 lsp 几个月了,也是最近一个月才切换的 gopls,各种流畅各种爽。唯一权限是还不支持 go modules
|
7
amaker 2019-05-20 09:32:35 +08:00
哪里设置
|
10
wweir 2019-05-20 09:43:58 +08:00 via Android
|
12
BBCCBB 2019-05-20 09:50:44 +08:00
挂了代理装 golsp, 还是 timeout, 是我姿势不对吗
|
13
wsseo 2019-05-20 09:55:26 +08:00
楼主,gopls 需要联网吗?
以前用过 sourcegrapht 的 gopls,bingo,感觉不太成熟。 楼主现在用的哪个版本的 gopls? |
14
janxin 2019-05-20 09:56:54 +08:00
@wsseo gopls 是官方开发过程中的,具体的更新可以看这里
https://go-review.googlesource.com/q/status:merged+gopls 反正我隔几天就会升级一次 |
15
Hellert OP @wsseo gopls 是 google 官方的,以后估记和 godoc 这类一样会成内置吧,不需要联网。
SourceGraph 和 bingo 都停止维护了,现在都推荐用 gopls。 最新的 vscode-go 默认的 lsp 已经是 gopls,只需启用。 |
16
scnace 2019-05-20 10:03:55 +08:00 via Android
vscode-go 把 gocode 和 godef 全部 fork 了一份 然后现在 gocode-mod 不支持 package 的自动 import (本来的 gocode 是可以敲下包名就自动把 path import 进来了 现在还要自己 import 这个有点困扰了
|
17
scnace 2019-05-20 10:05:35 +08:00 via Android
(好像 vim-go 现在也用默认 gopls 了
unstable 的东西这样滥用真的好吗 XD |
18
Hellert OP @scnace 是的,不能自动 Import 我也遇到了,是个已知问题,后期 gopls 支持:
https://github.com/microsoft/vscode-go/issues/2484 https://github.com/golang/go/issues/31906 |
19
wsseo 2019-05-20 10:16:17 +08:00
gopls 是开源的吗,github 上有吗?
|
21
alexmy 2019-05-20 10:21:47 +08:00
我打开 setting.json 一看,默认就是 true 了。还是我失忆了。
|
22
wsseo 2019-05-20 10:25:11 +08:00
goland 也是蛮好的,就是太贵了,一年要 1000 多,对一些人来说可能没必要。goland 字体渲染比 vscode 差。
|
23
Muninn 2019-05-20 10:46:46 +08:00
想要更激进一点,用这个 https://github.com/saibing/tools
bingo 的作者被邀请去写官方的 gopls,他会先在这里试,然后 merge 的官方库。 总之最近是一直在更新了。 |
25
jinliming2 2019-05-20 12:29:41 +08:00 via iPhone
@wsseo 没 1000 多那么贵吧?我买的单版本授权也就 89 刀一年,合计也就 600 多人民币啊……
|
26
coldsnap 2019-05-20 12:40:26 +08:00
gopls 有 rename 的功能吗?好像没找到配置可以开启,现在 go-renames 太慢了
|
28
Trim21 2019-05-20 13:07:15 +08:00
之前用 vscode,我记得有个用到的工具还不支持 go mod,被迫换回 goland...
|
29
fuxiaohei 2019-05-20 13:14:52 +08:00
gopls 会莫名其妙的内存泄漏和 cpu 巨高
|
30
wsseo 2019-05-20 13:23:33 +08:00
@jinliming2 哦,我记错了,企业版是 1000 多
|
31
wuchujie 2019-05-20 14:26:33 +08:00
现在推荐用啥?我记得官方 github 之前推荐用 bingo 因为 mod 支持不好。我刚看了下配置还是
"go.useLanguageServer": true, "go.alternateTools": { "go-langserver": "bingo" }, "go.languageServerFlags": [ "-enhance-signature-help", "-trace", "-format-style=goimports", ], |
32
index90 2019-05-20 14:29:04 +08:00
羡慕那些用得起免费的人
|
34
wweir 2019-05-20 15:22:36 +08:00
|
35
whoami9894 2019-05-20 16:17:13 +08:00
你们的 vscode-go 能提示标准库吗,输`import "github.com/"`或者`import "net/"`时自动补全包名
|
36
judeng 2019-05-20 16:37:04 +08:00
The gopls server crashed 5 times in the last 3 minutes. The server will not be restarted.
开启后 crash 啊 |
37
kidlj 2019-05-20 16:40:41 +08:00
当前 vscode-go/ gopls 对 modules 的支持还有不少问题。
我是这样用的: 把项目目录建立在 GOPATH 里。安装依赖时设定 GO111MODULE=on,然后 go mod vendor 到 vendor 目录。 之后 GO111MODULE=off 使用,vscode-go 对 GOPATH 模式支持得很好。如果新加依赖就重复上述过程。 |
38
suckli 2019-05-20 16:42:53 +08:00
在公司内网连 go get 都用不了的人表示
挺羡慕你们的 |
39
wsseo 2019-05-20 17:16:04 +08:00
|
40
wsseo 2019-05-20 17:18:54 +08:00
使用传统 go tools,Windows 下函数提示,跳转定义较慢。建议用 vscode remote 到 linux 或各用 mac。
|
42
LokiSharp 2019-05-20 17:25:45 +08:00 via iPhone
羡慕用得起 vscode 的人
|
43
wweir 2019-05-20 20:27:34 +08:00 via Android 3
搞明白 gopls 的坑了:只认一个根目录。
可以是 gopath,也可以是一个 go modules 项目目录, 同一 workspace 打开两个 目录,铁定报错 |
45
d0m2o08 2019-05-21 10:09:49 +08:00
win10 vscode remote 加上 gopls, 导致跳转定义不能用,禁用之后跳转定义正常,有大佬遇到过么
|