gf-server: complete noew sorts case-insensitive

This commit is contained in:
bjorn
2008-11-03 16:43:19 +00:00
parent ed05fc771c
commit 07a0e8fe86

View File

@@ -13,6 +13,8 @@ import qualified Codec.Binary.UTF8.String as UTF8 (encodeString, decodeString)
import Control.Concurrent import Control.Concurrent
import Control.Monad import Control.Monad
import Data.Char import Data.Char
import Data.Function (on)
import Data.List (sortBy)
import qualified Data.Map as Map import qualified Data.Map as Map
import Data.Maybe import Data.Maybe
import System.Directory import System.Directory
@@ -147,9 +149,10 @@ parse' pgf input mcat mfrom =
complete' :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> [(PGF.Language,[String])] complete' :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> [(PGF.Language,[String])]
complete' pgf input mcat mfrom = complete' pgf input mcat mfrom =
[(from,ss) | from <- froms, PGF.canParse pgf from, let ss = PGF.complete pgf from cat input, not (null ss)] [(from,order ss) | from <- froms, PGF.canParse pgf from, let ss = PGF.complete pgf from cat input, not (null ss)]
where froms = maybe (PGF.languages pgf) (:[]) mfrom where froms = maybe (PGF.languages pgf) (:[]) mfrom
cat = fromMaybe (PGF.startCat pgf) mcat cat = fromMaybe (PGF.startCat pgf) mcat
order = sortBy (compare `on` map toLower)
linearize' :: PGF -> Maybe PGF.Language -> PGF.Tree -> [(PGF.Language,String)] linearize' :: PGF -> Maybe PGF.Language -> PGF.Tree -> [(PGF.Language,String)]
linearize' pgf mto tree = linearize' pgf mto tree =