From 97d1ec759eb9fa2ace83c62685b6b36faec05981 Mon Sep 17 00:00:00 2001 From: Benjamin Pollack Date: Fri, 12 Feb 2016 10:06:50 -0500 Subject: [PATCH] Add Mac support for Visual Studio Code --- .../visual-studio-code/visual-studio-code.factor | 15 +++++++++------ .../visual-studio-code/windows/windows.factor | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/basis/editors/visual-studio-code/visual-studio-code.factor b/basis/editors/visual-studio-code/visual-studio-code.factor index 22f460ea74..861be6d60c 100644 --- a/basis/editors/visual-studio-code/visual-studio-code.factor +++ b/basis/editors/visual-studio-code/visual-studio-code.factor @@ -6,17 +6,20 @@ IN: editors.visual-studio-code SINGLETON: visual-studio-code visual-studio-code editor-class set-global -HOOK: find-visual-studio-code-path os ( -- path ) +HOOK: find-visual-studio-code-invocation os ( -- array ) -MEMO: visual-studio-code-path ( -- path ) - \ visual-studio-code-path get [ - find-visual-studio-code-path - [ "code" ] unless* +MEMO: visual-studio-code-invocation ( -- array ) + \ visual-studio-code-invocation get [ + find-visual-studio-code-invocation + [ { "code" } ] unless* ] unless* ; +M: macosx find-visual-studio-code-invocation + { "open" "-n" "-b" "com.microsoft.VSCode" "--args" } ; + M: visual-studio-code editor-command ( file line -- command ) [ - visual-studio-code-path , drop , + visual-studio-code-invocation % drop , ] { } make ; os windows? [ "editors.visual-studio-code.windows" require ] when diff --git a/basis/editors/visual-studio-code/windows/windows.factor b/basis/editors/visual-studio-code/windows/windows.factor index 703e47aae4..547f43401f 100644 --- a/basis/editors/visual-studio-code/windows/windows.factor +++ b/basis/editors/visual-studio-code/windows/windows.factor @@ -5,6 +5,7 @@ io.directories.search io.files.temp.windows io.pathnames kernel system ; IN: editors.visual-studio-code.windows -M: windows find-visual-studio-code-path +M: windows find-visual-studio-code-invocation get-appdata-directory f - [ file-name >lower "code.exe" = ] find-in-directories ; + [ file-name >lower "code.exe" = ] find-in-directories + [ 1array ] [ f ] if* ;