packages feed

patat 0.5.1.2 → 0.5.2.0

raw patch · 7 files changed

+70/−57 lines, 7 filesdep +skylightingdep −highlighting-kate

Dependencies added: skylighting

Dependencies removed: highlighting-kate

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Changelog +- 0.5.2.0 (2017-05-16)+    * Add navigation using `PageUp` and `PageDown`.+    * Use `skylighting` instead of deprecated `highlighting-kate` for syntax+      highlighting.+ - 0.5.1.2 (2017-04-26)     * Make build reproducible even if timezone changes (patch by Félix Sipma) 
README.md view
@@ -115,8 +115,8 @@ Controls -------- -- **Next slide**: `space`, `enter`, `l`, `→`-- **Previous slide**: `backspace`, `h`, `←`+- **Next slide**: `space`, `enter`, `l`, `→`, `PageDown`+- **Previous slide**: `backspace`, `h`, `←`, `PageUp` - **Go forward 10 slides**: `j`, `↓` - **Go backward 10 slides**: `k`, `↑` - **First slide**: `0`
patat.cabal view
@@ -1,5 +1,5 @@ Name:                patat-Version:             0.5.1.2+Version:             0.5.2.0 Synopsis:            Terminal-based presentations using Pandoc Description:         Terminal-based presentations using Pandoc License:             GPL-2@@ -35,10 +35,10 @@     containers           >= 0.5  && < 0.6,     directory            >= 1.2  && < 1.4,     filepath             >= 1.4  && < 1.5,-    highlighting-kate    >= 0.6  && < 0.7,     mtl                  >= 2.2  && < 2.3,     optparse-applicative >= 0.12 && < 0.14,     pandoc               >= 1.16 && < 1.20,+    skylighting          >= 0.1  && < 0.4,     terminal-size        >= 0.3  && < 0.4,     text                 >= 1.2  && < 1.3,     time                 >= 1.4  && < 1.8,
src/Main.hs view
@@ -75,8 +75,8 @@         [ "Terminal-based presentations using Pandoc"         , ""         , "Controls:"-        , "- Next slide:             space, enter, l, right"-        , "- Previous slide:         backspace, h, left"+        , "- Next slide:             space, enter, l, right, pagedown"+        , "- Previous slide:         backspace, h, left, pageup"         , "- Go forward 10 slides:   j, down"         , "- Go backward 10 slides:  k, up"         , "- First slide:            0"
src/Patat/Presentation/Display/CodeBlock.hs view
@@ -8,41 +8,45 @@   ---------------------------------------------------------------------------------import           Data.Char                        (toLower)-import           Data.List                        (find)+import           Data.Maybe                       (mapMaybe) import           Data.Monoid                      (mconcat, (<>))-import qualified Data.Set                         as S+import qualified Data.Text                        as T import           Patat.Presentation.Display.Table (themed) import qualified Patat.PrettyPrint                as PP import           Patat.Theme-import qualified Text.Highlighting.Kate           as Kate import           Prelude------------------------------------------------------------------------------------lower :: String -> String-lower = map toLower+import qualified Skylighting                      as Skylighting   ---------------------------------------------------------------------------------supportedLanguages :: S.Set String-supportedLanguages = S.fromList (map lower Kate.languages)+highlight :: [String] -> String -> [Skylighting.SourceLine]+highlight classes rawCodeBlock = case mapMaybe getSyntax classes of+    []        -> zeroHighlight rawCodeBlock+    (syn : _) ->+        case Skylighting.tokenize config syn (T.pack rawCodeBlock) of+            Left  _  -> zeroHighlight rawCodeBlock+            Right sl -> sl+  where+    getSyntax :: String -> Maybe Skylighting.Syntax+    getSyntax c = Skylighting.lookupSyntax (T.pack c) syntaxMap +    config :: Skylighting.TokenizerConfig+    config = Skylighting.TokenizerConfig+        { Skylighting.syntaxMap  = syntaxMap+        , Skylighting.traceOutput = False+        } ----------------------------------------------------------------------------------highlight :: [String] -> String -> [Kate.SourceLine]-highlight classes rawCodeBlock =-    case find (\c -> lower c `S.member` supportedLanguages) classes of-        Nothing   -> zeroHighlight rawCodeBlock-        Just lang -> Kate.highlightAs lang rawCodeBlock+    syntaxMap :: Skylighting.SyntaxMap+    syntaxMap = Skylighting.defaultSyntaxMap   -------------------------------------------------------------------------------- -- | This does fake highlighting, everything becomes a normal token.  That makes -- things a bit easier, since we only need to deal with one cases in the -- renderer.-zeroHighlight :: String -> [Kate.SourceLine]-zeroHighlight str = [[(Kate.NormalTok, line)] | line <- lines str]+zeroHighlight :: String -> [Skylighting.SourceLine]+zeroHighlight str =+    [[(Skylighting.NormalTok, T.pack line)] | line <- lines str]   --------------------------------------------------------------------------------@@ -51,24 +55,24 @@     PP.vcat (map blockified sourceLines) <>     PP.hardline   where-    sourceLines :: [Kate.SourceLine]+    sourceLines :: [Skylighting.SourceLine]     sourceLines =         [[]] ++ highlight classes rawCodeBlock ++ [[]] -    prettySourceLine :: Kate.SourceLine -> PP.Doc+    prettySourceLine :: Skylighting.SourceLine -> PP.Doc     prettySourceLine = mconcat . map prettyToken -    prettyToken :: Kate.Token -> PP.Doc+    prettyToken :: Skylighting.Token -> PP.Doc     prettyToken (tokenType, str) =-        themed (syntaxHighlight theme tokenType) (PP.string str)+        themed (syntaxHighlight theme tokenType) (PP.string $ T.unpack str) -    sourceLineLength :: Kate.SourceLine -> Int-    sourceLineLength line = sum [length str | (_, str) <- line]+    sourceLineLength :: Skylighting.SourceLine -> Int+    sourceLineLength line = sum [T.length str | (_, str) <- line]      blockWidth :: Int     blockWidth = foldr max 0 (map sourceLineLength sourceLines) -    blockified :: Kate.SourceLine -> PP.Doc+    blockified :: Skylighting.SourceLine -> PP.Doc     blockified line =         let len    = sourceLineLength line             indent = PP.NotTrimmable "   " in
src/Patat/Presentation/Interactive.hs view
@@ -42,10 +42,14 @@         "j"      -> return SkipForward         "k"      -> return SkipBackward         "l"      -> return Forward+        -- Arrow keys         "\ESC[C" -> return Forward         "\ESC[D" -> return Backward         "\ESC[B" -> return SkipForward         "\ESC[A" -> return SkipBackward+        -- PageUp and PageDown+        "\ESC[6" -> return Forward+        "\ESC[5" -> return Backward         "0"      -> return First         "G"      -> return Last         "r"      -> return Reload
src/Patat/Theme.hs view
@@ -24,10 +24,10 @@ import           Data.Maybe             (mapMaybe, maybeToList) import           Data.Monoid            (Monoid (..), (<>)) import qualified Data.Text              as T+import           Prelude+import qualified Skylighting            as Skylighting import qualified System.Console.ANSI    as Ansi-import qualified Text.Highlighting.Kate as Kate import           Text.Read              (readMaybe)-import           Prelude   --------------------------------------------------------------------------------@@ -218,30 +218,30 @@ -------------------------------------------------------------------------------- defaultSyntaxHighlighting :: SyntaxHighlighting defaultSyntaxHighlighting = mkSyntaxHighlighting-    [ (Kate.KeywordTok,        dull Ansi.Yellow)-    , (Kate.ControlFlowTok,    dull Ansi.Yellow)+    [ (Skylighting.KeywordTok,        dull Ansi.Yellow)+    , (Skylighting.ControlFlowTok,    dull Ansi.Yellow) -    , (Kate.DataTypeTok,       dull Ansi.Green)+    , (Skylighting.DataTypeTok,       dull Ansi.Green) -    , (Kate.DecValTok,         dull Ansi.Red)-    , (Kate.BaseNTok,          dull Ansi.Red)-    , (Kate.FloatTok,          dull Ansi.Red)-    , (Kate.ConstantTok,       dull Ansi.Red)-    , (Kate.CharTok,           dull Ansi.Red)-    , (Kate.SpecialCharTok,    dull Ansi.Red)-    , (Kate.StringTok,         dull Ansi.Red)-    , (Kate.VerbatimStringTok, dull Ansi.Red)-    , (Kate.SpecialStringTok,  dull Ansi.Red)+    , (Skylighting.DecValTok,         dull Ansi.Red)+    , (Skylighting.BaseNTok,          dull Ansi.Red)+    , (Skylighting.FloatTok,          dull Ansi.Red)+    , (Skylighting.ConstantTok,       dull Ansi.Red)+    , (Skylighting.CharTok,           dull Ansi.Red)+    , (Skylighting.SpecialCharTok,    dull Ansi.Red)+    , (Skylighting.StringTok,         dull Ansi.Red)+    , (Skylighting.VerbatimStringTok, dull Ansi.Red)+    , (Skylighting.SpecialStringTok,  dull Ansi.Red) -    , (Kate.CommentTok,        dull Ansi.Blue)-    , (Kate.DocumentationTok,  dull Ansi.Blue)-    , (Kate.AnnotationTok,     dull Ansi.Blue)-    , (Kate.CommentVarTok,     dull Ansi.Blue)+    , (Skylighting.CommentTok,        dull Ansi.Blue)+    , (Skylighting.DocumentationTok,  dull Ansi.Blue)+    , (Skylighting.AnnotationTok,     dull Ansi.Blue)+    , (Skylighting.CommentVarTok,     dull Ansi.Blue) -    , (Kate.ImportTok,         dull Ansi.Cyan)-    , (Kate.OperatorTok,       dull Ansi.Cyan)-    , (Kate.FunctionTok,       dull Ansi.Cyan)-    , (Kate.PreprocessorTok,   dull Ansi.Cyan)+    , (Skylighting.ImportTok,         dull Ansi.Cyan)+    , (Skylighting.OperatorTok,       dull Ansi.Cyan)+    , (Skylighting.FunctionTok,       dull Ansi.Cyan)+    , (Skylighting.PreprocessorTok,   dull Ansi.Cyan)     ]   where     dull c = Style [Ansi.SetColor Ansi.Foreground Ansi.Dull c]@@ -251,7 +251,7 @@   ---------------------------------------------------------------------------------nameForTokenType :: Kate.TokenType -> String+nameForTokenType :: Skylighting.TokenType -> String nameForTokenType =     unCapitalize . dropTok . show   where@@ -265,7 +265,7 @@   ---------------------------------------------------------------------------------nameToTokenType :: String -> Maybe Kate.TokenType+nameToTokenType :: String -> Maybe Skylighting.TokenType nameToTokenType = readMaybe . capitalize . (++ "Tok")  @@ -276,7 +276,7 @@   ---------------------------------------------------------------------------------syntaxHighlight :: Theme -> Kate.TokenType -> Maybe Style+syntaxHighlight :: Theme -> Skylighting.TokenType -> Maybe Style syntaxHighlight theme tokenType = do     sh <- themeSyntaxHighlighting theme     M.lookup (nameForTokenType tokenType) (unSyntaxHighlighting sh)