author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 25 Jul 2013 17:27:45 +0100 | |
changeset 40 | 85eaf579889b |
parent 32 | 658f47bc231e |
permissions | -rw-r--r-- |
32
658f47bc231e
Code moved to package jv:smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
1 |
"{ Package: 'jv:smallsense' }" |
8 | 2 |
|
3 |
Object subclass:#SmallSenseQuickFixer |
|
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
4 |
instanceVariableNames:'view rule fixes' |
8 | 5 |
classVariableNames:'' |
6 |
poolDictionaries:'' |
|
7 |
category:'SmallSense-Lint' |
|
8 |
! |
|
9 |
||
10 |
Object subclass:#QuickFix |
|
11 |
instanceVariableNames:'rule label action' |
|
12 |
classVariableNames:'' |
|
13 |
poolDictionaries:'' |
|
14 |
privateIn:SmallSenseQuickFixer |
|
15 |
! |
|
16 |
||
17 |
||
18 |
!SmallSenseQuickFixer class methodsFor:'instance creation'! |
|
19 |
||
9 | 20 |
for: rule |
8 | 21 |
|
9 | 22 |
^self new initializeForRule: rule. |
23 |
||
24 |
"Created: / 01-02-2012 / 12:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
25 |
! |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
26 |
|
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
27 |
for: rule view: view |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
28 |
|
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
29 |
^self new initializeForRule: rule view: view |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
30 |
|
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
31 |
"Created: / 17-02-2012 / 00:21:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
8 | 32 |
! ! |
33 |
||
34 |
!SmallSenseQuickFixer methodsFor:'adding'! |
|
35 |
||
36 |
fix |
|
37 |
"Create and return new quick fix. Caller MUST set its |
|
38 |
label and action" |
|
39 |
||
40 |
| fix | |
|
41 |
||
42 |
fix := QuickFix new. |
|
43 |
fix rule: rule. |
|
44 |
fixes add: fix. |
|
45 |
^fix |
|
46 |
||
47 |
"Created: / 01-02-2012 / 10:51:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
48 |
! ! |
|
49 |
||
50 |
!SmallSenseQuickFixer methodsFor:'initialization'! |
|
51 |
||
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
52 |
initializeForRule: anRBLintRule view: aCodeView2 |
9 | 53 |
rule := anRBLintRule. |
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
54 |
view := aCodeView2. |
9 | 55 |
fixes := OrderedCollection new: 3. |
11 | 56 |
rule fixes: self. |
9 | 57 |
|
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
58 |
"Created: / 17-02-2012 / 00:20:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9 | 59 |
! ! |
60 |
||
16 | 61 |
!SmallSenseQuickFixer methodsFor:'performing fixes'! |
62 |
||
63 |
performFix: index |
|
64 |
||
65 |
index <= fixes size ifTrue:[ |
|
66 |
(fixes at: index) performFix. |
|
67 |
] ifFalse:[ |
|
68 |
^ Dialog warn: ('No such fix (%1)' bindWith: index). |
|
69 |
] |
|
70 |
||
71 |
"Created: / 16-02-2012 / 14:48:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
72 |
! ! |
|
73 |
||
9 | 74 |
!SmallSenseQuickFixer methodsFor:'printing & storing'! |
75 |
||
76 |
printHtmlOn: html |
|
8 | 77 |
|
9 | 78 |
fixes isEmptyOrNil ifTrue:[ ^ self ]. |
79 |
fixes size > 1 ifTrue:[ |
|
80 |
html nextPutAll: '<br>'. |
|
81 |
html nextPutLine: 'Possible fixes'. |
|
82 |
]. |
|
83 |
html nextPutLine:'<ul>'. |
|
84 |
fixes withIndexDo:[:fix :index| |
|
85 |
html |
|
16 | 86 |
nextPutAll:'<li><a action="doit: self doQuickFix:'; |
9 | 87 |
nextPutAll: index printString; |
88 |
nextPutAll:'">'; |
|
89 |
nextPutAll: fix label; |
|
90 |
nextPutAll:'</a></li>'. |
|
91 |
]. |
|
92 |
html nextPutLine:'</ul>'. |
|
8 | 93 |
|
9 | 94 |
"Created: / 01-02-2012 / 12:13:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
8 | 95 |
! ! |
96 |
||
16 | 97 |
!SmallSenseQuickFixer methodsFor:'utilities'! |
98 |
||
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
99 |
apply: allChanges |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
100 |
| changes | |
16 | 101 |
|
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
102 |
changes := Tools::ChangeSetBrowser2 confirmChanges: allChanges. |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
103 |
changes isEmptyOrNil ifTrue:[ ^ self ]. |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
104 |
(changes size == 1 and:[view reallyModified]) ifTrue:[ |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
105 |
view contents: changes anElement source clear: false. |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
106 |
] ifFalse:[ |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
107 |
| browser | |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
108 |
|
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
109 |
|
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
110 |
self halt. |
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
111 |
] |
16 | 112 |
|
113 |
"Created: / 16-02-2012 / 14:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
114 |
! ! |
|
115 |
||
8 | 116 |
!SmallSenseQuickFixer::QuickFix methodsFor:'accessing'! |
117 |
||
118 |
action |
|
119 |
^ action |
|
120 |
! |
|
121 |
||
122 |
action:aBlock |
|
123 |
action := aBlock. |
|
124 |
! |
|
125 |
||
126 |
label |
|
127 |
^ label |
|
128 |
! |
|
129 |
||
130 |
label:aString |
|
131 |
label := aString. |
|
132 |
! |
|
133 |
||
16 | 134 |
performFix |
135 |
||
136 |
^action value |
|
137 |
||
138 |
"Created: / 16-02-2012 / 14:48:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
139 |
! |
|
140 |
||
8 | 141 |
rule |
142 |
^ rule |
|
143 |
! |
|
144 |
||
145 |
rule:anRBLintRule |
|
146 |
rule := anRBLintRule. |
|
147 |
! ! |
|
148 |
||
149 |
!SmallSenseQuickFixer class methodsFor:'documentation'! |
|
150 |
||
29
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
18
diff
changeset
|
151 |
version_HG |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
18
diff
changeset
|
152 |
|
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
18
diff
changeset
|
153 |
^ '$Changeset: <not expanded> $' |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
18
diff
changeset
|
154 |
! |
fe650a6e5704
Moved NavigationState>>selectedClasses to package stx:libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
18
diff
changeset
|
155 |
|
8 | 156 |
version_SVN |
18
cebd9550b288
branch jv-experiments merged back
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
17
diff
changeset
|
157 |
^ '$Id: SmallSenseQuickFixer.st 7911 2012-02-22 09:55:48Z vranyj1 $' |
8 | 158 |
! ! |
17
8443d79a77ac
Improvements in background lint checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
16
diff
changeset
|
159 |