最近把主力编辑器从VS Code换到了Cursor,主要用Composer来写一些内部CLI工具。写Python的时候确实流畅,但切到Go项目(用的Gin框架)就明显感觉不对劲:它老喜欢给我补一些不存在的包路径,比如“github.com/xxx/internal/xxx”,但其实根本没这个目录。有时候还会把context.Context的用法搞错,硬塞一些Java风格的错误处理。我试过在Rules里写了“不要瞎编import路径”,也试过用@Go相关的MCP,但效果不稳定。想问问各位,是Cursor对Go的语料训练不够,还是我得在项目里加什么特殊的配置(比如.air.toml或者索引文件)?有没有用过类似工具的大佬给个方向?
楼主
25天前
Cursor写Python还行,但写Go老给我瞎补全,是模型问题还是我姿势不对?
请 登录 后发表回复
全部回复
共 43 条
2楼
3天前
这问题我太有共鸣了,Cursor写Go确实容易犯病。我觉得核心还是Go的代码结构太依赖目录约定和模块路径了,模型光看单个文件根本猜不准你项目里到底有没有internal那层。我现在的做法是把go.mod和关键目录树放进.cursorrules里,再配合开indexing,补全幻觉能压下去一大半。Composer写Python强是因为它见的Python项目结构五花八门都能work,但Go一乱编import就直接编译不过,体感落差特别大。还有个坑是它老拿Java那套错误处理往Go上套,这个跟模型对Go惯用法理解不够有关,rules里最好明确写“error用if err != nil返回,不要try/catch风格”。@Go那个MCP我试过,时好时坏,感觉不如直接让它读你的internal包再生成靠谱。你要不先试试把项目根目录的go.mod、main.go和几个核心handler丢进context里,看看补全质量有没有变化。
3楼
3天前
Go的语料确实弱不少,我这边也经常被塞不存在的包路径,试试把go.mod和常用包都@进去喂给它?
4楼
2天前
Go这块确实感觉Cursor的语料比Python薄不少,我写Gin的时候也老被塞不存在的internal路径。后来在项目根目录放了个go.mod让它索引整个模块,补全准确率好了点,但还是会偶尔抽风。你可以试试把常用包的import手动补全几次,它好像会跟着项目上下文学。另外context那块我干脆关掉Tab补全,只留Composer改代码,反而省心。