From 339e88cddd227cb6512785dc63206f9b1df7a292 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Tue, 5 May 2020 09:40:08 -0500 Subject: [PATCH] `list contexts` command now prints both the listeral context value and the display name. --- pit.nimble | 2 +- src/pit.nim | 10 ++++++++-- src/pitpkg/private/libpit.nim | 4 +++- src/pitpkg/version.nim | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pit.nimble b/pit.nimble index f2ec23d..05d4b9e 100644 --- a/pit.nimble +++ b/pit.nimble @@ -1,6 +1,6 @@ # Package -version = "4.8.0" +version = "4.9.0" author = "Jonathan Bernard" description = "Personal issue tracker." license = "MIT" diff --git a/src/pit.nim b/src/pit.nim index c357fdf..4422b3c 100644 --- a/src/pit.nim +++ b/src/pit.nim @@ -5,7 +5,7 @@ import cliutils, docopt, json, logging, options, os, sequtils, tables, terminal, times, timeutils, unicode, uuids from nre import re -import strutils except capitalize, strip, toUpper, toLower +import strutils except alignLeft, capitalize, strip, toUpper, toLower import pitpkg/private/libpit export libpit @@ -490,7 +490,13 @@ Options: if issue.hasProp("context") and not uniqContexts.contains(issue["context"]): uniqContexts.add(issue["context"]) - for c in uniqContexts: stdout.writeLine(c) + let maxLen = foldl(uniqContexts, + if a.len > b.len: a + else: b + ).len + + for c in uniqContexts: + stdout.writeLine(c.alignLeft(maxLen+2) & ctx.getIssueContextDisplayName(c)) # List a specific issue elif issueIdOption.isSome: diff --git a/src/pitpkg/private/libpit.nim b/src/pitpkg/private/libpit.nim index de2af68..b0f4814 100644 --- a/src/pitpkg/private/libpit.nim +++ b/src/pitpkg/private/libpit.nim @@ -1,4 +1,4 @@ -import cliutils, docopt, json, logging, langutils, options, os, ospaths, +import cliutils, docopt, json, logging, langutils, options, os, sequtils, strutils, tables, times, timeutils, uuids from nre import find, match, re, Regex @@ -49,6 +49,7 @@ proc `[]`*(issue: Issue, key: string): string = proc `[]=`*(issue: Issue, key: string, value: string) = issue.properties[key] = value +## Issue property accessors proc hasProp*(issue: Issue, key: string): bool = return issue.properties.hasKey(key) @@ -62,6 +63,7 @@ proc getDateTime*(issue: Issue, key: string, default: DateTime): DateTime = proc setDateTime*(issue: Issue, key: string, dt: DateTime) = issue.properties[key] = dt.formatIso8601 +## Issue filtering proc initFilter*(): IssueFilter = result = IssueFilter( completedRange: none(tuple[b, e: DateTime]), diff --git a/src/pitpkg/version.nim b/src/pitpkg/version.nim index 1bbf312..235ed62 100644 --- a/src/pitpkg/version.nim +++ b/src/pitpkg/version.nim @@ -1 +1 @@ -const PIT_VERSION* = "4.8.0" \ No newline at end of file +const PIT_VERSION* = "4.9.0" \ No newline at end of file