diff --git a/cmd/root.go b/cmd/root.go index ec2dc0a..e360cbf 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -70,7 +70,7 @@ func initConfig() { viper.SetDefault("keybinding.toggle-added-files", "ctrl+a") viper.SetDefault("keybinding.toggle-removed-files", "ctrl+r") viper.SetDefault("keybinding.toggle-modified-files", "ctrl+m") - viper.SetDefault("keybinding.toggle-unchanged-files", "ctrl+u") + viper.SetDefault("keybinding.toggle-unmodified-files", "ctrl+u") viper.SetDefault("keybinding.page-up", "pgup") viper.SetDefault("keybinding.page-down", "pgdn") diff --git a/filetree/data.go b/filetree/data.go index 1218964..743ecb0 100644 --- a/filetree/data.go +++ b/filetree/data.go @@ -10,8 +10,8 @@ import ( ) const ( - Unchanged DiffType = iota - Changed + Unmodified DiffType = iota + Modified Added Removed ) @@ -23,7 +23,7 @@ func NewNodeData() *NodeData { return &NodeData{ ViewInfo: *NewViewInfo(), FileInfo: FileInfo{}, - DiffType: Unchanged, + DiffType: Unmodified, } } @@ -129,19 +129,19 @@ func (data *FileInfo) Compare(other FileInfo) DiffType { data.Mode == other.Mode && data.Uid == other.Uid && data.Gid == other.Gid { - return Unchanged + return Unmodified } } - return Changed + return Modified } // String of a DiffType func (diff DiffType) String() string { switch diff { - case Unchanged: - return "Unchanged" - case Changed: - return "Changed" + case Unmodified: + return "Unmodified" + case Modified: + return "Modified" case Added: return "Added" case Removed: @@ -157,5 +157,5 @@ func (diff DiffType) merge(other DiffType) DiffType { if diff == other { return diff } - return Changed + return Modified } diff --git a/filetree/data_test.go b/filetree/data_test.go index 7c9fad7..351d6df 100644 --- a/filetree/data_test.go +++ b/filetree/data_test.go @@ -10,23 +10,23 @@ func TestAssignDiffType(t *testing.T) { if err != nil { t.Errorf("Expected no error from fetching path. got: %v", err) } - node.Data.DiffType = Changed - if tree.Root.Children["usr"].Data.DiffType != Changed { + node.Data.DiffType = Modified + if tree.Root.Children["usr"].Data.DiffType != Modified { t.Fail() } } func TestMergeDiffTypes(t *testing.T) { - a := Unchanged - b := Unchanged + a := Unmodified + b := Unmodified merged := a.merge(b) - if merged != Unchanged { + if merged != Unmodified { t.Errorf("Expected Unchaged (0) but got %v", merged) } - a = Changed - b = Unchanged + a = Modified + b = Unmodified merged = a.merge(b) - if merged != Changed { + if merged != Modified { t.Errorf("Expected Unchaged (0) but got %v", merged) } } diff --git a/filetree/node.go b/filetree/node.go index b58c986..f0c880e 100644 --- a/filetree/node.go +++ b/filetree/node.go @@ -17,10 +17,10 @@ const ( ) var diffTypeColor = map[DiffType]*color.Color{ - Added: color.New(color.FgGreen), - Removed: color.New(color.FgRed), - Changed: color.New(color.FgYellow), - Unchanged: color.New(color.Reset), + Added: color.New(color.FgGreen), + Removed: color.New(color.FgRed), + Modified: color.New(color.FgYellow), + Unmodified: color.New(color.Reset), } // NewNode creates a new FileNode relative to the given parent node with a payload. @@ -292,7 +292,7 @@ func (node *FileNode) AssignDiffType(diffType DiffType) error { // compare the current node against the given node, returning a definitive DiffType. func (node *FileNode) compare(other *FileNode) DiffType { if node == nil && other == nil { - return Unchanged + return Unmodified } if node == nil && other != nil { diff --git a/filetree/node_test.go b/filetree/node_test.go index 0470978..a344475 100644 --- a/filetree/node_test.go +++ b/filetree/node_test.go @@ -115,7 +115,7 @@ func TestIsWhiteout(t *testing.T) { func TestDiffTypeFromAddedChildren(t *testing.T) { tree := NewFileTree() node, _, _ := tree.AddPath("/usr", *BlankFileChangeInfo("/usr")) - node.Data.DiffType = Unchanged + node.Data.DiffType = Unmodified node, _, _ = tree.AddPath("/usr/bin", *BlankFileChangeInfo("/usr/bin")) node.Data.DiffType = Added @@ -123,11 +123,11 @@ func TestDiffTypeFromAddedChildren(t *testing.T) { node, _, _ = tree.AddPath("/usr/bin2", *BlankFileChangeInfo("/usr/bin2")) node.Data.DiffType = Removed - err := tree.Root.Children["usr"].deriveDiffType(Unchanged) + err := tree.Root.Children["usr"].deriveDiffType(Unmodified) checkError(t, err, "unable to setup test") - if tree.Root.Children["usr"].Data.DiffType != Changed { - t.Errorf("Expected Changed but got %v", tree.Root.Children["usr"].Data.DiffType) + if tree.Root.Children["usr"].Data.DiffType != Modified { + t.Errorf("Expected Modified but got %v", tree.Root.Children["usr"].Data.DiffType) } } func TestDiffTypeFromRemovedChildren(t *testing.T) { @@ -142,11 +142,11 @@ func TestDiffTypeFromRemovedChildren(t *testing.T) { node, _, _ = tree.AddPath("/usr/.wh.bin2", *info2) node.Data.DiffType = Removed - err := tree.Root.Children["usr"].deriveDiffType(Unchanged) + err := tree.Root.Children["usr"].deriveDiffType(Unmodified) checkError(t, err, "unable to setup test") - if tree.Root.Children["usr"].Data.DiffType != Changed { - t.Errorf("Expected Changed but got %v", tree.Root.Children["usr"].Data.DiffType) + if tree.Root.Children["usr"].Data.DiffType != Modified { + t.Errorf("Expected Modified but got %v", tree.Root.Children["usr"].Data.DiffType) } } diff --git a/filetree/tree.go b/filetree/tree.go index fc4cf7f..2036f91 100644 --- a/filetree/tree.go +++ b/filetree/tree.go @@ -334,7 +334,7 @@ func (tree *FileTree) CompareAndMark(upper *FileTree) error { if err != nil { return err } - } else if pair.lowerNode.Data.DiffType == Unchanged { + } else if pair.lowerNode.Data.DiffType == Unmodified { err = pair.lowerNode.deriveDiffType(pair.tentative) if err != nil { return err diff --git a/filetree/tree_test.go b/filetree/tree_test.go index 7be1bb2..fc57036 100644 --- a/filetree/tree_test.go +++ b/filetree/tree_test.go @@ -423,7 +423,7 @@ func TestCompareWithNoChanges(t *testing.T) { if n.Path() == "/" { return nil } - if (n.Data.DiffType) != Unchanged { + if (n.Data.DiffType) != Unmodified { t.Errorf("Expecting node at %s to have DiffType unchanged, but had %v", n.Path(), n.Data.DiffType) } return nil @@ -477,11 +477,11 @@ func TestCompareWithAdds(t *testing.T) { failedAssertions = append(failedAssertions, err) } } else if stringInSlice(p, []string{"/usr/bin", "/usr"}) { - if err := AssertDiffType(n, Changed); err != nil { + if err := AssertDiffType(n, Modified); err != nil { failedAssertions = append(failedAssertions, err) } } else { - if err := AssertDiffType(n, Unchanged); err != nil { + if err := AssertDiffType(n, Unmodified); err != nil { failedAssertions = append(failedAssertions, err) } } @@ -588,11 +588,11 @@ func TestCompareWithChanges(t *testing.T) { if p == "/" { return nil } else if stringInSlice(p, changedPaths) { - if err := AssertDiffType(n, Changed); err != nil { + if err := AssertDiffType(n, Modified); err != nil { failedAssertions = append(failedAssertions, err) } } else { - if err := AssertDiffType(n, Unchanged); err != nil { + if err := AssertDiffType(n, Unmodified); err != nil { failedAssertions = append(failedAssertions, err) } } @@ -656,11 +656,11 @@ func TestCompareWithRemoves(t *testing.T) { failedAssertions = append(failedAssertions, err) } } else if stringInSlice(p, []string{"/usr", "/root"}) { - if err := AssertDiffType(n, Changed); err != nil { + if err := AssertDiffType(n, Modified); err != nil { failedAssertions = append(failedAssertions, err) } } else { - if err := AssertDiffType(n, Unchanged); err != nil { + if err := AssertDiffType(n, Unmodified); err != nil { failedAssertions = append(failedAssertions, err) } } diff --git a/ui/filetree_controller.go b/ui/filetree_controller.go index 9ca083f..7a8c375 100644 --- a/ui/filetree_controller.go +++ b/ui/filetree_controller.go @@ -35,7 +35,7 @@ type FileTreeController struct { keybindingToggleAdded []keybinding.Key keybindingToggleRemoved []keybinding.Key keybindingToggleModified []keybinding.Key - keybindingToggleUnchanged []keybinding.Key + keybindingToggleUnmodified []keybinding.Key keybindingPageDown []keybinding.Key keybindingPageUp []keybinding.Key } @@ -80,9 +80,13 @@ func NewFileTreeController(name string, gui *gocui.Gui, tree *filetree.FileTree, logrus.Error(err) } - controller.keybindingToggleUnchanged, err = keybinding.ParseAll(viper.GetString("keybinding.toggle-unchanged-files")) + // support legacy behavior first, then use default behavior + controller.keybindingToggleUnmodified, err = keybinding.ParseAll(viper.GetString("keybinding.toggle-unchanged-files")) if err != nil { - logrus.Error(err) + controller.keybindingToggleUnmodified, err = keybinding.ParseAll(viper.GetString("keybinding.toggle-unmodified-files")) + if err != nil { + logrus.Error(err) + } } controller.keybindingPageUp, err = keybinding.ParseAll(viper.GetString("keybinding.page-up")) @@ -162,12 +166,12 @@ func (controller *FileTreeController) Setup(v *gocui.View, header *gocui.View) e } } for _, key := range controller.keybindingToggleModified { - if err := controller.gui.SetKeybinding(controller.Name, key.Value, key.Modifier, func(*gocui.Gui, *gocui.View) error { return controller.toggleShowDiffType(filetree.Changed) }); err != nil { + if err := controller.gui.SetKeybinding(controller.Name, key.Value, key.Modifier, func(*gocui.Gui, *gocui.View) error { return controller.toggleShowDiffType(filetree.Modified) }); err != nil { return err } } - for _, key := range controller.keybindingToggleUnchanged { - if err := controller.gui.SetKeybinding(controller.Name, key.Value, key.Modifier, func(*gocui.Gui, *gocui.View) error { return controller.toggleShowDiffType(filetree.Unchanged) }); err != nil { + for _, key := range controller.keybindingToggleUnmodified { + if err := controller.gui.SetKeybinding(controller.Name, key.Value, key.Modifier, func(*gocui.Gui, *gocui.View) error { return controller.toggleShowDiffType(filetree.Unmodified) }); err != nil { return err } } @@ -392,7 +396,7 @@ func (controller *FileTreeController) KeyHelp() string { renderStatusOption(controller.keybindingToggleCollapseAll[0].String(), "Collapse all dir", false) + renderStatusOption(controller.keybindingToggleAdded[0].String(), "Added", !controller.vm.HiddenDiffTypes[filetree.Added]) + renderStatusOption(controller.keybindingToggleRemoved[0].String(), "Removed", !controller.vm.HiddenDiffTypes[filetree.Removed]) + - renderStatusOption(controller.keybindingToggleModified[0].String(), "Modified", !controller.vm.HiddenDiffTypes[filetree.Changed]) + - renderStatusOption(controller.keybindingToggleUnchanged[0].String(), "Unmodified", !controller.vm.HiddenDiffTypes[filetree.Unchanged]) + + renderStatusOption(controller.keybindingToggleModified[0].String(), "Modified", !controller.vm.HiddenDiffTypes[filetree.Modified]) + + renderStatusOption(controller.keybindingToggleUnmodified[0].String(), "Unmodified", !controller.vm.HiddenDiffTypes[filetree.Unmodified]) + renderStatusOption(controller.keybindingToggleAttributes[0].String(), "Attributes", controller.vm.ShowAttributes) } diff --git a/ui/filetree_viewmodel.go b/ui/filetree_viewmodel.go index 08b66a3..c253d0d 100644 --- a/ui/filetree_viewmodel.go +++ b/ui/filetree_viewmodel.go @@ -53,10 +53,10 @@ func NewFileTreeViewModel(tree *filetree.FileTree, refTrees []*filetree.FileTree treeViewModel.HiddenDiffTypes[filetree.Added] = true case "removed": treeViewModel.HiddenDiffTypes[filetree.Removed] = true - case "changed": - treeViewModel.HiddenDiffTypes[filetree.Changed] = true - case "unchanged": - treeViewModel.HiddenDiffTypes[filetree.Unchanged] = true + case "modified": + treeViewModel.HiddenDiffTypes[filetree.Modified] = true + case "unmodified": + treeViewModel.HiddenDiffTypes[filetree.Unmodified] = true default: utils.PrintAndExit(fmt.Sprintf("unknown diff.hide value: %s", t)) } diff --git a/ui/filetree_viewmodel_test.go b/ui/filetree_viewmodel_test.go index b42254a..8bea822 100644 --- a/ui/filetree_viewmodel_test.go +++ b/ui/filetree_viewmodel_test.go @@ -324,7 +324,7 @@ func TestFileTreeHideAddedRemovedModified(t *testing.T) { vm.toggleShowDiffType(filetree.Added) // hide modified files - vm.toggleShowDiffType(filetree.Changed) + vm.toggleShowDiffType(filetree.Modified) // hide removed files vm.toggleShowDiffType(filetree.Removed) @@ -350,7 +350,7 @@ func TestFileTreeHideUnmodified(t *testing.T) { } // hide unmodified files - vm.toggleShowDiffType(filetree.Unchanged) + vm.toggleShowDiffType(filetree.Unmodified) runTestCase(t, vm, width, height, nil) }