From 4e626197fbc995a6d8a265e0a2931542d1baa2a1 Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 22 Jun 2015 11:57:33 +0200 Subject: [PATCH 1/8] Sublime plugin : Add cygwin support --- plugins/sublime/sublime.plugin.zsh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 4b93c1580..ea0419ee4 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -41,6 +41,22 @@ elif [[ "$OSTYPE" = darwin* ]]; then break fi done + +elif [[ "$OSTYPE" == cygwin ]]; then + local _sublime_cygwin_paths > /dev/null 2>&1 + _sublime_cygwin_paths=( + "/cygdrive/c/Program Files/Sublime Text 2/sublime_text.exe" + "/cygdrive/c/Program Files (x86)/Sublime Text 2/sublime_text.exe" + ) + + IFS=$'\n' + for _sublime_path in $_sublime_cygwin_paths; do + if [[ -a $_sublime_path ]]; then + subl() { "$_sublime_path" $* } + alias st=subl + break + fi + done fi alias stt='st .' From 309a17286ef34fb863618d77e3a932cabba1befe Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 22 Jun 2015 14:30:33 +0200 Subject: [PATCH 2/8] sublime+cygwin : use cygpath to create a valid windows PATH for files --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index ea0419ee4..7c148c162 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -52,7 +52,7 @@ elif [[ "$OSTYPE" == cygwin ]]; then IFS=$'\n' for _sublime_path in $_sublime_cygwin_paths; do if [[ -a $_sublime_path ]]; then - subl() { "$_sublime_path" $* } + subl() { "$_sublime_path" $(cygpath -aw $*) } alias st=subl break fi From 6f100a21e2f39b3d3664c55041c0b9b9fb57005a Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Wed, 24 Jun 2015 11:11:31 +0200 Subject: [PATCH 3/8] Improve portability for cygwin using env variables instead of hard coded values --- plugins/sublime/sublime.plugin.zsh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 7c148c162..30f519578 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -43,10 +43,18 @@ elif [[ "$OSTYPE" = darwin* ]]; then done elif [[ "$OSTYPE" == cygwin ]]; then + local cygprogfiles="" + cygprogfiles=$(cygpath "$PROGRAMFILES") + local cygprogfiles_x86="" + cygprogfiles_x86=$(cmd /c "echo %ProgramFiles(x86)%") + cygprogfiles_x86=${cygprogfiles_x86/[\\r\\n]//} + cygprogfiles_x86=$(cygpath "$cygprogfiles_x86") local _sublime_cygwin_paths > /dev/null 2>&1 _sublime_cygwin_paths=( - "/cygdrive/c/Program Files/Sublime Text 2/sublime_text.exe" - "/cygdrive/c/Program Files (x86)/Sublime Text 2/sublime_text.exe" + "$cygprogfiles/Sublime Text 2/sublime_text.exe" + "$cygprogfiles/Sublime Text 3/sublime_text.exe" + "$cygprogfiles_x86/Sublime Text 2/sublime_text.exe" + "$cygprogfiles_x86/Sublime Text 3/sublime_text.exe" ) IFS=$'\n' From 76cd57530b535ad04bd196487eae62ec3e856d03 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Sun, 28 Jun 2015 22:56:58 -0400 Subject: [PATCH 4/8] sublime: wrap in anonymous function so `local` works. --- plugins/sublime/sublime.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 30f519578..73678b39b 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,5 +1,7 @@ # Sublime Text 2 Aliases +() { + if [[ $('uname') == 'Linux' ]]; then local _sublime_linux_paths > /dev/null 2>&1 _sublime_linux_paths=( @@ -67,4 +69,6 @@ elif [[ "$OSTYPE" == cygwin ]]; then done fi +} + alias stt='st .' From 2a7bb8adb3249f3da950b81940d6d5eee260fd10 Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 29 Jun 2015 09:39:27 +0200 Subject: [PATCH 5/8] Micro-op : Use a shell variable instead of an app call to guess os type --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 30f519578..b6230914b 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,6 +1,6 @@ # Sublime Text 2 Aliases -if [[ $('uname') == 'Linux' ]]; then +if [[ "$OSTYPE" == 'linux-gnu' ]]; then local _sublime_linux_paths > /dev/null 2>&1 _sublime_linux_paths=( "$HOME/bin/sublime_text" From 6489fffb8dd378fefe1f40842ebd9bef3bf22831 Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 29 Jun 2015 09:48:44 +0200 Subject: [PATCH 6/8] Save/Resore IFS value --- plugins/sublime/sublime.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index b6230914b..93ed98892 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -56,7 +56,7 @@ elif [[ "$OSTYPE" == cygwin ]]; then "$cygprogfiles_x86/Sublime Text 2/sublime_text.exe" "$cygprogfiles_x86/Sublime Text 3/sublime_text.exe" ) - + local OLDIFS="$IFS" IFS=$'\n' for _sublime_path in $_sublime_cygwin_paths; do if [[ -a $_sublime_path ]]; then @@ -65,6 +65,8 @@ elif [[ "$OSTYPE" == cygwin ]]; then break fi done + IFS=$OLDIFS + unset OLDIFS fi alias stt='st .' From fdff73069934059765ef1d22e5b81c31c2bb739b Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 29 Jun 2015 09:53:47 +0200 Subject: [PATCH 7/8] Defaults to '.' if no values are provided --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 93ed98892..93634412f 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -60,7 +60,7 @@ elif [[ "$OSTYPE" == cygwin ]]; then IFS=$'\n' for _sublime_path in $_sublime_cygwin_paths; do if [[ -a $_sublime_path ]]; then - subl() { "$_sublime_path" $(cygpath -aw $*) } + subl() { "$_sublime_path" $(cygpath -aw ${*:-.}) } alias st=subl break fi From 4ef638aa9a24db74efc5256f1cbb29c7ecf573bd Mon Sep 17 00:00:00 2001 From: Damien Guihal Date: Mon, 29 Jun 2015 11:24:06 +0200 Subject: [PATCH 8/8] sublime: Remove unnecessary stdout/sterr redirections --- plugins/sublime/sublime.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 9f9c259ad..c9b85044f 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -2,7 +2,7 @@ () { if [[ "$OSTYPE" == 'linux-gnu' ]]; then - local _sublime_linux_paths > /dev/null 2>&1 + local _sublime_linux_paths _sublime_linux_paths=( "$HOME/bin/sublime_text" "/opt/sublime_text/sublime_text" @@ -24,7 +24,7 @@ if [[ "$OSTYPE" == 'linux-gnu' ]]; then done elif [[ "$OSTYPE" = darwin* ]]; then - local _sublime_darwin_paths > /dev/null 2>&1 + local _sublime_darwin_paths _sublime_darwin_paths=( "/usr/local/bin/subl" "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" @@ -50,7 +50,7 @@ elif [[ "$OSTYPE" == cygwin ]]; then cygprogfiles_x86=$(cmd /c "echo %ProgramFiles(x86)%") cygprogfiles_x86=${cygprogfiles_x86/[\\r\\n]//} cygprogfiles_x86=$(cygpath "$cygprogfiles_x86") - local _sublime_cygwin_paths > /dev/null 2>&1 + local _sublime_cygwin_paths _sublime_cygwin_paths=( "$cygprogfiles/Sublime Text 2/sublime_text.exe" "$cygprogfiles/Sublime Text 3/sublime_text.exe" @@ -66,7 +66,7 @@ elif [[ "$OSTYPE" == cygwin ]]; then break fi done - IFS=$OLDIFS + IFS="$OLDIFS" unset OLDIFS fi