]> gitweb.factorcode.org Git - factor.git/blob - basis/editors/jedit/jedit.factor
fe9abc0e76b4640cb9f50f2f09583f926a235271
[factor.git] / basis / editors / jedit / jedit.factor
1 ! Copyright (C) 2004, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: arrays definitions io kernel math
4 namespaces parser prettyprint sequences strings words
5 editors io.files io.sockets io.streams.byte-array io.binary
6 math.parser io.encodings.ascii io.encodings.binary
7 io.encodings.utf8 io.files.private ;
8 IN: editors.jedit
9
10 : jedit-server-info ( -- port auth )
11     home ".jedit/server" append-path ascii [
12         readln drop
13         readln string>number
14         readln string>number
15     ] with-file-reader ;
16
17 : make-jedit-request ( files -- code )
18     utf8 [
19         "EditServer.handleClient(false,false,false," write
20         cwd pprint
21         "," write
22         "new String[] {" write
23         [ pprint "," write ] each
24         "null});\n" write
25     ] with-byte-writer ;
26
27 : send-jedit-request ( request -- )
28     jedit-server-info "localhost" rot <inet> binary [
29         4 >be write
30         dup length 2 >be write
31         write
32     ] with-client ;
33
34 : jedit-location ( file line -- )
35     number>string "+line:" prepend 2array
36     make-jedit-request send-jedit-request ;
37
38 : jedit-file ( file -- )
39     1array make-jedit-request send-jedit-request ;
40
41 [ jedit-location ] edit-hook set-global