From 50a5f70ea46333356f36b5ee13c3d39b720ec5a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 1 Mar 2026 00:47:56 +0000 Subject: [PATCH] Delete internal/cli/history.go --- internal/cli/history.go | 88 ----------------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 internal/cli/history.go diff --git a/internal/cli/history.go b/internal/cli/history.go deleted file mode 100644 index 7515bba..0000000 --- a/internal/cli/history.go +++ /dev/null @@ -1,88 +0,0 @@ -// /futriis/internal/cli/history.go -// Пакет cli реализует управление историей команд для интерактивного режима. -// History хранит ограниченное количество последних команд с кольцевым буфером, предотвращает добавление последовательных дубликатов. -// Предоставляет навигацию по истории с помощью стрелок вверх/вниз для быстрого повторного выполнения команд. -// Интегрируется с Prompt для обеспечения полноценного интерфейса командной строки. - -package cli - -import ( - "os" - - "golang.org/x/term" -) -// History управляет историей команд -type History struct { - commands []string - position int - maxSize int -} - -// NewHistory создаёт новую историю команд -func NewHistory(maxSize int) *History { - return &History{ - commands: make([]string, 0, maxSize), - position: 0, - maxSize: maxSize, - } -} - -// Add добавляет команду в историю -func (h *History) Add(cmd string) { - if cmd == "" { - return - } - - // Не добавляем дубликаты подряд - if len(h.commands) > 0 && h.commands[len(h.commands)-1] == cmd { - return - } - - // Если достигнут максимум, удаляем самую старую команду - if len(h.commands) >= h.maxSize { - h.commands = h.commands[1:] - } - - h.commands = append(h.commands, cmd) - h.position = len(h.commands) -} - -// GetPrevious возвращает предыдущую команду из истории -func (h *History) GetPrevious() string { - if len(h.commands) == 0 { - return "" - } - - if h.position > 0 { - h.position-- - } - - return h.commands[h.position] -} - -// GetNext возвращает следующую команду из истории -func (h *History) GetNext() string { - if h.position < len(h.commands)-1 { - h.position++ - return h.commands[h.position] - } - h.position = len(h.commands) - return "" -} - -// Reset сбрасывает позицию в истории -func (h *History) Reset() { - h.position = len(h.commands) -} - -// SetupRawMode устанавливает терминал в raw-режим для обработки клавиш -func SetupRawMode() (*term.State, error) { - fd := int(os.Stdin.Fd()) - return term.MakeRaw(fd) -} - -// RestoreMode восстанавливает режим терминала -func RestoreMode(oldState *term.State) error { - fd := int(os.Stdin.Fd()) - return term.Restore(fd, oldState) -}