From 9824c409ad61a198bcd8a9bfe249f2a20187daec Mon Sep 17 00:00:00 2001 From: Simon Roberts Date: Fri, 1 Oct 2021 17:03:36 +1000 Subject: [PATCH] Feature/code cleanups (#191) Lots of style/comment/redundancy cleanups. No functional change. --- .gitignore | 5 +- README.md | 6 +- cointop/chart.go | 2 +- cointop/cointop.go | 2 +- cointop/colorscheme.go | 12 +- cointop/config.go | 136 +++++++------------- cointop/conversion.go | 2 +- cointop/favorites.go | 2 +- cointop/list.go | 4 +- cointop/marketbar.go | 2 +- cointop/navigation.go | 2 +- cointop/portfolio.go | 2 +- cointop/price_alerts.go | 2 +- cointop/table.go | 2 +- cointop/table_header.go | 38 +++--- pkg/api/impl/coingecko/coingecko.go | 4 +- pkg/api/impl/coinmarketcap/coinmarketcap.go | 4 +- pkg/api/interface.go | 5 +- pkg/eval/eval.go | 2 +- pkg/termui/events.go | 2 +- pkg/termui/helper.go | 6 +- pkg/termui/mbarchart.go | 12 +- pkg/termui/sparkline.go | 4 +- pkg/termui/theme.go | 2 +- pkg/termui/widget.go | 2 +- 25 files changed, 112 insertions(+), 150 deletions(-) diff --git a/.gitignore b/.gitignore index 9233007..e4aae3d 100644 --- a/.gitignore +++ b/.gitignore @@ -47,9 +47,6 @@ wasm .config .bz2 -# flatpak -.flatpak-builder -build-dir #repo # do not ignore .flathub # do not ignore .rpm @@ -66,4 +63,4 @@ deploy_docs.sh package-lock.json # Local Netlify folder -.netlify \ No newline at end of file +.netlify diff --git a/README.md b/README.md index 720b16f..3695b9f 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ In action - [Documentation](#documentation) - [Install](#install) - [Update](#update) -- [Getting started](#getting-started) +- [Getting Started](#getting-started) - [Shortcuts](#shortcuts) - [Colorschemes](#colorschemes) - [Config](#config) @@ -86,6 +86,10 @@ See [docs.cointop.sh/install](https://docs.cointop.sh/install) See [docs.cointop.sh/update](https://docs.cointop.sh/update) +## Getting Started + +See [docs.cointop.sh/getting-started](https://docs.cointop.sh/getting-started) + ## Shortcuts See [docs.cointop.sh/shortcuts](https://docs.cointop.sh/shortcuts) diff --git a/cointop/chart.go b/cointop/chart.go index c2fa3c3..25875fd 100644 --- a/cointop/chart.go +++ b/cointop/chart.go @@ -103,7 +103,7 @@ func (ct *Cointop) UpdateChart() error { return nil } -// ChartPoints calculates the the chart points +// ChartPoints calculates the chart points func (ct *Cointop) ChartPoints(symbol string, name string) error { log.Debug("ChartPoints()") maxX := ct.ChartWidth() diff --git a/cointop/cointop.go b/cointop/cointop.go index 8ba1b61..8f47d68 100644 --- a/cointop/cointop.go +++ b/cointop/cointop.go @@ -193,7 +193,7 @@ var DefaultSortBy = "rank" // DefaultPerPage ... var DefaultPerPage uint = 100 -// MaxPages +// DefaultMaxPages ... var DefaultMaxPages uint = 35 // DefaultColorscheme ... diff --git a/cointop/colorscheme.go b/cointop/colorscheme.go index b0c8c2d..2403d9c 100644 --- a/cointop/colorscheme.go +++ b/cointop/colorscheme.go @@ -6,8 +6,8 @@ import ( "sync" fcolor "github.com/fatih/color" - gocui "github.com/miguelmota/gocui" - xtermcolor "github.com/tomnomnom/xtermcolor" + "github.com/miguelmota/gocui" + "github.com/tomnomnom/xtermcolor" ) // TODO: fix hex color support @@ -18,7 +18,7 @@ type ColorschemeColors map[string]interface{} // ISprintf is a sprintf interface type ISprintf func(...interface{}) string -// colorCache is a map of color string names to sprintf functions +// ColorCache is a map of color string names to sprintf functions type ColorCache map[string]ISprintf // Colorscheme is the struct for colorscheme @@ -337,17 +337,17 @@ func (c *Colorscheme) ToBgAttr(v string) (fcolor.Attribute, bool) { return 0, false } -// toBoldAttr converts a boolean to an Attribute type +// ToBoldAttr converts a boolean to an Attribute type func (c *Colorscheme) ToBoldAttr(v bool) (fcolor.Attribute, bool) { return fcolor.Bold, v } -// toUnderlineAttr converts a boolean to an Attribute type +// ToUnderlineAttr converts a boolean to an Attribute type func (c *Colorscheme) ToUnderlineAttr(v bool) (fcolor.Attribute, bool) { return fcolor.Underline, v } -// toGocuiAttr converts a color string name to a gocui Attribute type +// ToGocuiAttr converts a color string name to a gocui Attribute type func (c *Colorscheme) ToGocuiAttr(v string) (gocui.Attribute, bool) { if attr, ok := GocuiColorschemeColorsMap[v]; ok { return attr, true diff --git a/cointop/config.go b/cointop/config.go index 30cf1d9..8b32c04 100644 --- a/cointop/config.go +++ b/cointop/config.go @@ -24,7 +24,7 @@ var FilePerm = os.FileMode(0644) // ErrInvalidPriceAlert is error for invalid price alert value var ErrInvalidPriceAlert = errors.New("invalid price alert value") -// PossibleConfigPaths are the the possible config file paths. +// PossibleConfigPaths are the possible config file paths. // NOTE: this is to support previous default config filepaths var PossibleConfigPaths = []string{ ":PREFERRED_CONFIG_HOME:/cointop/config.toml", @@ -54,54 +54,30 @@ type ConfigFileConfig struct { // SetupConfig loads config file func (ct *Cointop) SetupConfig() error { - log.Debug("SetupConfig()") - if err := ct.CreateConfigIfNotExists(); err != nil { - return err - } - if err := ct.ParseConfig(); err != nil { - return err - } - if err := ct.loadTableConfig(); err != nil { - return err - } - if err := ct.loadChartConfig(); err != nil { - return err - } - if err := ct.loadShortcutsFromConfig(); err != nil { - return err - } - if err := ct.loadFavoritesFromConfig(); err != nil { - return err - } - if err := ct.loadCurrencyFromConfig(); err != nil { - return err - } - if err := ct.loadDefaultViewFromConfig(); err != nil { - return err - } - if err := ct.loadDefaultChartRangeFromConfig(); err != nil { - return err - } - if err := ct.loadAPIKeysFromConfig(); err != nil { - return err - } - if err := ct.loadAPIChoiceFromConfig(); err != nil { - return err - } - if err := ct.loadColorschemeFromConfig(); err != nil { - return err - } - if err := ct.loadRefreshRateFromConfig(); err != nil { - return err - } - if err := ct.loadCacheDirFromConfig(); err != nil { - return err - } - if err := ct.loadPriceAlertsFromConfig(); err != nil { - return err - } - if err := ct.loadPortfolioFromConfig(); err != nil { - return err + type loadConfigFunc func() error + loaders := []loadConfigFunc{ + ct.CreateConfigIfNotExists, + ct.ParseConfig, + ct.loadTableConfig, + ct.loadChartConfig, + ct.loadShortcutsFromConfig, + ct.loadFavoritesFromConfig, + ct.loadCurrencyFromConfig, + ct.loadDefaultViewFromConfig, + ct.loadDefaultChartRangeFromConfig, + ct.loadAPIKeysFromConfig, + ct.loadAPIChoiceFromConfig, + ct.loadColorschemeFromConfig, + ct.loadRefreshRateFromConfig, + ct.loadCacheDirFromConfig, + ct.loadPriceAlertsFromConfig, + ct.loadPortfolioFromConfig, + } + + for _, f := range loaders { + if err := f(); err != nil { + return err + } } return nil @@ -152,7 +128,7 @@ func (ct *Cointop) ConfigFilePath() string { return pathutil.NormalizePath(ct.configFilepath) } -// ConfigPath return the config file path +// MakeConfigDir creates the directory for the config file func (ct *Cointop) MakeConfigDir() error { log.Debug("MakeConfigDir()") path := ct.ConfigDirPath() @@ -239,15 +215,12 @@ func (ct *Cointop) ConfigToToml() ([]byte, error) { var favoritesBySymbolIfc []interface{} favoritesMapIfc := map[string]interface{}{ // DEPRECATED: favorites by 'symbol' is deprecated because of collisions. Kept for backward compatibility. - "symbols": favoritesBySymbolIfc, - "names": favoritesIfc, + "symbols": favoritesBySymbolIfc, + "names": favoritesIfc, + "columns": ct.State.favoritesTableColumns, + "character": ct.State.favoriteChar, } - var favoritesColumnsIfc interface{} = ct.State.favoritesTableColumns - favoritesMapIfc["columns"] = favoritesColumnsIfc - favoritesMapIfc["character"] = ct.State.favoriteChar - - portfolioIfc := map[string]interface{}{} var holdingsIfc [][]string for name := range ct.State.portfolio.Entries { entry, ok := ct.State.portfolio.Entries[name] @@ -262,24 +235,15 @@ func (ct *Cointop) ConfigToToml() ([]byte, error) { sort.Slice(holdingsIfc, func(i, j int) bool { return holdingsIfc[i][0] < holdingsIfc[j][0] }) - portfolioIfc["holdings"] = holdingsIfc - - var columnsIfc interface{} = ct.State.portfolioTableColumns - portfolioIfc["columns"] = columnsIfc - - var currencyIfc interface{} = ct.State.currencyConversion - var defaultViewIfc interface{} = ct.State.defaultView - var defaultChartRangeIfc interface{} = ct.State.defaultChartRange - var colorschemeIfc interface{} = ct.colorschemeName - var refreshRateIfc interface{} = uint(ct.State.refreshRate.Seconds()) - var cacheDirIfc interface{} = ct.State.cacheDir + portfolioIfc := map[string]interface{}{ + "holdings": holdingsIfc, + "columns": ct.State.portfolioTableColumns, + } cmcIfc := map[string]interface{}{ "pro_api_key": ct.apiKeys.cmc, } - var apiChoiceIfc interface{} = ct.apiChoice - var priceAlertsIfc []interface{} for _, priceAlert := range ct.State.priceAlerts.Entries { if priceAlert.Expired { @@ -297,29 +261,29 @@ func (ct *Cointop) ConfigToToml() ([]byte, error) { //"sound": ct.State.priceAlerts.SoundEnabled, } - var coinsTableColumnsIfc interface{} = ct.State.coinsTableColumns - tableMapIfc := map[string]interface{}{} - tableMapIfc["columns"] = coinsTableColumnsIfc - var keepRowFocusOnSortIfc interface{} = ct.State.keepRowFocusOnSort - tableMapIfc["keep_row_focus_on_sort"] = keepRowFocusOnSortIfc + tableMapIfc := map[string]interface{}{ + "columns": ct.State.coinsTableColumns, + "keep_row_focus_on_sort": ct.State.keepRowFocusOnSort, + } - chartMapIfc := map[string]interface{}{} - chartMapIfc["max_width"] = ct.State.maxChartWidth - chartMapIfc["height"] = ct.State.chartHeight + chartMapIfc := map[string]interface{}{ + "max_width": ct.State.maxChartWidth, + "height": ct.State.chartHeight, + } var inputs = &ConfigFileConfig{ - API: apiChoiceIfc, - Colorscheme: colorschemeIfc, + API: ct.apiChoice, + Colorscheme: ct.colorschemeName, CoinMarketCap: cmcIfc, - Currency: currencyIfc, - DefaultView: defaultViewIfc, - DefaultChartRange: defaultChartRangeIfc, + Currency: ct.State.currencyConversion, + DefaultView: ct.State.defaultView, + DefaultChartRange: ct.State.defaultChartRange, Favorites: favoritesMapIfc, - RefreshRate: refreshRateIfc, + RefreshRate: uint(ct.State.refreshRate.Seconds()), Shortcuts: shortcutsIfcs, Portfolio: portfolioIfc, PriceAlerts: priceAlertsMapIfc, - CacheDir: cacheDirIfc, + CacheDir: ct.State.cacheDir, Table: tableMapIfc, Chart: chartMapIfc, } @@ -680,7 +644,7 @@ func (ct *Cointop) loadPriceAlertsFromConfig() error { return nil } -// GetColorschemeColors loads colors from colorsheme file to struct +// GetColorschemeColors loads colors from colorscheme file to struct func (ct *Cointop) GetColorschemeColors() (map[string]interface{}, error) { log.Debug("GetColorschemeColors()") var colors map[string]interface{} diff --git a/cointop/conversion.go b/cointop/conversion.go index f1acb09..0cf146b 100644 --- a/cointop/conversion.go +++ b/cointop/conversion.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - color "github.com/cointop-sh/cointop/pkg/color" + "github.com/cointop-sh/cointop/pkg/color" "github.com/cointop-sh/cointop/pkg/pad" log "github.com/sirupsen/logrus" ) diff --git a/cointop/favorites.go b/cointop/favorites.go index c54a867..a2907b6 100644 --- a/cointop/favorites.go +++ b/cointop/favorites.go @@ -56,7 +56,7 @@ func (ct *Cointop) ToggleShowFavorites() error { // GetFavoritesSlice returns coin favorites as slice func (ct *Cointop) GetFavoritesSlice() []*Coin { log.Debug("GetFavoritesSlice()") - sliced := []*Coin{} + var sliced []*Coin for i := range ct.State.allCoins { coin := ct.State.allCoins[i] if coin.Favorite { diff --git a/cointop/list.go b/cointop/list.go index 45076f4..94d28cd 100644 --- a/cointop/list.go +++ b/cointop/list.go @@ -4,7 +4,7 @@ import ( "sync" "time" - types "github.com/cointop-sh/cointop/pkg/api/types" + "github.com/cointop-sh/cointop/pkg/api/types" log "github.com/sirupsen/logrus" ) @@ -114,7 +114,7 @@ func (ct *Cointop) processCoins(coins []types.Coin) { }) if len(ct.State.allCoins) < size { - list := []*Coin{} + var list []*Coin for _, v := range coins { k := v.Name icoin, _ := ct.State.allCoinsSlugMap.Load(k) diff --git a/cointop/marketbar.go b/cointop/marketbar.go index 6d9b21a..95a7d96 100644 --- a/cointop/marketbar.go +++ b/cointop/marketbar.go @@ -6,7 +6,7 @@ import ( "strings" "time" - types "github.com/cointop-sh/cointop/pkg/api/types" + "github.com/cointop-sh/cointop/pkg/api/types" "github.com/cointop-sh/cointop/pkg/color" "github.com/cointop-sh/cointop/pkg/humanize" "github.com/cointop-sh/cointop/pkg/pad" diff --git a/cointop/navigation.go b/cointop/navigation.go index d8570eb..8d98aa6 100644 --- a/cointop/navigation.go +++ b/cointop/navigation.go @@ -537,7 +537,7 @@ func (ct *Cointop) TableScrollLeft() error { return nil } -// TableScrollRight scrolls the the table to the right +// TableScrollRight scrolls the table to the right func (ct *Cointop) TableScrollRight() error { ct.State.tableOffsetX-- maxX := int(math.Min(float64(1-(ct.maxTableWidth-ct.Width())), 0)) diff --git a/cointop/portfolio.go b/cointop/portfolio.go index b6035f8..9ce4564 100644 --- a/cointop/portfolio.go +++ b/cointop/portfolio.go @@ -555,7 +555,7 @@ func (ct *Cointop) PortfolioEntriesCount() int { // GetPortfolioSlice returns portfolio entries as a slice func (ct *Cointop) GetPortfolioSlice() []*Coin { log.Debug("GetPortfolioSlice()") - sliced := []*Coin{} + var sliced []*Coin if ct.PortfolioEntriesCount() == 0 { return sliced } diff --git a/cointop/price_alerts.go b/cointop/price_alerts.go index aeb8dde..ce8f0a7 100644 --- a/cointop/price_alerts.go +++ b/cointop/price_alerts.go @@ -477,7 +477,7 @@ func (ct *Cointop) SetPriceAlert(coinName string, operator string, targetPrice f func (ct *Cointop) RemovePriceAlert(id string) error { log.Debug("RemovePriceAlert()") for i, entry := range ct.State.priceAlerts.Entries { - if entry.ID == ct.State.priceAlertEditID { + if entry.ID == id { ct.State.priceAlerts.Entries = append(ct.State.priceAlerts.Entries[:i], ct.State.priceAlerts.Entries[i+1:]...) } } diff --git a/cointop/table.go b/cointop/table.go index 798aa7a..9cc0575 100644 --- a/cointop/table.go +++ b/cointop/table.go @@ -98,7 +98,7 @@ func (ct *Cointop) UpdateTable() error { // GetTableCoinsSlice returns a slice of the table rows func (ct *Cointop) GetTableCoinsSlice() []*Coin { log.Debug("GetTableCoinsSlice()") - sliced := []*Coin{} + var sliced []*Coin start := ct.State.page * ct.State.perPage end := start + ct.State.perPage allCoins := ct.AllCoins() diff --git a/cointop/table_header.go b/cointop/table_header.go index d179942..c3d36ed 100644 --- a/cointop/table_header.go +++ b/cointop/table_header.go @@ -26,97 +26,97 @@ type HeaderColumn struct { // HeaderColumns are the header column widths var HeaderColumns = map[string]*HeaderColumn{ - "rank": &HeaderColumn{ + "rank": { Slug: "rank", Label: "[r]ank", PlainLabel: "rank", }, - "name": &HeaderColumn{ + "name": { Slug: "name", Label: "[n]ame", PlainLabel: "name", }, - "symbol": &HeaderColumn{ + "symbol": { Slug: "symbol", Label: "[s]ymbol", PlainLabel: "symbol", }, - "target_price": &HeaderColumn{ + "target_price": { Slug: "target_price", Label: "[t]target price", PlainLabel: "target price", }, - "price": &HeaderColumn{ + "price": { Slug: "price", Label: "[p]rice", PlainLabel: "price", }, - "frequency": &HeaderColumn{ + "frequency": { Slug: "frequency", Label: "frequency", PlainLabel: "frequency", }, - "holdings": &HeaderColumn{ + "holdings": { Slug: "holdings", Label: "[h]oldings", PlainLabel: "holdings", }, - "balance": &HeaderColumn{ + "balance": { Slug: "balance", Label: "[b]alance", PlainLabel: "balance", }, - "market_cap": &HeaderColumn{ + "market_cap": { Slug: "market_cap", Label: "[m]arket cap", PlainLabel: "market cap", }, - "24h_volume": &HeaderColumn{ + "24h_volume": { Slug: "24h_volume", Label: "24H [v]olume", PlainLabel: "24H volume", }, - "1h_change": &HeaderColumn{ + "1h_change": { Slug: "1h_change", Label: "[1]H%", PlainLabel: "1H%", }, - "24h_change": &HeaderColumn{ + "24h_change": { Slug: "24h_change", Label: "[2]4H%", PlainLabel: "24H%", }, - "7d_change": &HeaderColumn{ + "7d_change": { Slug: "7d_change", Label: "[7]D%", PlainLabel: "7D%", }, - "30d_change": &HeaderColumn{ + "30d_change": { Slug: "30d_change", Label: "[3]0D%", PlainLabel: "30D%", }, - "1y_change": &HeaderColumn{ + "1y_change": { Slug: "1y_change", Label: "1[y]%", PlainLabel: "1Y%", }, - "total_supply": &HeaderColumn{ + "total_supply": { Slug: "total_supply", Label: "[t]otal supply", PlainLabel: "total supply", }, - "available_supply": &HeaderColumn{ + "available_supply": { Slug: "available_supply", Label: "[a]vailable supply", PlainLabel: "available supply", }, - "percent_holdings": &HeaderColumn{ + "percent_holdings": { Slug: "percent_holdings", Label: "[%]holdings", PlainLabel: "%holdings", }, - "last_updated": &HeaderColumn{ + "last_updated": { Slug: "last_updated", Label: "last [u]pdated", PlainLabel: "last updated", diff --git a/pkg/api/impl/coingecko/coingecko.go b/pkg/api/impl/coingecko/coingecko.go index bd882fc..8990292 100644 --- a/pkg/api/impl/coingecko/coingecko.go +++ b/pkg/api/impl/coingecko/coingecko.go @@ -10,7 +10,7 @@ import ( "time" apitypes "github.com/cointop-sh/cointop/pkg/api/types" - util "github.com/cointop-sh/cointop/pkg/api/util" + "github.com/cointop-sh/cointop/pkg/api/util" gecko "github.com/cointop-sh/cointop/pkg/api/vendors/coingecko/v3" geckoTypes "github.com/cointop-sh/cointop/pkg/api/vendors/coingecko/v3/types" ) @@ -293,7 +293,7 @@ func (s *Service) cacheCoinsIDList() error { if list == nil { return nil } - firstWords := [][]string{} + var firstWords [][]string for _, item := range *list { keys := []string{ strings.ToLower(item.Name), diff --git a/pkg/api/impl/coinmarketcap/coinmarketcap.go b/pkg/api/impl/coinmarketcap/coinmarketcap.go index c8ffe5b..a8408c6 100644 --- a/pkg/api/impl/coinmarketcap/coinmarketcap.go +++ b/pkg/api/impl/coinmarketcap/coinmarketcap.go @@ -12,7 +12,7 @@ import ( "time" apitypes "github.com/cointop-sh/cointop/pkg/api/types" - util "github.com/cointop-sh/cointop/pkg/api/util" + "github.com/cointop-sh/cointop/pkg/api/util" cmc "github.com/miguelmota/go-coinmarketcap/pro/v1" cmcv2 "github.com/miguelmota/go-coinmarketcap/v2" ) @@ -135,7 +135,7 @@ func (s *Service) GetCoinData(name string, convert string) (apitypes.Coin, error // GetCoinDataBatch gets all data of specified coins. func (s *Service) GetCoinDataBatch(names []string, convert string) ([]apitypes.Coin, error) { - ret := []apitypes.Coin{} + var ret []apitypes.Coin coins, err := s.getPaginatedCoinData(convert, 0) if err != nil { return ret, err diff --git a/pkg/api/interface.go b/pkg/api/interface.go index 1de9b12..0b406c3 100644 --- a/pkg/api/interface.go +++ b/pkg/api/interface.go @@ -1,7 +1,7 @@ package api import ( - types "github.com/cointop-sh/cointop/pkg/api/types" + "github.com/cointop-sh/cointop/pkg/api/types" ) // Interface interface @@ -13,9 +13,6 @@ type Interface interface { GetGlobalMarketData(convert string) (types.GlobalMarketData, error) GetCoinData(name string, convert string) (types.Coin, error) GetCoinDataBatch(names []string, convert string) ([]types.Coin, error) - //GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error) - //GetCoinPriceUSD(coin string) (float64, error) - //GetCoinMarkets(coin string) ([]types.Market, error) CoinLink(name string) string SupportedCurrencies() []string Price(name string, convert string) (float64, error) diff --git a/pkg/eval/eval.go b/pkg/eval/eval.go index 220aba1..be9f205 100644 --- a/pkg/eval/eval.go +++ b/pkg/eval/eval.go @@ -19,7 +19,7 @@ func (p *patcher) Exit(node *ast.Node) { } } -// EvaluateExpression evaulates a simple math expression string to a float64 +// EvaluateExpressionToFloat64 evaulates a simple math expression string to a float64 func EvaluateExpressionToFloat64(input string, env interface{}) (float64, error) { input = strings.TrimSpace(input) if input == "" { diff --git a/pkg/termui/events.go b/pkg/termui/events.go index 59d5ee4..8f9c827 100644 --- a/pkg/termui/events.go +++ b/pkg/termui/events.go @@ -223,7 +223,7 @@ func findMatch(mux map[string]func(Event), path string) string { } -// Remove all existing defined Handlers from the map +// ResetHandlers Remove all existing defined Handlers from the map func (es *EvtStream) ResetHandlers() { for Path, _ := range es.Handlers { delete(es.Handlers, Path) diff --git a/pkg/termui/helper.go b/pkg/termui/helper.go index b703acc..e844ae2 100644 --- a/pkg/termui/helper.go +++ b/pkg/termui/helper.go @@ -18,7 +18,7 @@ import ( // Attribute is printable cell's color and style. type Attribute uint16 -// 8 basic clolrs +// 8 basic colors const ( ColorDefault Attribute = iota ColorBlack @@ -31,8 +31,8 @@ const ( ColorWhite ) -//Have a constant that defines number of colors -const NumberofColors = 8 +// NumberOfColors ... +const NumberOfColors = 8 // Text style const ( diff --git a/pkg/termui/mbarchart.go b/pkg/termui/mbarchart.go index 0ce6c45..c1fd506 100644 --- a/pkg/termui/mbarchart.go +++ b/pkg/termui/mbarchart.go @@ -27,15 +27,15 @@ import ( */ type MBarChart struct { Block - BarColor [NumberofColors]Attribute + BarColor [NumberOfColors]Attribute TextColor Attribute - NumColor [NumberofColors]Attribute - Data [NumberofColors][]int + NumColor [NumberOfColors]Attribute + Data [NumberOfColors][]int DataLabels []string BarWidth int BarGap int labels [][]rune - dataNum [NumberofColors][][]rune + dataNum [NumberOfColors][][]rune numBar int scale float64 max int @@ -102,11 +102,11 @@ func (bc *MBarChart) layout() { bc.BarColor[i] = ColorBlack } else { bc.BarColor[i] = bc.BarColor[i-1] + 1 - if bc.BarColor[i] > NumberofColors { + if bc.BarColor[i] > NumberOfColors { bc.BarColor[i] = ColorBlack } } - bc.NumColor[i] = (NumberofColors + 1) - bc.BarColor[i] //Make NumColor opposite of barColor for visibility + bc.NumColor[i] = (NumberOfColors + 1) - bc.BarColor[i] //Make NumColor opposite of barColor for visibility } } diff --git a/pkg/termui/sparkline.go b/pkg/termui/sparkline.go index 75e7c52..9e2b9b7 100644 --- a/pkg/termui/sparkline.go +++ b/pkg/termui/sparkline.go @@ -39,8 +39,8 @@ type Sparklines struct { var sparks = []rune{'▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'} // Add appends a given Sparkline to s *Sparklines. -func (s *Sparklines) Add(sl Sparkline) { - s.Lines = append(s.Lines, sl) +func (sl *Sparklines) Add(line Sparkline) { + sl.Lines = append(sl.Lines, line) } // NewSparkline returns a unrenderable single sparkline that intended to be added into Sparklines. diff --git a/pkg/termui/theme.go b/pkg/termui/theme.go index 21fb3bf..b011d70 100644 --- a/pkg/termui/theme.go +++ b/pkg/termui/theme.go @@ -121,7 +121,7 @@ func lookUpAttr(clrmap map[string]Attribute, name string) Attribute { return a } -// 0<=r,g,b <= 5 +// ColorRGB return an Attribute for the given RGB (value 0-5) func ColorRGB(r, g, b int) Attribute { within := func(n int) int { if n < 0 { diff --git a/pkg/termui/widget.go b/pkg/termui/widget.go index 80276bf..b72237e 100644 --- a/pkg/termui/widget.go +++ b/pkg/termui/widget.go @@ -9,7 +9,7 @@ import ( "sync" ) -// event mixins +// WgtMgr event mixins type WgtMgr map[string]WgtInfo type WgtInfo struct {