redcar 0.10 → 0.11.0dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. data/CHANGES +14 -0
  2. data/Rakefile +68 -29
  3. data/lib/redcar.rb +2 -2
  4. data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +2 -1
  5. data/plugins/application_swt/spec/application_swt/gradient_spec.rb +3 -12
  6. data/plugins/core/lib/core/resource.rb +13 -5
  7. data/plugins/document_search/features/find.feature +366 -214
  8. data/plugins/document_search/features/incremental_search.feature +351 -0
  9. data/plugins/document_search/features/replace.feature +16 -16
  10. data/plugins/document_search/features/step_definitions/find_steps.rb +16 -0
  11. data/plugins/document_search/features/support/env.rb +11 -0
  12. data/plugins/document_search/lib/document_search.rb +149 -109
  13. data/plugins/document_search/lib/document_search/commands.rb +251 -202
  14. data/plugins/document_search/lib/document_search/find_speedbar.rb +138 -81
  15. data/plugins/document_search/lib/document_search/incremental_search_speedbar.rb +70 -0
  16. data/plugins/document_search/lib/document_search/query_options.rb +15 -39
  17. data/plugins/document_search/plugin.rb +1 -1
  18. data/plugins/edit_view/features/step_definitions/editing_steps.rb +6 -2
  19. data/plugins/edit_view_swt/lib/edit_view_swt.rb +2 -2
  20. data/plugins/file_parser/lib/file_parser.rb +6 -1
  21. data/plugins/html_view/features/step_definitions/web_view_steps.rb +12 -0
  22. data/plugins/html_view/features/support/env.rb +16 -0
  23. data/plugins/html_view/lib/html_view.rb +5 -1
  24. data/plugins/line_tools/lib/line_tools.rb +16 -0
  25. data/plugins/project/features/find_file.feature +28 -0
  26. data/plugins/project/features/open_and_save_files.feature +11 -0
  27. data/plugins/project/features/step_definitions/file_steps.rb +6 -1
  28. data/plugins/project/features/support/env.rb +2 -0
  29. data/plugins/project/lib/project.rb +49 -6
  30. data/plugins/project/lib/project/commands.rb +18 -6
  31. data/plugins/project/lib/project/find_file_dialog.rb +19 -8
  32. data/plugins/project/lib/project/find_recent_dialog.rb +30 -0
  33. data/plugins/project/lib/project/manager.rb +41 -10
  34. data/plugins/project/lib/project/recent.rb +64 -0
  35. data/plugins/project/spec/fixtures/myproject/vendor/bar.rb +0 -0
  36. data/plugins/project/spec/fixtures/myproject/vendor/plugins/bar.rb +0 -0
  37. data/plugins/{find-in-project → project_search}/TODO.md +3 -3
  38. data/plugins/project_search/features/support/env.rb +6 -0
  39. data/plugins/project_search/features/word_search.feature +34 -0
  40. data/plugins/project_search/lib/project_search.rb +73 -0
  41. data/plugins/project_search/lib/project_search/binary_data_detector.rb +46 -0
  42. data/plugins/project_search/lib/project_search/commands.rb +62 -0
  43. data/plugins/project_search/lib/project_search/hit.rb +17 -0
  44. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/collapsed.png +0 -0
  45. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/expanded.png +0 -0
  46. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/spinner.gif +0 -0
  47. data/plugins/project_search/lib/project_search/lucene_index.rb +64 -0
  48. data/plugins/project_search/lib/project_search/lucene_refresh.rb +22 -0
  49. data/plugins/project_search/lib/project_search/project.rb +14 -0
  50. data/plugins/project_search/lib/project_search/query.rb +29 -0
  51. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/stylesheets/style.css +14 -3
  52. data/plugins/project_search/lib/project_search/views/_file.html.erb +60 -0
  53. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/views/index.html.erb +12 -9
  54. data/plugins/project_search/lib/project_search/word_search.rb +105 -0
  55. data/plugins/project_search/lib/project_search/word_search_controller.rb +207 -0
  56. data/plugins/project_search/plugin.rb +8 -0
  57. data/plugins/project_search/spec/fixtures/project/binary_file.bin +0 -0
  58. data/plugins/project_search/spec/fixtures/project/foo.txt +43 -0
  59. data/plugins/project_search/spec/fixtures/project/qux.rb +3 -0
  60. data/plugins/project_search/spec/project_search/binary_data_detector_spec.rb +24 -0
  61. data/plugins/project_search/spec/project_search/word_search_spec.rb +157 -0
  62. data/plugins/project_search/spec/spec_helper.rb +27 -0
  63. data/plugins/redcar/redcar.rb +77 -71
  64. data/plugins/ruby/lib/ruby/syntax_checker.rb +1 -1
  65. data/plugins/snippets/features/snippets.feature +12 -0
  66. data/plugins/snippets/lib/snippets/tab_handler.rb +1 -1
  67. metadata +46 -25
  68. data/plugins/document_search/features/find_and_replace.feature +0 -723
  69. data/plugins/document_search/lib/document_search/find_and_replace_speedbar.rb +0 -142
  70. data/plugins/find-in-project/lib/find_in_project.rb +0 -35
  71. data/plugins/find-in-project/lib/find_in_project/commands.rb +0 -30
  72. data/plugins/find-in-project/lib/find_in_project/controllers.rb +0 -170
  73. data/plugins/find-in-project/lib/find_in_project/views/_divider.html.erb +0 -4
  74. data/plugins/find-in-project/lib/find_in_project/views/_file_heading.html.erb +0 -10
  75. data/plugins/find-in-project/lib/find_in_project/views/_file_line.html.erb +0 -6
  76. data/plugins/find-in-project/plugin.rb +0 -11
  77. data/plugins/project/lib/project/recent_directories.rb +0 -54
@@ -0,0 +1,351 @@
1
+ # Note: Most scenarios in this file can and should be adapted for the Find speedbar and added to
2
+ # find.feature. Aside from different names, the tests will need to be adjusted to not rely on
3
+ # incremental updating of query matches.
4
+
5
+ @speedbar
6
+ Feature: Incremental Search
7
+
8
+ Background:
9
+ Given I open a new edit tab
10
+
11
+ Scenario: Open Incremental Search speedbar
12
+ When I replace the contents with "Foo\nBar\nBaz"
13
+ And I move the cursor to 0
14
+ And I open the incremental search speedbar
15
+ Then I should see the incremental search speedbar
16
+
17
+ Scenario: Search for a word should select next occurrence
18
+ When I replace the contents with "Foo\nBar\nBaz"
19
+ And I move the cursor to 0
20
+ And I open the incremental search speedbar
21
+ And I type "Bar" into the "Find" field in the speedbar
22
+ Then the selected text should be "Bar"
23
+
24
+ Scenario: Search twice should move to the next occurrence
25
+ When I replace the contents with "Foo\nBar\nFoo"
26
+ And I move the cursor to 0
27
+ And I open the incremental search speedbar
28
+ And I type "Foo" into the "Find" field in the speedbar
29
+ Then the selection should be on line 0
30
+ When I open the incremental search speedbar
31
+ Then the selected text should be "Foo"
32
+ And the selection should be on line 2
33
+
34
+ Scenario: Search should incrementally update
35
+ When I replace the contents with "Foo\nBaar\nBaaz"
36
+ And I move the cursor to 0
37
+ And I open the incremental search speedbar
38
+ And I type "Ba" into the "Find" field in the speedbar
39
+ Then the selected text should be "Ba"
40
+ And the selection should be on line 1
41
+ When I type "Baa" into the "Find" field in the speedbar
42
+ And the selection should be on line 1
43
+ When I type "Baaz" into the "Find" field in the speedbar
44
+ Then the selected text should be "Baaz"
45
+ And the selection should be on line 2
46
+ When I type "Baa" into the "Find" field in the speedbar
47
+ Then the selection should be on line 2
48
+
49
+ Scenario: Search for a word adjacent to cursor should select word
50
+ When I replace the contents with "Foo\nBar\nBaz"
51
+ And I move the cursor to 0
52
+ And I open the incremental search speedbar
53
+ And I type "Foo" into the "Find" field in the speedbar
54
+ Then the selected text should be "Foo"
55
+
56
+ Scenario: Search for a word should find occurrence after the cursor
57
+ When I replace the contents with "Foo\nBar\nBaz\nFoo"
58
+ And I move the cursor to 1
59
+ And I open the incremental search speedbar
60
+ And I type "Foo" into the "Find" field in the speedbar
61
+ Then the selection should be on line 3
62
+ And the selected text should be "Foo"
63
+ When I open the incremental search speedbar
64
+ Then the selected text should be "Foo"
65
+ And the selection should be on line 0
66
+
67
+ Scenario: Search for a word should wrap to earlier occurrence if none left
68
+ When I replace the contents with "Foo\nBar\nBaz"
69
+ And I move the cursor to 1
70
+ And I open the incremental search speedbar
71
+ And I type "Foo" into the "Find" field in the speedbar
72
+ Then the selected text should be "Foo"
73
+ And the selection should be on line 0
74
+
75
+ Scenario: Not thrown off by multi-byte characters
76
+ When I replace the contents with "Benedikt Müller"
77
+ And I move the cursor to 0
78
+ And I open the incremental search speedbar
79
+ And I type "ler" into the "Find" field in the speedbar
80
+ Then the selected text should be "ler"
81
+ And the selection range should be from 12 to 15
82
+
83
+ Scenario: Not thrown off by multi-byte characters 2
84
+ When I replace the contents with "Benedikt Müller\n foo "
85
+ And I move the cursor to 0
86
+ And I open the incremental search speedbar
87
+ And I type "foo" into the "Find" field in the speedbar
88
+ Then the selected text should be "foo"
89
+ And the selection range should be from 17 to 20
90
+
91
+ Scenario: Not thrown off by multi-byte characters 3
92
+ When I replace the contents with "你好, 凯兰\nYou make my heart super happy."
93
+ And I move the cursor to 0
94
+ And I open the incremental search speedbar
95
+ And I type "you" into the "Find" field in the speedbar
96
+ Then the selected text should be "You"
97
+ And the selection range should be from 7 to 10
98
+
99
+ Scenario: Handles repeated search across by multi-byte characters
100
+ When I replace the contents with "Foo\n你好, 凯兰\nFoo\nBar\nFoo\nBaz"
101
+ And I move the cursor to 0
102
+ And I open the incremental search speedbar
103
+ And I type "foo" into the "Find" field in the speedbar
104
+ Then the selected text should be "Foo"
105
+ And the selection should be on line 0
106
+ When I open the incremental search speedbar
107
+ Then the selected text should be "Foo"
108
+ And the selection should be on line 2
109
+ When I open the incremental search speedbar
110
+ Then the selected text should be "Foo"
111
+ And the selection should be on line 4
112
+ When I open the incremental search speedbar
113
+ Then the selected text should be "Foo"
114
+ And the selection should be on line 0
115
+ When I open the incremental search speedbar
116
+ Then the selected text should be "Foo"
117
+ And the selection should be on line 2
118
+
119
+ Scenario: Should select multi-byte characters
120
+ When I replace the contents with "Benedikt Müller"
121
+ And I move the cursor to 0
122
+ And I open the incremental search speedbar
123
+ And I type "mül" into the "Find" field in the speedbar
124
+ Then the selected text should be "Mül"
125
+ And the selection range should be from 9 to 12
126
+
127
+ Scenario: Should select multi-byte characters
128
+ When I replace the contents with "Benedikt Müller"
129
+ And I move the cursor to 0
130
+ And I open the incremental search speedbar
131
+ And I type "mül" into the "Find" field in the speedbar
132
+ Then the selected text should be "Mül"
133
+ And the selection range should be from 9 to 12
134
+
135
+ Scenario: Should select multi-byte characters 2
136
+ When I replace the contents with "你好, 凯兰\nYou make my heart super happy."
137
+ And I move the cursor to 0
138
+ And I open the incremental search speedbar
139
+ And I type "凯兰" into the "Find" field in the speedbar
140
+ Then the selected text should be "凯兰"
141
+ And the selection range should be from 4 to 6
142
+
143
+ Scenario: Doesn't search for a regex
144
+ When I replace the contents with "Foo\nBar\nBaz"
145
+ And I move the cursor to 0
146
+ And I open the incremental search speedbar
147
+ And I type "Ba." into the "Find" field in the speedbar
148
+ Then there should not be any text selected
149
+
150
+ Scenario: Search for a regex
151
+ When I replace the contents with "Foo\nBar\nBaz"
152
+ And I move the cursor to 0
153
+ And I open the incremental search speedbar
154
+ And I type "Ba." into the "Find" field in the speedbar
155
+ Then there should not be any text selected
156
+ When I check "Regex" in the speedbar
157
+ Then the selected text should be "Bar"
158
+ When I open the incremental search speedbar
159
+ Then the selected text should be "Baz"
160
+
161
+ Scenario: Search for a regex matches a second time
162
+ When I replace the contents with "Foo\nBar\nBaz"
163
+ And I move the cursor to 0
164
+ And I open the incremental search speedbar
165
+ And I type "Ba." into the "Find" field in the speedbar
166
+ Then there should not be any text selected
167
+ When I check "Regex" in the speedbar
168
+ Then the selected text should be "Bar"
169
+ When I open the incremental search speedbar
170
+ Then the selected text should be "Baz"
171
+
172
+ Scenario: Should not match case by default
173
+ When I replace the contents with "Foo\nBar\nBaz"
174
+ And I move the cursor to 0
175
+ And I open the incremental search speedbar
176
+ And I type "foo" into the "Find" field in the speedbar
177
+ Then the selected text should be "Foo"
178
+
179
+ Scenario: Should not match case with regex by default
180
+ When I replace the contents with "Foo\nBar\nBaz"
181
+ And I move the cursor to 0
182
+ And I open the incremental search speedbar
183
+ And I type "fo." into the "Find" field in the speedbar
184
+ Then there should not be any text selected
185
+ When I check "Regex" in the speedbar
186
+ Then the selected text should be "Foo"
187
+
188
+ Scenario: Should match case if requested
189
+ When I replace the contents with "Foo\nBar\nBaz"
190
+ And I move the cursor to 0
191
+ And I open the incremental search speedbar
192
+ And I type "foo" into the "Find" field in the speedbar
193
+ Then the selected text should be "Foo"
194
+ When I check "Match case" in the speedbar
195
+ Then there should not be any text selected
196
+ When I type "Foo" into the "Find" field in the speedbar
197
+ Then the selected text should be "Foo"
198
+
199
+ Scenario: Should match case if requested with regex
200
+ When I replace the contents with "Foo\nBar\nBaz"
201
+ And I move the cursor to 0
202
+ And I open the incremental search speedbar
203
+ And I check "Regex" in the speedbar
204
+ And I type "fo." into the "Find" field in the speedbar
205
+ Then the selected text should be "Foo"
206
+ When I check "Match case" in the speedbar
207
+ Then there should not be any text selected
208
+
209
+ Scenario: Repeat incremental search with wrap around
210
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
211
+ And I move the cursor to 0
212
+ And I open the incremental search speedbar
213
+ And I type "Foo" into the "Find" field in the speedbar
214
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
215
+ And the selected text should be "Foo"
216
+ And the selection range should be from 0 to 3
217
+ When I open the incremental search speedbar
218
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
219
+ And the selected text should be "Foo"
220
+ And the selection range should be from 8 to 11
221
+ When I open the incremental search speedbar
222
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
223
+ And the selected text should be "Foo"
224
+ And the selection range should be from 0 to 3
225
+
226
+ Scenario: Repeat incremental search without wrap around
227
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
228
+ And I move the cursor to 0
229
+ And I open the incremental search speedbar
230
+ And I uncheck "Wrap around" in the speedbar
231
+ And I type "Foo" into the "Find" field in the speedbar
232
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
233
+ And the selected text should be "Foo"
234
+ And the selection range should be from 0 to 3
235
+ When I open the incremental search speedbar
236
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
237
+ And the selected text should be "Foo"
238
+ And the selection range should be from 8 to 11
239
+ When I open the incremental search speedbar
240
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
241
+ And there should not be any text selected
242
+
243
+ Scenario: Find next with wrap around
244
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
245
+ And I move the cursor to 0
246
+ And I open the incremental search speedbar
247
+ And I type "Foo" into the "Find" field in the speedbar
248
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
249
+ And the selected text should be "Foo"
250
+ And the selection range should be from 0 to 3
251
+ When I run the command Redcar::DocumentSearch::DoFindNextCommand
252
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
253
+ And the selected text should be "Foo"
254
+ And the selection range should be from 8 to 11
255
+ When I run the command Redcar::DocumentSearch::DoFindNextCommand
256
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
257
+ And the selected text should be "Foo"
258
+ And the selection range should be from 0 to 3
259
+
260
+ Scenario: Find next without wrap around
261
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
262
+ And I move the cursor to 0
263
+ And I open the incremental search speedbar
264
+ And I uncheck "Wrap around" in the speedbar
265
+ And I type "foo" into the "Find" field in the speedbar
266
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
267
+ And the selected text should be "Foo"
268
+ And the selection range should be from 0 to 3
269
+ When I run the command Redcar::DocumentSearch::DoFindNextCommand
270
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
271
+ And the selected text should be "Foo"
272
+ And the selection range should be from 8 to 11
273
+ When I run the command Redcar::DocumentSearch::DoFindNextCommand
274
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
275
+ And there should not be any text selected
276
+
277
+ Scenario: Find previous with wrap around by default
278
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
279
+ And I move the cursor to 18
280
+ And I open the incremental search speedbar
281
+ And I type "foo" into the "Find" field in the speedbar
282
+ Then the selected text should be "Foo"
283
+ And the selection range should be from 0 to 3
284
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
285
+ Then the selected text should be "Foo"
286
+ And the selection range should be from 8 to 11
287
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
288
+ Then the selected text should be "Foo"
289
+ And the selection range should be from 0 to 3
290
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
291
+ Then the selected text should be "Foo"
292
+ And the selection range should be from 8 to 11
293
+
294
+ Scenario: Find previous without wrap around
295
+ When I replace the contents with "Foo\nBar Foo\nHmm\nBaz"
296
+ And I move the cursor to 18
297
+ And I open the incremental search speedbar
298
+ And I uncheck "Wrap around" in the speedbar
299
+ And I type "Foo" into the "Find" field in the speedbar
300
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
301
+ And there should not be any text selected
302
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
303
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
304
+ And the selected text should be "Foo"
305
+ And the selection range should be from 8 to 11
306
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
307
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
308
+ And the selected text should be "Foo"
309
+ And the selection range should be from 0 to 3
310
+ When I run the command Redcar::DocumentSearch::DoFindPreviousCommand
311
+ Then the contents should be "Foo\nBar Foo\nHmm\nBaz"
312
+ And there should not be any text selected
313
+
314
+ Scenario: Should scroll vertically to the match
315
+ When I replace the contents with 100 lines of "xxx" then "Foo"
316
+ And I scroll to the top of the document
317
+ And I move the cursor to 0
318
+ And I open the incremental search speedbar
319
+ And I type "foo" into the "Find" field in the speedbar
320
+ Then the selected text should be "Foo"
321
+ And line number 100 should be visible
322
+
323
+ Scenario: "Should scroll horizontally to the match"
324
+ When I replace the contents with 300 "x" then "Foo"
325
+ And I move the cursor to 0
326
+ And I open the incremental search speedbar
327
+ And I type "foo" into the "Find" field in the speedbar
328
+ Then the selected text should be "Foo"
329
+ And horizontal offset 302 should be visible
330
+
331
+ Scenario: Should not reopen with the same text as the previous search
332
+ When I open the incremental search speedbar
333
+ And I type "foo" into the "Find" field in the speedbar
334
+ And I close the speedbar
335
+ And I open the incremental search speedbar
336
+ Then the "Find" field in the speedbar should have text ""
337
+
338
+ Scenario: Should not initialize query with the currently selected text
339
+ When I replace the contents with "Flux\nBar\nFoo"
340
+ And I move the cursor to 0
341
+ And I select from 0 to 4
342
+ And I open the incremental search speedbar
343
+ Then the "Find" field in the speedbar should have text ""
344
+
345
+ Scenario: Search for a word should start from the start of a selection
346
+ When I replace the contents with "Foo\nBar\nBaz"
347
+ And I select from 5 to 8
348
+ And I open the incremental search speedbar
349
+ And I type "Ba" into the "Find" field in the speedbar
350
+ Then the selected text should be "Ba"
351
+ And the selection should be on line 2
@@ -8,13 +8,13 @@ Feature: Replace in file
8
8
  Scenario: Open replace speedbar
9
9
  When I replace the contents with "Foo\nBar\nBaz"
10
10
  And I move the cursor to 0
11
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
12
- Then the DocumentSearch::FindAndReplaceSpeedbar speedbar should be open
11
+ And I open the find and replace speedbar
12
+ Then I should see the find and replace speedbar
13
13
 
14
14
  Scenario: Replace next occurrence on the same line
15
15
  When I replace the contents with "Foo\nBar Rab Rab\nBaz"
16
16
  And I move the cursor to 4
17
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
17
+ And I open the find and replace speedbar
18
18
  And I type "Rab" into the "Find" field in the speedbar
19
19
  And I type "RABBIT" into the "Replace" field in the speedbar
20
20
  And I press "Replace && Find" in the speedbar
@@ -25,7 +25,7 @@ Feature: Replace in file
25
25
  Scenario: Replace next occurrence on the same line twice
26
26
  When I replace the contents with "Foo\nBar Rab Rab\nBaz"
27
27
  And I move the cursor to 4
28
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
28
+ And I open the find and replace speedbar
29
29
  And I type "Rab" into the "Find" field in the speedbar
30
30
  And I type "RAB" into the "Replace" field in the speedbar
31
31
  And I press "Replace && Find" in the speedbar
@@ -37,7 +37,7 @@ Feature: Replace in file
37
37
  Scenario: Replace next occurrence
38
38
  When I replace the contents with "Foo\nBar\nBaz\nBar\nQux"
39
39
  And I move the cursor to 0
40
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
40
+ And I open the find and replace speedbar
41
41
  And I type "Bar" into the "Find" field in the speedbar
42
42
  And I type "Rab" into the "Replace" field in the speedbar
43
43
  And I press "Replace && Find" in the speedbar
@@ -48,7 +48,7 @@ Feature: Replace in file
48
48
  Scenario: Replace next occurrence twice
49
49
  When I replace the contents with "Foo\nBar\nBaz\nBar\nQux"
50
50
  And I move the cursor to 0
51
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
51
+ And I open the find and replace speedbar
52
52
  And I type "Bar" into the "Find" field in the speedbar
53
53
  And I type "Rab" into the "Replace" field in the speedbar
54
54
  And I press "Replace && Find" in the speedbar
@@ -60,7 +60,7 @@ Feature: Replace in file
60
60
  Scenario: Replace next occurrence wraps
61
61
  When I replace the contents with "Foo\nBar\nBaz"
62
62
  And I move the cursor to 8
63
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
63
+ And I open the find and replace speedbar
64
64
  And I type "Bar" into the "Find" field in the speedbar
65
65
  And I type "Rab" into the "Replace" field in the speedbar
66
66
  When I press "Replace && Find" in the speedbar
@@ -70,7 +70,7 @@ Feature: Replace in file
70
70
  Scenario: Replace all replaces one
71
71
  When I replace the contents with "Foo\nBar\nBaz"
72
72
  And I move the cursor to 0
73
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
73
+ And I open the find and replace speedbar
74
74
  And I type "Bar" into the "Find" field in the speedbar
75
75
  And I type "Rab" into the "Replace" field in the speedbar
76
76
  When I press "Replace All" in the speedbar
@@ -81,7 +81,7 @@ Feature: Replace in file
81
81
  Scenario: Replace all replaces two
82
82
  When I replace the contents with "Foo\nBar\nBaz\nBar\nQux"
83
83
  And I move the cursor to 0
84
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
84
+ And I open the find and replace speedbar
85
85
  And I type "Bar" into the "Find" field in the speedbar
86
86
  And I type "Rab" into the "Replace" field in the speedbar
87
87
  When I press "Replace All" in the speedbar
@@ -91,7 +91,7 @@ Feature: Replace in file
91
91
 
92
92
  Scenario: Replace all replaces two on the same line
93
93
  When I replace the contents with "abcabc"
94
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
94
+ And I open the find and replace speedbar
95
95
  And I type "bc" into the "Find" field in the speedbar
96
96
  And I type "xx" into the "Replace" field in the speedbar
97
97
  When I press "Replace All" in the speedbar
@@ -99,7 +99,7 @@ Feature: Replace in file
99
99
 
100
100
  Scenario: Replace all replaces overlapping occurences on the same line
101
101
  When I replace the contents with "deedeedeed"
102
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
102
+ And I open the find and replace speedbar
103
103
  And I type "deed" into the "Find" field in the speedbar
104
104
  And I type "misdeed" into the "Replace" field in the speedbar
105
105
  When I press "Replace All" in the speedbar
@@ -107,7 +107,7 @@ Feature: Replace in file
107
107
 
108
108
  Scenario: Replace all is a single undo action
109
109
  When I replace the contents with "abcabc"
110
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
110
+ And I open the find and replace speedbar
111
111
  And I type "bc" into the "Find" field in the speedbar
112
112
  And I type "xx" into the "Replace" field in the speedbar
113
113
  When I press "Replace All" in the speedbar
@@ -118,7 +118,7 @@ Feature: Replace in file
118
118
  Scenario: Replace next occurrence test bug
119
119
  When I replace the contents with "the\n* Speedbars have access to the properties of the widgets in them."
120
120
  And I move the cursor to 0
121
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
121
+ And I open the find and replace speedbar
122
122
  And I type "the" into the "Find" field in the speedbar
123
123
  And I type "THE" into the "Replace" field in the speedbar
124
124
  And I press "Replace && Find" in the speedbar
@@ -138,7 +138,7 @@ Feature: Replace in file
138
138
  Scenario: Replace regex with back-references
139
139
  When I replace the contents with "Curry chicken"
140
140
  And I move the cursor to 0
141
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
141
+ And I open the find and replace speedbar
142
142
  And I choose "Regex" in the "query_type" field in the speedbar
143
143
  And I type "(\w+) chicken" into the "Find" field in the speedbar
144
144
  And I type "\1 beef" into the "Replace" field in the speedbar
@@ -148,7 +148,7 @@ Feature: Replace in file
148
148
  Scenario: Replace should move past the current replacement if the query is a substring of the replacement
149
149
  When I replace the contents with "foo\nfoo\nfoo"
150
150
  And I move the cursor to 0
151
- And I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
151
+ And I open the find and replace speedbar
152
152
  And I type "foo" into the "Find" field in the speedbar
153
153
  And I type "foobar" into the "Replace" field in the speedbar
154
154
  And I press "Replace && Find" in the speedbar
@@ -161,7 +161,7 @@ Feature: Replace in file
161
161
  Scenario: The Search-and-Replace Speedbar should get initialized with the currently selected text
162
162
  When I replace the contents with "Foo\nBar\nFoo"
163
163
  And I select from 4 to 7
164
- When I run the command DocumentSearch::FindAndReplaceSpeedbarCommand
164
+ When I open the find and replace speedbar
165
165
  Then the "Find" field in the speedbar should have text "Bar"
166
166
  When I type "Foo" into the "Replace" field in the speedbar
167
167
  And I press "Replace && Find" in the speedbar