Libraryless. Click here for Pure Java version (1481L/10K/34K).
1 | !747 |
2 | !awt { |
3 | |
4 | m { |
5 | static JTextArea textArea; |
6 | static S textLogged; |
7 | |
8 | static L<S> actions = new LoggingStringList("actions.log"); |
9 | |
10 | !include #1001455 // LoggingStringList |
11 | |
12 | p { |
13 | textArea = makeTextArea(); |
14 | addAction("new"); |
15 | |
16 | makeAndroid3("Smart Editor."); |
17 | } |
18 | |
19 | static void addAction(S s) { |
20 | actions.add(now() + " " + s); |
21 | } |
22 | |
23 | static JTextArea makeTextArea() { |
24 | new JTextArea textArea; |
25 | makeFrame("Smart Editor", new JScrollPane(textArea)); |
26 | return textArea; |
27 | } |
28 | |
29 | static void logText() { |
30 | S text = getText(); |
31 | if (!eq(text, textLogged)) { |
32 | textLogged = text; |
33 | addAction(format3("text is *", text)); |
34 | } |
35 | } |
36 | |
37 | static synchronized S answer(S s, L<S> history) { |
38 | addAction("? " + s); |
39 | try { |
40 | S a = answer_impl(s, history); |
41 | addAction("! " + a); |
42 | ret a; |
43 | } catch (Throwable e) { |
44 | addAction("!!! " + getStackTrace(e)); |
45 | ret "Error. " + e.toString(); |
46 | } |
47 | } |
48 | |
49 | static synchronized S answer_impl(S s, L<S> history) { |
50 | new Matches m; |
51 | |
52 | if (match3("load *", s, m)) { |
53 | addAction(s); |
54 | S what = unquote(m.m[0]); |
55 | S text = null; |
56 | if (isURL(what)) |
57 | text = loadPage(what); |
58 | else |
59 | text = loadTextFile(what); |
60 | if (text != null) |
61 | setText(text); |
62 | else { |
63 | addAction("huh?"); |
64 | ret "huh?"; |
65 | } |
66 | logText(); |
67 | ret format3("OK, loaded *", what); |
68 | } |
69 | |
70 | if (match3("drop first line", s)) |
71 | setText(fromLines(dropFirst(1, toLines(getText())))); |
72 | |
73 | if (match3("save", s)) { |
74 | logText(); |
75 | ret "OK."; |
76 | } |
77 | |
78 | !include #1001452 // Apply Translator |
79 | |
80 | ret null; |
81 | } |
82 | |
83 | static S getText() { |
84 | return textArea.getText(); |
85 | } |
86 | |
87 | static void setText(final S s) { |
88 | awt { // let's be clear here... |
89 | textArea.setText(s); |
90 | } |
91 | } |
92 | } |
download show line numbers debug dex old transpilations
Travelled to 16 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, dhtvkmknsjym, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, teubizvjbppd, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1001410 |
Snippet name: | Smart Editor (developing) |
Eternal ID of this version: | #1001410/1 |
Text MD5: | d788ec0b6472dfc7379a4ab652ea635e |
Transpilation MD5: | 453cc5e67a3e844f4317c35f5ce28e02 |
Author: | stefan |
Category: | javax |
Type: | JavaX source code |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2015-10-16 20:38:11 |
Source code size: | 1940 bytes / 92 lines |
Pitched / IR pitched: | No / Yes |
Views / Downloads: | 754 / 1323 |
Referenced in: | [show references] |