From 3aec3e6aa10c5e98950db9c0a64b0b5003cad4ac Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 6 Aug 2017 21:42:01 +0200 Subject: use external blessings and scanner library --- src/Main.hs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index d9a8aa1..61db22f 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -3,7 +3,7 @@ {-# LANGUAGE TemplateHaskell #-} module Main where -import Control.Lens hiding (imap) +import Control.Lens hiding (Empty, imap) import Control.Applicative import Control.Concurrent import Control.Monad @@ -26,8 +26,8 @@ import qualified Data.Map as Map import Buffer import Process -import Scanner (scan, runScanner, toChar) -import Trammel +import Scanner +import Blessings data Mode @@ -104,8 +104,7 @@ uiThread cf putState getState = forever $ do _ <- hLookAhead stdin -- wait for input --t0 <- getCurrentTime - -- ((res, s), _) <- runScanner scan - ((_, s), _) <- runScanner scan + s <- scan stdin --t1 <- getCurrentTime --putStrLn $ "====> \ESC[32;1m" ++ show s ++ "\ESC[m in " ++ -- (show $ diffUTCTime t1 t0) @@ -116,7 +115,8 @@ uiThread cf putState getState = forever $ do -- Right _ -> return () -- TODO don't leak C - let cmd = getCommand (_mode q0) (map toChar s) + let ScanKey k = s + let cmd = getCommand (_mode q0) k --withOutput cf $ do -- putStrLn $ show cmd @@ -362,11 +362,11 @@ renderInputLine mb_cnt m (lhs, rhs) = do moveCursorLeft $ length $ lit rhs -renderLeft :: Trammel String -> IO () +renderLeft :: Blessings String -> IO () renderLeft = putStr . pp -renderRight :: Trammel String -> IO () +renderRight :: Blessings String -> IO () renderRight a = do saveCursor moveCursorRight 1024 -- XXX obviously, this is a hack..^_^ @@ -376,7 +376,7 @@ renderRight a = do -promptString :: Mode -> Trammel String +promptString :: Mode -> Blessings String promptString NormalMode = SGR [33,1] "@ " promptString InsertMode = "> " promptString SelectRegisterMode = "\" " @@ -393,12 +393,12 @@ spans p xs = f_r (span p_r xs) f_l (as, bs) = Left as : if null bs then [] else f_r (span p_r bs) -gaudySpans :: [Int] -> (Char -> Bool) -> String -> Trammel String +gaudySpans :: [Int] -> (Char -> Bool) -> String -> Blessings String gaudySpans c p = mconcat . map (either (SGR c . Plain . lit) Plain) . spans p -gaudySpecial :: [Int] -> String -> Trammel String +gaudySpecial :: [Int] -> String -> Blessings String gaudySpecial c = gaudySpans c (not . isPrint) -- cgit v1.2.3