-- | -- Module : XMonad.Custom.Prompt -- Description : Prompt configuration -- Copyright : (c) Azat Bahawi 2018-2022 -- SPDX-License-Identifier : GPL-3.0-or-later -- Maintainer : azat@bahawi.net -- Stability : experimental -- Portability : non-portable -- module XMonad.Custom.Prompt ( listCompFunc , aListCompFunc , predicateFunction ) where import Data.Char import Data.List ( isInfixOf ) import XMonad.Prompt listCompFunc :: XPConfig -> [String] -> String -> IO [String] listCompFunc c xs s = return (filter (searchPredicate c s) xs) aListCompFunc :: XPConfig -> [(String, a)] -> String -> IO [String] aListCompFunc c xs = listCompFunc c (map fst xs) predicateFunction :: String -> String -> Bool predicateFunction x y = lc x `isInfixOf` lc y where lc = map toLower