From c7ef0874aa2d8d3ff551c6bd18b39516a12ea77b Mon Sep 17 00:00:00 2001 From: Liam Galvin Date: Sun, 4 Nov 2018 20:31:32 +0000 Subject: [PATCH 1/3] debug mode --- buffer/buffer.go | 21 ++++++++++++--------- gui/gui.go | 16 ++++++++++++++++ gui/input.go | 3 +++ sixel/img.bmp | Bin 614 -> 0 bytes sixel/img.jpg | 0 terminal/terminal.go | 3 +-- 6 files changed, 32 insertions(+), 11 deletions(-) delete mode 100644 sixel/img.bmp delete mode 100644 sixel/img.jpg diff --git a/buffer/buffer.go b/buffer/buffer.go index c66adc1..4badcfa 100644 --- a/buffer/buffer.go +++ b/buffer/buffer.go @@ -413,6 +413,14 @@ func (buffer *Buffer) convertViewLineToRawLine(viewLine uint16) uint64 { return uint64(int(viewLine) + (rawHeight - int(buffer.viewHeight))) } +func (buffer *Buffer) convertRawLineToViewLine(rawLine uint64) uint16 { + rawHeight := buffer.Height() + if int(buffer.viewHeight) > rawHeight { + return uint16(rawLine) + } + return uint16(int(rawLine) - (rawHeight - int(buffer.viewHeight))) +} + // Width returns the width of the buffer in columns func (buffer *Buffer) Width() uint16 { return buffer.viewWidth @@ -938,19 +946,14 @@ func (buffer *Buffer) ResizeView(width uint16, height uint16) { } } - fromBottom := buffer.viewHeight - buffer.cursorY - buffer.viewWidth = width buffer.viewHeight = height - if buffer.cursorY >= buffer.viewHeight-1 { - buffer.cursorY = buffer.viewHeight - 1 - } else { - buffer.cursorY = (buffer.viewHeight - fromBottom) + uint16(cursorYMovement) - if int(buffer.cursorY) >= buffer.Height() { - buffer.cursorY = uint16(buffer.Height() - 1) - } + cY := uint16(len(buffer.lines) - 1) + if cY >= buffer.viewHeight { + cY = buffer.viewHeight - 1 } + buffer.cursorY = cY // position cursorX line = buffer.getCurrentLine() diff --git a/gui/gui.go b/gui/gui.go index 2409ca5..66e85d3 100644 --- a/gui/gui.go +++ b/gui/gui.go @@ -33,6 +33,7 @@ type GUI struct { mouseDown bool overlay overlay terminalAlpha float32 + showDebugInfo bool } func New(config *config.Config, terminal *terminal.Terminal, logger *zap.SugaredLogger) *GUI { @@ -250,6 +251,21 @@ func (gui *GUI) Render() error { gui.renderOverlay() + if gui.showDebugInfo { + gui.textbox(2, 2, fmt.Sprintf(`Debug Panel +=========== +Cursor: %d,%d +View Size: %d,%d +Buffer Size: %d lines +`, + gui.terminal.GetLogicalCursorX(), + gui.terminal.GetLogicalCursorY(), + gui.terminal.ActiveBuffer().ViewWidth(), + gui.terminal.ActiveBuffer().ViewHeight(), + gui.terminal.ActiveBuffer().Height(), + )) + } + gui.window.SwapBuffers() } diff --git a/gui/input.go b/gui/input.go index 289f72f..9d6175e 100644 --- a/gui/input.go +++ b/gui/input.go @@ -47,6 +47,9 @@ func (gui *GUI) key(w *glfw.Window, key glfw.Key, scancode int, action glfw.Acti case glfw.KeyC: gui.window.SetClipboardString(gui.terminal.ActiveBuffer().GetSelectedText()) return + case glfw.KeyD: + gui.showDebugInfo = !gui.showDebugInfo + gui.terminal.SetDirty() case glfw.KeyG: keywords := gui.terminal.ActiveBuffer().GetSelectedText() if keywords != "" { diff --git a/sixel/img.bmp b/sixel/img.bmp deleted file mode 100644 index db1ba25054665c4c8271a2a12e829c64986f2871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmZ?rO=DsJ12Z700mQsO%m>7b3=%++fx!SO59Yv#loSSH5K)SN2Eo(;8F<-)LmkAG a*xZWhK4R5D!jiCg^jAkHmSO%Sqz(YDb9U?i diff --git a/sixel/img.jpg b/sixel/img.jpg deleted file mode 100644 index e69de29..0000000 diff --git a/terminal/terminal.go b/terminal/terminal.go index 1dd404b..19a4529 100644 --- a/terminal/terminal.go +++ b/terminal/terminal.go @@ -289,13 +289,12 @@ func (terminal *Terminal) SetSize(newCols uint, newLines uint) error { terminal.size.Width = uint16(newCols) terminal.size.Height = uint16(newLines) - terminal.ActiveBuffer().ResizeView(terminal.size.Width, terminal.size.Height) - _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(terminal.pty.Fd()), uintptr(syscall.TIOCSWINSZ), uintptr(unsafe.Pointer(&terminal.size))) if err != 0 { return fmt.Errorf("Failed to set terminal size vai ioctl: Error no %d", err) } + terminal.ActiveBuffer().ResizeView(terminal.size.Width, terminal.size.Height) return nil } From 6bad10540f8ebf65b3577595d788f0a86ff2ab82 Mon Sep 17 00:00:00 2001 From: Liam Galvin Date: Sun, 4 Nov 2018 20:32:08 +0000 Subject: [PATCH 2/3] debug mode --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 176fe78..c3e69a3 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ go build | Select word | double click | | Select line | triple click | | Copy | ctrl + shift + c | +| Toggle debug display | ctrl + shift + d | | Paste | ctrl + shift + v | | Google selected text | ctrl + shift + g | | Report bug in aminal | ctrl + shift + r | From ce5eedf7c8ad58b80cd709056a9db3bf1d8ea4f4 Mon Sep 17 00:00:00 2001 From: Liam Galvin Date: Sun, 4 Nov 2018 20:34:04 +0000 Subject: [PATCH 3/3] fix conflict --- sixel/sixel_test.go | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/sixel/sixel_test.go b/sixel/sixel_test.go index 0ba5f79..053d0b1 100644 --- a/sixel/sixel_test.go +++ b/sixel/sixel_test.go @@ -1,14 +1,9 @@ package sixel import ( - "bytes" - "io" - "log" - "os" "testing" "github.com/stretchr/testify/require" - "golang.org/x/image/bmp" ) // from https://en.wikipedia.org/wiki/Sixel @@ -26,19 +21,4 @@ func TestParsing(t *testing.T) { img := six.RGBA() require.NotNil(t, img) - var imageBuf bytes.Buffer - err = bmp.Encode(io.Writer(&imageBuf), img) - - if err != nil { - log.Panic(err) - } - - // Write to file. - fo, err := os.Create("img.bmp") - if err != nil { - panic(err) - } - defer fo.Close() - fo.Write(imageBuf.Bytes()) - }