Better workflow , testing and debugging capability on your Next Rust Projects
WARNING: This will make your Rust Journey EASY!
2. Install Plugins
- IdeaVim
- IdeaVim-Sneak
- Whichkey
- .env file support
- Key Promoter X
- Github Copilot
- Ace Jump
- Linear
Move the Downloaded file to your Home Directory
~/.ideavimrc
Toggle Tool Windows
Keyboard Shortcut | Description |
---|---|
CMD+J | Hide Active Tool Window(Focus Editor) |
F12 | Hide All Tools Windows |
Top Left Sidebar Tool Windows
Tool Window Keys (CMD+Fn Keys) Leftsidebar | Description |
---|---|
CMD+F1 | Project |
CMD+F2 | Commit |
CMD+F3 | Bookmarks |
CMD+F4 | Pull Requests |
Top Right Sidebar Tool Windows
Tool Window Keys (CMD+Fn Keys) RightSidebar | Description |
---|---|
CMD+F12 | Notifications |
CMD+F11 | Cargo |
CMD+F10 | Key Promoter X (Plugin Required) |
Bottom Left Sidebar Tool Windows
Tool Window Keys (OPT+Keys) Leftsidebar Bottom | Description |
---|---|
OPT+G | Git |
OPT+B | Build |
OPT+S | Services |
OPT+P | Problems |
OPT+D | Debug |
OPT+F | Find |
OPT+R | Run |
Fn Keys
Mainly used for refactoring and documentationKeyboard Shortcuts | Description |
---|---|
F1 | Quick Documentation |
F2 | Rename |
F3 | Refactor this |
F4 | Change Signature |
F5 | Load Changes |
Rust Runnables
Keyboard Shorcuts | Description |
---|---|
CMD+R | Run Context Configuration |
CMD+SHIFT+R | Run |
CMD+T | External Tools |
Note: External Tools Command Available depends on what you configure on my machine i have the ff:
- Format RSX
- HTML to RSX
- Dx Serve SSR
- Dx Serve Desktop
Et. al.
Debugging
Keyboard Shorcuts | Description |
---|---|
CMD+B | Toggle Breakpoint |
CMD+SHIFT+S | Stop |
OPT+L | Step Into |
OPT+J | Step Over |
OPT+K | Pause / Resume Program |
OPT+H | Step Out |
Errors / Warning
Keyboard Shortcut | Description |
---|---|
OPT+P | Problems |
OPT+SHIFT+I | Inspect Code with Editor Settings |
]+E (VIM) | Next Error |
[+E (VIM) | Previous Error |
TAB+E | Error Description |
Quickly Jump from One Place to Another
Keyboard Shortcut | Description |
---|---|
S (Vim) | Activate / Cycle AceJump Mode |
leader+leader+w | Search Word Forward |
leader+leader+b | Search Word Backward |
leader+leader+f | Search Char Forward |
leader+leader+F | Search Char Backward |
Multi-Cursor
Keyboard Shortcut | Description |
---|---|
CMD+G | Find Next / Move to Next Occurrence |
CMD+SHIFT+G | Find Previous / Move to Previous Occurrence |
CMD+D | Add Selection for Next Occurrence |
CMD+SHIFT+D | Unselect Occurrence |
CMD+SHIFT+L | Select All Occurrence |
Code Completions
Keyboard Shortcut | Description |
---|---|
OPT+/ | Cyclic Expand Word |
OPT+SHIFT+/ | Cyclic Expand Backward |
OPT+Space | Basic |
OPT+ENTER | Type Matching |
Type Hinting, Quick Fixes, Formatting
Keyboard Shortcut | Description |
---|---|
gp | Parameter Info |
gt | Expression Type Info |
CMD+. | Show Context and Show Quick Fixes |
CMD+SHIFTT+I | Reformat Code |
OPT+SPACE | Insert Live Template |
OPT+W | Surround with |
CMD+K | Code Generate |
CMD+L | Complete Current Statement |
Macro Expansion
Keyboard Shortcut | Description |
---|---|
CMD+M | Show Recursive Macro Expansion |
CMD+SHIFT+M | Re-Expand All Rust Macro |
GoTo
Keyboard Shortcut | Description |
---|---|
gd (Vim) | Go to Declaration or Usages |
gD (Vim) | Go to TypeDeclaration |
gu (Vim) | Find Usages |
gi (Vim) | Go to Implementations |
CMD+U | Go to Super Method |
SHIFT+K (Vim) | Quick Definition |
F1 | Quick Documentation |
Finders
Keyboard Shortcut | Description |
---|---|
CMD+F | Find |
CMD+E | Recent Files |
CMD+SHIFT+F | Find in Files |
CMD+H | Replace |
CMD+SHIFT+H | Replace in Files |
SHIFT+SHIFT | Search Everywhere |
CMD+P | Go To File |
CMD+SHIFT+P | Run any Command |
CMD+O | Go to Symbol |
CMD+SHIFT+O | Go To Types |
SHIFT+SPACE | Go to Action |
CMD+SHIFT+T | Go to Test |
CMD+Y | File Structure |
Bookmarks
Keyboard Shortcut | Description |
---|---|
leader+[0-9] | Go to Bookmark by number |
leader+[a-z] | Go to Bookmark by letters |
'+[a-z] | Toggle Bookmark by letters |
'+[0-9] | Toggle Bookmark by number |
Code Selections
Keyboard Shortcut | Description |
---|---|
OPT+DOWN | Shrink Selection |
OPT+UP | Expand Selection |
Move Statements
Keyboard Shortcut | Description |
---|---|
OPT+SHIFT+J | Move Statement Down |
OPT+SHIFT+K | Move Statement Up |
Move Lines
Keyboard Shortcut | Description |
---|---|
CMD+SHIFT+J | Move Line Down |
CMD+SHIFT+K | Move Line Up |
Split Panes
Keyboard Shortcut | Description |
---|---|
s+p | Horizontal Split |
v+s++p | Vertical Split |
Moving Across Panes
Keyboard Shortcut | Description |
---|---|
CTRL+H | Move to Left Pane |
CTRL+J | Move Down Pane |
CTRL+K | Move to Right Pane |
CTRL+L | Move Up Pane |
Tab Switching
Keyboard Shortcut | Description |
---|---|
CMD+[1-9] | Select Tab [1-9] |
CMD+[ | Select Previous Tab |
CMD+] | Select Next Tab |
TAB+[ | Navigate Tab Back |
TAB+] | Navigate Tab Forward |
Comments
Keyboard Shortcut | Description |
---|---|
CMD+/ | Comment with Line Comment |
CMD+SHIFT+/ | Comment with Block Comment |
Code Folding
Keyboard Shortcut | Description |
---|---|
CMD+(-) | Folding Collapse |
CMD+(+) | Folding Expand |
CMD+SHIFT+(-) | Collapse All |
CMD+SHIFT+(+) | Expand All |
File Manipulation
Shortcut Keys | Description |
---|---|
CMD+N | New |
CMD+SHIFT+N | New Directory |
Note: New has Different ways to create Files including Directory
File Editing
Shortcut Keys | Description |
---|---|
CMD+S | Save all |
CMD+X | Cut |
CMD+V | Paste |
CMD+Z | Undo |
CMD+SHIFT+Z | Redo |
Notifications
Keyboard Shortcut | Description |
---|---|
CMD+F12 | Tool Windows -> Notification |
CMD+SHIFT+F12 | Clear all Notifications |
OPT+SHIFT+M | Maximize Tool Window |
Context Menus
Keyboard Shortcut | Description |
---|---|
OPT+SHIFT+C | Show Color Picker |
SHIFT+F1 | Show Context Menu |
VCS
Keyboard Shortcut | Description |
---|---|
OPT+A | Amend |
OPT+C | Commit File |
OPT+SHIFT+A | Add to .gitignore |
CMD+SHIFT+A | Add to VCS |
CMD+SHIFT+U | Rollback |
CMD+SHIFT+M | Move to other Changelist |
Git History
Keyboard Shortcut | Description |
---|---|
OPT+SHIFT+R | Compare with Revisions |
CMD+SHIFT+Y | Show History / Diff |
CMD+J | Next Difference |
CMD+K | Previous Difference |
- Enable Idea Vim on Actions List
:actionlist
- Open Action List
SHIFT+SPACE
- Set
ON
IdeaVim: Track Action IDs
All the Keys and Commands You Invoke Now will be shown as a Notification
-
Open
~/.ideavimrc
-
Add Custom Vim Key Bindings
nmap <leader>v :action Tool_External Tools_gvim<cr>
This is useful e.g. , We wanna add CMD+SHIFT+X to format RSX in rust with Dioxus CLI
See How To do It
Open settings with CMD + ,
Go to Tools -> External Tools
Then Click (+) Sign to Create new External Tool
To Get the Path of Command Use which e.g.
which dx , outputs: /Users/uriah/.cargo/bin/dx
also we need to check what arguments we can use
we can run dx --help
dx --help
Build, Bundle & Ship Dioxus Apps
Usage: dx [OPTIONS] <COMMAND>
Commands:
build Build the Rust WASM app and all of its assets
translate Translate some source file into Dioxus code
serve Build, watch & serve the Rust WASM app and all of its assets
create Init a new project for Dioxus
clean Clean output artifacts
bundle Bundle the Rust desktop app and all of its assets
version Print the version of this extension
fmt Format some rsx
check Check the Rust files in the project for issues
config Dioxus config file controls
help Print this message or the help of the given subcommand(s)
Options:
-v Enable verbose logging
--bin <BIN> Specify bin target
-h, --help Print help
-V, --version Print version
Get dx fmt
argurments
dx fmt --help
Format some rsx
Usage: dx fmt [OPTIONS]
Options:
-c, --check Run in 'check' mode. Exits with 0 if input is formatted correctly. Exits with 1 and prints a diff if formatting is required
-r, --raw <RAW> Input rsx (selection)
-f, --file <FILE> Input file
--bin <BIN> Specify bin target
-h, --help Print help
in order to format a file we need to use -f parameter
to get the filepath we can get it with Insert Macro
Just Click the Plus sign as shown on the image below.
We got $FilePath$
Click Insert then Go Bind the KeyMap
Step by Step Guide
- Go to Settings -> Tools -> Tasks -> Server
- Add Server
- Pick Linear
- Set:
- Team ID e.g (COD)
- API Key (Workspace API)
- Workspace ID (codeitlikemiley)
- Click Test
Linear Keys | Description |
---|---|
CMD+\ | Open Tasks |
CMD+SHIFT+\ | Switch Tasks |