Изменение вызова действий, проверка наличия действий секции, отображение счетчика выполнения действий в модальном окне, работа над подключением привязки горячих клавиш

This commit is contained in:
XeRo 2026-01-23 17:52:47 +05:00
parent 91b1eea1d4
commit c69a7ae84b
14 changed files with 886 additions and 706 deletions

99
setup/help.go Normal file
View file

@ -0,0 +1,99 @@
package setup
import "github.com/charmbracelet/bubbles/key"
//todo интегрировать нормально клавиши
// MainKeyMap структура главных клавиш
type MainKeyMap struct {
Help key.Binding //Клавиша помощи
Confirm key.Binding //Клавиша подтверждения
Exit key.Binding //Клавиша выхода
}
// ArrowKeyMap структура навигации
type ArrowKeyMap struct {
Up key.Binding //Клавиша перемещения наверх
Down key.Binding //Клавиша перемещения вниз
Left key.Binding //Клавиша перемещения влево
Right key.Binding //Клавиша перемещения вниз
Top key.Binding //Клавиша перемещения в самый верх
Bottom key.Binding //Клавиша перемещения в самый низ
}
// FormKeyMap структура клавиш формы
type FormKeyMap struct {
MainKeyMap //Главные клавиши
ArrowKeyMap //Клавиши навигации
LogWindow key.Binding //Клавиша окна логирования
Close key.Binding //Клавиша закрытия
}
// ListKeyMap структура клавиш списка приложений
type ListKeyMap struct {
MainKeyMap //Главные клавиши
ArrowKeyMap //Клавиши навигации
}
type BaseKeyMap struct {
Up key.Binding
Down key.Binding
Left key.Binding
Right key.Binding
Confirm key.Binding
Help key.Binding
Close key.Binding
Quit key.Binding
Log key.Binding
}
func (k BaseKeyMap) ShortHelp() []key.Binding {
return []key.Binding{k.Help, k.Log, k.Close, k.Quit}
}
func (k BaseKeyMap) FullHelp() [][]key.Binding {
return [][]key.Binding{
{k.Up, k.Down, k.Right, k.Left},
{k.Confirm, k.Help, k.Log},
{k.Close, k.Quit},
}
}
var MainKeys = MainKeyMap{
Help: key.NewBinding(key.WithKeys("?", "ctrl+h"), key.WithHelp("?/ctrl+h", "help")),
Confirm: key.NewBinding(key.WithKeys("enter"), key.WithHelp("enter", "confirm")),
Exit: key.NewBinding(key.WithKeys("ctrl+c"), key.WithHelp("ctrl+c", "exit")),
}
var ArrowKeys = ArrowKeyMap{
Up: key.NewBinding(key.WithKeys("up"), key.WithHelp("up", "move up")),
Down: key.NewBinding(key.WithKeys("down"), key.WithHelp("down", "move down")),
Left: key.NewBinding(key.WithKeys("left"), key.WithHelp("left", "move left")),
Right: key.NewBinding(key.WithKeys("right"), key.WithHelp("right", "move right")),
Top: key.NewBinding(key.WithKeys("home"), key.WithHelp("home", "to the top")),
Bottom: key.NewBinding(key.WithKeys("end"), key.WithHelp("end", "to the end")),
}
var FormKeys = FormKeyMap{
MainKeyMap: MainKeys,
ArrowKeyMap: ArrowKeys,
LogWindow: key.NewBinding(key.WithKeys("ctrl+l"), key.WithHelp("ctrl+l", "show/hide logs")),
Close: key.NewBinding(key.WithKeys("esc"), key.WithHelp("esc", "close select/close app setting")),
}
var ListKeys = ListKeyMap{
MainKeyMap: MainKeys,
ArrowKeyMap: ArrowKeys,
}
var keys = BaseKeyMap{
Up: key.NewBinding(key.WithKeys("up"), key.WithHelp("up", "move up")),
Down: key.NewBinding(key.WithKeys("down"), key.WithHelp("down", "move down")),
Left: key.NewBinding(key.WithKeys("left"), key.WithHelp("left", "move left")),
Right: key.NewBinding(key.WithKeys("right"), key.WithHelp("right", "move right")),
Confirm: key.NewBinding(key.WithKeys("enter"), key.WithHelp("enter", "confirm")),
Help: key.NewBinding(key.WithKeys("?", "ctrl+h"), key.WithHelp("?/ctrl+h", "help")),
Close: key.NewBinding(key.WithKeys("esc"), key.WithHelp("esc", "close")),
Quit: key.NewBinding(key.WithKeys("ctrl+c"), key.WithHelp("ctrl+c", "quit")),
Log: key.NewBinding(key.WithKeys("ctrl+l"), key.WithHelp("ctrl+l", "show/hide log window")),
}