VSC запускает Go код только из $GOPATH — почему? Как запускать по Ctrl+F5 любой открытый скрипт?

VSC (Visual Studio Code) - это мощная интегрированная среда разработки (IDE), которая поддерживает множество языков, включая Go. При запуске Go кода в VSC по умолчанию он ищет файлы и зависимости только внутри $GOPATH, и есть несколько причин, почему это происходит.

Во-первых, $GOPATH - это системная переменная окружения, которая указывает на корневую директорию проектов Go. Это место, где хранятся все ваши проекты, зависимости и библиотеки. Переменная $GOPATH важна для работы компилятора Go и других инструментов разработки.

VSC руководствуется этой переменной окружения, чтобы определить, где искать файлы проекта и его зависимости. Это делает разработку Go удобной, потому что VSC автоматически распознает структуру проекта и может предлагать автозаполнение и другие функции кода.

Во-вторых, при запуске Go кода нам нужно указать точку входа для исполняемого файла. По умолчанию, VSC ищет этот файл внутри корня проекта, который находится в $GOPATH/src. Когда мы работаем над проектом, это удобно, потому что VSC будет автоматически запускать код из текущего проекта.

Однако, если вы хотите запустить любой открытый скрипт по Ctrl+F5, не учитывая настройки $GOPATH, вам потребуется немного изменить конфигурацию запуска в VSC.

1. Откройте файл launch.json, который находится в папке .vscode в корневой папке вашего проекта.
2. Найдите настройку "program", описывающую путь к исполняемому файлу.
3. Вместо относительного пути к файлу, используйте абсолютный путь к скрипту, который вы хотите запустить. Например, "program": "${file}".
4. Если ваш скрипт требует зависимостей, убедитесь, что они установлены глобально или находятся внутри GOPATH.

Сделав эти изменения, вы сможете запускать любой открытый скрипт в VSC по Ctrl+F5, независимо от текущего $GOPATH.

Важно отметить, что при использовании этого подхода вы должны быть осторожными, потому что VSC не сможет автоматически правильно настроить зависимости и другие аспекты проекта. Поэтому, если вы работаете над конкретным проектом, рекомендуется продолжать использовать $GOPATH и настройки запуска исходного проекта для более плавного и организованного процесса разработки.