diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2018-12-02 19:57:01 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2018-12-04 22:11:48 +1100 |
commit | 658e5a9faf8409c62f11f3ad6d636d0255e450f4 (patch) | |
tree | 5914a060bfdaaf28064326e66f9a207e2dd8dd0c /pkg/gui/files_panel.go | |
parent | 99824c8a7b840cc2fa8c06f248acfaf01a3f964b (diff) |
initial support for staging individual lines
Diffstat (limited to 'pkg/gui/files_panel.go')
-rw-r--r-- | pkg/gui/files_panel.go | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/pkg/gui/files_panel.go b/pkg/gui/files_panel.go index a00bd2843..3404903ef 100644 --- a/pkg/gui/files_panel.go +++ b/pkg/gui/files_panel.go @@ -45,6 +45,25 @@ func (gui *Gui) stageSelectedFile(g *gocui.Gui) error { return gui.GitCommand.StageFile(file.Name) } +func (gui *Gui) handleSwitchToStagingPanel(g *gocui.Gui, v *gocui.View) error { + stagingView, err := g.View("staging") + if err != nil { + return err + } + file, err := gui.getSelectedFile(g) + if err != nil { + if err != gui.Errors.ErrNoFiles { + return err + } + return nil + } + if !file.Tracked || !file.HasUnstagedChanges { + return gui.createErrorPanel(g, gui.Tr.SLocalize("FileStagingRequirements")) + } + gui.switchFocus(g, v, stagingView) + return gui.refreshStagingPanel() +} + func (gui *Gui) handleFilePress(g *gocui.Gui, v *gocui.View) error { file, err := gui.getSelectedFile(g) if err != nil { @@ -188,12 +207,11 @@ func (gui *Gui) handleFileSelect(g *gocui.Gui, v *gocui.View) error { if err := gui.renderfilesOptions(g, file); err != nil { return err } - var content string if file.HasMergeConflicts { return gui.refreshMergePanel(g) } - content = gui.GitCommand.Diff(file) + content := gui.GitCommand.Diff(file, false) return gui.renderString(g, "main", content) } |