From aadcbcb44356b4393575c99481745d79aee8019a Mon Sep 17 00:00:00 2001 From: cxsu Date: Sun, 27 Dec 2020 22:52:20 +0900 Subject: [PATCH] Add wrapping tree key --- Makefile | 9 +++++---- cmd/root.go | 6 ++++-- runtime/ui/view/filetree.go | 14 +++++++++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 722de75b..53ba770f 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ PWD := ${CURDIR} PRODUCTION_REGISTRY = docker.io TEST_IMAGE = busybox:latest -all: clean build +all: gofmt clean build ## For CI @@ -119,13 +119,13 @@ run-podman-large: build run-ci: build CI=true $(BUILD_PATH) dive-example:latest --ci-config .data/.dive-ci -build: +build: gofmt go build -o $(BUILD_PATH) generate-test-data: docker build -t dive-test:latest -f .data/Dockerfile.test-image . && docker image save -o .data/test-docker-image.tar dive-test:latest && echo 'Exported test data!' -test: +test: gofmt ./.scripts/test-coverage.sh dev: @@ -135,4 +135,5 @@ clean: rm -rf dist go clean - +gofmt: + go fmt -x ./... diff --git a/cmd/root.go b/cmd/root.go index 6f714977..03086b1c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,13 +2,14 @@ package cmd import ( "fmt" - "github.com/wagoodman/dive/dive" - "github.com/wagoodman/dive/dive/filetree" "io/ioutil" "os" "path" "strings" + "github.com/wagoodman/dive/dive" + "github.com/wagoodman/dive/dive/filetree" + "github.com/mitchellh/go-homedir" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" @@ -90,6 +91,7 @@ func initConfig() { viper.SetDefault("keybinding.toggle-removed-files", "ctrl+r") viper.SetDefault("keybinding.toggle-modified-files", "ctrl+m") viper.SetDefault("keybinding.toggle-unmodified-files", "ctrl+u") + viper.SetDefault("keybinding.toggle-wrap-tree", "ctrl+p") viper.SetDefault("keybinding.page-up", "pgup") viper.SetDefault("keybinding.page-down", "pgdn") diff --git a/runtime/ui/view/filetree.go b/runtime/ui/view/filetree.go index 97e6f7b0..863dd33a 100644 --- a/runtime/ui/view/filetree.go +++ b/runtime/ui/view/filetree.go @@ -2,6 +2,8 @@ package view import ( "fmt" + "regexp" + "github.com/jroimartin/gocui" "github.com/sirupsen/logrus" "github.com/spf13/viper" @@ -10,7 +12,6 @@ import ( "github.com/wagoodman/dive/runtime/ui/key" "github.com/wagoodman/dive/runtime/ui/viewmodel" "github.com/wagoodman/dive/utils" - "regexp" ) type ViewOptionChangeListener func() error @@ -126,6 +127,12 @@ func (v *FileTree) Setup(view *gocui.View, header *gocui.View) error { IsSelected: func() bool { return v.vm.ShowAttributes }, Display: "Attributes", }, + { + ConfigKeys: []string{"keybinding.toggle-wrap-tree"}, + OnAction: v.toggleWrapTree, + IsSelected: func() bool { return v.view.Wrap }, + Display: "Wrap", + }, { ConfigKeys: []string{"keybinding.page-up"}, OnAction: v.PageUp, @@ -280,6 +287,11 @@ func (v *FileTree) toggleCollapseAll() error { return v.Render() } +func (v *FileTree) toggleWrapTree() error { + v.view.Wrap = !v.view.Wrap + return nil +} + func (v *FileTree) notifyOnViewOptionChangeListeners() error { for _, listener := range v.listeners { err := listener()