如何安全地从 Intellij 中删除所有文件上 struct 字段的用法?

问题描述

虽然我们有重构工具来重命名结构字段,但我们没有用于删除结构字段及其用法的重构工具。

如何从任何支持 golang 的 IDE 跨文件安全地删除结构字段及其用法[写和读访问]?

据我所知,没有一个 IDE(vim-go、intellij)支持这个。

我曾想过删除结构字段并运行

go vet

这将返回每个文件上的所有错误(以及行号)并编写一个脚本来删除这些行,但不幸的是,在文件中遇到第一个错误后,兽医停止报告错误

解决方法

这不是可以完全自动化的。假设您从类型 X 中删除了字段 Point struct {X,Y int}。 IDE这样使用时应该怎么做:

p := Point{X: 1,Y: 2}
r := p.X / p.Y

或者像这样:

func f(x,y int) {}

f(p.X,p.Y)

所需要的东西显然不是 IDE 可以“猜测”的。

要删除结构字段,请将其从类型定义中删除,然后手动修复编译器错误。