author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 15 May 2014 14:41:52 +0100 | |
changeset 212 | a2caebc602a7 |
parent 210 | 1922d415c704 |
child 233 | fb33bd6466a4 |
permissions | -rw-r--r-- |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:smallsense' }" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: SmallSense }" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
Object subclass:#CompletionEngine |
157
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
6 |
instanceVariableNames:'codeView result context' |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
category:'SmallSense-Core' |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
147
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
12 |
|
187
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
13 |
!CompletionEngine class methodsFor:'accessing'! |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
14 |
|
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
15 |
exactMatcher |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
16 |
"Return a match block returning true, if given selector start with given prefix" |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
17 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
18 |
^ [ :prefix :selector | selector startsWith: prefix ] |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
19 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
20 |
"Created: / 08-04-2014 / 21:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
21 |
! |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
22 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
23 |
inexactMatcher |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
24 |
"Return a match block returning true, if given prefix matches given selector" |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
25 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
26 |
^ [ :prefix :selector | |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
27 |
prefix size < 5 ifTrue:[ |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
28 |
selector startsWith: prefix. |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
29 |
] ifFalse:[ |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
30 |
| part | |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
31 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
32 |
part := selector copyTo: (prefix size min: selector size). |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
33 |
(prefix levenshteinTo: part) < 15 |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
34 |
]. |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
35 |
]. |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
36 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
37 |
"Created: / 08-04-2014 / 21:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
38 |
! |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
39 |
|
187
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
40 |
matcher |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
41 |
"Return a match block returning true, if given prefix matches given selector" |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
42 |
|
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
43 |
^ [ :prefix :selector | |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
44 |
prefix size < 5 ifTrue:[ |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
45 |
selector startsWith: prefix. |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
46 |
] ifFalse:[ |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
47 |
| part | |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
48 |
|
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
49 |
part := selector copyTo: (prefix size min: selector size). |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
50 |
(prefix levenshteinTo: part) < 15 |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
51 |
]. |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
52 |
]. |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
53 |
|
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
54 |
"Created: / 02-04-2014 / 23:30:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
55 |
! ! |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
56 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
!CompletionEngine class methodsFor:'testing'! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
isAbstract |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
^ self == CompletionEngine |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
"Created: / 02-10-2013 / 13:11:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
! ! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
!CompletionEngine methodsFor:'completion'! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
|
157
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
67 |
complete: aCompletionContext |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
68 |
"Compute completion for given completion context, taking all the information |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
69 |
from it. Returns a CompletionResult with computed completions" |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
|
157
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
71 |
context := aCompletionContext. |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
72 |
result := CompletionResult new. |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
73 |
codeView := context codeView. |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
74 |
result context: context. |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
75 |
^ self complete. |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
|
157
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
77 |
"Created: / 21-01-2014 / 23:07:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
completeFor: aCodeView2OrTextEditView |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
"Compute completion for given codeView, taking all the information |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
from it. Returns a CompletionResult with computed completions" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
codeView := aCodeView2OrTextEditView. |
118
88e6fd734a11
Some more fixes in complete-as-you-type support...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
85 |
result := CompletionResult new. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
86 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
^ self complete. |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
"Created: / 02-10-2013 / 13:24:43 / 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:
118
diff
changeset
|
90 |
"Modified: / 03-10-2013 / 16:42:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
! ! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
93 |
!CompletionEngine methodsFor:'completion-individual'! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
94 |
|
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
95 |
addClassesInJavaPackage: prefix |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
96 |
prefix isEmptyOrNil ifTrue:[ |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
97 |
context environment allClassesDo: [:cls | |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
98 |
cls isJavaClass ifTrue:[ |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
99 |
result add: (ClassPO new klass: cls; showPrefix: true; yourself) |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
100 |
]. |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
101 |
]. |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
102 |
] ifFalse:[ |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
103 |
context environment allClassesDo: [:cls | |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
104 |
(cls isJavaClass and:[cls binaryName startsWith: prefix]) ifTrue:[ |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
105 |
result add: (ClassPO new klass: cls; showPrefix: true; yourself) |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
106 |
]. |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
107 |
]. |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
108 |
|
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
109 |
]. |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
110 |
|
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
111 |
"Created: / 15-05-2014 / 11:43:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
112 |
! |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
113 |
|
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
114 |
addMethodsForType: type |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
115 |
| classes seen | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
116 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
117 |
classes := type classes. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
118 |
"/ Hack for Boolean: ifTrue:iFalse: etc are not defined |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
119 |
"/ in Boolean ?!!? |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
120 |
(classes size == 1 and:[classes anElement == Boolean ]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
121 |
classes := Array with: True with: False. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
122 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
123 |
classes size == 1 ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
124 |
classes anElement == JavaPackage class ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
125 |
"/ Special hack for JAVA: for pattern `JAVA java lang reflect` |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
126 |
"/ complete all Java classes in that package |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
127 |
| node | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
128 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
129 |
node := result context node. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
130 |
node isUnaryMessage ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
131 |
| package | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
132 |
"/ Compute package prefix... |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
133 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
134 |
package := node selector. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
135 |
node := node receiver. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
136 |
[ node isUnaryMessage ] whileTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
137 |
package := node selector , '/' , package. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
138 |
node := node receiver. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
139 |
]. |
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
140 |
self addClassesInJavaPackage: package. |
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
141 |
^ self. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
142 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
143 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
144 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
145 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
146 |
seen := Set new. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
147 |
classes do: [:each | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
148 |
| class | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
149 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
150 |
class := each. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
151 |
[ class notNil and:[(seen includes: class) not]] whileTrue: [ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
152 |
seen add: class. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
153 |
"/ Now, special care for Java classes, sigh... |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
154 |
(class isMetaclass and:[class theNonMetaclass isJavaClass]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
155 |
class theNonMetaclass selectorsAndMethodsDo: [:selector :met | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
156 |
met isStatic ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
157 |
result add: (MethodPO |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
158 |
name: selector |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
159 |
class: met mclass). |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
160 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
161 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
162 |
] ifFalse:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
163 |
class selectorsAndMethodsDo: [:selector :met | |
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
164 |
"/ Do not offer synthetic methods and Java ctors |
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
165 |
(met isSynthetic or:[met isJavaMethod and:[met selector startsWith: '<init>']]) ifFalse:[ |
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
166 |
result add: (MethodPO |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
167 |
name: selector |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
168 |
class: met mclass). |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
169 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
170 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
171 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
172 |
class := class superclass. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
173 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
174 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
175 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
176 |
"Created: / 26-11-2011 / 17:03:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
177 |
"Modified: / 15-05-2014 / 11:43:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
178 |
! |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
179 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
180 |
addMethodsForType: type prefix: prefix stripOff: stripprefix |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
181 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
182 |
type isUnknownType ifFalse:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
183 |
self addMethodsForType:type stripOff: stripprefix. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
184 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
185 |
"/ If the type is union of more than 6 types, then |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
186 |
"/ assume that the inferencer is likely wrong. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
187 |
"/ then, if the prefix is at least 3 chars, |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
188 |
"/ also add methods with that prefix. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
189 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
190 |
((type classes size > 6) and:[ prefix size > 2 ]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
191 |
self addMethodsStartingWith:prefix stripOff: stripprefix |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
192 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
193 |
] ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
194 |
self addMethodsStartingWith:prefix stripOff: stripprefix |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
195 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
196 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
197 |
"Created: / 08-04-2014 / 21:04:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
198 |
"Modified: / 09-04-2014 / 09:31:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
199 |
! |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
200 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
201 |
addMethodsForType: type stripOff: stripprefix |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
202 |
| classes seen | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
203 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
204 |
classes := type classes. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
205 |
"/ Hack for Boolean: ifTrue:iFalse: etc are not defined |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
206 |
"/ in Boolean ?!!? |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
207 |
(classes size == 1 and:[classes anElement == Boolean ]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
208 |
classes := Array with: True with: False. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
209 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
210 |
classes size == 1 ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
211 |
classes anElement == JavaPackage class ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
212 |
"/ Special hack for JAVA: for pattern `JAVA java lang reflect` |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
213 |
"/ complete all Java classes in that package |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
214 |
| node | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
215 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
216 |
node := result context node. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
217 |
node isUnaryMessage ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
218 |
| package | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
219 |
"/ Compute package prefix... |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
220 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
221 |
package := node selector. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
222 |
node := node receiver. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
223 |
[ node isUnaryMessage ] whileTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
224 |
package := node selector , '/' , package. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
225 |
node := node receiver. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
226 |
]. |
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
227 |
self addClassesInJavaPackage: package. |
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
228 |
^ self. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
229 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
230 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
231 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
232 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
233 |
seen := Set new. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
234 |
classes do: [:each | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
235 |
| class | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
236 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
237 |
class := each. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
238 |
[ class notNil and:[(seen includes: class) not]] whileTrue: [ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
239 |
seen add: class. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
240 |
"/ Now, special care for Java classes, sigh... |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
241 |
(class isMetaclass and:[class theNonMetaclass isJavaClass]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
242 |
class theNonMetaclass selectorsAndMethodsDo: [:selector :met | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
243 |
met isStatic ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
244 |
result add: (MethodPO |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
245 |
name: selector |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
246 |
class: met mclass). |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
247 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
248 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
249 |
] ifFalse:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
250 |
class selectorsAndMethodsDo: [:selector :met | |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
251 |
met isSynthetic ifFalse:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
252 |
(stripprefix isNil or:[ selector size > stripprefix size and:[selector startsWith: stripprefix]]) ifTrue:[ |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
253 |
result add: (MethodPO |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
254 |
name: selector |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
255 |
class: met mclass |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
256 |
stripOff: stripprefix). |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
257 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
258 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
259 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
260 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
261 |
class := class superclass. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
262 |
] |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
263 |
]. |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
264 |
|
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
265 |
"Created: / 08-04-2014 / 21:23:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
212
a2caebc602a7
Fixes and improvements for Java/Groovy completion (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
266 |
"Modified: / 15-05-2014 / 11:43:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
210
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
267 |
! |
1922d415c704
AbstractJavaCompletionEngineSimple refactored to use token patterns. Initial support for receiver type guessing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
205
diff
changeset
|
268 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
269 |
addMethodsStartingWith: prefix |
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
270 |
^ self addMethodsStartingWith: prefix stripOff: nil filter: nil |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
271 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
272 |
"Created: / 24-07-2013 / 13:10:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
273 |
"Modified: / 08-04-2014 / 21:36:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
274 |
! |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
275 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
276 |
addMethodsStartingWith: prefix stripOff: stripoffPrefix |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
277 |
^ self addMethodsStartingWith: prefix stripOff: stripoffPrefix filter: nil |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
278 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
279 |
"Created: / 08-04-2014 / 21:36:39 / 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:
118
diff
changeset
|
280 |
! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
281 |
|
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
282 |
addMethodsStartingWith: prefix stripOff: stripoffPrefix filter: filterOrNil |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
283 |
| matcher | |
187
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
284 |
|
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
285 |
matcher := stripoffPrefix isEmptyOrNil ifTrue:[ CompletionEngine inexactMatcher ] ifFalse:[ CompletionEngine exactMatcher ]. |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
286 |
^ self addMethodsStartingWith: prefix stripOff: stripoffPrefix filter: filterOrNil matcher: matcher. |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
287 |
|
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
288 |
"Created: / 08-04-2014 / 21:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
187
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
289 |
! |
7baeeea7d8ae
Fixes issue #4 - Use levenshtein distance when computing prefix-based selector completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
176
diff
changeset
|
290 |
|
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
291 |
addMethodsStartingWith: prefix stripOff: stripoffPrefix filter: filterOrNil matcher: matcher |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
292 |
| matchPrefix selectors filter | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
293 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
294 |
selectors := Dictionary new. |
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
295 |
matchPrefix := stripoffPrefix isNil ifTrue:[ prefix ] ifFalse:[ stripoffPrefix , prefix ]. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
296 |
filter := filterOrNil isNil ifTrue:[ [:method | true ] ] ifFalse:[ filterOrNil ]. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
297 |
|
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
298 |
context environment allMethodsWithSelectorDo:[:mthd :selector| |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
299 |
(mthd isSynthetic not and:[(filter value: mthd) and:[ matcher value: matchPrefix value: selector]]) ifTrue:[ |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
300 |
| class skip | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
301 |
|
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
302 |
class := mthd mclass superclass. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
303 |
skip := false. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
304 |
[ skip not and:[class notNil] ] whileTrue:[ |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
305 |
(class methodDictionary includesKey: selector) ifTrue:[ |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
306 |
skip := true. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
307 |
]. |
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
308 |
class := class superclass. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
309 |
]. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
310 |
skip ifFalse:[ |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
311 |
| classes | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
312 |
|
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
313 |
classes := selectors at: selector ifAbsentPut:[ Set new ]. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
314 |
(classes includes: mthd mclass) ifFalse:[ |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
315 |
classes add: mthd mclass. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
316 |
]. |
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
317 |
]. |
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
318 |
] |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
319 |
]. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
320 |
|
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
321 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
322 |
selectors keysAndValuesDo: [:selector :classes| |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
323 |
result add:(MethodPO |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
324 |
name:selector |
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
325 |
class:(classes size == 1 ifTrue:[classes anElement] ifFalse:[classes]) |
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
326 |
stripOff: stripoffPrefix) |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
327 |
] |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
328 |
|
192
f27ce6dac101
Initial support for completing selector parts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
187
diff
changeset
|
329 |
"Created: / 08-04-2014 / 21:34:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
205
43bee6463c53
Introduced notion of `environment` to completion context.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
192
diff
changeset
|
330 |
"Modified: / 13-05-2014 / 12:30: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:
118
diff
changeset
|
331 |
! ! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
332 |
|
157
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
333 |
!CompletionEngine methodsFor:'completion-private'! |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
334 |
|
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
335 |
complete |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
336 |
"Compute completion for `codeView`, taking all the information |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
337 |
from it. Returns a CompletionResult with computed completions" |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
338 |
|
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
339 |
^ self subclassResponsibility |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
340 |
|
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
341 |
"Modified (comment): / 02-10-2013 / 13:33:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
342 |
! ! |
c71d2e62ece2
Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
147
diff
changeset
|
343 |
|
147
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
344 |
!CompletionEngine class methodsFor:'documentation'! |
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
345 |
|
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
346 |
version_HG |
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
347 |
|
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
348 |
^ '$Changeset: <not expanded> $' |
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
349 |
! ! |
5c835893f71b
New class search completion for browser's search bar moved to SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
136
diff
changeset
|
350 |