X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=cmd%2Fmicro%2Fstatusline.go;h=d346a033852e0fd4a370896fa2b6fdf0f61038aa;hb=61baa73d70750fc3cb235a2a806a64709605542b;hp=6ed863621c45daf147b8675e848637af46b816a3;hpb=02f78edaf9bcc7516f724911fc623d8385398fd9;p=micro.git diff --git a/cmd/micro/statusline.go b/cmd/micro/statusline.go index 6ed86362..d346a033 100644 --- a/cmd/micro/statusline.go +++ b/cmd/micro/statusline.go @@ -1,6 +1,7 @@ package main import ( + "path" "strconv" ) @@ -14,13 +15,20 @@ type Statusline struct { // Display draws the statusline to the screen func (sline *Statusline) Display() { + if messenger.hasPrompt && !GetGlobalOption("infobar").(bool) { + return + } + // We'll draw the line at the lowest line in the view - y := sline.view.height + sline.view.y + y := sline.view.Height + sline.view.y - file := sline.view.Buf.Name + file := sline.view.Buf.GetName() + if sline.view.Buf.Settings["basename"].(bool) { + file = path.Base(file) + } // If the buffer is dirty (has been modified) write a little '+' - if sline.view.Buf.IsModified { + if sline.view.Buf.Modified() { file += " +" } @@ -34,11 +42,30 @@ func (sline *Statusline) Display() { file += " (" + lineNum + "," + columnNum + ")" // Add the filetype - file += " " + sline.view.Buf.FileType + file += " " + sline.view.Buf.FileType() - rightText := helpBinding + " for help " - if sline.view.Help { - rightText = helpBinding + " to close help " + file += " " + sline.view.Buf.Settings["fileformat"].(string) + + rightText := "" + if !sline.view.Buf.Settings["hidehelp"].(bool) { + if len(kmenuBinding) > 0 { + if globalSettings["keymenu"].(bool) { + rightText += kmenuBinding + ": hide bindings" + } else { + rightText += kmenuBinding + ": show bindings" + } + } + if len(helpBinding) > 0 { + if len(kmenuBinding) > 0 { + rightText += ", " + } + if sline.view.Type == vtHelp { + rightText += helpBinding + ": close help" + } else { + rightText += helpBinding + ": open help" + } + } + rightText += " " } statusLineStyle := defStyle.Reverse(true) @@ -48,16 +75,22 @@ func (sline *Statusline) Display() { // Maybe there is a unicode filename? fileRunes := []rune(file) + + if sline.view.Type == vtTerm { + fileRunes = []rune(sline.view.term.title) + rightText = "" + } + viewX := sline.view.x if viewX != 0 { screen.SetContent(viewX, y, ' ', nil, statusLineStyle) viewX++ } - for x := 0; x < sline.view.width; x++ { + for x := 0; x < sline.view.Width; x++ { if x < len(fileRunes) { screen.SetContent(viewX+x, y, fileRunes[x], nil, statusLineStyle) - } else if x >= sline.view.width-len(rightText) && x < len(rightText)+sline.view.width-len(rightText) { - screen.SetContent(viewX+x, y, []rune(rightText)[x-sline.view.width+len(rightText)], nil, statusLineStyle) + } else if x >= sline.view.Width-len(rightText) && x < len(rightText)+sline.view.Width-len(rightText) { + screen.SetContent(viewX+x, y, []rune(rightText)[x-sline.view.Width+len(rightText)], nil, statusLineStyle) } else { screen.SetContent(viewX+x, y, ' ', nil, statusLineStyle) }