]> gitweb.factorcode.org Git - factor.git/blob - extra/editors/jedit/jedit.factor
Initial import
[factor.git] / extra / editors / jedit / jedit.factor
1 ! Copyright (C) 2004, 2007 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.string io.binary
6 math.parser ;
7 IN: editors.jedit
8
9 : jedit-server-info ( -- port auth )
10     home "/.jedit/server" path+ <file-reader> [
11         readln drop
12         readln string>number
13         readln string>number
14     ] with-stream ;
15
16 : make-jedit-request ( files -- code )
17     [
18         "EditServer.handleClient(false,false,false," write
19         cwd pprint
20         "," write
21         "new String[] {" write
22         [ pprint "," write ] each
23         "null});\n" write
24     ] string-out ;
25
26 : send-jedit-request ( request -- )
27     jedit-server-info swap "localhost" swap <inet> <client> [
28         4 >be write
29         dup length 2 >be write
30         write
31     ] with-stream ;
32
33 : jedit-location ( file line -- )
34     number>string "+line:" swap append 2array
35     make-jedit-request send-jedit-request ;
36
37 : jedit-file ( file -- )
38     1array make-jedit-request send-jedit-request ;
39
40 [ jedit-location ] edit-hook set-global