"godef: должен быть хотя бы один пакет, содержащий файл", даже если файл имеет пакет? - PullRequest
0 голосов
/ 24 сентября 2019

Я использую VS Code с расширением Go, но заметил, что когда я щелкаю правой кнопкой мыши по методу и выбираю «Перейти к определению», определение не найдено.Например,

enter image description here

Это пример приложения, созданного с помощью Cobra:

cobra init myCobraApp --pkg-name=github.com/khpeek/myCobraApp

Я ожидаю, что это сработаетпотому что каталог myCobraApp организован как

.
├── LICENSE
├── cmd
│   └── root.go
└── main.go

, где cmd/root.go содержит

package cmd

import (
  "fmt"
  "os"
  "github.com/spf13/cobra"

  homedir "github.com/mitchellh/go-homedir"
  "github.com/spf13/viper"

)


var cfgFile string


// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
  Use:   "myCobraApp",
  Short: "A brief description of your application",
  Long: `A longer description that spans multiple lines and likely contains
examples and usage of using your application. For example:

Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate the needed files
to quickly create a Cobra application.`,
  // Uncomment the following line if your bare application
  // has an action associated with it:
  //    Run: func(cmd *cobra.Command, args []string) { },
}

// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
  if err := rootCmd.Execute(); err != nil {
    fmt.Println(err)
    os.Exit(1)
  }
}

Я также пытался вызвать godef из командной строки, но я получаюэто сообщение об ошибке:

~/g/s/g/k/myCobraApp> godef -f main.go "cmd.Execute()"
godef: There must be at least one package that contains the file

Я не понимаю это сообщение об ошибке: не существует ли пакет, содержащий файл?

1 Ответ

1 голос
/ 24 сентября 2019

Оказывается, эта функциональность была нарушена установкой переменной окружения GO111MODULE на on в моем ~/.config/fish/config.fish.Когда я удалил это, кнопка «Перейти к определению» снова заработала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...