diff options
author | Michal Minář <mic.liamg@gmail.com> | 2017-02-12 14:48:26 +0100 |
---|---|---|
committer | Michal Minář <mic.liamg@gmail.com> | 2017-02-12 14:48:26 +0100 |
commit | a3f4c3b13592161ce759aa3b587a20240ef5eb44 (patch) | |
tree | d4e1b386aaacc58b488b728f58e1a5f96e316f72 | |
parent | 953a18faf16e08d53e27a34fc10f6f6b5e5641fd (diff) | |
download | xminad-a3f4c3b13592161ce759aa3b587a20240ef5eb44.tar.gz xminad-a3f4c3b13592161ce759aa3b587a20240ef5eb44.tar.xz xminad-a3f4c3b13592161ce759aa3b587a20240ef5eb44.zip |
Simplified digraph complete function
Signed-off-by: Michal Minář <mic.liamg@gmail.com>
-rw-r--r-- | src/XMonad/Local/Prompt.hs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/XMonad/Local/Prompt.hs b/src/XMonad/Local/Prompt.hs index 5734fc8..315e2a7 100644 --- a/src/XMonad/Local/Prompt.hs +++ b/src/XMonad/Local/Prompt.hs @@ -34,13 +34,17 @@ digraphCompletionFunction ∷ String → IO [String] digraphCompletionFunction = return . gen where gen ∷ String → [String] - gen [] = [x:"?" | x <- digraphChars] - gen [x] | x `elem` digraphChars = [[x, y] | y <- '_':digraphChars] - | otherwise = [] - gen [x, y] | x `elem` digraphChars - && y `elem` ('_':digraphChars) = [[x, y]] - | otherwise = [] - gen _ = [] + gen [] = [x:"?" | x <- digraphChars] + gen [x] | isValid 0 x = [[x, y] | y <- '_':digraphChars] + | otherwise = [] + gen [x, y] | isValid 0 x && isValid 1 y = [[x, y]] + | otherwise = [] + gen _ = [] + + isValid :: Int -> Char -> Bool + isValid 0 c = c `elem` digraphChars + isValid 1 c = c `elem` ('_':digraphChars) + isValid _ _ = False vimEchoDigraphConfig ∷ String vimEchoDigraphConfig = unlines [ |