@@ -14,14 +14,15 @@ import Docs.Search.PackageIndex (PackageResult)
1414import Docs.Search.SearchResult (ResultInfo (..), SearchResult (..))
1515import Docs.Search.TypeDecoder (Constraint (..), FunDep (..), FunDeps (..), Kind (..), QualifiedName (..), Type (..), TypeArgument (..), joinForAlls , joinRows )
1616import Docs.Search.TypeIndex (TypeIndex )
17+ import Docs.Search.Types (ModuleName (..), packageInfoToString )
1718
1819import Prelude
1920
2021import Data.Array ((!!))
2122import Data.Array as Array
2223import Data.List as List
2324import Data.Maybe (Maybe (..), isJust , fromMaybe )
24- import Data.Newtype (wrap )
25+ import Data.Newtype (wrap , unwrap )
2526import Data.String.CodeUnits (stripSuffix ) as String
2627import Data.String.Common (null , trim ) as String
2728import Data.String.Pattern (Pattern (..)) as String
@@ -63,7 +64,7 @@ data Query a
6364
6465
6566data Action
66- = SearchResultClicked String
67+ = SearchResultClicked ModuleName
6768 | MoreResultsRequested
6869
6970
@@ -145,7 +146,7 @@ handleAction = case _ of
145146 location <- Window .location window
146147 pathname <- Location .pathname location
147148 pure $ isJust $
148- String .stripSuffix (String.Pattern $ moduleName <> " .html" ) pathname
149+ String .stripSuffix (String.Pattern $ unwrap moduleName <> " .html" ) pathname
149150
150151 when onThisPage do
151152 showPageContents
@@ -254,7 +255,7 @@ renderPackageResult { name, description, repository } =
254255 , HH .a [ HP .class_ (wrap " result__link" )
255256 , HP .href $ fromMaybe " " repository # homePageFromRepository
256257 ]
257- [ HH .text name ]
258+ [ HH .text $ unwrap name ]
258259 ]
259260 ]
260261 ] <>
@@ -280,9 +281,9 @@ renderModuleResult { name, package } =
280281 [ HH .text " M" ]
281282
282283 , HH .a [ HP .class_ (wrap " result__link" )
283- , HP .href $ name <> " .html"
284+ , HP .href $ unwrap name <> " .html"
284285 ]
285- [ HH .text name ]
286+ [ HH .text $ unwrap name ]
286287 ]
287288 ]
288289 ]
@@ -300,7 +301,7 @@ renderSearchResult markdownIt (SearchResult result) =
300301 [ HH .a [ HP .class_ (wrap " result__link" )
301302 , HE .onClick $ const $ Just $ SearchResultClicked result.moduleName
302303 , HP .href $
303- result.moduleName <> " .html#" <>
304+ unwrap result.moduleName <> " .html#" <>
304305 result.hashAnchor <> " :" <> result.name
305306 ]
306307 [ HH .text result.name ]
@@ -321,7 +322,7 @@ renderSearchResult markdownIt (SearchResult result) =
321322 , HP .title " Package"
322323 ]
323324 [ HH .text " P" ]
324- , HH .text result.packageName
325+ , HH .text $ packageInfoToString result.packageInfo
325326 ]
326327
327328 , HH .span [ HP .class_ (wrap " result__actions__item" ) ]
@@ -331,7 +332,7 @@ renderSearchResult markdownIt (SearchResult result) =
331332 , HP .title " Module"
332333 ]
333334 [ HH .text " M" ]
334- , HH .text result.moduleName
335+ , HH .text $ unwrap result.moduleName
335336 ]
336337 ]
337338 ]
@@ -341,7 +342,7 @@ renderResultType
341342 :: forall a rest
342343 . { info :: ResultInfo
343344 , name :: String
344- , moduleName :: String
345+ , moduleName :: ModuleName
345346 | rest
346347 }
347348 -> Array (HH.HTML a Action )
@@ -371,7 +372,7 @@ renderResultType result =
371372
372373renderValueSignature
373374 :: forall a rest
374- . { moduleName :: String
375+ . { moduleName :: ModuleName
375376 , name :: String
376377 | rest
377378 }
@@ -391,7 +392,7 @@ renderTypeClassSignature
391392 , arguments :: Array TypeArgument
392393 , superclasses :: Array Constraint
393394 }
394- -> { name :: String , moduleName :: String | rest }
395+ -> { name :: String , moduleName :: ModuleName | rest }
395396 -> Array (HH.HTML a Action )
396397renderTypeClassSignature { fundeps, arguments, superclasses } { name, moduleName } =
397398 [ keyword " class"
@@ -520,14 +521,14 @@ renderType = case _ of
520521 TypeOp qname -> renderQualifiedName true TypeLevel qname
521522
522523 TypeApp (TypeApp (TypeConstructor
523- (QualifiedName { moduleName : [ " Prim" ]
524+ (QualifiedName { moduleNameParts : [ " Prim" ]
524525 , name: " Function" })) t1) t2 ->
525526 HH .span_ [ renderType t1
526527 , syntax " -> "
527528 , renderType t2
528529 ]
529530
530- TypeApp (TypeConstructor (QualifiedName { moduleName : [ " Prim" ]
531+ TypeApp (TypeConstructor (QualifiedName { moduleNameParts : [ " Prim" ]
531532 , name: " Record" }))
532533 row ->
533534 renderRow false row
@@ -635,6 +636,9 @@ renderRow asRow =
635636 opening = if asRow then " ( " else " { "
636637 closing = if asRow then " )" else " }"
637638
639+ primRecord :: QualifiedName
640+ primRecord = QualifiedName { moduleNameParts: [ " Prim" ], name: " Record" }
641+
638642
639643renderConstraint
640644 :: forall a
@@ -652,18 +656,18 @@ renderQualifiedName
652656 -> DeclLevel
653657 -> QualifiedName
654658 -> HH.HTML a Action
655- renderQualifiedName isInfix level (QualifiedName { moduleName , name })
659+ renderQualifiedName isInfix level (QualifiedName { moduleNameParts , name })
656660 = if isBuiltIn then
657661 HH .text name
658662 else
659663 HH .a [ HE .onClick $ const $ Just $
660- SearchResultClicked moduleNameString
661- , makeHref level isInfix moduleNameString name
664+ SearchResultClicked $ moduleName
665+ , makeHref level isInfix moduleName name
662666 ]
663667 [ HH .text name ]
664668 where
665- moduleNameString = Array .intercalate " ." moduleName
666- isBuiltIn = moduleName !! 0 == Just " Prim"
669+ moduleName = ModuleName $ Array .intercalate " ." $ moduleNameParts
670+ isBuiltIn = moduleNameParts !! 0 == Just " Prim"
667671
668672
669673renderKind
@@ -681,20 +685,16 @@ makeHref
681685 :: forall t rest
682686 . DeclLevel
683687 -> Boolean
684- -> String
688+ -> ModuleName
685689 -> String
686690 -> HH.IProp ( href :: String | rest ) t
687691makeHref level isInfix moduleName name =
688692 HP .href $
689- moduleName <> " .html#" <>
693+ unwrap moduleName <> " .html#" <>
690694 declLevelToHashAnchor level <> " :" <>
691695 if isInfix then " type (" <> name <> " )" else name
692696
693697
694- primRecord :: QualifiedName
695- primRecord = QualifiedName { moduleName: [ " Prim" ], name: " Record" }
696-
697-
698698keyword
699699 :: forall a
700700 . String
0 commit comments