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
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)
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
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)
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
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")
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