vgrep 0.1.4.0 → 0.1.4.1
raw patch · 15 files changed
+60/−43 lines, 15 filesdep −template-haskelldep ~vty
Dependencies removed: template-haskell
Dependency ranges changed: vty
Files
- app/Main.hs +21/−6
- src/Vgrep/Parser.hs +9/−6
- src/Vgrep/Results.hs +1/−1
- src/Vgrep/System/Grep.hs +2/−2
- src/Vgrep/Text.hs +2/−2
- src/Vgrep/Widget/Pager.hs +2/−2
- src/Vgrep/Widget/Pager/Internal.hs +1/−1
- src/Vgrep/Widget/Results.hs +5/−5
- src/Vgrep/Widget/Results/Internal.hs +1/−1
- test/Data/Text/Lazy/Testable.hs +0/−9
- test/Data/Text/Testable.hs +9/−0
- test/Test/Vgrep/Widget/Pager.hs +2/−2
- test/Vgrep/Widget/Pager/Testable.hs +1/−1
- test/Vgrep/Widget/Results/Testable.hs +2/−2
- vgrep.cabal +2/−3
app/Main.hs view
@@ -11,14 +11,13 @@ import Data.Ratio import Data.Sequence (Seq) import qualified Data.Sequence as S-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as T-import qualified Data.Text.Lazy.IO as T+import Data.Text (Text)+import qualified Data.Text as T+import qualified Data.Text.IO as T import Distribution.PackageDescription.TH import qualified Graphics.Vty as Vty import Graphics.Vty.Input.Events hiding (Event) import Graphics.Vty.Picture-import Language.Haskell.TH import Pipes as P import Pipes.Concurrent import qualified Pipes.Prelude as P@@ -80,8 +79,24 @@ putStrLn "" putStrLn "grep version: " runEffect (grepVersion >-> P.take 1 >-> P.map (" " <>) >-> stdoutText)- printHelp = putStrLn helpText- where helpText = $(fmap (LitE . StringL) (runIO (readFile "help.txt")))+ printHelp = T.putStrLn helpText++helpText :: Text+helpText = T.unlines+ [ "vgrep, a pager for grep"+ , ""+ , "Usage:"+ , " as a drop-in replacement for `grep -r`:"+ , " vgrep [GREP_OPTION...] PATTERN [FILE]"+ , ""+ , ""+ , " at the end of a pipeline:"+ , " ... | vgrep [-nH] PATTERN"+ , ""+ , " as a pager for `grep -nH` output:"+ , " grep -nH [GREP_OPTION...] PATTERN [FILE] | vgrep"+ , ""+ , "For documentation on grep options an patterns see `grep --help`." ] type MainWidget = HSplitWidget Results Pager
src/Vgrep/Parser.hs view
@@ -8,9 +8,10 @@ ) where import Control.Applicative-import Data.Attoparsec.Text.Lazy+import Data.Attoparsec.Text import Data.Maybe-import Data.Text.Lazy+import Data.Text hiding (takeWhile)+import Prelude hiding (takeWhile) import Vgrep.Results @@ -39,16 +40,18 @@ -- >>> parseLine "foobar" -- Nothing parseLine :: Text -> Maybe FileLineReference-parseLine line = maybeResult (parse lineParser line)+parseLine line = case parseOnly lineParser line of+ Left _ -> Nothing+ Right result -> Just result lineParser :: Parser FileLineReference lineParser = do- file <- manyTill anyChar (char ':')+ file <- takeWhile (/= ':') <* char ':' lineNumber <- optional (decimal <* char ':')- result <- takeLazyText+ result <- takeText pure FileLineReference { getFile = File- { getFileName = pack file }+ { getFileName = file } , getLineReference = LineReference { getLineNumber = lineNumber , getLineText = result } }
src/Vgrep/Results.hs view
@@ -4,7 +4,7 @@ , FileLineReference (..) ) where -import Data.Text.Lazy (Text)+import Data.Text (Text) newtype File = File
src/Vgrep/System/Grep.hs view
@@ -11,8 +11,8 @@ import Control.Monad import Control.Monad.IO.Class import Data.Maybe-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as T+import Data.Text (Text)+import qualified Data.Text as T import Pipes as P import qualified Pipes.Prelude as P import System.Environment (getArgs)
src/Vgrep/Text.hs view
@@ -11,8 +11,8 @@ import Control.Lens import Control.Monad.Reader.Class import Data.Char-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as T+import Data.Text (Text)+import qualified Data.Text as T import Vgrep.Environment
src/Vgrep/Widget/Pager.hs view
@@ -20,8 +20,8 @@ import Data.Sequence (Seq, (><)) import qualified Data.Sequence as Seq import qualified Data.Set as Set-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as T+import Data.Text (Text)+import qualified Data.Text as T import Graphics.Vty.Image hiding (resize) import Graphics.Vty.Input import Graphics.Vty.Prelude
src/Vgrep/Widget/Pager/Internal.hs view
@@ -15,7 +15,7 @@ import Control.Lens import Data.Sequence (Seq) import Data.Set (Set)-import Data.Text.Lazy (Text)+import Data.Text (Text) -- | Keeps track of the lines of text to display, the current scroll
src/Vgrep/Widget/Results.hs view
@@ -32,8 +32,8 @@ import Data.Foldable import Data.Maybe import Data.Monoid-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as T+import Data.Text (Text)+import qualified Data.Text as T import Graphics.Vty.Image hiding ((<|>)) import Graphics.Vty.Input import Graphics.Vty.Prelude@@ -180,15 +180,15 @@ justifyRight w s = T.justifyRight (fromIntegral w) ' ' (s <> " ") renderFileHeader :: Attr -> Text -> Image- renderFileHeader attr = text attr . padWithSpace width+ renderFileHeader attr = text' attr . padWithSpace width renderLineNumber :: Attr -> Maybe Int -> Image- renderLineNumber attr = text attr+ renderLineNumber attr = text' attr . justifyRight lineNumberWidth . maybe "" (T.pack . show) renderLineText :: Attr -> Text -> Image- renderLineText attr = text attr+ renderLineText attr = text' attr . padWithSpace (width - lineNumberWidth)
src/Vgrep/Widget/Results/Internal.hs view
@@ -40,7 +40,7 @@ , (|>) ) import qualified Data.Sequence as S-import Data.Text.Lazy (Text)+import Data.Text (Text) import Prelude hiding (reverse) import Vgrep.Results
− test/Data/Text/Lazy/Testable.hs
@@ -1,9 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-module Data.Text.Lazy.Testable ( module Data.Text.Lazy ) where--import Data.Text.Lazy-import Test.Tasty.QuickCheck--instance Arbitrary Text where- arbitrary = fmap pack arbitrary- shrink = fmap pack . shrink . unpack
+ test/Data/Text/Testable.hs view
@@ -0,0 +1,9 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.Text.Testable ( module Data.Text ) where++import Data.Text+import Test.Tasty.QuickCheck++instance Arbitrary Text where+ arbitrary = fmap pack arbitrary+ shrink = fmap pack . shrink . unpack
test/Test/Vgrep/Widget/Pager.hs view
@@ -4,8 +4,8 @@ import Control.Lens import qualified Data.Sequence as S-import Data.Text.Lazy.Testable ()-import qualified Data.Text.Lazy.Testable as T+import Data.Text.Testable ()+import qualified Data.Text.Testable as T import Test.Case import Test.QuickCheck as Q import Test.QuickCheck.Monadic as Q
test/Vgrep/Widget/Pager/Testable.hs view
@@ -5,7 +5,7 @@ ) where import Data.Sequence as Seq (fromList)-import Data.Text.Lazy.Testable ()+import Data.Text.Testable () import Test.QuickCheck import Vgrep.Widget.Pager
test/Vgrep/Widget/Results/Testable.hs view
@@ -8,8 +8,8 @@ import Control.Monad import qualified Data.List as List import qualified Data.Sequence as Seq-import Data.Text.Lazy (Text)-import qualified Data.Text.Lazy as Text+import Data.Text (Text)+import qualified Data.Text as Text import Test.QuickCheck import Vgrep.Widget.Results
vgrep.cabal view
@@ -1,5 +1,5 @@ name: vgrep-version: 0.1.4.0+version: 0.1.4.1 synopsis: A pager for grep description: @vgrep@ is a pager for navigating through @grep@ output.@@ -82,7 +82,6 @@ , pipes >= 4.1.6 , pipes-concurrency >= 2.0.3 , process >= 1.2.3- , template-haskell >= 2.10 , text >= 1.2.1.3 , unix >= 2.7.1 , vgrep@@ -93,7 +92,7 @@ type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Spec.hs- other-modules: Data.Text.Lazy.Testable+ other-modules: Data.Text.Testable , Test.Case , Test.Vgrep.Widget , Test.Vgrep.Widget.Pager