Настройка visual studio code для rust

Обновлено: 04.07.2024

Я пытался запустить проект, используя Rust, но столкнулся с проблемой: он просто не работает правильно на Linux в VSCode / Atom.

Потраченный впустую 3 дня, поиск в Интернете, пробование разных уроков / видео - ничего не получилось + большая часть материала с 2017 года. Я пробовал чат Matrix, но никто не знал, что делать. У Git тоже нет решения, так как люди продолжают предлагать очень случайные вещи, такие как «изменить эту переменную в файле toml на что-то другое и обратно»

Я установил (и переустановил ржавчину много раз за последние 3 дня), и он прекрасно работает с терминала, но не в редакторе.

  1. Редакторы не видят никаких ящиков, поэтому вы не можете запустить свой код из редактора.
  2. Автозаполнение не работает (работает только на стандартных, а не на добавляемых дополнительных ящиках).

Что я сделал (из многих других вещей):

Попробовал stable , beta , nightly (для racer ) Просто снова сделал чистую установку:

stable installed - rustc 1.40.0 (73528e339 2019-12-16)

Rust is installed now. Great!

Создан новый проект: cargo new test_proj и добавлен новый rand = "0.6" в [зависимости] и сборка использованного груза. Он построил rand

Добавлен "rust-client.enableMultiProjectSetup": true в файл настроек, чтобы избежать предупреждения: A Cargo.toml file must be at the root of the workspace in order to support all features. Alternatively set rust-client.enableMultiProjectSetup=true in settings. от Rust (rls)

Я также устанавливаю расширение 'code runner', которое я использую с Python, C ++ и Java, для запуска кода из редактора.

Итак, теперь у меня есть только основная функция, и она отлично работает из редактора:

enter image description here

enter image description here

Теперь я добавляю rand, и он, кажется, работает, и делает НЕКОТОРЫЕ автозаполнение .

enter image description here

enter image description here

Но теперь он перестает работать:

enter image description here

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

enter image description here

Хорошо, давайте попробуем Ctrl + Shift + B и попробуем сборку груза:

enter image description here

enter image description here

По какой-то странной причине он ищет в / media / Work / Work / rust_code, а не в / media / Work / Work / rust_code / test_proj /

И последнее: давайте попробуем запустить в терминале:

enter image description here

Так что это работает просто отлично.

Извините за длинную почту, но я потратил впустую 3 дня теперь, и это все еще не может заставить это работать. Кому-нибудь удалось это настроить вообще?

Это должен быть Atom или VSCode, так как у меня есть все остальные языки / проекты, настроенные там + VSCode указан на официальном сайте Rust, поэтому я предполагаю, что он должен работать.

По сути, из двух редакторов (VSCode и Atom), которые имеют возможности отладки, в отличие от Intellij Rust, оба не работают для меня, и я просто не могу кодировать в Rust, поскольку инструменты буквально сломаны / недостаточно зрелы для продуктивной работы. Пожалуйста, дайте мне знать, если я ошибаюсь, и это всего лишь один маленький флаг, который все забывают упомянуть, который отсутствует в некоторых конфигурациях.

В разделе Общие сведения о разработке в Windows с помощью Rust мы ознакомили вас с языком Rust и рассказали, что это такое и из чего состоит. В этом разделе мы настроим среду разработки.

Рекомендуется выполнять разработку Rust в среде Windows. Однако если вы планируете локальную компиляцию и тестирование в Linux, разработку можно также выполнять с помощью Rust в подсистеме Windows для Linux (WSL).

Установка Visual Studio (рекомендуется) или Microsoft C++ Build Tools

В Windows для Rust требуются определенные инструменты сборки C++.

Можно скачать Microsoft C++ Build Tools или просто установить Microsoft Visual Studio (рекомендуется).

Использование Microsoft C ++ Build Tools или Visual Studio Build Tools требует наличия действующей лицензии Visual Studio (Community, Pro или Enterprise).

В качестве интегрированной среды разработки (IDE) для Rust мы будем использовать Visual Studio Code, а не Visual Studio. Но вы по-прежнему можете установить Visual Studio. Доступен выпуск Community Edition — он предоставляется бесплатно для учащихся, участников проектов с открытым кодом и отдельных пользователей.

Для новых проектов Rust по умолчанию используется Git. Поэтому также добавьте в набор отдельный компонент Git для Windows (используйте поле поиска, чтобы найти его по имени).

Разработка классических приложений .NET, разработка классических приложений C++ и разработка для универсальной платформы Windows

Установка Rust

Теперь установите Rust с веб-сайта Rust. Веб-сайт обнаружит, что вы используете Windows, и предложит вам 64- 32-разрядные установщики инструмента rustup для Windows, а также инструкции по установке Rust в подсистеме Windows для Linux (WSL).

Rust очень хорошо работает в Windows. Поэтому нет необходимости использовать WSL (если вы не планируете локальную компиляцию и тестирование в Linux). Так как у вас Windows, рекомендуется просто запустить установщик rustup для 64-разрядной версии Windows. Затем все будет настроено для записи приложений для Windows с помощью Rust.

После завершения работы установщика Rust все будет готово к программированию с помощью Rust. У вас еще не будет удобной интегрированной среды разработки (это будет рассмотрено в следующем разделе, —Установка Visual Studio Code). И вы еще не настроили среду для вызова интерфейсов API Windows. Однако вы можете запустить командную строку ( cmd.exe ) и, возможно, ввести команду cargo --version . Если отобразился номер версии, это подтверждает, что Rust установлен правильно.

Если вы хотите узнать, что за ключевое слово cargo мы использовали выше, то Cargo — это название инструмента в среде разработки Rust, который управляет проектами (а точнее, пакетами) и их зависимостями.

Если вы действительно хотите углубиться в программирование на этом этапе (даже без удобства интегрированной среды разработки), то можете прочитать раздел Hello, World! книги по языку программирования Rust на веб-сайте Rust.

Установка Visual Studio Code

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

VS Code также содержит встроенный терминал, позволяющий вводить аргументы командной строки (например, вводить команды для Cargo).

После VS Code установите расширение rust-analyzer. Можно либо установить расширение rust-analyzer из Visual Studio Marketplace, либо открыть VS Code и выполнить поиск rust-analyzer в меню расширений (CTRL+SHIFT+X).

Для поддержки отладки установите расширение CodeLLDB. Можно либо установить расширение CodeLLDB из Visual Studio Marketplace, либо открыть VS Code и выполнить поиск CodeLLDB в меню расширений (CTRL+SHIFT+X).

В качестве альтернативы расширению CodeLLDB для поддержки отладки можно использовать расширение Microsoft C/C++ . Расширение C/C++ не интегрируется с интегрированной средой разработки, как CodeLLDB. Но расширение C/C++ предоставляет более подробную отладочную информацию. Поэтому его стоит иметь под рукой на всякий случай.

Можно либо установить расширение C/C++ из Visual Studio Marketplace, либо открыть VS Code и выполнить поиск C/C++ в меню расширений (CTRL+SHIFT+X).

Чтобы открыть терминал в VS Code, выберите Вид > Терминал или нажмите клавиши CTRL+` (символ обратного апострофа). Терминалом по умолчанию является PowerShell.

Здравствуй, мир! Руководство (использование Rust с VS Code)

Давайте испытаем Rust с помощью простого приложения "Hello, World!" .

Сперва запустите командную строку ( cmd.exe ) и cd перейдите в папку, в которой вы хотите хранить свои проекты Rust.

Затем укажите Cargo создать проект Rust с помощью следующей команды.

Аргументом, который вы передаете в команду cargo new , является имя проекта, который необходимо создать. В нашем случае это first_rust_project. Рекомендуется именовать проекты Rust в "змеином регистре" (все слова состоят из строчных букв, а пробелы заменены символами подчеркивания).

Теперь с помощью команды cd перейдите в эту папку, а затем запустите VS Code из нее.

В обозревателе VS Code откройте файл src > main.rs . Это файл исходного кода Rust, содержащий точку входа приложения (функцию main). Вот как это будет выглядеть.

Взглянув на код в main.rs , можно сразу же сказать, что main — это определение функции, и что код выводит строку "Hello, World!" Дополнительные сведения о синтаксисе см. в разделе Anatomy of a Rust Program (Структура программы Rust) на веб-сайте Rust.

Теперь давайте попробуем запустить приложение в отладчике. Установите точку останова на строке 2 и щелкните Выполнить > Запустить отладку (или нажмите клавишу F5). Доступны также команды Debug и Run, встроенные в текстовый редактор.

Как видите, отладчик останавливается на строке 2. Нажмите клавишу F5, чтобы продолжить, и приложение продолжит выполнение до завершения. В области Терминал вы увидите ожидаемые выходные данные: "Hello, World!"

Rust для Windows

Вы можете не только использовать Rust в Windows, но и создавать приложения для Windows с помощью Rust. С помощью крейта windows вы можете вызывать любые предыдущие, текущие и будущие интерфейсы API Windows. Дополнительные сведения об этом, а также примеры кода см. в разделе Rust для Windows и крейт windows.

Полная настройка и отладка среды разработки Rust на основе VS Code (Windows)

Один, установка и настройка

1、Официальный сайт RustМожно скачатьrustup‑init.exe После открытия установочного файла Windows появится следующее окно командной строки, вы можете ввести 1 для автоматической установки, и среда будет автоматически настроена.


Примечание. После выполнения вышеуказанного вы можете использовать Cargo и rustup через команду CMD.

2. Загрузите и установите racer (используется для автоматического завершения кода Rust):

cargo install racer

В случае неудачи сначала обновите rustup до ночной версии, а затем загрузите:

rustup install nightly

cargo +nightly install racer

3. Откройте VS Code, найдите плагин rust (rls), у которого больше всего скачиваний, и установите его.


4. Для отладки программного обеспечения установите плагин CodeLLDB, конечно, вы также можете использовать GDB


5. crates - это плагин, который помогает разработчикам управлять зависимостями при использовании Cargo.toml, рекомендуется скачать


Два, компиляция и отладка

1. Создайте новую папку, такую ​​как testProj, структура подкаталогов следующая (main.rs и Cargo.toml пусты)

2. Затем откройте testProj с помощью VS Code:


3. Выберите mian.rs, введите следующий текст (// - символ комментария) и сохраните:

5. Перейдите в корневой каталог проекта через CMD и скомпилируйте программу через сборку Cargo, чтобы получить исполняемый файл:


Я хочу запустить свой проект и не понимаю, где щелкнуть.


Я попытался нажать Выполнить задачу , Запустить задачу сборки , Настроить задачу сборки по умолчанию , но ничего разумного не происходит.

Использование интегрированного терминала

Ярлык для запуска интегрированного терминала: Ctrl + `
( Ctrl + обратная кавычка )
Затем выполните следующую команду во встроенном терминале:

Примечания: откройте редактор кода из папки проекта (команда code. внутри терминала папки проекта или в режиме графического интерфейса: щелкните правой кнопкой мыши внутри папки проекта и выберите Открыть с кодом ), затем нажмите Ctrl + ` (Ctrl + обратная кавычка), чтобы открыть интегрированный терминал, затем введите: cargo run

Использование задач

Ярлык для запуска задачи: Ctrl + Shift + B
Добавить грузовой пробег в качестве задачи по умолчанию: добавить .vscode/tasks.json в свой проект следующим образом. Чтобы использовать cargo run для запуска проекта, измените содержимое . vscode/tasks.json следующим образом:

Теперь нажмите Ctrl + Shift + B , чтобы запустить задачу, или нажмите Ctrl + Shift + P и выберите Задачи: выполнить задачу сборки из палитры команд.

Вы можете добавить аргументы, подобные приведенному выше комментарию, например: "args": ["запустить", "--release", "-", "arg1"], (если это требуется для вашего приложения).

(Вы можете открыть палитру команд с помощью Ctrl + Shift + P , введите Настроить задачу сборки по умолчанию и нажмите Enter , чтобы выбрать его. Затем выберите Rust: cargo build или Others . Это создает файл tasks.json в папке .vscode вашей рабочей области).

Использование собственного отладчик на основе LLDB

Чтобы запустить проект:
Нажмите Ctrl + F5 или выберите Запуск без отладки из меню Выполнить и просмотрите окно терминала , чтобы увидеть результат:


В первый раз (только один раз) установите собственный отладчик на основе LLDB или установите с помощью командной строки:

Затем внутри проекта Visual Studio Code: нажмите сочетание клавиш Ctrl + F5 , затем для первого время выберите LLDB , затем OK и Yes , или создайте .vscode/launch.json , как в следующем примере, внутри папки проекта (также вы можете выбрать создать файл launch.json на панели Debug/Run):

Примечания:
Я назвал проект example выше.
Вы можете раскомментировать выше //"user_arg1", , если вам нужны аргументы.

Использование rust-analyzer extension


Чтобы запустить код, щелкните серый текст Run над fn main () :

Использование расширения code-runner

Таким образом, Code Runner запускает команду cargo run каждый раз, когда вы нажимаете кнопку Play (или нажимаете сочетание клавиш):
Из меню: Файл> Настройки> Настройки (или нажмите Ctrl +, ), затем в поле поиска введите:
code-runner.executorMap затем нажмите Изменить в Settings.json , затем отредактируйте «code-runner.executorMap»: и измените «rust»: «cd $ dir && rustc $ fileName && $ dir $ fileNameWithoutExt " в " rust ":" cargo run " .

Или просто добавьте 3 следующие строки в настройки VSCode JSON ( settings.json файл):

Использование специальной команды Code Runner

Вы можете установить пользовательскую команду для запуска: "code-runner.customCommand": "cargo run"
Меню: Файл> Настройки> Настройки (или нажмите Ctrl +, ), затем в поле поиска введите customCommand и задайте пользовательскую команду для запуска: cargo run . Вы можете изменить ярлык для этой команды для простоты использования: в меню выберите: Файл> Настройки> Сочетания клавиш , затем в поле поиска введите: customCommand , затем добавить/изменить привязку клавиш, например нажмите: Ctrl + L Ctrl + R

Вы можете установить это расширение из командной строки, используя:

Плагин использует задачи: вы можете нажать Ctrl + Shift + B , затем выбрать представленные варианты, на данный момент есть только два варианта:

Итак, вам нужно использовать задачу cargo run , представленную выше ( tasks. json файл).

Использование расширения vscode-rust

Установить с помощью Ctrl + P и введите «ext install vscode-rust». Запустите с помощью Ctrl + Shift + P , введите «cargo», затем выберите «Cargo: Run».

Изменить: вы можете добавить ярлык к этой команде для простоты использования:
В меню выберите: Файл> Настройки> Сочетания клавиш , затем в поле поиска введите : Cargo: Run , затем добавьте привязку клавиш, например нажмите: Ctrl + L Ctrl + R , и если вы используете это расширение в режиме без RLS для запуска команды Cargo в терминале: вы можете установить "rust. executeCargoCommandInTerminal ": true в меню Файл> Настройки> Настройки (или нажмите Ctrl +, ), затем введите executeCargoCommandInTerminal внутри поля поиска.

Использование встроенного терминала

Ярлык для запустите интегрированный терминал: Ctrl + `
( Ctrl + обратная кавычка )
Затем выполните следующую команду в интегрированном терминале :

Примечания: Откройте редактор кода из папки проекта ( code. в терминале папки проекта или в режиме графического интерфейса: щелкните правой кнопкой мыши внутри папки проекта и выберите Открыть с помощью кода ), затем нажмите Ctrl + ` (Ctrl + обратная апостроф), чтобы открыть интегрированный терминал, затем введите: cargo run

Using Tasks

Ярлык для запуска Задача: Ctrl + Shift + B
Добавить cargo run в качестве задачи по умолчанию: добавьте файл .vscode/tasks.json в свой проект следующим образом, чтобы использовать cargo run для запуска проекта измените содержимое .vscode/tasks.json следующим образом:

Теперь нажмите Ctrl + Shift + B , чтобы запустить задачу, или нажмите Ctrl + Shift + P и выберите Задачи: выполнить задачу сборки на палитре команд.

Вы можете добавить аргументы, подобные приведенному выше комментарию, например: "args": ["run", "--release", "-", "arg1"], (если это требуется для вашего приложения).

(Вы можете открыть палитру команд с помощью Ctrl + Shift + P и ввести e в Настроить задачу сборки по умолчанию и нажмите Enter , чтобы выбрать его. Затем выберите Rust: cargo build или Others . В результате будет создан файл tasks.json в папке .vscode вашей рабочей области).

Использование собственного отладчик на основе LLDB

Чтобы запустить проект:
Нажмите Ctrl + F5 или выберите Запуск без отладки из меню Выполнить и просмотрите окно терминала , чтобы увидеть результат:


В первый раз (только один раз) установите собственный отладчик на основе LLDB или установите с помощью командной строки:

Затем внутри вашего проекта Visual Studio Code: нажмите сочетание клавиш Ctrl + F5 , затем в первый раз выберите LLDB , затем OK и Yes , или создайте .vscode/launch.json файл, как в следующем примере, внутри папки проекта (также вы можете выбрать создать файл launch.json на панели Debug/Run):

Примечания:
Я назвал проект example выше.
Вы можете раскомментировать выше //"user_arg1", , если вам нужны аргументы.

Использование rust-analyzer extension


Кому запустить код, щелкните серый текст Run над fn main () :

Использование расширения code-runner

Итак, Code Runner запускается команда cargo run каждый раз, когда вы нажимаете кнопку Play (или нажимаете сочетание клавиш):
Из меню: Файл> Настройки> Настройки ( или нажмите Ctrl +, ), затем в поле поиска введите:
code-runner.executorMap , затем нажмите Изменить в настройках .json затем отредактируйте "code-runner.executorMap": и измените "rust": "cd $ dir && rustc $ fileName && $ dir $ fileNameWithoutExt" на "rust": "cargo run" .

Или просто добавьте 3 следующие строки в JSON настроек VSCode (файл settings.json ):

Использование пользовательской команды Code Runner

Вы можете установить пользовательскую команду на запустить: "code-runner.customCommand": "cargo run"
Меню: Файл> Настройки> Настройки (или нажмите Ctrl +, ), затем в поле поиска введите customCommand и установите пользовательскую команду для запуска: cargo run . Вы можете изменить ярлык на эту команду для простоты использования: В меню выберите: Файл> Настройки> Сочетания клавиш , затем в поле поиска введите: customCommand , затем добавьте/измените привязку клавиш, например нажмите: Ctrl + L Ctrl + R

Вы можете установить это расширение из командной строки, используя:

Плагин использует задачи: вы можете нажать Ctrl + Shift + B , затем выбрать представленные варианты, на данный момент есть только два варианта:

Итак, вам нужно использовать задачу cargo run , представленную выше ( tasks. json файл).

Использование расширения vscode-rust

Установить с помощью Ctrl + P и введите «ext install vscode-rust». Запустите с помощью Ctrl + Shift + P , введите «cargo», затем выберите «Cargo: Run».

Изменить: вы можете добавить ярлык к этой команде для простоты использования:
В меню выберите: Файл> Настройки> Сочетания клавиш , затем в поле поиска введите : Cargo: Run , затем добавьте привязку клавиш, например нажмите: Ctrl + L Ctrl + R , и если вы используете это расширение в режиме без RLS для запуска команды Cargo в терминале: вы можете установить "rust. executeCargoCommandInTerminal ": true в меню Файл> Настройки> Настройки (или нажмите Ctrl +, ), затем введите executeCargoCommandInTerminal внутри поля поиска.

К сожалению, на данный момент хорошего решения нет. В основном вам нужно добавить задачу в tasks.json , которая начинается так:

AR предложил добавить еще одну идентичную запись, но с "subcommand": "run" , но это не работает. Вы получаете эту ошибку:

Вместо этого вы можете добавить " type ":" shell " задача. Однако это все еще не идеально, потому что по какой-то причине добавление этой задачи означает, что проверка груза и сборка груза не отображаются при нажатии Ctrl-Shift- B вообще.

К сожалению, есть на данный момент не лучшее решение. В основном вам нужно добавить задачу в tasks.json , которая начинается так:

AR предложила добавить еще одну идентичную запись, но с подкомандой "run" , но это не работает. Вы получаете следующую ошибку:

Вместо этого вы можете добавить "type": "shell" задача. Однако это все еще не идеально, потому что по какой-то причине добавление этой задачи означает проверку груза и cargo build вообще не отображается, когда вы нажимаете Ctrl-Shift-B.

Читайте также: