Browse Source

vscode: add support for VSCodium (#9080)

Co-authored-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
Džiugas Eiva 3 years ago
parent
commit
71f0189ed5
2 changed files with 42 additions and 17 deletions
  1. 23 9
      plugins/vscode/README.md
  2. 19 8
      plugins/vscode/vscode.plugin.zsh

+ 23 - 9
plugins/vscode/README.md

@@ -1,6 +1,6 @@
 # VS Code
 
-This plugin makes interaction between the command line and the VS Code editor easier.
+This plugin provides useful aliases to simplify the interaction between the command line and VS Code or VSCodium editor.
 
 To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
 
@@ -10,23 +10,37 @@ plugins=(... vscode)
 
 ## Requirements
 
-To use VS Code in the terminal **in macOS**, first you need to install the `code` command in the PATH,
-otherwise you might receive this message: `zsh: command not found: code`.
+This plugin requires to have a flavour of VS Code installed and it's executable available in PATH.
 
-[As the docs say](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), open
+You can install either:
+
+* VS Code (code)
+* VS Code Insiders (code-insiders)
+* VSCodium (codium)
+
+### MacOS
+While Linux installations will add the executable to PATH, MacOS users might still have to do this manually:
+
+[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), open
 the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
-> Install 'code' command in PATH
+> Shell Command: Install 'code' command in PATH
 
-## VS Code Insiders
+[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal), open
+the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
+> Shell Command: Install 'codium' command in PATH
 
-🍏 **If you are only using [VS Code Insiders](https://code.visualstudio.com/insiders/), the plugin will automatically bind to your Insiders installation.**
+## Using multiple flavours
 
-But, if you have both Stable and Insiders versions and want to configure the plugin to just use the Insiders version, add the following line in the oh-my-zsh settings section (between the `ZSH_THEME` and the `plugins=()` line). This will make the plugin use the Insiders version instead.
+If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can 
+manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines).
+This will make the plugin use your manually defined executable.
 
 ```zsh
 ZSH_THEME=...
 
-# Add this line to use code-insiders instead of code
+# Choose between one [code, code-insiders or codium]
+# The following line will make the plugin to open VS Code Insiders
+# Invalid entries will be ignored, no aliases will be added
 VSCODE=code-insiders
 
 plugins=(... vscode)

+ 19 - 8
plugins/vscode/vscode.plugin.zsh

@@ -1,17 +1,28 @@
-# VScode zsh plugin
+# VS Code (stable / insiders) / VSCodium zsh plugin
 # Authors:
 #   https://github.com/MarsiBarsi (original author)
 #   https://github.com/babakks
+#   https://github.com/SteelShot
 
-# Use the stable VS Code release, unless the Insiders version is the only
-# available installation
-if ! which code > /dev/null && which code-insiders > /dev/null; then
-  : ${VSCODE:=code-insiders}
-else
-  : ${VSCODE:=code}
+# Verify if any manual user choice of VS Code exists first.
+if [[ -n "$VSCODE" ]] && ! which $VSCODE &>/dev/null; then
+  echo "'$VSCODE' flavour of VS Code not detected."
+  unset VSCODE
+fi
+
+# Otherwise, try to detect a flavour of VS Code.
+if [[ -z "$VSCODE" ]]; then
+  if which code &>/dev/null; then
+    VSCODE=code
+  elif which code-insiders &>/dev/null; then
+    VSCODE=code-insiders
+  elif which codium &>/dev/null; then
+    VSCODE=codium
+  else
+    return
+  fi
 fi
 
-# Define aliases
 alias vsc="$VSCODE ."
 alias vsca="$VSCODE --add"
 alias vscd="$VSCODE --diff"