summaryrefslogtreecommitdiffstats
path: root/pkg/gui/files_panel.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2018-12-02 19:57:01 +1100
committerJesse Duffield <jessedduffield@gmail.com>2018-12-04 22:11:48 +1100
commit658e5a9faf8409c62f11f3ad6d636d0255e450f4 (patch)
tree5914a060bfdaaf28064326e66f9a207e2dd8dd0c /pkg/gui/files_panel.go
parent99824c8a7b840cc2fa8c06f248acfaf01a3f964b (diff)
initial support for staging individual lines
Diffstat (limited to 'pkg/gui/files_panel.go')
-rw-r--r--pkg/gui/files_panel.go22
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)
}