8 votes

Go linter dans le code VS ne fonctionne pas pour les paquets à travers plusieurs fichiers ?

J'ai installé l'extension Go (version 0.11.4) dans Visual Studio Code sur MacOS :

enter image description here

Cependant, je constate que le linter ne "récupère" pas les fonctions définies dans le même paquet, mais dans des fichiers différents. Par exemple, si je crée dans le même répertoire un fichier foo.go avec

package foobar

import "fmt"

func main() {
    fmt.Println(SayHello())
}

et un fichier bar.go avec

package foobar

func SayHello() string {
    return "Hello, world!"
}

alors dans foo.go Je reçois une erreur de linter qui SayHello est un undeclared name :

enter image description here

J'ai lu un article sur un problème similaire ici ( https://github.com/golang/lint/issues/57 ), mais comme ce problème date d'il y a cinq ans, je me suis dit qu'il devait être corrigé maintenant ? Ou est-ce que golint ne fonctionne pas simplement sur plusieurs fichiers ?

0voto

user3271583 Points 11

Si vous rencontrez ce problème et que vous n'utilisez PAS de modules, ajoutez "go.useLanguageServer" : false pour désactiver les gopls et revenir à votre ancien environnement. (ce qui signifie que vscode reconnaîtra désormais les fonctions et les structures définies dans plusieurs fichiers du même paquet).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X