cliSeqSelector

Seq selector in CLI

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version 0.1.0
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:25

Authors

  • z-kk

Installation

nimble install cliSeqSelector
choosenim install cliSeqSelector
git clone https://github.com/z-kk/cliSeqSelector

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
cliSeqSelector - - - - - - -

Dependencies

Package Version Optional
nim >= 1.6.0 No

Source

Repository https://github.com/z-kk/cliSeqSelector
Homepage https://github.com/z-kk/cliSeqSelector
Registry Source nimble_official

README

cliSeqSelector

Nim library seq selector in CLI

Usage

Select from string list

import cliSeqSelector
let
  list = @["item1", "item2", "item3", "item4", "item5"]
  res = list.select("message")
$ ./yourAppName
message
> item1

press Down or 'j' then

$ ./yourAppName
message
> item2

press Right or 'l' or 'G' then

$ ./yourAppName
message
> item5

press Up or 'k' then

$ ./yourAppName
message
> item4

press Enter then

res.val == "item4"
res.idx == 3

Select from enum

type
  sample = enum
    item1
    item2
    item3
    item4
    item5
let res = sample.select("message")

display contents is same as string list.

res == sample.itemx

proc definitions

proc select*(list: seq[string], idx = 0): tuple[val: string, idx: int]
proc select*(list: seq[string], message: string, idx = 0): tuple[val: string, idx: int]
proc select*[T: enum](enm: typedesc[T]): T
proc select*[T: enum](enm: typedesc[T], val: T): T
proc select*[T: enum](enm: typedesc[T], message: string): T
proc select*[T: enum](enm: typedesc[T], message: string, val: T): T