summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minář <mic.liamg@gmail.com>2017-02-12 14:48:26 +0100
committerMichal Minář <mic.liamg@gmail.com>2017-02-12 14:48:26 +0100
commita3f4c3b13592161ce759aa3b587a20240ef5eb44 (patch)
treed4e1b386aaacc58b488b728f58e1a5f96e316f72
parent953a18faf16e08d53e27a34fc10f6f6b5e5641fd (diff)
downloadxminad-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.hs18
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 [