git.iko.soy/rowtype-yoga/purescript-docs-search
on master help sign in
Fix CLI autocompleter (now works correctly with capital letters).
71f8a75klntsky
src/Docs/Search/Interactive.purs+8−9
@@ -5,7 +5,7 @@ import Docs.Search.Declarations (Declarations, mkDeclarations)
5import Docs.Search.DocsJson (DataDeclType(..))
5import Docs.Search.DocsJson (DataDeclType(..))
6import Docs.Search.Engine (mkEngineState, packageInfoToString, Result(..))
6import Docs.Search.Engine (mkEngineState, packageInfoToString, Result(..))
7import Docs.Search.Engine as Engine
7import Docs.Search.Engine as Engine
8−import Docs.Search.Extra (listToString, stringToList, (>#>))
8+import Docs.Search.Extra (stringToList, (>#>))
9import Docs.Search.IndexBuilder as IndexBuilder
9import Docs.Search.IndexBuilder as IndexBuilder
10import Docs.Search.ModuleIndex (ModuleResult, mkPackedModuleIndex, unpackModuleIndex)
10import Docs.Search.ModuleIndex (ModuleResult, mkPackedModuleIndex, unpackModuleIndex)
11import Docs.Search.NodeEngine (nodeEngine)
11import Docs.Search.NodeEngine (nodeEngine)
@@ -22,12 +22,12 @@ import Prelude
22
22
23import Data.Array as Array
23import Data.Array as Array
24import Data.Identity (Identity(..))
24import Data.Identity (Identity(..))
25+import Data.List as List
25import Data.Maybe (fromMaybe)
26import Data.Maybe (fromMaybe)
26import Data.Newtype (un, unwrap, wrap)
27import Data.Newtype (un, unwrap, wrap)
27import Data.Search.Trie as Trie
28import Data.Search.Trie as Trie
28import Data.String (length) as String
29import Data.String (length) as String
29−import Data.String.Common (split, trim) as String
30+import Data.String.Common (split, toLower, trim) as String
30−import Data.Tuple (fst)
31import Effect (Effect)
31import Effect (Effect)
32import Effect.Aff (launchAff_)
32import Effect.Aff (launchAff_)
33import Effect.Class (liftEffect)
33import Effect.Class (liftEffect)
@@ -105,14 +105,13 @@ mkCompleter
105 -> Effect { completions :: Array String
105 -> Effect { completions :: Array String
106 , matched :: String }
106 , matched :: String }
107mkCompleter index input = do
107mkCompleter index input = do
108− let path = stringToList input
108+ let path = stringToList $ String.toLower input
109− let paths =
109+ paths =
110 Array.fromFoldable $
110 Array.fromFoldable $
111− listToString <$>
111+ (\result -> unwrap (unwrap result).name) <$>
112− (fst <$> Trie.query path (unwrap index))
112+ List.concat (Trie.queryValues path (unwrap index))
113
113
114− pure { completions: paths
114+ pure { completions: paths, matched: input }
115− , matched: input }
116
115
117
116
118showResult :: Result -> String
117showResult :: Result -> String
test/Main.purs+1−1
@@ -3,7 +3,7 @@ module Test.Main where
3import Prelude
3import Prelude
4
4
5import Docs.Search.TypeDecoder (Constraint(..), FunDep(..), FunDeps(..), Kind(..), QualifiedName(..), Type(..))
5import Docs.Search.TypeDecoder (Constraint(..), FunDep(..), FunDeps(..), Kind(..), QualifiedName(..), Type(..))
6−import Docs.Search.Types
6+import Docs.Search.Types (Identifier(..))
7import Test.TypeQuery as TypeQuery
7import Test.TypeQuery as TypeQuery
8import Test.IndexBuilder as IndexBuilder
8import Test.IndexBuilder as IndexBuilder
9import Test.Declarations as Declarations
9import Test.Declarations as Declarations