packages feed

gitHUD 1.3.0 → 1.3.1

raw patch · 8 files changed

+38/−20 lines, 8 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- GitHUD.Terminal.Base: terminalEndCode :: String
+ GitHUD.Terminal.Base: endColorMarker :: Shell -> String
+ GitHUD.Terminal.Prompt: resetPromptAtBeginning :: ShellOutput
+ GitHUD.Terminal.Types: NoColor :: Color

Files

gitHUD.cabal view
@@ -1,5 +1,5 @@ name:                gitHUD-version:             1.3.0+version:             1.3.1 synopsis:            More efficient replacement to the great git-radar description:         Please see README.md homepage:            http://github.com/gbataille/gitHUD#readme
src/GitHUD/Config/Parse.hs view
@@ -206,7 +206,7 @@ colorConfigToColor :: String -> Color colorConfigToColor str =   either-    (const Blue)+    (const NoColor)     id     (parse colorParser "" str) @@ -220,6 +220,7 @@   , string "Magenta" >> return Magenta   , string "Cyan"    >> return Cyan   , string "White"   >> return White+  , string "NoColor" >> return NoColor   ] <?> "color"  intensityConfigToIntensity :: String -> ColorIntensity
src/GitHUD/Config/Types.hs view
@@ -101,7 +101,7 @@   , confLocalBranchNamePrefix = "["   , confLocalBranchNameSuffix = "]"   , confLocalDetachedPrefix = "detached@"-  , confLocalBranchColor = Blue+  , confLocalBranchColor = NoColor   , confLocalBranchIntensity = Vivid   , confLocalDetachedColor = Yellow   , confLocalDetachedIntensity = Vivid@@ -112,7 +112,7 @@   , confLocalCommitsPullSuffix = "\8595"   , confLocalCommitsPullSuffixColor = Red   , confLocalCommitsPullSuffixIntensity = Vivid-  , confLocalCommitsPushPullInfix = "\8645"+  , confLocalCommitsPushPullInfix = "⥯"   , confLocalCommitsPushPullInfixColor = Green   , confLocalCommitsPushPullInfixIntensity = Vivid 
src/GitHUD/Terminal/Base.hs view
@@ -1,8 +1,8 @@ module GitHUD.Terminal.Base (   tellStringInColor   , applyShellMarkers-  , terminalEndCode   , terminalStartCode+  , endColorMarker   ) where  import Control.Monad.Writer (tell)@@ -62,6 +62,7 @@ terminalStartCode  Magenta  Dull   = "\x1b[35m" terminalStartCode  Cyan     Dull   = "\x1b[36m" terminalStartCode  White    Dull   = "\x1b[37m"+terminalStartCode  NoColor  _      = terminalEndCode  terminalEndCode :: String terminalEndCode = "\x1b[0m"
src/GitHUD/Terminal/Prompt.hs view
@@ -1,5 +1,6 @@ module GitHUD.Terminal.Prompt (   buildPromptWithConfig+  , resetPromptAtBeginning   , addGitRepoIndicator   , addNoTrackedUpstreamIndicator   , addMergeBranchCommits@@ -10,6 +11,7 @@   , buildPrompt   ) where +import Control.Applicative ((<$>)) import Control.Monad (when) import Control.Monad.Writer (runWriterT, tell) @@ -29,6 +31,7 @@ buildPrompt :: ShellOutput buildPrompt = do   config <- askConfig+  resetPromptAtBeginning   when (confShowPartRepoIndicator config) $ addGitRepoIndicator   when (confShowPartMergeBranchCommitsDiff config) $ addNoTrackedUpstreamIndicator   when (confShowPartMergeBranchCommitsDiff config) $ addMergeBranchCommits@@ -37,6 +40,10 @@   when (confShowPartLocalChangesState config) $ addRepoState   when (confShowPartStashes config) $ addStashes   return ()++resetPromptAtBeginning :: ShellOutput+resetPromptAtBeginning =+  (endColorMarker <$> askShell) >>= tell  addGitRepoIndicator :: ShellOutput addGitRepoIndicator = do
src/GitHUD/Terminal/Types.hs view
@@ -4,6 +4,6 @@   , Shell(..)   ) where -data Color = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White deriving (Eq, Show, Read)+data Color = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White | NoColor deriving (Eq, Show, Read) data ColorIntensity = Dull | Vivid deriving (Eq, Show, Read) data Shell = ZSH | Other deriving (Eq, Show)
test/Test/GitHUD/Config/Parse.hs view
@@ -138,7 +138,7 @@               withValue "Black"      , testCase "Key: no_tracked_upstream_indicator_color - invalid color" $-        expectValue Blue $+        expectValue NoColor $           toBeInField confNoTrackedUpstreamIndicatorColor $             forConfigItemKey "no_tracked_upstream_indicator_color" $               withValue "FOO"@@ -473,5 +473,5 @@         colorConfigToColor "Cyan" @?= Cyan      , testCase "invalid color - default to Blue" $-        colorConfigToColor "Foo" @?= Blue+        colorConfigToColor "Foo" @?= NoColor   ]
test/Test/GitHUD/Terminal/Prompt.hs view
@@ -16,7 +16,8 @@  terminalPromptTests :: TestTree terminalPromptTests = testGroup "Terminal Prompt Test"-  [ testAddGitRepoIndicator+  [ testResetPromptAtBeginning+    , testAddGitRepoIndicator     , testAddNoTrackedUpstreamIndicator     , testAddMergeBranchCommits     , testAddLocalBranchName@@ -26,6 +27,14 @@     , testPartialPrompt   ] +testResetPromptAtBeginning :: TestTree+testResetPromptAtBeginning = testGroup "#resetPromptAtBeginning"+ [   testCase "Should start the prompt with a reset color control sequence" $+       testWriterWithConfig (zeroOutputConfig ZSH) resetPromptAtBeginning @?= "%{\x1b[0m%}"+   , testCase "Should start the prompt with a reset color control sequence" $+       testWriterWithConfig (zeroOutputConfig Other) resetPromptAtBeginning @?= "\x1b[0m"+ ]+ testAddGitRepoIndicator :: TestTree testAddGitRepoIndicator = testGroup "#addGitRepoIndicator"   [ testGroup "Default Config"@@ -193,13 +202,13 @@           testWriterWithConfig             (buildOutputConfig ZSH (zeroGitRepoState { gitLocalBranch = "foo" }) defaultConfig)             addLocalBranchName-          @?= "[%{\x1b[1;34m%}foo%{\x1b[0m%}] "+          @?= "[%{\x1b[0m%}foo%{\x1b[0m%}] "          , testCase "Other: should display the name of the current branch if we are at the HEAD of any" $           testWriterWithConfig             (buildOutputConfig Other (zeroGitRepoState { gitLocalBranch = "foo" }) defaultConfig)             addLocalBranchName-          @?= "[\x1b[1;34mfoo\x1b[0m] "+          @?= "[\x1b[0mfoo\x1b[0m] "          , testCase "ZSH: should display the current commit SHA if we are not on a branch's HEAD" $           testWriterWithConfig@@ -266,7 +275,7 @@        , testCase "ZSH: commits to pull and to push" $           testCommitsToPushAndPull ZSH defaultConfig @?=-          "4%{\x1b[1;32m%}\8645%{\x1b[0m%}4 "+          "4%{\x1b[1;32m%}⥯%{\x1b[0m%}4 "        , testCase "Other: commits to pull" $           testCommitsToPull Other defaultConfig @?=@@ -278,7 +287,7 @@        , testCase "Other: commits to pull and to push" $           testCommitsToPushAndPull Other defaultConfig @?=-          "4\x1b[1;32m\8645\x1b[0m4 "+          "4\x1b[1;32m⥯\x1b[0m4 "       ]     , testGroup "Custom Config"       [ testCase "ZSH: commits to pull" $@@ -510,7 +519,7 @@  {- For reference here, the full prompt would be - "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+ "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "  -} testPartialPrompt :: TestTree@@ -519,37 +528,37 @@         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartRepoIndicator = False })           buildPrompt-        @?= "\120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "      , testCase "w/out merge branch commits info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartMergeBranchCommitsDiff = False })           buildPrompt-        @?= "\5812 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\5812 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "      , testCase "w/out local branch info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartLocalBranch = False })           buildPrompt-        @?= "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "      , testCase "w/out commits push/pull info" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartCommitsToOrigin = False })           buildPrompt-        @?= "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "      , testCase "w/out local repo changes" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartLocalChangesState = False })           buildPrompt-        @?= "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 3%{\ESC[1;32m%}\8801%{\ESC[0m%} "      , testCase "w/out stashes" $         testWriterWithConfig           (buildOutputConfig ZSH repoStateForPartialPrompt defaultConfig { confShowPartStashes = False })           buildPrompt-        @?= "\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[1;34m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}\8645%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} "+        @?= "%{\ESC[0m%}\5812 \120366 2%{\ESC[1;32m%}\8644%{\ESC[0m%}1 [%{\ESC[0m%}branch%{\ESC[0m%}] 5%{\ESC[1;32m%}⥯%{\ESC[0m%}6 5%{\ESC[1;32m%}A%{\ESC[0m%}6%{\ESC[1;32m%}D%{\ESC[0m%}4%{\ESC[1;32m%}M%{\ESC[0m%}7%{\ESC[1;32m%}R%{\ESC[0m%} 3%{\ESC[1;31m%}D%{\ESC[0m%}1%{\ESC[1;31m%}M%{\ESC[0m%} 2%{\ESC[1;37m%}A%{\ESC[0m%} 8%{\ESC[1;32m%}C%{\ESC[0m%} "   ]  -- | Utility function to test a ShellOutput function and gets the prompt built