]> git.lizzy.rs Git - micro.git/blobdiff - internal/display/tabwindow.go
Fix v2 import path for go mod
[micro.git] / internal / display / tabwindow.go
index 182e675d1400fa287ca0378f308dc363229a6494..c16747a3a6f50a807c7ef36b744ffc40220ecc09 100644 (file)
@@ -4,29 +4,29 @@ import (
        "unicode/utf8"
 
        runewidth "github.com/mattn/go-runewidth"
-       "github.com/zyedidia/micro/internal/buffer"
-       "github.com/zyedidia/micro/internal/config"
-       "github.com/zyedidia/micro/internal/screen"
-       "github.com/zyedidia/micro/internal/util"
+       "github.com/zyedidia/micro/v2/internal/buffer"
+       "github.com/zyedidia/micro/v2/internal/config"
+       "github.com/zyedidia/micro/v2/internal/screen"
+       "github.com/zyedidia/micro/v2/internal/util"
 )
 
 type TabWindow struct {
        Names   []string
        active  int
        Y       int
-       width   int
+       Width   int
        hscroll int
 }
 
 func NewTabWindow(w int, y int) *TabWindow {
        tw := new(TabWindow)
-       tw.width = w
+       tw.Width = w
        tw.Y = y
        return tw
 }
 
 func (w *TabWindow) Resize(width, height int) {
-       w.width = width
+       w.Width = width
 }
 
 func (w *TabWindow) LocFromVisual(vloc buffer.Loc) int {
@@ -40,7 +40,7 @@ func (w *TabWindow) LocFromVisual(vloc buffer.Loc) int {
                }
                x += s
                x += 3
-               if x >= w.width {
+               if x >= w.Width {
                        break
                }
        }
@@ -50,9 +50,9 @@ func (w *TabWindow) LocFromVisual(vloc buffer.Loc) int {
 func (w *TabWindow) Scroll(amt int) {
        w.hscroll += amt
        s := w.TotalSize()
-       w.hscroll = util.Clamp(w.hscroll, 0, s-w.width)
+       w.hscroll = util.Clamp(w.hscroll, 0, s-w.Width)
 
-       if s-w.width <= 0 {
+       if s-w.Width <= 0 {
                w.hscroll = 0
        }
 }
@@ -77,17 +77,17 @@ func (w *TabWindow) SetActive(a int) {
        for i, n := range w.Names {
                c := utf8.RuneCountInString(n)
                if i == a {
-                       if x+c >= w.hscroll+w.width {
-                               w.hscroll = util.Clamp(x+c+1-w.width, 0, s-w.width)
+                       if x+c >= w.hscroll+w.Width {
+                               w.hscroll = util.Clamp(x+c+1-w.Width, 0, s-w.Width)
                        } else if x < w.hscroll {
-                               w.hscroll = util.Clamp(x-4, 0, s-w.width)
+                               w.hscroll = util.Clamp(x-4, 0, s-w.Width)
                        }
                        break
                }
                x += c + 4
        }
 
-       if s-w.width <= 0 {
+       if s-w.Width <= 0 {
                w.hscroll = 0
        }
 }
@@ -96,6 +96,11 @@ func (w *TabWindow) Display() {
        x := -w.hscroll
        done := false
 
+       tabBarStyle := config.DefStyle.Reverse(true)
+       if style, ok := config.Colorscheme["tabbar"]; ok {
+               tabBarStyle = style
+       }
+
        draw := func(r rune, n int) {
                for i := 0; i < n; i++ {
                        rw := runewidth.RuneWidth(r)
@@ -104,14 +109,14 @@ func (w *TabWindow) Display() {
                                if j > 0 {
                                        c = ' '
                                }
-                               if x == w.width-1 && !done {
-                                       screen.SetContent(w.width-1, w.Y, '>', nil, config.DefStyle.Reverse(true))
+                               if x == w.Width-1 && !done {
+                                       screen.SetContent(w.Width-1, w.Y, '>', nil, tabBarStyle)
                                        x++
                                        break
                                } else if x == 0 && w.hscroll > 0 {
-                                       screen.SetContent(0, w.Y, '<', nil, config.DefStyle.Reverse(true))
-                               } else if x >= 0 && x < w.width {
-                                       screen.SetContent(x, w.Y, c, nil, config.DefStyle.Reverse(true))
+                                       screen.SetContent(0, w.Y, '<', nil, tabBarStyle)
+                               } else if x >= 0 && x < w.Width {
+                                       screen.SetContent(x, w.Y, c, nil, tabBarStyle)
                                }
                                x++
                        }
@@ -136,12 +141,12 @@ func (w *TabWindow) Display() {
                } else {
                        draw(' ', 3)
                }
-               if x >= w.width {
+               if x >= w.Width {
                        break
                }
        }
 
-       if x < w.width {
-               draw(' ', w.width-x)
+       if x < w.Width {
+               draw(' ', w.Width-x)
        }
 }