From d5dc9f71534e95547d73feff366a4437f6d7ef31 Mon Sep 17 00:00:00 2001 From: Amir Masoud Abdol Date: Sat, 3 Oct 2020 11:47:18 +0200 Subject: [PATCH] Add sublime-merge plugin (#7228) --- plugins/sublime-merge/README.md | 17 ++++++ .../sublime-merge/sublime-merge.plugin.zsh | 55 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 plugins/sublime-merge/README.md create mode 100644 plugins/sublime-merge/sublime-merge.plugin.zsh diff --git a/plugins/sublime-merge/README.md b/plugins/sublime-merge/README.md new file mode 100644 index 000000000..534479179 --- /dev/null +++ b/plugins/sublime-merge/README.md @@ -0,0 +1,17 @@ +## sublime-merge + +Plugin for Sublime Merge, a cross platform text and code editor, available for Linux, Mac OS X, and Windows. + +### Requirements + + * [Sublime Merge](https://www.sublimemerge.com) + +### Usage + + * If `sm` command is called without an argument, launch Sublime Merge + + * If `sm` is passed a directory, `cd` to it and open the existing git repository in Sublime Merge + + * If `smt` command is called, it is equivalent to `sm .`, opening the existing git repository in the current folder in Sublime Merge + + * If `ssm` command is called, it is like `sudo sm`, opening the git repository in Sublime Merge. Useful for editing system protected repositories. \ No newline at end of file diff --git a/plugins/sublime-merge/sublime-merge.plugin.zsh b/plugins/sublime-merge/sublime-merge.plugin.zsh new file mode 100644 index 000000000..15452e61a --- /dev/null +++ b/plugins/sublime-merge/sublime-merge.plugin.zsh @@ -0,0 +1,55 @@ +# Sublime Merge Aliases + +() { + + if [[ "$OSTYPE" == linux* ]]; then + local _sublime_linux_paths + _sublime_linux_paths=( + "$HOME/bin/sublime_merge" + "/opt/sublime_merge/sublime_merge" + "/usr/bin/sublime_merge" + "/usr/local/bin/sublime_merge" + "/usr/bin/sublime_merge" + "/usr/local/bin/smerge" + "/usr/bin/smerge" + ) + for _sublime_merge_path in $_sublime_linux_paths; do + if [[ -a $_sublime_merge_path ]]; then + sm_run() { $_sublime_merge_path "$@" >/dev/null 2>&1 &| } + ssm_run_sudo() {sudo $_sublime_merge_path "$@" >/dev/null 2>&1} + alias ssm=ssm_run_sudo + alias sm=sm_run + break + fi + done + elif [[ "$OSTYPE" = darwin* ]]; then + local _sublime_darwin_paths + _sublime_darwin_paths=( + "/usr/local/bin/smerge" + "/Applications/Sublime Merge.app/Contents/SharedSupport/bin/smerge" + "$HOME/Applications/Sublime Merge.app/Contents/SharedSupport/bin/smerge" + ) + for _sublime_merge_path in $_sublime_darwin_paths; do + if [[ -a $_sublime_merge_path ]]; then + subm () { "$_sublime_merge_path" "$@" } + alias sm=subm + break + fi + done + elif [[ "$OSTYPE" = 'cygwin' ]]; then + local sublime_merge_cygwin_paths + sublime_merge_cygwin_paths=( + "$(cygpath $ProgramW6432/Sublime\ Merge)/sublime_merge.exe" + ) + for _sublime_merge_path in $_sublime_merge_cygwin_paths; do + if [[ -a $_sublime_merge_path ]]; then + subm () { "$_sublime_merge_path" "$@" } + alias sm=subm + break + fi + done + fi + +} + +alias smt='sm .'