Por tudo o que vim junkies lá fora, vim-go análise de código suportes antecedência usando os :GoImplements
, :GoCallees
, :GoChannelPeers
, :GoReferrers
etc. comandos Oracle.
Por exemplo, se eu tiver uma Calculator
interface e implementação parecida com:
type Arithmetic interface{
add(float64, float64) float64
}
type Calculator struct{}
func (c *calculator) add(o1, o2 float64) float64 {
// ... stuff
}
Em seguida, executar :GoImplements
no vim com meu cursor sobre o type Arithmetic interface
resultará em algo como:
calculator.go|8 col 6| interface type Arithmetic
calculator.go|3 col 6| is implemented by pointer type *calculator
Agora, se eu mover meu cursor para a type Calculator struct{}
linha e executar :GoImplements
, obterei algo como:
calculator.go|3 col 6| pointer type *calculator
calculator.go|8 col 6| implements Arithmetic
Nota: Se você obteve um erro de “comando desconhecido”, tente executar :GoInstallBinaries
antes de tentar novamente.