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 ?

24voto

Sathish Ramani Points 381

J'ai rencontré le même problème. J'ai découvert que j'ai rencontré ce problème après avoir activé "Go language server" qui est une fonctionnalité expérimentale. Je l'ai désactivé dans VS code settings->Go Configuration et après cela le problème a disparu.

13voto

Khoa Points 131

La mise à jour de VS Code Go Tool pourrait vous aider. Command + Shift + P -> Go: Install/update tools Installez tous les outils et redémarrez VS Code.

1voto

3ventic Points 532

La cause de cet avertissement pour moi était le paramètre go.lintOnSave qui a été fixé à file . Changer la valeur de package a fait en sorte que le linter reprenne correctement les types définis dans d'autres fichiers.

0voto

Faites une désinstallation propre de vscode et tout fonctionnera à nouveau...

ajoutez sudo si vous en avez besoin

rm -rf $HOME/Library/Application\ Support/Code

rm -rf $HOME/.vscode

supprimer le vscode de l'application

télécharger le vscode et installer à nouveau

0voto

Kamana Kisinga Points 152

Après m'être presque arraché les cheveux, j'ai constaté que le linting fonctionnait mais que de nombreux fichiers présentaient des erreurs. Je n'ai pas encore trouvé la hiérarchie suivie, mais la résolution des problèmes dans un fichier a conduit par la suite à linting correctement un autre fichier. Je pense qu'il suit l'arbre d'exécution, bien que je ne l'aie pas validé. J'ai trouvé cela ennuyeux car cela peut vous amener à penser à tort que le linting ne fonctionne pas, alors qu'en fait, il lime un fichier sur lequel vous ne vous concentrez pas actuellement, surtout si vous avez généré des fichiers qui ne vous intéressent pas.

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