From be54d40e6b5dcd9aa0fb48ebb237a34acdbf2d1a Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 11 Apr 2020 16:01:45 +1000 Subject: [PATCH] WIP --- pkg/gui/dependencies_panel.go | 10 +++++++++- pkg/gui/packages_panel.go | 8 ++++++-- pkg/gui/presentation/packages.go | 10 +--------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/pkg/gui/dependencies_panel.go b/pkg/gui/dependencies_panel.go index 0d6479a..8289f2d 100644 --- a/pkg/gui/dependencies_panel.go +++ b/pkg/gui/dependencies_panel.go @@ -1,9 +1,13 @@ package gui import ( + "fmt" + + "github.com/fatih/color" "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazynpm/pkg/commands" "github.com/jesseduffield/lazynpm/pkg/gui/presentation" + "github.com/jesseduffield/lazynpm/pkg/utils" ) // list panel functions @@ -22,7 +26,11 @@ func (gui *Gui) handleDepSelect(g *gocui.Gui, v *gocui.View) error { return gui.newStringTask("main", gui.Tr.SLocalize("NoDependencies")) } if dep.PackageConfig != nil { - gui.renderString("secondary", presentation.PackageSummary(*dep.PackageConfig)) + summary := presentation.PackageSummary(*dep.PackageConfig) + if dep.Linked() { + summary = fmt.Sprintf("%s\nLinked to: %s", summary, utils.ColoredString(dep.LinkPath, color.FgCyan)) + } + gui.renderString("secondary", summary) } else { gui.renderString("secondary", "dependency not present in node_modules") } diff --git a/pkg/gui/packages_panel.go b/pkg/gui/packages_panel.go index efa25fd..e09893a 100644 --- a/pkg/gui/packages_panel.go +++ b/pkg/gui/packages_panel.go @@ -3,9 +3,11 @@ package gui import ( "fmt" + "github.com/fatih/color" "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazynpm/pkg/commands" "github.com/jesseduffield/lazynpm/pkg/gui/presentation" + "github.com/jesseduffield/lazynpm/pkg/utils" ) // list panel functions @@ -23,7 +25,9 @@ func (gui *Gui) handlePackageSelect(g *gocui.Gui, v *gocui.View) error { gui.getMainView().Title = "" return gui.newStringTask("main", gui.Tr.SLocalize("NoChangedPackages")) } - gui.renderString("secondary", presentation.PackageSummary(pkg.Config)) + summary := presentation.PackageSummary(pkg.Config) + summary = fmt.Sprintf("%s\nPath: %s", summary, utils.ColoredString(pkg.Path, color.FgCyan)) + gui.renderString("secondary", summary) return nil } @@ -38,7 +42,7 @@ func (gui *Gui) refreshPackages() error { } gui.g.Update(func(g *gocui.Gui) error { - displayStrings := presentation.GetPackageListDisplayStrings(gui.State.Packages, gui.State.Deps) + displayStrings := presentation.GetPackageListDisplayStrings(gui.State.Packages, gui.linkPathMap()) gui.renderDisplayStrings(packagesView, displayStrings) displayStrings = presentation.GetDependencyListDisplayStrings(gui.State.Deps) diff --git a/pkg/gui/presentation/packages.go b/pkg/gui/presentation/packages.go index cbaeb22..67ba0c1 100644 --- a/pkg/gui/presentation/packages.go +++ b/pkg/gui/presentation/packages.go @@ -9,17 +9,9 @@ import ( "github.com/jesseduffield/lazynpm/pkg/utils" ) -func GetPackageListDisplayStrings(packages []*commands.Package, deps []*commands.Dependency) [][]string { +func GetPackageListDisplayStrings(packages []*commands.Package, linkPathMap map[string]bool) [][]string { lines := make([][]string, len(packages)) - // we need to work out all the link paths from the deps - linkPathMap := map[string]bool{} - for _, dep := range deps { - if dep.Linked() { - linkPathMap[dep.LinkPath] = true - } - } - for i := range packages { pkg := packages[i] lines[i] = getPackageDisplayStrings(pkg, linkPathMap[pkg.Path])