Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #14175 - jmviz:openDocs-context-menu, r=lnicola
add openDocs command to context menu in VS Code extension This adds the `openDocs` command to the VS Code context menu. I believe there are probably many user who are unaware of this command existing in the rust analyzer extension, and that this should enhance the discoverability of the command. Additionally, even if people are aware of this capability, it's helpful to have this in the context menu anyway; for example, one might forget the name of the command, or the keybinding they have assigned to it. I think that opening docs is a common enough action to warrant the extra line added to the context menu. This makes a few other small changes as well. There are two minor style changes to increase style consistency. First, it changes the titles of the two commands that the rust analyzer extension will contribute to the context menu to title case. All standard VS Code commands that appear in the context menu are in title case. Second, it shortens the title of the `openDocs` command from `Open docs under cursor` to `Open Docs`. The implicit assumption in the standard VS Code context menu command titles is that the action applies to the symbol under the cursor: `Go to Definition`, `Find All References`, etc. Note that since these are changes to the command titles, rather than the command names themselves, these changes will not break any users' existing keybindings for these commands. Second, this adds further restrictions to the `where` clauses of the two commands that the rust analyzer extension will contribute to the context menu, so that the two commands will appear in the context menu only when in a Rust project **and** within a Rust file. Say you have a Python or bash script inside your Rust project. Having these commands appear in the context menu when you right click a symbol in such a non-Rust file is extraneous and potentially confusing. ![demonstration](https://user-images.githubusercontent.com/6609145/219976062-b46ab21b-5753-48f5-a1da-562566cae71c.gif)
bors 2023-02-24
parent 27239fb · parent dd92e4a · commit f5401f6
-rw-r--r--crates/ide/src/doc_links.rs13
-rw-r--r--crates/ide/src/runnables.rs7
-rw-r--r--editors/code/package.json11
3 files changed, 23 insertions, 8 deletions
diff --git a/crates/ide/src/doc_links.rs b/crates/ide/src/doc_links.rs
index b4a7f2b918..339bb28180 100644
--- a/crates/ide/src/doc_links.rs
+++ b/crates/ide/src/doc_links.rs
@@ -107,7 +107,18 @@ pub(crate) fn remove_links(markdown: &str) -> String {
out
}
-/// Retrieve a link to documentation for the given symbol.
+// Feature: Open Docs
+//
+// Retrieve a link to documentation for the given symbol.
+//
+// The simplest way to use this feature is via the context menu. Right-click on
+// the selected item. The context menu opens. Select **Open Docs**.
+//
+// |===
+// | Editor | Action Name
+//
+// | VS Code | **rust-analyzer: Open Docs**
+// |===
pub(crate) fn external_docs(
db: &RootDatabase,
position: &FilePosition,
diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs
index 5b35262aab..af53adee89 100644
--- a/crates/ide/src/runnables.rs
+++ b/crates/ide/src/runnables.rs
@@ -195,14 +195,13 @@ pub(crate) fn runnables(db: &RootDatabase, file_id: FileId) -> Vec<Runnable> {
//
// Provides a sneak peek of all tests where the current item is used.
//
-// The simplest way to use this feature is via the context menu:
-// - Right-click on the selected item. The context menu opens.
-// - Select **Peek related tests**
+// The simplest way to use this feature is via the context menu. Right-click on
+// the selected item. The context menu opens. Select **Peek Related Tests**.
//
// |===
// | Editor | Action Name
//
-// | VS Code | **rust-analyzer: Peek related tests**
+// | VS Code | **rust-analyzer: Peek Related Tests**
// |===
pub(crate) fn related_tests(
db: &RootDatabase,
diff --git a/editors/code/package.json b/editors/code/package.json
index 42a23eb16f..631f31c17e 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -226,7 +226,7 @@
},
{
"command": "rust-analyzer.openDocs",
- "title": "Open docs under cursor",
+ "title": "Open Docs",
"category": "rust-analyzer"
},
{
@@ -236,7 +236,7 @@
},
{
"command": "rust-analyzer.peekTests",
- "title": "Peek related tests",
+ "title": "Peek Related Tests",
"category": "rust-analyzer"
},
{
@@ -1869,8 +1869,13 @@
"editor/context": [
{
"command": "rust-analyzer.peekTests",
- "when": "inRustProject",
+ "when": "inRustProject && editorTextFocus && editorLangId == rust",
"group": "navigation@1000"
+ },
+ {
+ "command": "rust-analyzer.openDocs",
+ "when": "inRustProject && editorTextFocus && editorLangId == rust",
+ "group": "navigation@1001"
}
]
},