diff options
| author | Marc Jakobi <marc.jakobi@tiko.energy> | 2023-10-05 19:04:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-05 20:04:46 +0300 |
| commit | 6276cd9d41a56758bc48b433c99b8f9e345a3f2d (patch) | |
| tree | 0595cb1b93e0a2fc479e937b2e902098661923a5 /tests/query | |
| parent | Update parsers: c, comment, glimmer, json, liquidsoap, rst, sql, tsx, typescr... (diff) | |
| download | nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar.gz nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar.bz2 nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar.lz nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar.xz nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.tar.zst nvim-treesitter-6276cd9d41a56758bc48b433c99b8f9e345a3f2d.zip | |
fix(haskell): highlight fixes (#5470)
* fix(haskell): highlight fixes + merge qualified/unqualified queries
* fix(haskell): lambda params + add exp_record to function.call args
* style: apply PR suggestions
Diffstat (limited to 'tests/query')
| -rw-r--r-- | tests/query/highlights/haskell/test.hs | 128 |
1 files changed, 122 insertions, 6 deletions
diff --git a/tests/query/highlights/haskell/test.hs b/tests/query/highlights/haskell/test.hs index e934e4606..8c9082c1a 100644 --- a/tests/query/highlights/haskell/test.hs +++ b/tests/query/highlights/haskell/test.hs @@ -20,6 +20,11 @@ import qualified Data.Map as Map -- ^ @namespace import qualified Chronos -- ^ @namespace +import qualified Chronos as C + -- ^ @constructor + -- ^ @namespace +import FooMod (BarTy (barField)) + -- ^ @field data ADT -- ^ @keyword @@ -32,6 +37,10 @@ data ADT -- ^ @keyword -- ^ @type -- ^ @type +mkA x = A x + -- ^ @variable +mkAQualified x = SomeModule.A x + -- ^ @variable class Ord a => PartialOrd a -- ^ @type @@ -56,6 +65,10 @@ newtype Rec -- ^ @punctuation.bracket deriving Eq -- ^ @type +recordWildCard Rec { field } = field + -- ^ @field +recordDotSyntax rec = rec.field + -- ^ @field main :: IO () -- ^ @function @@ -76,6 +89,10 @@ someFunc0 x = someFunc1 x someFunc1 _ = 5 -- ^ @function -- ^ @number +scopedTypeParam (x :: Int) = someFunc x + -- ^ @parameter +scopedTypeParam (Just x :: Int) = someFunc x + -- ^ @parameter someInfix :: Integral a => a -> Double -- ^ @type @@ -88,12 +105,36 @@ someInfix x = fromIntegral x `myAdd` floatVal -- ^ @operator -- ^ @variable where + myAdd :: Num a => a -> a + -- ^ @function myAdd x y = x + y -- ^ @variable -- ^ @variable + floatVal :: Double + -- ^ @variable floatVal = 5.5 -- ^ @variable -- ^ @float + intVal :: Int + -- ^ @variable + intVal = getInt 5 + -- ^ @variable + boolVal :: Bool + -- ^ @variable + boolVal = bool False True $ 1 + 2 == 3 + -- ^ @variable + isInt :: Either Double Int -> Bool + -- ^ @function + isInt eith@Left{} = False + -- ^ @parameter + isInt eith@(Left x) = False + -- ^ @function + -- ^ @parameter + isInt (Left x) = False + -- ^ @parameter + isInt (Right _) = True + -- ^ @function + someIOaction :: IO () -- ^ @function @@ -104,6 +145,8 @@ someIOaction = do -- ^ @namespace -- ^ @function.call -- ^ @operator + _ <- someFunc0 =<< someIOAction + -- ^ @function.call let bar = SomeModule.doSomething $ "a" "b" -- ^ @variable -- ^ @namespace @@ -114,6 +157,15 @@ someIOaction = do -- ^ @parameter -- ^ @variable -- ^ @variable + gunc x y = func x $ y + 7 + -- ^ @variable + -- ^ @variable + when foo $ putStrLn $ T.showt =<< bar + -- ^ @function.call + -- ^ @variable + -- ^ @function.call + -- ^ @function.call + pure $ func 1 2 -- ^ @function.call -- ^ @function.call @@ -132,6 +184,12 @@ getLambda x = \y -> x `SomeModule.someInfix` y -- ^ @parameter -- ^ @namespace -- ^ @operator +lambdaTyped = \(y :: Int) -> x + -- ^ @parameter +lambdaPattern = \(Just x) -> x + -- ^ @parameter +lambdaPatternTyped = \(Just x :: Int) -> x + -- ^ @parameter isVowel = (`elem` "AEIOU") -- ^ @operator @@ -149,13 +207,71 @@ quasiQuotedString = [qq|Some string|] -- ^ @variable -- ^ @function.call -- ^ @string - -higherOrderFn f x = f x - -- ^ @function - -- ^ @variable +quasiQuotedString2 = [SomeModule.qq|Some string|] + -- ^ @namespace + -- ^ @function.call composition f g = f . g - -- ^ @function - -- ^ @function -- ^ @function -- ^ @function +qualifiedComposition = SomeModule.f . SomeModule.g + -- ^ @function + -- ^ @function +takeMVarOrThrow = evaluate <=< takeMVar + -- ^ @function + -- ^ @function +modifyMVarOrThrow v f = modifyMVar v $ f >=> evaluate + -- ^ @variable + -- ^ @function + -- ^ @function +assertNonEmpty xs = xs `shouldSatisfy` not . null + -- ^ @variable + -- ^ @function + -- ^ @function + +param1 |*| param2 = Qu $ param1 * param2 +-- ^ @parameter + -- ^ @parameter +(param1 :: Int) |*| (param2 :: Int) = Qu $ param1 * param2 +-- ^ @parameter + -- ^ @parameter +(Qu a) |/| (SomeModule.Qu b) = a / b + -- ^ @parameter + -- ^ @parameter +(Qu a :: Int) |/| (SomeModule.Qu b :: Int) = a / b + -- ^ @parameter + -- ^ @parameter +(Qu a, b, c :: Int) |/| x = undefined + -- ^ @parameter + -- ^ @parameter + -- ^ @parameter +[Qu a, b, c :: Int] >< x = undefined + -- ^ @parameter + -- ^ @parameter + -- ^ @parameter +listParam [a, b :: Int, Just c] = undefined + -- ^ @parameter + -- ^ @parameter + -- ^ @parameter +tupleParam (a :: Int, b, Just c) = undefined + -- ^ @parameter + -- ^ @parameter + -- ^ @parameter +listLambda = \[a, a :: Int, Just c] -> undefined + -- ^ @parameter + -- ^ @parameter + -- ^ @parameter +tupleLambda = \(a, b :: Int, Just c) -> undefined + -- ^ @parameter + -- ^ @parameter +nestedDestructure (Left (Just a)) = undefined + -- ^ @parameter +typeApplication x y = someFun @ty x y + -- ^ @variable + -- ^ @variable +encrypt key pass = encrypt (defaultOAEPParams SHA1) key pass + -- ^ @variable + -- ^ @variable +recordUpdate x y rec = someFun rec {field = 5} x y + -- ^ @variable + -- ^ @variable |
