packages feed

taskell 1.11.2 → 1.11.3

raw patch · 6 files changed

+107/−56 lines, 6 files

Files

README.md view
@@ -33,6 +33,9 @@         - [Due Dates](#due-dates)     - [Theming](#theming) - [Roadmap](#roadmap)+- [Contributing](#contributing)+    - [Core Contributors](#core-contributors)+- [Acknowledgements](#acknowledgements)  ## Installation @@ -342,11 +345,18 @@  See [roadmap.md](https://github.com/smallhadroncollider/taskell/blob/develop/roadmap.md) for planned features -### Contributing+--- +## Contributing+ Please check the [roadmap.md](https://github.com/smallhadroncollider/taskell/blob/develop/roadmap.md) before adding any bugs/feature requests to Issues.  Anyone is welcome to contribute to the project, but please read through [CONTRIBUTING.md](https://github.com/smallhadroncollider/taskell/blob/master/CONTRIBUTING.md) and make sure that you agree with the [Code of Conduct](https://github.com/smallhadroncollider/taskell/blob/master/CODE_OF_CONDUCT.md) before getting involved.++### Core Contributors++- Mark Wales ([@smallhadroncollider](https://github.com/smallhadroncollider))+- Ali Ahmed ([@AliNisarAhmed](https://github.com/AliNisarAhmed))  --- 
src/Taskell/Data/Task.hs view
@@ -4,20 +4,22 @@  import ClassyPrelude -import Control.Lens (ix, makeLenses, (%~), (&), (.~), (?~), (^.), (^?))+import Control.Lens ((%~), (&), (.~), (?~), (^.), (^?), ix, makeLenses) -import           Data.Sequence        as S (adjust', deleteAt, (|>))-import           Data.Text            (strip)-import           Data.Time.Zones      (TZ)-import           Taskell.Data.Date    (Due (..), inputToTime)+import Data.Sequence as S ((|>), adjust', deleteAt, insertAt)+import Data.Text (strip)+import Data.Time.Zones (TZ)+import Taskell.Data.Date (Due(..), inputToTime) import qualified Taskell.Data.Subtask as ST (Subtask, Update, complete, duplicate, name) -data Task = Task-    { _name        :: Text-    , _description :: Maybe Text-    , _subtasks    :: Seq ST.Subtask-    , _due         :: Maybe Due-    } deriving (Show, Eq)+data Task =+    Task+        { _name :: Text+        , _description :: Maybe Text+        , _subtasks :: Seq ST.Subtask+        , _due :: Maybe Due+        }+    deriving (Show, Eq)  type Update = Task -> Task @@ -43,7 +45,7 @@  maybeAppend :: Text -> Maybe Text -> Maybe Text maybeAppend text (Just current) = Just (concat [current, "\n", text])-maybeAppend text Nothing        = Just text+maybeAppend text Nothing = Just text  appendDescription :: Text -> Update appendDescription text =@@ -62,6 +64,9 @@  getSubtask :: Int -> Task -> Maybe ST.Subtask getSubtask idx = (^? subtasks . ix idx)++addSubtaskAtIndex :: Int -> ST.Subtask -> Update+addSubtaskAtIndex idx subtask = subtasks %~ S.insertAt idx subtask  addSubtask :: ST.Subtask -> Update addSubtask subtask = subtasks %~ (|> subtask)
src/Taskell/Events/Actions/Modal/Detail.hs view
@@ -7,14 +7,14 @@  import ClassyPrelude -import           Graphics.Vty.Input.Events-import           Taskell.Events.Actions.Types      as A (ActionType (..))-import           Taskell.Events.State              (clearDate, normalMode, quit, store, undo, write)-import           Taskell.Events.State.Modal.Detail as Detail-import           Taskell.Events.State.Types-import           Taskell.Events.State.Types.Mode   (DetailItem (..), DetailMode (..))-import           Taskell.IO.Keyboard.Types         (Actions)-import qualified Taskell.UI.Draw.Field             as F (event)+import Graphics.Vty.Input.Events+import Taskell.Events.Actions.Types as A (ActionType(..))+import Taskell.Events.State (clearDate, normalMode, quit, store, undo, write)+import Taskell.Events.State.Modal.Detail as Detail+import Taskell.Events.State.Types+import Taskell.Events.State.Types.Mode (DetailItem(..), DetailMode(..))+import Taskell.IO.Keyboard.Types (Actions)+import qualified Taskell.UI.Draw.Field as F (event)  events :: Actions events@@ -27,6 +27,8 @@     , (A.MoveUp, (write =<<) . (up =<<) . store)     , (A.MoveDown, (write =<<) . (down =<<) . store)     , (A.New, (Detail.insertMode =<<) . (Detail.lastSubtask =<<) . (Detail.newItem =<<) . store)+    , (A.NewAbove, Detail.newAbove)+    , (A.NewBelow, Detail.newBelow)     , (A.Edit, (Detail.insertMode =<<) . store)     , (A.Complete, (write =<<) . (setComplete =<<) . store)     , (A.Delete, (write =<<) . (Detail.remove =<<) . store)@@ -37,28 +39,26 @@  normal :: Event -> Stateful normal (EvKey KEsc _) = normalMode-normal _              = pure+normal _ = pure  insert :: Event -> Stateful insert (EvKey KEsc _) s = do     item <- getCurrentItem s     case item of         DetailDescription -> (write =<<) $ finishDescription s-        DetailDate        -> showDetail s-        (DetailItem _)    -> (write =<<) . (showDetail =<<) $ finishSubtask s+        DetailDate -> showDetail s+        (DetailItem _) -> (write =<<) . (showDetail =<<) $ finishSubtask s insert (EvKey KEnter _) s = do     item <- getCurrentItem s     case item of         DetailDescription -> (write =<<) $ finishDescription s         DetailDate -> (write =<<) $ finishDue s-        (DetailItem _) ->-            (Detail.lastSubtask =<<) . (Detail.newItem =<<) . (store =<<) . (write =<<) $-            finishSubtask s+        (DetailItem _) -> (Detail.newBelow =<<) . (write =<<) $ finishSubtask s insert e s = updateField (F.event e) s  event :: Event -> Stateful event e s = do     m <- getCurrentMode s     case m of-        DetailNormal     -> normal e s+        DetailNormal -> normal e s         (DetailInsert _) -> insert e s
src/Taskell/Events/Actions/Modal/Help.hs view
@@ -1,14 +1,12 @@ {-# LANGUAGE OverloadedLists #-}  module Taskell.Events.Actions.Modal.Help-  ( event,-    events,-  )-where+    ( event+    , events+    ) where -import ClassyPrelude import Graphics.Vty.Input.Events-import Taskell.Events.Actions.Types as A (ActionType (..))+import Taskell.Events.Actions.Types as A (ActionType(..)) import Taskell.Events.State import Taskell.Events.State.Modal.Help (moveHelpMenuDown, moveHelpMenuUp) import Taskell.Events.State.Types (Stateful)@@ -16,12 +14,12 @@  events :: Actions events =-  [ (A.Quit, quit),-    (A.MoveUp, moveHelpMenuUp),-    (A.Next, moveHelpMenuUp),-    (A.MoveDown, moveHelpMenuDown),-    (A.Previous, moveHelpMenuDown)-  ]+    [ (A.Quit, quit)+    , (A.MoveUp, moveHelpMenuUp)+    , (A.Next, moveHelpMenuUp)+    , (A.MoveDown, moveHelpMenuDown)+    , (A.Previous, moveHelpMenuDown)+    ]  event :: Event -> Stateful event _ = normalMode
src/Taskell/Events/State/Modal/Detail.hs view
@@ -6,6 +6,7 @@     , showDetail     , getCurrentItem     , getCurrentMode+    , getCurrentSubtask     , getField     , setComplete     , remove@@ -13,29 +14,58 @@     , editDescription     , editDue     , newItem+    , newItemAtIndex     , nextSubtask     , previousSubtask     , lastSubtask+    , subTaskAtIndex     , up     , down+    , newAbove+    , newBelow     ) where  import ClassyPrelude  import Control.Lens ((&), (.~), (^.)) -import           Taskell.Data.Date               (timeToDisplay)-import qualified Taskell.Data.Seq                as S-import qualified Taskell.Data.Subtask            as ST (blank, name, toggle)-import           Taskell.Data.Task               (Task, addSubtask, countSubtasks, description, due,-                                                  getSubtask, removeSubtask, setDescription, setDue,-                                                  subtasks, updateSubtask)-import           Taskell.Events.State            (getCurrentTask, setCurrentTask)-import           Taskell.Events.State.Types      (State, Stateful, mode, time, timeZone)-import           Taskell.Events.State.Types.Mode (DetailItem (..), DetailMode (..),-                                                  ModalType (Detail), Mode (Modal))-import           Taskell.UI.Draw.Field           (Field, blankField, getText, textToField)+import Taskell.Data.Date (timeToDisplay)+import qualified Taskell.Data.Seq as S+import qualified Taskell.Data.Subtask as ST (blank, name, toggle)+import Taskell.Data.Task+    ( Task+    , addSubtask+    , addSubtaskAtIndex+    , countSubtasks+    , description+    , due+    , getSubtask+    , removeSubtask+    , setDescription+    , setDue+    , subtasks+    , updateSubtask+    )+import Taskell.Events.State (getCurrentTask, setCurrentTask, store)+import Taskell.Events.State.Types (State, Stateful, mode, time, timeZone)+import Taskell.Events.State.Types.Mode+    ( DetailItem(..)+    , DetailMode(..)+    , ModalType(Detail)+    , Mode(Modal)+    )+import Taskell.UI.Draw.Field (Field, blankField, getText, textToField) +newAbove :: Stateful+newAbove state = do+    idx <- getCurrentSubtask state+    store state >>= newItemAtIndex idx >>= subTaskAtIndex idx >>= insertMode++newBelow :: Stateful+newBelow state = do+    idx <- (+ 1) <$> getCurrentSubtask state+    store state >>= newItemAtIndex idx >>= subTaskAtIndex idx >>= insertMode+ updateField :: (Field -> Field) -> Stateful updateField fieldEvent s =     pure $@@ -78,25 +108,25 @@ getCurrentSubtask state =     case state ^. mode of         Modal (Detail (DetailItem i) _) -> Just i-        _                               -> Nothing+        _ -> Nothing  getCurrentItem :: State -> Maybe DetailItem getCurrentItem state =     case state ^. mode of         Modal (Detail item _) -> Just item-        _                     -> Nothing+        _ -> Nothing  getCurrentMode :: State -> Maybe DetailMode getCurrentMode state =     case state ^. mode of         Modal (Detail _ m) -> Just m-        _                  -> Nothing+        _ -> Nothing  getField :: State -> Maybe Field getField state =     case state ^. mode of         Modal (Detail _ (DetailInsert f)) -> Just f-        _                                 -> Nothing+        _ -> Nothing  setComplete :: Stateful setComplete state = do@@ -139,6 +169,11 @@     task <- addSubtask ST.blank <$> getCurrentTask state     setCurrentTask task state +newItemAtIndex :: Int -> Stateful+newItemAtIndex idx state = do+    task <- addSubtaskAtIndex idx ST.blank <$> getCurrentTask state+    setCurrentTask task state+ -- list navigation changeSubtask :: Int -> Stateful changeSubtask inc state = do@@ -150,6 +185,9 @@  previousSubtask :: Stateful previousSubtask = changeSubtask (-1)++subTaskAtIndex :: Int -> Stateful+subTaskAtIndex idx state = setIndex state idx  lastSubtask :: Stateful lastSubtask state = lastIndex state >>= setIndex state
taskell.cabal view
@@ -1,6 +1,6 @@ cabal-version:      1.12 name:               taskell-version:            1.11.2+version:            1.11.3 license:            BSD3 license-file:       LICENSE copyright:          2019 Mark Wales