3
3
import Control.Exception (throw )
4
4
import Control.Lens ((^.) )
5
5
import Data.Maybe (fromJust )
6
+ import Data.String.Interpolate (__i )
6
7
import Data.Text (Text )
7
8
import qualified Data.Text as T
8
9
import Development.IDE.Plugin.Completions.Types (PosPrefixInfo (PosPrefixInfo ))
22
23
" signatureHelp"
23
24
[ mkTest
24
25
" 1 parameter"
25
- [trimming |
26
+ [__i |
26
27
f :: Int -> Int
27
28
f = _
28
29
x = f 1
39
40
],
40
41
mkTest
41
42
" 2 parameters"
42
- [trimming |
43
+ [__i |
43
44
f :: Int -> Int -> Int
44
45
f = _
45
46
x = f 1 2
52
53
],
53
54
mkTest
54
55
" 3 parameters"
55
- [trimming |
56
+ [__i |
56
57
f :: Int -> Int -> Int -> Int
57
58
f = _
58
59
x = f 1 2 3
65
66
],
66
67
mkTest
67
68
" parentheses"
68
- [trimming |
69
+ [__i |
69
70
f :: Int -> Int -> Int
70
71
f = _
71
72
x = (f 1) 2
80
81
],
81
82
mkTest
82
83
" newline"
83
- [trimming |
84
+ [__i |
84
85
f :: Int -> Int -> Int
85
86
f = _
86
87
x =
@@ -106,7 +107,7 @@ main =
106
107
],
107
108
mkTest
108
109
" nested"
109
- [trimming |
110
+ [__i |
110
111
f :: Int -> Int -> Int
111
112
f = _
112
113
g :: Int -> Int
@@ -125,7 +126,7 @@ main =
125
126
],
126
127
mkTest
127
128
" higher-order function"
128
- [trimming |
129
+ [__i |
129
130
f :: (Int -> Int) -> Int -> Int
130
131
f = _
131
132
x = f (+ 1) 2
@@ -136,7 +137,7 @@ main =
136
137
],
137
138
mkTest
138
139
" type constraint"
139
- [trimming |
140
+ [__i |
140
141
f :: (Num a) => a -> a -> a
141
142
f = _
142
143
x = f 1 2
@@ -148,7 +149,7 @@ main =
148
149
],
149
150
mkTest
150
151
" type constraint with kind signatures"
151
- [trimming |
152
+ [__i |
152
153
x :: IO Bool
153
154
x = pure True
154
155
^ ^
@@ -158,7 +159,7 @@ main =
158
159
],
159
160
mkTest
160
161
" 2 type constraints"
161
- [trimming |
162
+ [__i |
162
163
f :: forall a. (Eq a, Num a) => a -> a -> a
163
164
f = _
164
165
x = f True
@@ -169,7 +170,7 @@ main =
169
170
],
170
171
mkTest
171
172
" dynamic function"
172
- [trimming |
173
+ [__i |
173
174
f :: Int -> Int -> Int
174
175
f = _
175
176
g :: Int -> Int -> Int
@@ -180,7 +181,7 @@ main =
180
181
(replicate 18 Nothing ),
181
182
mkTest
182
183
" very long type"
183
- [trimming |
184
+ [__i |
184
185
f :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int
185
186
f = _
186
187
x = f 1
@@ -191,7 +192,7 @@ main =
191
192
],
192
193
mkTest
193
194
" very long type with type constraint"
194
- [trimming |
195
+ [__i |
195
196
f :: Num abcdefghijklmn => abcdefghijklmn -> abcdefghijklmn -> abcdefghijklmn -> abcdefghijklmn -> abcdefghijklmn
196
197
f = _
197
198
x = f 1
@@ -202,7 +203,7 @@ main =
202
203
],
203
204
mkTest
204
205
" middle =>"
205
- [trimming |
206
+ [__i |
206
207
f :: Eq a => a -> Num b => b -> b
207
208
f = _
208
209
x = f 1 True
@@ -220,7 +221,7 @@ main =
220
221
],
221
222
mkTest
222
223
" => in argument"
223
- [trimming |
224
+ [__i |
224
225
f :: Eq a => a -> (Num b => b -> b) -> a
225
226
f = _
226
227
x = f 1
@@ -241,7 +242,7 @@ main =
241
242
),
242
243
mkTest
243
244
" RankNTypes(forall in middle)"
244
- [trimming |
245
+ [__i |
245
246
f :: Maybe a -> forall b. (a, b) -> b
246
247
f = _
247
248
x1 = f Nothing
@@ -258,7 +259,7 @@ main =
258
259
],
259
260
mkTest
260
261
" RankNTypes(forall in middle), another"
261
- [trimming |
262
+ [__i |
262
263
f :: l -> forall a. a -> a
263
264
f = _
264
265
x = f 1
@@ -269,7 +270,7 @@ main =
269
270
],
270
271
mkTest
271
272
" RankNTypes(forall in middle), again"
272
- [trimming |
273
+ [__i |
273
274
f :: a -> forall a. a -> a
274
275
f = _
275
276
x = f 1
@@ -280,8 +281,8 @@ main =
280
281
],
281
282
mkTest
282
283
" LinearTypes"
283
- [trimming |
284
- {-# LANGUAGE LinearTypes #-}
284
+ [__i |
285
+ {-\ # LANGUAGE LinearTypes \ #-}
285
286
f :: (a -> b) %1 -> a -> b
286
287
f = _
287
288
x1 = f negate
@@ -295,7 +296,7 @@ main =
295
296
],
296
297
mkTest
297
298
" function documentation"
298
- [trimming |
299
+ [__i |
299
300
-- |The 'f' function does something to a bool value.
300
301
f :: Bool -> Bool
301
302
f = _
@@ -307,7 +308,7 @@ main =
307
308
],
308
309
mkTest
309
310
" function and arguments documentation"
310
- [trimming |
311
+ [__i |
311
312
-- |Doc for function 'f'.
312
313
f ::
313
314
-- | The first 'Bool' argument
@@ -325,7 +326,7 @@ main =
325
326
],
326
327
mkTest
327
328
" imported function with no documentation"
328
- [trimming |
329
+ [__i |
329
330
x = even 1
330
331
^ ^
331
332
|]
@@ -334,7 +335,7 @@ main =
334
335
],
335
336
mkTest
336
337
" imported function with argument documentation"
337
- [trimming |
338
+ [__i |
338
339
import Language.Haskell.TH.Lib (mkBytes)
339
340
x = mkBytes _
340
341
^ ^
@@ -344,7 +345,7 @@ main =
344
345
],
345
346
mkTest
346
347
" TypeApplications"
347
- [trimming |
348
+ [__i |
348
349
f :: a -> b -> c
349
350
f = _
350
351
x = f @Int @_ 1 True
0 commit comments