@@ -14,14 +14,15 @@ import Docs.Search.PackageIndex (PackageResult)
14
14
import Docs.Search.SearchResult (ResultInfo (..), SearchResult (..))
15
15
import Docs.Search.TypeDecoder (Constraint (..), FunDep (..), FunDeps (..), Kind (..), QualifiedName (..), Type (..), TypeArgument (..), joinForAlls , joinRows )
16
16
import Docs.Search.TypeIndex (TypeIndex )
17
+ import Docs.Search.Types (ModuleName (..), packageInfoToString )
17
18
18
19
import Prelude
19
20
20
21
import Data.Array ((!!))
21
22
import Data.Array as Array
22
23
import Data.List as List
23
24
import Data.Maybe (Maybe (..), isJust , fromMaybe )
24
- import Data.Newtype (wrap )
25
+ import Data.Newtype (wrap , unwrap )
25
26
import Data.String.CodeUnits (stripSuffix ) as String
26
27
import Data.String.Common (null , trim ) as String
27
28
import Data.String.Pattern (Pattern (..)) as String
@@ -63,7 +64,7 @@ data Query a
63
64
64
65
65
66
data Action
66
- = SearchResultClicked String
67
+ = SearchResultClicked ModuleName
67
68
| MoreResultsRequested
68
69
69
70
@@ -145,7 +146,7 @@ handleAction = case _ of
145
146
location <- Window .location window
146
147
pathname <- Location .pathname location
147
148
pure $ isJust $
148
- String .stripSuffix (String.Pattern $ moduleName <> " .html" ) pathname
149
+ String .stripSuffix (String.Pattern $ unwrap moduleName <> " .html" ) pathname
149
150
150
151
when onThisPage do
151
152
showPageContents
@@ -254,7 +255,7 @@ renderPackageResult { name, description, repository } =
254
255
, HH .a [ HP .class_ (wrap " result__link" )
255
256
, HP .href $ fromMaybe " " repository # homePageFromRepository
256
257
]
257
- [ HH .text name ]
258
+ [ HH .text $ unwrap name ]
258
259
]
259
260
]
260
261
] <>
@@ -280,9 +281,9 @@ renderModuleResult { name, package } =
280
281
[ HH .text " M" ]
281
282
282
283
, HH .a [ HP .class_ (wrap " result__link" )
283
- , HP .href $ name <> " .html"
284
+ , HP .href $ unwrap name <> " .html"
284
285
]
285
- [ HH .text name ]
286
+ [ HH .text $ unwrap name ]
286
287
]
287
288
]
288
289
]
@@ -300,7 +301,7 @@ renderSearchResult markdownIt (SearchResult result) =
300
301
[ HH .a [ HP .class_ (wrap " result__link" )
301
302
, HE .onClick $ const $ Just $ SearchResultClicked result.moduleName
302
303
, HP .href $
303
- result.moduleName <> " .html#" <>
304
+ unwrap result.moduleName <> " .html#" <>
304
305
result.hashAnchor <> " :" <> result.name
305
306
]
306
307
[ HH .text result.name ]
@@ -321,7 +322,7 @@ renderSearchResult markdownIt (SearchResult result) =
321
322
, HP .title " Package"
322
323
]
323
324
[ HH .text " P" ]
324
- , HH .text result.packageName
325
+ , HH .text $ packageInfoToString result.packageInfo
325
326
]
326
327
327
328
, HH .span [ HP .class_ (wrap " result__actions__item" ) ]
@@ -331,7 +332,7 @@ renderSearchResult markdownIt (SearchResult result) =
331
332
, HP .title " Module"
332
333
]
333
334
[ HH .text " M" ]
334
- , HH .text result.moduleName
335
+ , HH .text $ unwrap result.moduleName
335
336
]
336
337
]
337
338
]
@@ -341,7 +342,7 @@ renderResultType
341
342
:: forall a rest
342
343
. { info :: ResultInfo
343
344
, name :: String
344
- , moduleName :: String
345
+ , moduleName :: ModuleName
345
346
| rest
346
347
}
347
348
-> Array (HH.HTML a Action )
@@ -371,7 +372,7 @@ renderResultType result =
371
372
372
373
renderValueSignature
373
374
:: forall a rest
374
- . { moduleName :: String
375
+ . { moduleName :: ModuleName
375
376
, name :: String
376
377
| rest
377
378
}
@@ -391,7 +392,7 @@ renderTypeClassSignature
391
392
, arguments :: Array TypeArgument
392
393
, superclasses :: Array Constraint
393
394
}
394
- -> { name :: String , moduleName :: String | rest }
395
+ -> { name :: String , moduleName :: ModuleName | rest }
395
396
-> Array (HH.HTML a Action )
396
397
renderTypeClassSignature { fundeps, arguments, superclasses } { name, moduleName } =
397
398
[ keyword " class"
@@ -520,14 +521,14 @@ renderType = case _ of
520
521
TypeOp qname -> renderQualifiedName true TypeLevel qname
521
522
522
523
TypeApp (TypeApp (TypeConstructor
523
- (QualifiedName { moduleName : [ " Prim" ]
524
+ (QualifiedName { moduleNameParts : [ " Prim" ]
524
525
, name: " Function" })) t1) t2 ->
525
526
HH .span_ [ renderType t1
526
527
, syntax " -> "
527
528
, renderType t2
528
529
]
529
530
530
- TypeApp (TypeConstructor (QualifiedName { moduleName : [ " Prim" ]
531
+ TypeApp (TypeConstructor (QualifiedName { moduleNameParts : [ " Prim" ]
531
532
, name: " Record" }))
532
533
row ->
533
534
renderRow false row
@@ -635,6 +636,9 @@ renderRow asRow =
635
636
opening = if asRow then " ( " else " { "
636
637
closing = if asRow then " )" else " }"
637
638
639
+ primRecord :: QualifiedName
640
+ primRecord = QualifiedName { moduleNameParts: [ " Prim" ], name: " Record" }
641
+
638
642
639
643
renderConstraint
640
644
:: forall a
@@ -652,18 +656,18 @@ renderQualifiedName
652
656
-> DeclLevel
653
657
-> QualifiedName
654
658
-> HH.HTML a Action
655
- renderQualifiedName isInfix level (QualifiedName { moduleName , name })
659
+ renderQualifiedName isInfix level (QualifiedName { moduleNameParts , name })
656
660
= if isBuiltIn then
657
661
HH .text name
658
662
else
659
663
HH .a [ HE .onClick $ const $ Just $
660
- SearchResultClicked moduleNameString
661
- , makeHref level isInfix moduleNameString name
664
+ SearchResultClicked $ moduleName
665
+ , makeHref level isInfix moduleName name
662
666
]
663
667
[ HH .text name ]
664
668
where
665
- moduleNameString = Array .intercalate " ." moduleName
666
- isBuiltIn = moduleName !! 0 == Just " Prim"
669
+ moduleName = ModuleName $ Array .intercalate " ." $ moduleNameParts
670
+ isBuiltIn = moduleNameParts !! 0 == Just " Prim"
667
671
668
672
669
673
renderKind
@@ -681,20 +685,16 @@ makeHref
681
685
:: forall t rest
682
686
. DeclLevel
683
687
-> Boolean
684
- -> String
688
+ -> ModuleName
685
689
-> String
686
690
-> HH.IProp ( href :: String | rest ) t
687
691
makeHref level isInfix moduleName name =
688
692
HP .href $
689
- moduleName <> " .html#" <>
693
+ unwrap moduleName <> " .html#" <>
690
694
declLevelToHashAnchor level <> " :" <>
691
695
if isInfix then " type (" <> name <> " )" else name
692
696
693
697
694
- primRecord :: QualifiedName
695
- primRecord = QualifiedName { moduleName: [ " Prim" ], name: " Record" }
696
-
697
-
698
698
keyword
699
699
:: forall a
700
700
. String
0 commit comments