mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-01 04:31:52 -07:00
X.P.OrgMode: Add ability to specify time spans
This commit is contained in:
@@ -45,7 +45,7 @@ spec = do
|
||||
`shouldBe` Just
|
||||
( Deadline
|
||||
"todo"
|
||||
(Time {date = Date (1, Nothing, Nothing), tod = Just $ TimeOfDay 1 1})
|
||||
(Time {date = Date (1, Nothing, Nothing), tod = Just $ MomentInTime(HHMM 1 1)})
|
||||
NoPriority
|
||||
)
|
||||
it "works with todo +d 22 jan 2021 01:01 #b" $ do
|
||||
@@ -53,14 +53,14 @@ spec = do
|
||||
`shouldBe` Just
|
||||
( Deadline
|
||||
"todo"
|
||||
(Time {date = Date (22, Just 1, Just 2021), tod = Just $ TimeOfDay 1 1})
|
||||
(Time {date = Date (22, Just 1, Just 2021), tod = Just $ MomentInTime(HHMM 1 1)})
|
||||
B
|
||||
)
|
||||
it "parses no day as today when given a time" $ do
|
||||
pInput "todo +s 12:00"
|
||||
`shouldBe` Just (Scheduled "todo" (Time {date = Today, tod = Just $ TimeOfDay 12 0}) NoPriority)
|
||||
`shouldBe` Just (Scheduled "todo" (Time {date = Today, tod = Just $ MomentInTime(HHMM 12 0)}) NoPriority)
|
||||
pInput "todo +d 14:05 #B"
|
||||
`shouldBe` Just (Deadline "todo" (Time {date = Today, tod = Just $ TimeOfDay 14 5}) B)
|
||||
`shouldBe` Just (Deadline "todo" (Time {date = Today, tod = Just $ MomentInTime(HHMM 14 5)}) B)
|
||||
|
||||
context "no priority#b" $ do
|
||||
it "parses to the correct thing" $
|
||||
@@ -105,10 +105,10 @@ ppPrio = \case
|
||||
prio -> " #" <> show prio
|
||||
|
||||
ppTime :: Time -> String
|
||||
ppTime (Time d t) = ppDate d <> ppTOD t
|
||||
ppTime (Time d t) = ppDate d <> ppOrgTime t
|
||||
where
|
||||
ppTOD :: Maybe TimeOfDay -> String
|
||||
ppTOD = maybe "" ((' ' :) . show)
|
||||
ppOrgTime :: Maybe OrgTime -> String
|
||||
ppOrgTime = maybe "" ((' ' :) . show)
|
||||
|
||||
ppDate :: Date -> String
|
||||
ppDate dte = case days !? dte of
|
||||
@@ -193,7 +193,14 @@ instance Arbitrary Date where
|
||||
|
||||
instance Arbitrary TimeOfDay where
|
||||
arbitrary :: Gen TimeOfDay
|
||||
arbitrary = TimeOfDay <$> hourInt <*> minuteInt
|
||||
arbitrary = HHMM <$> hourInt <*> minuteInt
|
||||
|
||||
instance Arbitrary OrgTime where
|
||||
arbitrary :: Gen OrgTime
|
||||
arbitrary = oneof
|
||||
[ MomentInTime <$> arbitrary
|
||||
, TimeSpan <$> arbitrary <*> arbitrary
|
||||
]
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Util
|
||||
|
Reference in New Issue
Block a user