diff options
author | tv <tv@krebsco.de> | 2017-08-06 21:42:01 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2017-08-06 22:08:09 +0200 |
commit | 3aec3e6aa10c5e98950db9c0a64b0b5003cad4ac (patch) | |
tree | 97a860a2380359861938382abade7dade4952b4d /src/Main.hs | |
parent | 0b4313aa904d59ed44b108baf29f8ebd214e5682 (diff) |
use external blessings and scanner library
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 22 |
1 files changed, 11 insertions, 11 deletions
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) |