Doc more features

This commit is contained in:
Aleksey Kladov 2020-05-31 10:14:36 +02:00
parent 8915183d7d
commit b795a07320
5 changed files with 47 additions and 54 deletions

View file

@ -1,5 +1,3 @@
//! This modules implements "expand macro" functionality in the IDE
use hir::Semantics; use hir::Semantics;
use ra_ide_db::RootDatabase; use ra_ide_db::RootDatabase;
use ra_syntax::{ use ra_syntax::{
@ -14,6 +12,15 @@ pub struct ExpandedMacro {
pub expansion: String, pub expansion: String,
} }
// Feature: Expand Macro Recursively
//
// Shows the full macro expansion of the macro at current cursor.
//
// |===
// | Editor | Action Name
//
// | VS Code | **Rust Analyzer: Expand macro recursively**
// |===
pub(crate) fn expand_macro(db: &RootDatabase, position: FilePosition) -> Option<ExpandedMacro> { pub(crate) fn expand_macro(db: &RootDatabase, position: FilePosition) -> Option<ExpandedMacro> {
let sema = Semantics::new(db); let sema = Semantics::new(db);
let file = sema.parse(position.file_id); let file = sema.parse(position.file_id);

View file

@ -1,5 +1,3 @@
//! structural search replace
use std::{collections::HashMap, iter::once, str::FromStr}; use std::{collections::HashMap, iter::once, str::FromStr};
use ra_db::{SourceDatabase, SourceDatabaseExt}; use ra_db::{SourceDatabase, SourceDatabaseExt};
@ -25,6 +23,28 @@ impl std::fmt::Display for SsrError {
impl std::error::Error for SsrError {} impl std::error::Error for SsrError {}
// Feature: Structural Seach and Replace
//
// Search and replace with named wildcards that will match any expression.
// The syntax for a structural search replace command is `<search_pattern> ==>> <replace_pattern>`.
// A `$<name>:expr` placeholder in the search pattern will match any expression and `$<name>` will reference it in the replacement.
// Available via the command `rust-analyzer.ssr`.
//
// ```rust
// // Using structural search replace command [foo($a:expr, $b:expr) ==>> ($a).foo($b)]
//
// // BEFORE
// String::from(foo(y + 5, z))
//
// // AFTER
// String::from((y + 5).foo(z))
// ```
//
// |===
// | Editor | Action Name
//
// | VS Code | **Rust Analyzer: Structural Search Replace**
// |===
pub fn parse_search_replace( pub fn parse_search_replace(
query: &str, query: &str,
parse_only: bool, parse_only: bool,

View file

@ -1,5 +1,3 @@
//! FIXME: write short doc here
use std::{fmt, iter::FromIterator, sync::Arc}; use std::{fmt, iter::FromIterator, sync::Arc};
use hir::MacroFile; use hir::MacroFile;
@ -26,6 +24,15 @@ fn macro_syntax_tree_stats(db: &RootDatabase) -> SyntaxTreeStats {
db.query(hir::db::ParseMacroQuery).entries::<SyntaxTreeStats>() db.query(hir::db::ParseMacroQuery).entries::<SyntaxTreeStats>()
} }
// Feature: Status
//
// Shows internal statistic about memory usage of rust-analyzer.
//
// |===
// | Editor | Action Name
//
// | VS Code | **Rust Analyzer: Status**
// |===
pub(crate) fn status(db: &RootDatabase) -> String { pub(crate) fn status(db: &RootDatabase) -> String {
let files_stats = db.query(FileTextQuery).entries::<FilesStats>(); let files_stats = db.query(FileTextQuery).entries::<FilesStats>();
let syntax_tree_stats = syntax_tree_stats(db); let syntax_tree_stats = syntax_tree_stats(db);

View file

@ -5,60 +5,12 @@ you can use <kbd>Ctrl+Shift+P</kbd> to search for the corresponding action.
### Commands <kbd>ctrl+shift+p</kbd> ### Commands <kbd>ctrl+shift+p</kbd>
#### Expand Macro Recursively
Shows the full macro expansion of the macro at current cursor.
#### Status
Shows internal statistic about memory usage of rust-analyzer.
#### Show RA Version
Show current rust-analyzer version.
#### Toggle inlay hints #### Toggle inlay hints
Toggle inlay hints view for the current workspace. Toggle inlay hints view for the current workspace.
It is recommended to assign a shortcut for this command to quickly turn off It is recommended to assign a shortcut for this command to quickly turn off
inlay hints when they prevent you from reading/writing the code. inlay hints when they prevent you from reading/writing the code.
#### Run Garbage Collection
Manually triggers GC.
#### Start Cargo Watch
Start `cargo watch` for live error highlighting. Will prompt to install if it's not already installed.
#### Stop Cargo Watch
Stop `cargo watch`.
#### Structural Seach and Replace
Search and replace with named wildcards that will match any expression.
The syntax for a structural search replace command is `<search_pattern> ==>> <replace_pattern>`. A `$<name>:expr` placeholder in the search pattern will match any expression and `$<name>` will reference it in the replacement. Available via the command `rust-analyzer.ssr`.
```rust
// Using structural search replace command [foo($a:expr, $b:expr) ==>> ($a).foo($b)]
// BEFORE
String::from(foo(y + 5, z))
// AFTER
String::from((y + 5).foo(z))
```
### Assists (Code Actions)
Assists, or code actions, are small local refactorings, available in a particular context.
They are usually triggered by a shortcut or by clicking a light bulb icon in the editor.
See [assists.md](./assists.md) for the list of available assists.
### Magic Completions ### Magic Completions
In addition to usual reference completion, rust-analyzer provides some ✨magic✨ In addition to usual reference completion, rust-analyzer provides some ✨magic✨

View file

@ -272,3 +272,10 @@ Gnome Builder currently has support for RLS, and there's no way to configure the
== Features == Features
include::./generated_features.adoc[] include::./generated_features.adoc[]
== Assists (Code Actions)
Assists, or code actions, are small local refactorings, available in a particular context.
They are usually triggered by a shortcut or by clicking a light bulb icon in the editor.
See [assists.md](./assists.md) for the list of available assists.