]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/editors/visual-studio-code/visual-studio-code.factor
vscode: Prefer code-insiders version if installed.
[factor.git] / basis / editors / visual-studio-code / visual-studio-code.factor
index 910e07d883cb89385b5393824a26935a20d129df..b8e5f2236d9dc064ed9188bd5b75d00a04313774 100644 (file)
@@ -1,19 +1,19 @@
 ! Copyright (C) 2015 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: combinators.extras combinators.short-circuit editors
+USING: combinators.short-circuit editors
 generalizations io.files io.pathnames io.standard-paths kernel
 make math.parser memoize namespaces sequences system tools.which ;
 IN: editors.visual-studio-code
 
 ! Command line arguments
-! https://code.visualstudio.com/docs/editor/codebasics#_additional-command-line-arguments
+! https://code.visualstudio.com/docs/editor/command-line
 
 SINGLETON: visual-studio-code
 visual-studio-code editor-class set-global
 
 HOOK: find-visual-studio-code-invocation os ( -- array )
 
-MEMO: visual-studio-code-invocation ( -- array )
+: visual-studio-code-invocation ( -- array )
     {
         [ \ visual-studio-code-invocation get ]
         [ find-visual-studio-code-invocation ]
@@ -31,15 +31,17 @@ ERROR: can't-find-visual-studio-code ;
 
 M: linux find-visual-studio-code-invocation
     {
+        [ "code-insiders" which ]
         [ "code" which ]
         [ "Code" which ]
-        [ "~/VSCode-linux-x64/Code" ]
+        [ home "VSCode-linux-x64/Code" append-path ]
         [ "/usr/share/code/code" ]
-    } [ [ exists? ] ?1arg ] map-compose 0|| ;
+    } [ dup exists? [ drop f ] unless ] map-compose 0|| ;
 
 M: windows find-visual-studio-code-invocation
     {
-        [ { "Microsoft VS Code" } "code.exe" find-in-applications ]
+        [ { "Microsoft VS Code Insiders" } "code-insiders.cmd" find-in-applications ]
+        [ "code.cmd" ]
     } 0|| ;
 
 M: visual-studio-code editor-command ( file line -- command )