Browse Source

Add sublime-merge plugin (#7228)

Amir Masoud Abdol 3 years ago
parent
commit
d5dc9f7153
2 changed files with 72 additions and 0 deletions
  1. 17 0
      plugins/sublime-merge/README.md
  2. 55 0
      plugins/sublime-merge/sublime-merge.plugin.zsh

+ 17 - 0
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.

+ 55 - 0
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 .'