33 lines
		
	
	
		
			697 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			697 B
		
	
	
	
		
			Factor
		
	
	
USING: editors io.standard-paths kernel make math.parser
 | 
						|
namespaces sequences strings ;
 | 
						|
IN: editors.vim
 | 
						|
 | 
						|
TUPLE: vim ;
 | 
						|
T{ vim } editor-class set-global
 | 
						|
 | 
						|
SYMBOL: vim-path
 | 
						|
 | 
						|
HOOK: find-vim-path editor-class ( -- path )
 | 
						|
 | 
						|
HOOK: vim-ui? editor-class ( -- ? )
 | 
						|
 | 
						|
SYMBOL: vim-tabs?
 | 
						|
 | 
						|
M: vim vim-ui? f ;
 | 
						|
 | 
						|
M: vim find-vim-path "vim" ?find-in-path ;
 | 
						|
 | 
						|
: actual-vim-path ( -- path )
 | 
						|
    \ vim-path get [ find-vim-path ] unless* ;
 | 
						|
 | 
						|
M: vim editor-command ( file line -- command )
 | 
						|
    [
 | 
						|
        actual-vim-path dup string? [ , ] [ % ] if
 | 
						|
        vim-ui? [ "-g" , ] when
 | 
						|
        vim-tabs? get [ "--remote-tab-silent" , ] when
 | 
						|
        number>string "+" prepend ,
 | 
						|
        ,
 | 
						|
    ] { } make ;
 | 
						|
 | 
						|
M: vim editor-detached? f ;
 |