git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Sorted all compleitions.
ccce756joneshf
psci/Main.hs+12−9
@@ -25,7 +25,7 @@ import Control.Monad.Trans.Class
25import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
25import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)
26import Control.Monad.Trans.State
26import Control.Monad.Trans.State
27
27
28−import Data.List (intercalate, isPrefixOf, nub, sort)
28+import Data.List (intercalate, isPrefixOf, nub, sortBy)
29import Data.Maybe (mapMaybe)
29import Data.Maybe (mapMaybe)
30import Data.Traversable (traverse)
30import Data.Traversable (traverse)
31
31
@@ -158,17 +158,20 @@ completion ms = completeWord Nothing " \t\n\r" findCompletions
158 findCompletions :: String -> IO [Completion]
158 findCompletions :: String -> IO [Completion]
159 findCompletions str = do
159 findCompletions str = do
160 files <- listFiles str
160 files <- listFiles str
161− let names = nub [ show qual
162− | P.Module moduleName ds <- ms
163− , ident <- mapMaybe getDeclName ds
164− , qual <- [ P.Qualified Nothing ident
165− , P.Qualified (Just moduleName) ident]
166− ]
167− let matches = sort $ filter (isPrefixOf str) names
161+ let matches = filter (isPrefixOf str) names
168− return $ map simpleCompletion matches ++ files
162+ return $ sortBy sorter $ map simpleCompletion matches ++ files
169 getDeclName :: P.Declaration -> Maybe P.Ident
163 getDeclName :: P.Declaration -> Maybe P.Ident
170 getDeclName (P.ValueDeclaration ident _ _ _) = Just ident
164 getDeclName (P.ValueDeclaration ident _ _ _) = Just ident
171 getDeclName _ = Nothing
165 getDeclName _ = Nothing
166+ names :: [String]
167+ names = nub [ show qual
168+ | P.Module moduleName ds <- ms
169+ , ident <- mapMaybe getDeclName ds
170+ , qual <- [ P.Qualified Nothing ident
171+ , P.Qualified (Just moduleName) ident]
172+ ]
173+ sorter :: Completion -> Completion -> Ordering
174+ sorter (Completion _ d1 _) (Completion _ d2 _) = compare d1 d2
172
175
173-- Compilation
176-- Compilation
174
177