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: kernel lists namespaces parser sequences io strings
unparser words ;
2004-08-18 01:13:56 -04:00
: jedit-server-file ( -- path )
"jedit-server-file" get
2005-05-18 16:26:22 -04:00
[ "~" get "/.jedit/server" append ] unless* ;
2004-08-18 01:13:56 -04:00
: jedit-server-info ( -- port auth )
jedit-server-file <file-reader> [
2005-02-14 22:15:02 -05:00
read-line drop
read-line parse-number
read-line parse-number
2004-08-18 01:13:56 -04:00
] 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> [
4 >be write
dup length 2 >be write
write flush
2004-08-18 01:13:56 -04:00
] with-stream ;
: jedit-line/file ( file line -- )
2005-05-18 16:26:22 -04:00
unparse "+line:" swap append 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-prop jedit-line/file
2004-11-16 23:14:01 -05:00
] [
2drop "Unknown source" print
2004-11-16 23:14:01 -05:00
] ifte ;