author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 22 Oct 2013 03:29:26 +0100 | |
changeset 134 | e34ee6ceb7c8 |
parent 133 | bd659b67811c |
child 139 | bf1538a4e7ce |
permissions | -rw-r--r-- |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:smallsense' }" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: SmallSense }" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
EditSupport subclass:#JavaEditSupport |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
instanceVariableNames:'lastTypedKey0 lastTypedKey1 lastTypedKey2 lastTypedKey3' |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
67
020b7461b15e
Package structure reorganization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
9 |
category:'SmallSense-Java' |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
!JavaEditSupport methodsFor:'accessing'! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
language |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
"superclass SmallSenseEditSupport says that I am responsible to implement this method" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
17 |
| javaLanguageClass | |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
18 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
19 |
javaLanguageClass := Smalltalk at:#JavaLanguage. |
122 | 20 |
^ javaLanguageClass notNil ifTrue:[ javaLanguageClass instance ] ifFalse: [ nil ]. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
21 |
|
122 | 22 |
"Modified: / 04-10-2013 / 08:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
23 |
! ! |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
25 |
!JavaEditSupport methodsFor:'accessing-classes'! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
26 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
27 |
completionEngineClass |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
28 |
"Returns a code completion engine class or nil, of |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
29 |
no completion is supported" |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
30 |
|
133
bd659b67811c
Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
31 |
"/ OperatingSystem getLoginName = 'jv' ifTrue:[ |
bd659b67811c
Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
32 |
"/ ^ SmallSense::JavaCompletionEngine |
bd659b67811c
Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
33 |
"/ ]. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
34 |
^ SmallSense::JavaCompletionEngineSimple |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
35 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
108
diff
changeset
|
36 |
"Created: / 03-10-2013 / 17:45:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
133
bd659b67811c
Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
122
diff
changeset
|
37 |
"Modified: / 20-10-2013 / 02:53:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
38 |
! |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
39 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
40 |
scannerClass |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
41 |
"Returns a class to use for scanning lines. If nil, scanning is |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
42 |
not supported and scanLine* methods will return an empty array." |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
43 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
44 |
^ (Smalltalk at: #JavaScanner) |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
45 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
46 |
"Created: / 22-10-2013 / 00:38:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
47 |
! ! |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
48 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
49 |
!JavaEditSupport methodsFor:'editing'! |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
50 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
51 |
insertElectricSnippet |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
52 |
| tokens lastToken0 | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
53 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
54 |
tokens := self scanLineAtCursor. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
55 |
tokens isEmptyOrNil ifTrue:[ ^ false ]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
56 |
lastToken0 := tokens at: (tokens size - 3). |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
57 |
lastToken0 = 'Error' ifTrue:[ ^ false ]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
58 |
(tokens last > service textView cursorCol) ifTrue:[ ^ false ]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
59 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
60 |
"/ Insert try { ... } |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
61 |
lastToken0 == #try ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
62 |
(tokens size == 4 or:[(tokens size > 4) and:[(tokens at: tokens size -7) ~~ $.]]) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
63 |
self insertElectricBlockOpenedBy: ' {' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
64 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
65 |
] |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
66 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
67 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
68 |
"/ Insert catch ( ) { ... } |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
69 |
lastToken0 == #catch ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
70 |
(tokens size > 4 and:[(tokens at: tokens size -7) == $}]) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
71 |
| cursorLine cursorCol | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
72 |
cursorLine := service textView cursorLine. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
73 |
cursorCol := service textView cursorCol. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
74 |
self insertElectricBlockOpenedBy: ' ( ) {' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
75 |
service textView cursorLine: cursorLine col: cursorCol + 3. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
76 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
77 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
78 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
79 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
80 |
"/ Insert finally { ... } |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
81 |
lastToken0 == #finally ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
82 |
(tokens size > 4 and:[(tokens at: tokens size -7) == $}]) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
83 |
self insertElectricBlockOpenedBy: ' {' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
84 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
85 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
86 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
87 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
88 |
"/ Insert if/while/synchronized ( ) { ... } |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
89 |
(#(if while synchronized) includes: lastToken0) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
90 |
(tokens size = 4) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
91 |
| cursorLine cursorCol | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
92 |
cursorLine := service textView cursorLine. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
93 |
cursorCol := service textView cursorCol. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
94 |
self insertElectricBlockOpenedBy: ' ( ) {' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
95 |
service textView cursorLine: cursorLine col: cursorCol + 3. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
96 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
97 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
98 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
99 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
100 |
"/ Insert for ( ; ; ) { ... } |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
101 |
(lastToken0 == #for) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
102 |
(tokens size = 4) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
103 |
| cursorLine cursorCol | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
104 |
cursorLine := service textView cursorLine. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
105 |
cursorCol := service textView cursorCol. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
106 |
self insertElectricBlockOpenedBy: ' ( ; ; ) {' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
107 |
service textView cursorLine: cursorLine col: cursorCol + 3. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
108 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
109 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
110 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
111 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
112 |
^ false |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
113 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
114 |
"Created: / 22-10-2013 / 01:53:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
117 |
!JavaEditSupport methodsFor:'event handling'! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
keyPress: key x:x y:y in: view |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
121 |
"Handles an event in given view (a subview of codeView). |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
If the method returns true, the event will not be processed |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
by the view." |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
view ~~ textView ifTrue:[ ^ false ]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
lastTypedKey3 := lastTypedKey2. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
lastTypedKey2 := lastTypedKey1. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
lastTypedKey1 := lastTypedKey0. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
lastTypedKey0 := key. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
key == ${ ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
^ self keyPressOpenCurly |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
^ super keyPress: key x:x y:y in: view |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
"Created: / 07-03-2010 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
139 |
"Modified: / 22-10-2013 / 01:55:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
keyPressOpenCurly |
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
143 |
| line tokens i | |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
line := service codeView listAt: service codeView cursorLine. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
line notEmptyOrNil ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
i := line size. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
148 |
[ (line at: i) isSeparator and:[i > 0] ] whileTrue:[ i := i - 1 ]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
(i ~~ 0 and:[service codeView cursorCol < i]) ifTrue:[ |
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
150 |
^ false. ]. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
] ifFalse:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
self insertElectricBlockOpenedBy: '{' closedBy: '}'. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
^ true |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
|
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
156 |
tokens := self scanLineAtCursor. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
157 |
tokens notEmptyOrNil ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
158 |
| column | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
159 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
160 |
column := service textView cursorCol. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
161 |
(tokens at: tokens size - 3) = 'Error' ifTrue:[ ^ false ]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
162 |
1 to: tokens size - 3 by: 4 do:[:i | |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
163 |
(column between: (tokens at: i + 2) and: (tokens at: i + 3)) ifTrue:[ |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
164 |
(tokens at: i) == #String ifTrue:[ ^ false ]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
165 |
|
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
166 |
self insertElectricBlockOpenedBy: '{' closedBy: '}'. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
167 |
^ true. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
168 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
169 |
]. |
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
170 |
]. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
171 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
172 |
self insertElectricBlockOpenedBy: '{' closedBy: '}'. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
173 |
^ true |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
174 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
175 |
"Created: / 04-08-2013 / 01:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
134
e34ee6ceb7c8
Initial support for "electric snippets".
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
133
diff
changeset
|
176 |
"Modified: / 22-10-2013 / 00:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
177 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
178 |
|
108
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
179 |
!JavaEditSupport methodsFor:'initialization'! |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
180 |
|
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
181 |
initializeForService: anEditService |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
182 |
super initializeForService: anEditService. |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
183 |
service textView autoIndent:true. |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
184 |
|
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
185 |
"Created: / 27-09-2013 / 13:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
186 |
! ! |
71471dc81e77
Completion refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
67
diff
changeset
|
187 |
|
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
!JavaEditSupport methodsFor:'private'! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
tokenAtCursorLine |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
| scanner token | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
scanner := (Smalltalk at:#JavaScanner) for: (service textView listAt: service textView cursorLine) string. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
194 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
195 |
[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
196 |
[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
197 |
token := scanner nextToken. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
198 |
(token ~~ #EOF and:[ scanner tokenEndPosition + 1 < service textView cursorCol ]) |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
199 |
] whileTrue. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
] on: Error do:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
201 |
token := nil. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
202 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
203 |
^ token |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
204 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
205 |
"Created: / 04-08-2013 / 02:00:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
206 |
"Modified: / 04-08-2013 / 03:10:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
207 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
208 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
209 |
tokensAtCursorLine |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
210 |
| scanner token | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
211 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
212 |
scanner := (Smalltalk at:#JavaScanner) for: (service textView listAt: service textView cursorLine) string. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
213 |
^ OrderedCollection streamContents:[:tokens | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
214 |
[ token := scanner nextToken.token ~~ #EOF ] whileTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
215 |
tokens nextPut: token. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
216 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
"Created: / 04-08-2013 / 01:57:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
221 |