Don't display the tab bar if only one tab is open

This commit is contained in:
Zachary Yedidia
2016-06-08 13:29:24 -04:00
parent 40affa56c7
commit 57f769c9a1
4 changed files with 23 additions and 17 deletions

View File

@@ -31,6 +31,9 @@ func CurView() *View {
}
func DisplayTabs() {
if len(tabs) <= 1 {
return
}
str := ""
for i, t := range tabs {
if i == curTab {

View File

@@ -99,7 +99,7 @@ func NewView(buf *Buffer) *View {
func NewViewWidthHeight(buf *Buffer, w, h int) *View {
v := new(View)
v.x, v.y = 0, 1
v.x, v.y = 0, 0
v.widthPercent = w
v.heightPercent = h
@@ -123,8 +123,11 @@ func NewViewWidthHeight(buf *Buffer, w, h int) *View {
func (v *View) Resize(w, h int) {
// Always include 1 line for the command line at the bottom
h--
// Include one line for the tab bar at the top
h--
if len(tabs) > 1 {
// Include one line for the tab bar at the top
h--
v.y = 1
}
v.width = int(float32(w) * float32(v.widthPercent) / 100)
// We subtract 1 for the statusline
v.height = int(float32(h) * float32(v.heightPercent) / 100)

View File

@@ -9,7 +9,7 @@ MakeCommand("goimports", "go_goimports")
MakeCommand("gofmt", "go_gofmt")
function go_onSave()
if views[mainView+1].Buf.FileType == "Go" then
if CurView().Buf.FileType == "Go" then
if GetOption("goimports") then
go_goimports()
elseif GetOption("gofmt") then
@@ -19,21 +19,21 @@ function go_onSave()
end
function go_gofmt()
views[mainView+1]:Save()
local handle = io.popen("gofmt -w " .. views[mainView+1].Buf.Path)
CurView():Save()
local handle = io.popen("gofmt -w " .. CurView().Buf.Path)
local result = handle:read("*a")
handle:close()
views[mainView+1]:ReOpen()
CurView():ReOpen()
end
function go_goimports()
views[mainView+1]:Save()
local handle = io.popen("goimports -w " .. views[mainView+1].Buf.Path)
CurView():Save()
local handle = io.popen("goimports -w " .. CurView().Buf.Path)
local result = go_split(handle:read("*a"), ":")
handle:close()
views[mainView+1]:ReOpen()
CurView():ReOpen()
end
function go_split(str, sep)

View File

@@ -4,15 +4,15 @@ end
function linter_onSave()
if GetOption("linter") then
local ft = views[mainView+1].Buf.FileType
local file = views[mainView+1].Buf.Path
local ft = CurView().Buf.FileType
local file = CurView().Buf.Path
local devnull = "/dev/null"
if OS == "windows" then
devnull = "NUL"
end
if ft == "Go" then
linter_lint("gobuild", "go build -o " .. devnull, "%f:%l: %m")
linter_lint("golint", "golint " .. views[mainView+1].Buf.Path, "%f:%l:%d+: %m")
linter_lint("golint", "golint " .. CurView().Buf.Path, "%f:%l:%d+: %m")
elseif ft == "Lua" then
linter_lint("luacheck", "luacheck --no-color " .. file, "%f:%l:%d+: %m")
elseif ft == "Python" then
@@ -27,12 +27,12 @@ function linter_onSave()
linter_lint("jshint", "jshint " .. file, "%f: line %l,.+, %m")
end
else
views[mainView+1]:ClearAllGutterMessages()
CurView():ClearAllGutterMessages()
end
end
function linter_lint(linter, cmd, errorformat)
views[mainView+1]:ClearGutterMessages(linter)
CurView():ClearGutterMessages(linter)
local handle = io.popen("(" .. cmd .. ")" .. " 2>&1")
local lines = linter_split(handle:read("*a"), "\n")
@@ -44,8 +44,8 @@ function linter_lint(linter, cmd, errorformat)
line = line:match("^%s*(.+)%s*$")
if string.find(line, regex) then
local file, line, msg = string.match(line, regex)
if linter_basename(views[mainView+1].Buf.Path) == linter_basename(file) then
views[mainView+1]:GutterMessage(linter, tonumber(line), msg, 2)
if linter_basename(CurView().Buf.Path) == linter_basename(file) then
CurView():GutterMessage(linter, tonumber(line), msg, 2)
end
end
end