{"id":13503329,"url":"https://github.com/rust-lang/vscode-rust","last_synced_at":"2025-10-03T03:30:26.247Z","repository":{"id":39921188,"uuid":"67259856","full_name":"rust-lang/vscode-rust","owner":"rust-lang","description":"Rust extension for Visual Studio Code","archived":true,"fork":false,"pushed_at":"2022-11-15T17:22:45.000Z","size":2314,"stargazers_count":1388,"open_issues_count":302,"forks_count":167,"subscribers_count":32,"default_branch":"master","last_synced_at":"2024-08-04T09:09:32.216Z","etag":null,"topics":["rust","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=rust-lang.rust","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-lang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-02T22:57:33.000Z","updated_at":"2024-07-31T15:03:56.000Z","dependencies_parsed_at":"2022-07-14T04:00:33.253Z","dependency_job_id":null,"html_url":"https://github.com/rust-lang/vscode-rust","commit_stats":null,"previous_names":["rust-lang-nursery/rls-vscode","rust-lang/rls-vscode"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fvscode-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fvscode-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fvscode-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fvscode-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/vscode-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235069302,"owners_count":18930936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","vscode-extension"],"created_at":"2024-07-31T22:02:46.789Z","updated_at":"2025-10-03T03:30:20.926Z","avatar_url":"https://github.com/rust-lang.png","language":"TypeScript","readme":"# Rust support for Visual Studio Code (deprecated)\n\n[![](https://vsmarketplacebadge.apphb.com/version/rust-lang.rust.svg)](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust)\n[![VSCode + Node.js CI](https://img.shields.io/github/workflow/status/rust-lang/rls-vscode/VSCode%20+%20Node.js%20CI.svg?logo=github)](https://github.com/rust-lang/rls-vscode/actions?query=workflow%3A%22VSCode+%2B+Node.js+CI%22)\n\n----\n\n\u003e **Warning**\n\u003e # This extension is no longer maintained.\n\u003e This has been replaced by the [**rust-analyzer extension**](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).\n\n-----\n\nAdds language support for Rust to Visual Studio Code. Supports:\n\n* code completion\n* jump to definition, peek definition, find all references, symbol search\n* types and documentation on hover\n* code formatting\n* refactoring (rename, deglob)\n* error squiggles and apply suggestions from errors\n* snippets\n* build tasks\n\nRust support is powered by a separate [language server](https://microsoft.github.io/language-server-protocol/overviews/lsp/overview/) -\neither by the official [Rust Language Server](https://github.com/rust-lang/rls) (RLS) or\n[rust-analyzer](https://github.com/rust-analyzer/rust-analyzer), depending on the user's\npreference. If you don't have it installed, the extension will install it for\nyou (with permission).\n\nThis extension is built and maintained by the Rust\n[IDEs and editors team](https://www.rust-lang.org/en-US/team.html#Dev-tools-team).\nOur focus is on providing\na stable, high quality extension that makes the best use of the respective language\nserver. We aim to support as many features as possible, but our priority is\nsupporting the essential features as well as possible.\n\nFor support, please file an\n[issue on the repo](https://github.com/rust-lang/rls-vscode/issues/new)\nor talk to us [on Discord](https://discordapp.com/invite/rust-lang).\nFor RLS, there is also some [troubleshooting and debugging](https://github.com/rust-lang/rls/blob/master/debugging.md) advice.\n\n## Contribution\n\nContributing code, tests, documentation, and bug reports is appreciated! For\nmore details see [contributing.md](contributing.md).\n\n\n## Quick start\n\n1. Install [rustup](https://www.rustup.rs/) (Rust toolchain manager).\n2. Install this extension from [the VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust)\n  (or by entering `ext install rust-lang.rust` at the command palette \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eP\u003c/kbd\u003e).\n3. (Skip this step if you already have Rust projects that you'd like to work on.)\n  Create a new Rust project by following [these instructions](https://doc.rust-lang.org/book/ch01-03-hello-cargo.html).\n4. Open a Rust project (`File \u003e Add Folder to Workspace...`). Open the folder for the whole\n  project (i.e., the folder containing `Cargo.toml`, not the `src` folder).\n5. You'll be prompted to install the Rust server. Once installed, it should start\n  analyzing your project (RLS will also have to to build the project).\n\n\n## Configuration\n\nThis extension provides options in VSCode's configuration settings. These\ninclude `rust.*`, which are passed directly to RLS, and the `rust-client.*`\n, which mostly deal with how to spawn it or debug it.\nYou can find the settings under `File \u003e Preferences \u003e Settings`; they all\nhave IntelliSense help.\n\nExamples:\n\n* `rust.show_warnings` - set to false to silence warnings in the editor.\n* `rust.all_targets` - build and index code for all targets (i.e., integration tests, examples, and benches)\n* `rust.cfg_test` - build and index test code (i.e., code with `#[cfg(test)]`/`#[test]`)\n* `rust-client.channel` - specifies from which toolchain the RLS should be spawned\n\n\u003e **_TIP:_** To select the underlying language server, set `rust-client.engine` accordingly!\n\n## Features\n\n### Snippets\n\nSnippets are code templates which expand into common boilerplate. IntelliSense\nincludes snippet names as options when you type; select one by pressing\n\u003ckbd\u003eenter\u003c/kbd\u003e. You can move to the next snippet 'hole' in the template by\npressing \u003ckbd\u003etab\u003c/kbd\u003e. We provide the following snippets:\n\n* `for` - a for loop\n* `macro_rules` - declare a macro\n* `if let` - an `if let` statement for executing code only when a pattern matches\n* `spawn` - spawn a thread\n* `extern crate` - insert an `extern crate` statement\n\nThis extension is deliberately conservative about snippets and doesn't include\ntoo many. If you want more, check out\n[Trusty Rusty Snippets](https://marketplace.visualstudio.com/items?itemName=polypus74.trusty-rusty-snippets).\n\n### Tasks\n\nThe plugin provides tasks for building, running, and testing using the relevant\ncargo commands. You can build using \u003ckbd\u003ectrl\u003c/kbd\u003e+\u003ckbd\u003eshift\u003c/kbd\u003e+\u003ckbd\u003eb\u003c/kbd\u003e(Win/Linux), \u003ckbd\u003ecmd\u003c/kbd\u003e+\u003ckbd\u003eshift\u003c/kbd\u003e+\u003ckbd\u003eb\u003c/kbd\u003e(macOS).\nAccess other tasks via `Run Task` in the command palette.\n\nThe plugin writes these into `tasks.json`. The plugin will not overwrite\nexisting tasks, so you can customise these tasks. To refresh back to the\ndefaults, delete `tasks.json` and restart VSCode.\n\n\n## Format on save\n\nTo enable formatting on save, you need to set the `editor.formatOnSave` setting\nto `true`. Find it under `File \u003e Preferences \u003e Settings`.\n\n\n## Requirements\n\n* [Rustup](https://www.rustup.rs/),\n* A Rust toolchain (the extension will configure this for you, with permission),\n* `rls`, `rust-src`, and `rust-analysis` components (the extension will install\n  these for you, with permission). Only `rust-src` is required when using\n  rust-analyzer.\n\n\n## Implementation\n\nBoth language servers can use Cargo to get more information about Rust projects\nand both use [`rustfmt`](https://github.com/rust-lang/rustfmt/) extensively to\nformat the code.\n\n[RLS](https://github.com/rust-lang/rls) uses Cargo and also the Rust compiler\n([`rustc`](https://github.com/rust-lang/rust/)) in a more direct fashion, where\nit builds the project and reuses the data computed by the compiler itself. To\nprovide code completion it uses a separate tool called\n[`racer`](https://github.com/racer-rust/racer).\n\n[Rust Analyzer](https://github.com/rust-analyzer/rust-analyzer) is a separate\ncompiler frontend for the Rust language that doesn't use the Rust compiler\n([`rustc`](https://github.com/rust-lang/rust/)) directly but rather performs its\nown analysis that's tailor-fitted to the editor/IDE use case.\n","funding_links":[],"categories":["TypeScript","Rust Tools","Rust Tools and Frameworks","Rust Tools, Libraries, and Frameworks","Tools"],"sub_categories":["In-memory data grids","Interfaces","E-Books","VS Code Extensions for Developer Productivity","Mesh networks","JavaScript Libraries for Machine Learning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fvscode-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Fvscode-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fvscode-rust/lists"}