WIP
This commit is contained in:
parent
a8babd5e99
commit
5d1b6afb1c
0
editor/editor.go
Normal file
0
editor/editor.go
Normal file
5
go.mod
5
go.mod
|
@ -7,20 +7,23 @@ require (
|
|||
github.com/charmbracelet/bubbletea v0.25.0
|
||||
github.com/charmbracelet/lipgloss v0.9.1
|
||||
github.com/jubnzv/go-taskwarrior v0.0.0-20220111032313-0ea4f466b47c
|
||||
github.com/looplab/fsm v1.0.2
|
||||
github.com/mattn/go-runewidth v0.0.15
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/atotto/clipboard v0.1.4 // indirect
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
||||
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
||||
github.com/mattn/go-isatty v0.0.18 // indirect
|
||||
github.com/mattn/go-localereader v0.0.1 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.15 // indirect
|
||||
github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect
|
||||
github.com/muesli/cancelreader v0.2.2 // indirect
|
||||
github.com/muesli/reflow v0.3.0 // indirect
|
||||
github.com/muesli/termenv v0.15.2 // indirect
|
||||
github.com/rivo/uniseg v0.4.6 // indirect
|
||||
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f // indirect
|
||||
golang.org/x/sync v0.1.0 // indirect
|
||||
golang.org/x/sys v0.12.0 // indirect
|
||||
golang.org/x/term v0.6.0 // indirect
|
||||
|
|
6
go.sum
6
go.sum
|
@ -1,3 +1,5 @@
|
|||
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
|
||||
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
|
||||
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
|
||||
github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0=
|
||||
|
@ -10,6 +12,8 @@ github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2
|
|||
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
||||
github.com/jubnzv/go-taskwarrior v0.0.0-20220111032313-0ea4f466b47c h1:kJrwAIwdz2RiLmvJUW2l7tS+C5CK2DGVVSNPHuzc/4A=
|
||||
github.com/jubnzv/go-taskwarrior v0.0.0-20220111032313-0ea4f466b47c/go.mod h1:B7C5T6DtQTAN6Lk0EhC9JHG/9Ny0aLIJqUych2CfZAE=
|
||||
github.com/looplab/fsm v1.0.2 h1:f0kdMzr4CRpXtaKKRUxwLYJ7PirTdwrtNumeLN+mDx8=
|
||||
github.com/looplab/fsm v1.0.2/go.mod h1:PmD3fFvQEIsjMEfvZdrCDZ6y8VwKTwWNjlpEr6IKPO4=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
|
||||
|
@ -34,6 +38,8 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
|||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.4.6 h1:Sovz9sDSwbOz9tgUy8JpT+KgCkPYJEN/oYzlJiYTNLg=
|
||||
github.com/rivo/uniseg v0.4.6/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f h1:MvTmaQdww/z0Q4wrYjDSCcZ78NoftLQyHBSLW/Cx79Y=
|
||||
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
|
||||
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
|
|
32
main.go
32
main.go
|
@ -2,16 +2,18 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
table "git.sealight.xyz/aynish/poms/table"
|
||||
task "git.sealight.xyz/aynish/poms/task"
|
||||
// timer "git.sealight.xyz/aynish/poms/timer"
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
"github.com/looplab/fsm"
|
||||
"github.com/charmbracelet/lipgloss"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"time"
|
||||
|
||||
table "git.sealight.xyz/aynish/poms/table"
|
||||
task "git.sealight.xyz/aynish/poms/task"
|
||||
timer "git.sealight.xyz/aynish/poms/timer"
|
||||
"github.com/charmbracelet/bubbles/list"
|
||||
tea "github.com/charmbracelet/bubbletea"
|
||||
"github.com/charmbracelet/lipgloss"
|
||||
"github.com/looplab/fsm"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -31,8 +33,9 @@ var (
|
|||
|
||||
type model struct {
|
||||
FSM *fsm.FSM
|
||||
state string
|
||||
taskList table.Model
|
||||
activeList list.Model
|
||||
timer timer.Model
|
||||
}
|
||||
|
||||
type LoadedTasksMsg struct {
|
||||
|
@ -92,7 +95,13 @@ func (m model) writeFile() string {
|
|||
return full_path
|
||||
}
|
||||
|
||||
func (m model) setActive() {
|
||||
//TODO
|
||||
// Create a bubbles list of active tasks to select the one to focus on during worktime
|
||||
}
|
||||
|
||||
func (m model) openEditor() tea.Cmd {
|
||||
m.setActive()
|
||||
path := m.writeFile()
|
||||
editor := os.Getenv("EDITOR")
|
||||
if editor == "" {
|
||||
|
@ -105,6 +114,15 @@ func (m model) openEditor() tea.Cmd {
|
|||
}
|
||||
|
||||
func (m model) Init() tea.Cmd {
|
||||
m.FSM = fsm.NewFSM(
|
||||
"taskTable",
|
||||
fsm.Events{
|
||||
{Name: "toEdit", Src: []string{"taskTable", "workTimer", "breakTimer"}, Dst: "editor"},
|
||||
{Name: "workTime", Src: []string{"editor", "taskList"}, Dst: "workTimer"},
|
||||
{Name: "breakTime", Src: []string{"workTimer", "taskList", "editor"}, Dst: "workTimer"},
|
||||
},
|
||||
fsm.Callbacks{},
|
||||
)
|
||||
return loadTasks
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue