linkIDE Setup

Steps taken to establish parity between my VS Code environment and the affordances I'm used to from Rubymine.


linkOpening VS Code settings

Fast way: Cmd+, that is: hold "Cmd" and press comma.

Slow way: Mouse over to the "Code" menu (leftmost among VS Code menus presented) and choose Settings -> Settings


linkEnable Ruby method lookup

First attempt followed settings that the internet seemed to think would work, but did not work for me:

Ensure that the main Ruby extension (from Peng Lv) is installed

Click the "Open Settings (JSON)" icon in the upper right

For me to get it to work, I had to continu trying more stuff:

Opened system "Privacy & Security" settings, and added VS Code to the list that of apps under the "Full disk access", as suggested by another popular SO post

Install Ruby LSP extension from Shopify (settings and install page)

Ruby LSP refuses to acknowledge rvm under all circumstances I could manufacture in 30 mins, so I instead changed rvm's system default Ruby to be the version from our project. That allowed the Ruby LSP server to start successfully, and thereafter, symbol lookup shows Ruby methods. 🎉


linkEnable Javascript method lookup

Once I struggled through the process of getting Ruby to look up methods, I was pleased to discover that symbol lookup was already functional to allow me to jump straight to a Javascript function.


linkHotkey setup

The slowest way to get to hotkey is by hovering "Code" menu then "Settings" and "Keyboard Shortcuts".

Map best file open dialog to Cmd-O. Open "Keyboard Shortcuts" and look up "Go to file" and double click the "Keybinding" column to enter Cmd-O. You may need to click the link to "X existing commands has this hotkey" if there is a conflict that prevents your new mapping from focusing the "Go to file" dialog. It should go here.

Map best symbol open dialog to Cmd-D. Open "Keyboard Shortcuts" and look up "Go to Symbol in Workspace." Set it to your preferred hotkey for looking up symbols (I believe Cmd-D is the Jetbrains default?)

Map word jumping. I like to have word move mapped to Ctrl-Arrow instead of Option/Alt-Arrow. This requires changing some of the hotkeys around.

Invoke git commit dialog. In Rubymine, Cmd-K opens a dialog that shows me which files have changed and lets me enter my commit message. To recreate this in Visual Studio, I searched for "Source Control" and mapped "View: Show Source Control" to Cmd-K, which opens a similar sidebar to what is available in Rubymine.

Move cursor to start/end of file. Known as the cursorBottom and cursorTop command. I map em to Ctrl-End and Ctrl-Home to match my PC keyboard muscle memory.

Go to definition. The "Go to definition" entry in Keyboard Shortcuts will navigate to the definition of the method/class/etc that the cursor is in. Mapping it to Ctrl-Space matches my Rubymine settings.

Go back. The "Go back" entry defines a means to return to where one's cursor originally was after using "Go to definition." Mapped to Ctrl-R matches my Rubymine settings.

Go to next/previous change. The "Go to next change" entry moves through changes when reviewing staged changes. I mapped this to F7.

Go to line. Default mapped to Ctrl-G, my muscle memory has it programmed as Cmd-G.


linkOther settings changes

Tab size. Search for "Tab size" to change the default tab size from 4 to 2 (seems to be applied globally across all files, unlike Jetbrains where there are many per-language settings for this)

Auto-close methods. In Rubymine, I appreciate the editor adding an "end" automatically when I declare a new class or method. Ruby LSP documentation claims "Completion for classes, modules, constants" as a feature, but hasn't worked for me yet.

Enable auto-save. For parity with Rubymine, files should be saved whenever the editor loses focus. If you look up "save" in the "Settings" input field, you should find "Auto save" as the top option.


linkExtensions

Gitlens. Shows blame for each line when hovered, and is recommended by many. Haven't evaluated it in any detail on day 1.

Ruby LSP from Shopify. Seems to be necessary to run a "Language Server" that can locate Ruby methods upon triggering "Go to symbol."


linkBill's settings, saved to profile

https://vscode.dev/editor/profile/github/1adede2e626691f32ec9393c10615df7


linkIDE Use

Different procedures to recreate functionality from Rubymine.


linkFind in Folder

Option 1: Right-click folder and choose "Find in folder"

Option 2: Left-click the folder and press Shift-Option-F