factor/basis/editors/sublime/sublime.factor

38 lines
1.0 KiB
Factor

! Copyright (C) 2013 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: combinators.short-circuit editors io.pathnames
io.standard-paths kernel make math.parser namespaces sequences
system ;
IN: editors.sublime
SINGLETON: sublime
sublime editor-class set-global
HOOK: find-sublime-path os ( -- path )
M: object find-sublime-path f ;
M: macosx find-sublime-path
{ "com.sublimetext.3" "com.sublimetext.2" } [ find-native-bundle ] map-find drop [
"Contents/SharedSupport/bin/subl" append-path
] [
f
] if* ;
M: windows find-sublime-path
{
[ { "Sublime Text 3" } "subl.exe" find-in-applications ]
[ { "Sublime Text 2" } "sublime_text.exe" find-in-applications ]
[ "subl.exe" ]
} 0|| ;
: sublime-path ( -- path )
\ sublime-path get [
find-sublime-path [ "subl" ?find-in-path ] unless*
] unless* ;
M: sublime editor-command ( file line -- command )
[
sublime-path , "-a" , number>string ":" glue ,
] { } make ;