@@ -98,31 +98,39 @@ within empty pragma comment {-# #-} and outside of it."
98
98
(should (eql nil (haskell-completions-grab-pragma-prefix)))))
99
99
100
100
(ert-deftest haskell-completions-grab-pragma-name-prefix-test ()
101
- " Tests the function `haskell-completions-grab-pragma-prefix'
102
- for pragma names completions such as WARNING, LANGUAGE,
103
- DEPRECATED and etc."
101
+ " Tests both `haskell-completions-grab-pragma-prefix' and
102
+ `haskell- completions-grab-prefix' functions for pragma names
103
+ completions such as WARNING, LANGUAGE, DEPRECATED and etc."
104
104
(let ((expected (list 5 8 " LAN" 'haskell-completions-pragma-name-prefix )))
105
105
(with-temp-buffer
106
106
(haskell-mode )
107
107
(goto-char (point-min ))
108
108
(insert " {-# LAN" )
109
109
(should (equal expected (haskell-completions-grab-pragma-prefix)))
110
+ ; ; minimal prefix length
111
+ (should (equal expected (haskell-completions-grab-prefix 3 )))
112
+ (should (eql nil (haskell-completions-grab-prefix 4 )))
110
113
(save-excursion (insert " #-}" ))
111
114
; ; should work in case of closed comment, e.g. {-# LAN| #-}
112
115
(should (equal expected (haskell-completions-grab-pragma-prefix)))
116
+ (should (equal expected (haskell-completions-grab-prefix)))
113
117
; ; pragma function should work in the middle of word
114
118
(backward-char )
115
- (should (not (equal expected (haskell-completions-grab-pragma-prefix)))))
119
+ (should (not (equal expected (haskell-completions-grab-pragma-prefix))))
120
+ ; ; but general function should not
121
+ (should (eql nil (haskell-completions-grab-prefix))))
116
122
(with-temp-buffer
117
123
(haskell-mode )
118
124
(goto-char (point-min ))
119
125
(insert " {-#\n LAN" )
120
126
; ; should work for multiline case
121
- (should (equal expected (haskell-completions-grab-pragma-prefix))))))
127
+ (should (equal expected (haskell-completions-grab-pragma-prefix)))
128
+ (should (equal expected (haskell-completions-grab-prefix))))))
122
129
123
130
(ert-deftest haskell-completions-grab-ghc-options-prefix-test-01 ()
124
- " Tests the function `haskell-completions-grab-pragma-prefix'
125
- for GHC options prefixes."
131
+ " Tests both `haskell-completions-grab-pragma-prefix' and
132
+ `haskell-completions-grab-prefix' functions for GHC options
133
+ prefixes."
126
134
(let (expected)
127
135
(with-temp-buffer
128
136
(haskell-mode )
@@ -131,14 +139,17 @@ for GHC options prefixes."
131
139
(list 5 16 " OPTIONS_GHC" 'haskell-completions-pragma-name-prefix ))
132
140
(insert " {-# OPTIONS_GHC" )
133
141
(should (equal expected (haskell-completions-grab-pragma-prefix)))
142
+ (should (equal expected (haskell-completions-grab-prefix)))
134
143
(insert " --opt1" )
135
144
(setq expected
136
145
(list 17 23 " --opt1" 'haskell-completions-ghc-option-prefix ))
137
146
(should (equal expected (haskell-completions-grab-pragma-prefix)))
147
+ (should (equal expected (haskell-completions-grab-prefix)))
138
148
(insert " -XOpt-2" )
139
149
(setq expected
140
150
(list 27 34 " -XOpt-2" 'haskell-completions-ghc-option-prefix ))
141
151
(should (equal expected (haskell-completions-grab-pragma-prefix)))
152
+ (should (equal expected (haskell-completions-grab-prefix)))
142
153
(save-excursion
143
154
(insert " \n " )
144
155
(insert " \" new-line\" " )
@@ -147,21 +158,32 @@ for GHC options prefixes."
147
158
expected
148
159
(list 35 45 " \" new-line\" " 'haskell-completions-ghc-option-prefix ))
149
160
(should (equal expected (haskell-completions-grab-pragma-prefix)))
150
- (insert " test " )
161
+ (should (equal expected (haskell-completions-grab-prefix)))
162
+ (insert " test" )
163
+ (setq expected
164
+ (list 46 50 " test" 'haskell-completions-ghc-option-prefix ))
165
+ ; ; minimal prefix length
166
+ (should (equal expected (haskell-completions-grab-prefix 4 )))
167
+ (should (eql nil (haskell-completions-grab-prefix 5 )))
168
+ (insert " " )
151
169
(should (eql nil (haskell-completions-grab-pragma-prefix)))
170
+ (should (eql nil (haskell-completions-grab-prefix)))
152
171
(insert " #-}" ))
153
172
; ; should work in case of closed comment, e.g. {-# OPTIONS_GHC xyz| #-}
154
173
(setq expected
155
174
(list 27 34 " -XOpt-2" 'haskell-completions-ghc-option-prefix ))
156
175
(should (equal expected (haskell-completions-grab-pragma-prefix)))
176
+ (should (equal expected (haskell-completions-grab-prefix)))
157
177
(backward-char )
158
178
; ; pragma function should work in the middle of word
159
- (should (not (eql nil (haskell-completions-grab-pragma-prefix)))))))
179
+ (should (not (eql nil (haskell-completions-grab-pragma-prefix))))
180
+ ; ; but general function should not
181
+ (should (eql nil (haskell-completions-grab-prefix))))))
160
182
161
183
(ert-deftest haskell-completions-grab-ghc-options-prefix-test-02 ()
162
- " Tests the function `haskell-completions-grab-pragma-prefix'
163
- for GHC options prefixes. Same tests as above for obsolete
164
- OPTIONS pragma."
184
+ " Tests both `haskell-completions-grab-pragma-prefix' and
185
+ `haskell-completions-grab-prefix' functions for GHC options prefixes. Same
186
+ tests as above for obsolete OPTIONS pragma."
165
187
(let (expected)
166
188
(with-temp-buffer
167
189
(haskell-mode )
@@ -170,14 +192,17 @@ OPTIONS pragma."
170
192
(setq expected
171
193
(list 5 12 " OPTIONS" 'haskell-completions-pragma-name-prefix ))
172
194
(should (equal expected (haskell-completions-grab-pragma-prefix)))
195
+ (should (equal expected (haskell-completions-grab-prefix)))
173
196
(insert " --opt1" )
174
197
(setq expected
175
198
(list 13 19 " --opt1" 'haskell-completions-ghc-option-prefix ))
176
199
(should (equal expected (haskell-completions-grab-pragma-prefix)))
200
+ (should (equal expected (haskell-completions-grab-prefix)))
177
201
(insert " -XOpt-2" )
178
202
(setq expected
179
203
(list 23 30 " -XOpt-2" 'haskell-completions-ghc-option-prefix ))
180
204
(should (equal expected (haskell-completions-grab-pragma-prefix)))
205
+ (should (equal expected (haskell-completions-grab-prefix)))
181
206
(save-excursion
182
207
(insert " \n " )
183
208
(insert " \" new-line\" " )
@@ -186,20 +211,31 @@ OPTIONS pragma."
186
211
expected
187
212
(list 31 41 " \" new-line\" " 'haskell-completions-ghc-option-prefix ))
188
213
(should (equal expected (haskell-completions-grab-pragma-prefix)))
189
- (insert " test " )
214
+ (should (equal expected (haskell-completions-grab-prefix)))
215
+ (insert " test" )
216
+ ; ; minimal prefix length
217
+ (setq expected
218
+ (list 42 46 " test" 'haskell-completions-ghc-option-prefix ))
219
+ (should (equal expected (haskell-completions-grab-prefix 4 )))
220
+ (should (eql nil (haskell-completions-grab-prefix 5 )))
221
+ (insert " " )
190
222
(should (eql nil (haskell-completions-grab-pragma-prefix)))
223
+ (should (eql nil (haskell-completions-grab-prefix)))
191
224
(insert " #-}" ))
192
225
; ; should work in case of closed comment
193
226
(setq expected
194
227
(list 23 30 " -XOpt-2" 'haskell-completions-ghc-option-prefix ))
195
228
(should (equal expected (haskell-completions-grab-pragma-prefix)))
229
+ (should (equal expected (haskell-completions-grab-prefix)))
196
230
(backward-char )
197
231
; ; pragma function should work in the middle of word
198
- (should (not (eql nil (haskell-completions-grab-pragma-prefix)))))))
232
+ (should (not (eql nil (haskell-completions-grab-pragma-prefix))))
233
+ ; ; but general function should not
234
+ (should (eql nil (haskell-completions-grab-prefix))))))
199
235
200
236
(ert-deftest haskell-completions-grab-language-extenstion-prefix-test ()
201
- " Tests both function `haskell-completions-grab-pragma-prefix'
202
- and function `haskell-completions-grab-prefix' for language
237
+ " Tests both `haskell-completions-grab-pragma-prefix' and
238
+ `haskell-completions-grab-prefix' functions for language
203
239
extension prefixes."
204
240
(let (expected)
205
241
(with-temp-buffer
@@ -209,15 +245,18 @@ extension prefixes."
209
245
(setq expected
210
246
(list 5 13 " LANGUAGE" 'haskell-completions-pragma-name-prefix ))
211
247
(should (equal expected (haskell-completions-grab-pragma-prefix)))
248
+ (should (equal expected (haskell-completions-grab-prefix)))
212
249
(insert " Rec" )
213
250
(setq expected
214
251
(list 14 17 " Rec" 'haskell-completions-language-extension-prefix ))
215
252
(should (equal expected (haskell-completions-grab-pragma-prefix)))
253
+ (should (equal expected (haskell-completions-grab-prefix)))
216
254
(insert " , -XOpt-2" )
217
255
(setq
218
256
expected
219
257
(list 22 29 " -XOpt-2" 'haskell-completions-language-extension-prefix ))
220
258
(should (equal expected (haskell-completions-grab-pragma-prefix)))
259
+ (should (equal expected (haskell-completions-grab-prefix)))
221
260
(insert " ,\n " )
222
261
(insert " \" new-line\" " )
223
262
; ; should handle multiline case
@@ -227,96 +266,130 @@ extension prefixes."
227
266
" \" new-line\" "
228
267
'haskell-completions-language-extension-prefix ))
229
268
(should (equal expected (haskell-completions-grab-pragma-prefix)))
269
+ (should (equal expected (haskell-completions-grab-prefix)))
230
270
(insert " -test" )
271
+ ; ; minimal prefix length
272
+ (setq expected
273
+ (list 42 47 " -test" 'haskell-completions-language-extension-prefix ))
274
+ (should (equal expected (haskell-completions-grab-prefix 5 )))
275
+ (should (eql nil (haskell-completions-grab-prefix 6 )))
231
276
(save-excursion (insert " #-}" ))
232
277
; ; should work in case of closed comment
233
278
(setq expected
234
279
(list 42 47 " -test" 'haskell-completions-language-extension-prefix ))
235
280
(should (equal expected (haskell-completions-grab-pragma-prefix)))
281
+ (should (equal expected (haskell-completions-grab-prefix)))
236
282
(backward-char )
237
283
; ; pragma function should work in the middle of the word
238
- (should (not (eql nil (haskell-completions-grab-pragma-prefix)))))))
284
+ (should (not (eql nil (haskell-completions-grab-pragma-prefix))))
285
+ ; ; but general function does not
286
+ (should (eql nil (haskell-completions-grab-prefix))))))
287
+
288
+
239
289
(ert-deftest haskell-completions-grab-identifier-prefix-test ()
240
- " Tests the function
241
- `haskell-completions-grab-identifier- prefix' for arbitrary
242
- haskell identifiers and module identifiers."
290
+ " Tests both `haskell-completions-grab-identifier-prefix' and
291
+ `haskell-completions-grab-prefix' functions for arbitrary haskell
292
+ identifiers and module identifiers."
243
293
(let (expected)
244
294
(with-temp-buffer
245
295
(haskell-mode )
246
296
(should (eql nil (haskell-completions-grab-identifier-prefix)))
297
+ (should (eql nil (haskell-completions-grab-prefix)))
247
298
(insert " import" )
248
299
(setq expected (list 1 7 " import" 'haskell-completions-identifier-prefix ))
249
300
(should (equal expected (haskell-completions-grab-identifier-prefix)))
301
+ (should (equal expected (haskell-completions-grab-prefix)))
250
302
(insert " Da" )
251
303
(setq expected (list 8 10 " Da" 'haskell-completions-module-name-prefix ))
252
304
(should (equal expected (haskell-completions-grab-identifier-prefix)))
305
+ (should (equal expected (haskell-completions-grab-prefix)))
306
+ ; ; minimal length test
307
+ (should (equal expected (haskell-completions-grab-prefix 2 )))
308
+ (should (eql nil (haskell-completions-grab-prefix 3 )))
253
309
(insert " ta." )
254
310
(setq expected
255
311
(list 8 13 " Data." 'haskell-completions-module-name-prefix ))
256
312
(should (equal expected (haskell-completions-grab-identifier-prefix)))
313
+ (should (equal expected (haskell-completions-grab-prefix)))
257
314
(insert " Text (pack" )
258
315
(setq expected (list 19 23 " pack" 'haskell-completions-identifier-prefix ))
259
316
(should (equal expected (haskell-completions-grab-identifier-prefix)))
317
+ (should (equal expected (haskell-completions-grab-prefix)))
260
318
(insert " )" )
261
319
; ; should work when point is at punctuation
262
320
(backward-char )
263
321
(should (equal expected (haskell-completions-grab-identifier-prefix)))
322
+ (should (equal expected (haskell-completions-grab-prefix)))
264
323
(forward-char )
265
324
; ; but should not work after punctuation
266
325
(should (eql nil (haskell-completions-grab-identifier-prefix)))
326
+ (should (eql nil (haskell-completions-grab-prefix)))
267
327
(insert " \n " )
268
328
(insert " import qualified Data.Text as T" )
269
329
(insert " \n\n " )
270
330
; ; should not work at the beginning of a line
271
331
(should (eql nil (haskell-completions-grab-identifier-prefix)))
332
+ (should (eql nil (haskell-completions-grab-prefix)))
272
333
(insert " main" )
273
334
(setq expected (list 58 62 " main" 'haskell-completions-identifier-prefix ))
274
335
(should (equal expected (haskell-completions-grab-identifier-prefix)))
336
+ (should (equal expected (haskell-completions-grab-prefix)))
275
337
(insert " :: IO" )
276
338
(setq expected (list 66 68 " IO" 'haskell-completions-identifier-prefix ))
277
339
(should (equal expected (haskell-completions-grab-identifier-prefix)))
340
+ (should (equal expected (haskell-completions-grab-prefix)))
278
341
(insert " ()\n " )
279
342
(insert " main" )
280
343
(save-excursion
281
344
(insert " = putStrLn" )
282
345
(setq expected
283
346
(list 79 87 " putStrLn" 'haskell-completions-identifier-prefix ))
284
347
(should (equal expected (haskell-completions-grab-identifier-prefix)))
348
+ (should (equal expected (haskell-completions-grab-prefix)))
285
349
(insert " (T." )
286
350
(setq expected (list 89 91 " T." 'haskell-completions-identifier-prefix ))
287
351
(should (equal expected (haskell-completions-grab-identifier-prefix)))
352
+ (should (equal expected (haskell-completions-grab-prefix)))
288
353
(insert " unpack" )
289
354
(setq expected
290
355
(list 89 97 " T.unpack" 'haskell-completions-identifier-prefix ))
291
356
(should (equal expected (haskell-completions-grab-identifier-prefix)))
357
+ (should (equal expected (haskell-completions-grab-prefix)))
292
358
(insert " (T.pack (\" Hello" )
293
359
(setq expected
294
360
(list 108 113 " Hello" 'haskell-completions-general-prefix ))
295
361
(should (equal expected (haskell-completions-grab-identifier-prefix)))
362
+ (should (equal expected (haskell-completions-grab-prefix)))
296
363
(insert " World!\" :: String" )
297
364
(setq expected
298
365
(list 125 131 " String" 'haskell-completions-identifier-prefix ))
299
366
(should (equal expected (haskell-completions-grab-identifier-prefix)))
367
+ (should (equal expected (haskell-completions-grab-prefix)))
300
368
(insert " -- Comment" )
301
369
(setq expected
302
370
(list 135 142 " Comment" 'haskell-completions-general-prefix ))
303
- (should (equal expected (haskell-completions-grab-identifier-prefix))))
371
+ (should (equal expected (haskell-completions-grab-identifier-prefix)))
372
+ (should (equal expected (haskell-completions-grab-prefix))))
304
373
; ; test in the middle of line
305
374
(setq expected (list 72 76 " main" 'haskell-completions-identifier-prefix ))
306
375
(should (equal expected (haskell-completions-grab-identifier-prefix)))
376
+ (should (equal expected (haskell-completions-grab-prefix)))
307
377
(backward-char )
308
378
(setq expected (list 72 75 " mai" 'haskell-completions-identifier-prefix ))
309
- (should (equal expected (haskell-completions-grab-identifier-prefix))))
379
+ (should (equal expected (haskell-completions-grab-identifier-prefix)))
380
+ (should (equal nil (haskell-completions-grab-prefix))))
310
381
; ; qualified imports and "as indentifier" tests
311
382
(with-temp-buffer
312
383
(haskell-mode )
313
384
(insert " import qualified Data.Text" )
314
385
(setq expected
315
386
(list 18 27 " Data.Text" 'haskell-completions-module-name-prefix ))
316
387
(should (equal expected (haskell-completions-grab-identifier-prefix)))
388
+ (should (equal expected (haskell-completions-grab-prefix)))
317
389
(insert " as T" )
318
390
(setq expected (list 31 32 " T" 'haskell-completions-identifier-prefix ))
319
- (should (equal expected (haskell-completions-grab-identifier-prefix))))))
391
+ (should (equal expected (haskell-completions-grab-identifier-prefix)))
392
+ (should (equal expected (haskell-completions-grab-prefix))))))
320
393
321
394
322
395
(provide 'haskell-completions-tests )
0 commit comments