factor/library/tools/jedit.factor

47 lines
1.2 KiB
Factor
Raw Normal View History

! Copyright (C) 2004, 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
2004-08-18 01:13:56 -04:00
IN: jedit
USING: files kernel lists namespaces parser streams stdio
strings unparser words ;
2004-08-18 01:13:56 -04:00
: jedit-server-file ( -- path )
"jedit-server-file" get
[ "~" get "/.jedit/server" cat2 ] unless* ;
: jedit-server-info ( -- port auth )
jedit-server-file <file-reader> [
2004-08-18 01:13:56 -04:00
read drop
read parse-number
read parse-number
] with-stream ;
: make-jedit-request ( files params -- code )
2004-08-18 01:13:56 -04:00
[
"EditServer.handleClient(false,false,false,null," ,
"new String[] {" ,
[ unparse , "," , ] each
"null});\n" ,
] make-string ;
2004-08-18 01:13:56 -04:00
: send-jedit-request ( request -- )
jedit-server-info swap "localhost" swap <client> [
write-big-endian-32
dup str-length write-big-endian-16
write flush
2004-08-18 01:13:56 -04:00
] with-stream ;
: jedit-line/file ( file line -- )
unparse "+line:" swap cat2 2list
make-jedit-request send-jedit-request ;
2004-11-16 23:14:01 -05:00
: jedit-file ( file -- )
unit make-jedit-request send-jedit-request ;
2004-11-16 23:14:01 -05:00
: jedit ( word -- )
#! Note that line numbers here start from 1
dup word-file dup [
swap "line" word-property jedit-line/file
2004-11-16 23:14:01 -05:00
] [
2drop "Unknown source" print
2004-11-16 23:14:01 -05:00
] ifte ;