fzf-like fuzzy-finder as a Go library

Overview

go-fuzzyfinder

PkgGoDev GitHub Actions codecov

go-fuzzyfinder is a Go library that provides fuzzy-finding with an fzf-like terminal user interface.

Installation

$ go get github.com/ktr0731/go-fuzzyfinder

Usage

go-fuzzyfinder provides two functions, Find and FindMulti. FindMulti can select multiple lines. It is similar to fzf -m.

This is an example of FindMulti.

type Track struct {
    Name      string
    AlbumName string
    Artist    string
}

var tracks = []Track{
    {"foo", "album1", "artist1"},
    {"bar", "album1", "artist1"},
    {"foo", "album2", "artist1"},
    {"baz", "album2", "artist2"},
    {"baz", "album3", "artist2"},
}

func main() {
    idx, err := fuzzyfinder.FindMulti(
        tracks,
        func(i int) string {
            return tracks[i].Name
        },
        fuzzyfinder.WithPreviewWindow(func(i, w, h int) string {
            if i == -1 {
                return ""
            }
            return fmt.Sprintf("Track: %s (%s)\nAlbum: %s",
                tracks[i].Name,
                tracks[i].Artist,
                tracks[i].AlbumName)
        }))
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("selected: %v\n", idx)
}

The execution result prints selected item's indexes.

Motivation

Fuzzy-finder command-line tools such that fzf, fzy, or skim are very powerful to find out specified lines interactively. However, there are limits to deal with fuzzy-finder's features in several cases.

First, it is hard to distinguish between two or more entities that have the same text. In the example of ktr0731/itunes-cli, it is possible to conflict tracks such that same track names, but different artists. To avoid such conflicts, we have to display the artist names with each track name. It seems like the problem has been solved, but it still has the problem. It is possible to conflict in case of same track names, same artists, but other albums, which each track belongs to. This problem is difficult to solve because pipes and filters are row-based mechanisms, there are no ways to hold references that point list entities.

The second issue occurs in the case of incorporating a fuzzy-finder as one of the main features in a command-line tool such that enhancd or itunes-cli. Usually, these tools require that it has been installed one fuzzy-finder as a precondition. In addition, to deal with the fuzzy-finder, an environment variable configuration such that export TOOL_NAME_FINDER=fzf is required. It is a bother and complicated.

go-fuzzyfinder resolves above issues. Dealing with the first issue, go-fuzzyfinder provides the preview-window feature (See an example in Usage). Also, by using go-fuzzyfinder, built tools don't require any fuzzy-finders.

See Also

Comments
  • Add option to use custom item view

    Add option to use custom item view

    Summary

    This change adds another option in option.go file that allows user to render item views (think descriptions/titles).

    This API is similar to the concept of post processing in fzf: https://github.com/junegunn/fzf/wiki/Examples-(completion)

    However, this library already provides means to postprocess items via itemFunc. All that's left to replicate fzf functionality is the above mentioned change that allows to process items in order to extract view from them.

    opened by mnowotnik 8
  • [retry] Replace termbox to tcell

    [retry] Replace termbox to tcell

    related: #32

    Hello.

    Finally, tcell announced the fix of lost key problem officially. https://github.com/gdamore/tcell/issues/194#issuecomment-782751304

    So, we can avoid the workaround which causes the cgo problem!

    I could confirm that this program work well in local.

    opened by tjmtmmnk 7
  • Feature request: find from a channel of entries

    Feature request: find from a channel of entries

    Hello,

    First, thank you for this great library.

    it is possible to feed fzf's stdin with the output of a running command. The possible choices then appear progressively to the user.

    Similarly, I'd like to have a Find() function that takes a channel of entries instead of a slice.

    Is that difficult to implement ?

    enhancement 
    opened by stephane-martin 7
  • the code is blocked on the function FindMulti  in case go-fuzzyfinder/_example/track

    the code is blocked on the function FindMulti in case go-fuzzyfinder/_example/track

    Hello, when I run the example in Usage, the code is blocked on the function FindMulti.

    go env: set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\smile\AppData\Local\go-build set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOOS=windows set GOPATH=C:\Users\smile\go set GOPROXY= set GORACE= set GOROOT=c:\go set GOTMPDIR= set GOTOOLDIR=c:\go\pkg\tool\windows_amd64 set GCCGO=gccgo set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD= set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\smile\AppData\Local\Temp\go-build410240270=/tmp/go-build -gno-record-gcc-switches

    opened by SmileEye 7
  • Replace to tcell from termbox

    Replace to tcell from termbox

    Related Issue: #15

    Thanks great library! This PR is intended to replace completely from termbox to tcell.

    I think this migration has two merits.

    1. It is stated that termbox will not be maintained anymore (ref). So, migrate to maintained tcell, make this product more stable.

    2. tcell has a lot of useful features. For example, #29 can solve easily by using code used in tview etc (ref).


    The problem reported in #17, can solve by using workaround(ref).

    I could confirm the code(reproduce the problem) work well in local.

    enhancement 
    opened by tjmtmmnk 5
  • hotreload has data race

    hotreload has data race

    There is data race detected by go run -race

    when fuzzyfinder.WithHotReload() is enabled. e.g. in the example/hotreload/main.go

    To reproduce

    cd example/hotreload
    cat main.go | go run -race main.go
    

    Expected behavior

    It can finish without data race.

    Screenshots

    image

    Environment

    • OS: MacOS
    • Terminal: iTerm2
    • go-fuzzyfinder version: commit 81ff9cb dated 2022-01-10
    bug 
    opened by JackKCWong 4
  • Bump github.com/golangci/golangci-lint from 1.37.1 to 1.38.0

    Bump github.com/golangci/golangci-lint from 1.37.1 to 1.38.0

    Bumps github.com/golangci/golangci-lint from 1.37.1 to 1.38.0.

    Release notes

    Sourced from github.com/golangci/golangci-lint's releases.

    v1.38.0

    Changelog

    5698d46e Add ForceTypeAssert linter (#1789) 012559c5 Add linter wastedassign (#1651) 66fc7797 Add nilerr linter. (#1788) f00da2c0 Add stringintconv and ifaceassert to govet (#1360) a1e3749a Bump github.com/Djarvur/go-err113 to HEAD (#1760) 495a74f6 Bump github.com/timakin/bodyclose to HEAD (#1758) b7aac3b1 Bump wsl to v3.2.0 (#1750) 251b205f Deprecate Interfacer linter (#1755) 42ff682f Deprecate maligned, add govet fieldalignment as replacement (#1765) 92d38e52 Exclude PR about doc dependencies from release changelog. (#1752) 89315e00 Fix go-header usage (#1785) 05836e48 Integrate ImportAs linter (#1783) cdaf03d1 Remove outdated CVEs from .nancy-ignore (#1791) 856ffd16 Support RelatedInformation for analysis Diagnostic (#1773) 507703b4 Update Docs and Assets Github Actions (#1460) 5dcc3eaf Update dependencies that dependabot cannot (#1790) 2e7c389d Update staticcheck to v0.1.2 (2020.2.2) (#1756) b77118fd Use errcheck from main repo instead of golangci-lint fork (#1319) 1a906bc1 Use go v1.14 in go.mod file (#1803) 34e46c74 Using a version instead of commit id for goconst (#1786) 747e3aea add doc for the profiling arguments (#1761) dac2059e build(deps): bump github.com/kulti/thelper from 0.3.1 to 0.4.0 (#1764) 326d715b build(deps): bump github.com/sirupsen/logrus from 1.7.0 to 1.8.0 (#1763) 067cfac3 build(deps): bump golangci/golangci-lint-action from v2.4.0 to v2.5.1 (#1798) d6db13d7 build(deps): bump sonatype-nexus-community/nancy-github-action (#1762) 2880d89b bump durationcheck from 0.0.4 to 0.0.6 (#1757) 5ca29739 fix: use same default linter as go vet. (#1793) eefb9743 ineffassign: use upstrea instead of golangci fork (#1780) b407bb8f revive: add rule name in message. (#1772)

    Commits
    • 507703b Update Docs and Assets Github Actions (#1460)
    • d4ee818 build(deps): bump gatsby-source-filesystem in /docs (#1806)
    • c77b82f build(deps): bump gatsby-plugin-manifest from 2.12.0 to 2.12.1 in /docs (#1807)
    • 7516c37 build(deps): bump gatsby-plugin-offline from 3.10.0 to 3.10.2 in /docs (#1801)
    • 01a6238 build(deps): bump gatsby-transformer-remark in /docs (#1805)
    • 38ad382 build(deps): bump gatsby from 2.32.3 to 2.32.8 in /docs (#1804)
    • 5925964 build(deps): bump prism-react-renderer from 1.1.1 to 1.2.0 in /docs (#1802)
    • 2c5a421 build(deps): bump gatsby-plugin-mdx from 1.10.0 to 1.10.1 in /docs (#1800)
    • 1a906bc Use go v1.14 in go.mod file (#1803)
    • d22c64e build(deps): bump puppeteer from 7.0.1 to 8.0.0 in /docs (#1796)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency 
    opened by dependabot[bot] 4
  • Bump github.com/golangci/golangci-lint from 1.37.1 to 1.38.0

    Bump github.com/golangci/golangci-lint from 1.37.1 to 1.38.0

    Bumps github.com/golangci/golangci-lint from 1.37.1 to 1.38.0.

    Release notes

    Sourced from github.com/golangci/golangci-lint's releases.

    v1.38.0

    Changelog

    5698d46e Add ForceTypeAssert linter (#1789) 012559c5 Add linter wastedassign (#1651) 66fc7797 Add nilerr linter. (#1788) f00da2c0 Add stringintconv and ifaceassert to govet (#1360) a1e3749a Bump github.com/Djarvur/go-err113 to HEAD (#1760) 495a74f6 Bump github.com/timakin/bodyclose to HEAD (#1758) b7aac3b1 Bump wsl to v3.2.0 (#1750) 251b205f Deprecate Interfacer linter (#1755) 42ff682f Deprecate maligned, add govet fieldalignment as replacement (#1765) 92d38e52 Exclude PR about doc dependencies from release changelog. (#1752) 89315e00 Fix go-header usage (#1785) 05836e48 Integrate ImportAs linter (#1783) cdaf03d1 Remove outdated CVEs from .nancy-ignore (#1791) 856ffd16 Support RelatedInformation for analysis Diagnostic (#1773) 507703b4 Update Docs and Assets Github Actions (#1460) 5dcc3eaf Update dependencies that dependabot cannot (#1790) 2e7c389d Update staticcheck to v0.1.2 (2020.2.2) (#1756) b77118fd Use errcheck from main repo instead of golangci-lint fork (#1319) 1a906bc1 Use go v1.14 in go.mod file (#1803) 34e46c74 Using a version instead of commit id for goconst (#1786) 747e3aea add doc for the profiling arguments (#1761) dac2059e build(deps): bump github.com/kulti/thelper from 0.3.1 to 0.4.0 (#1764) 326d715b build(deps): bump github.com/sirupsen/logrus from 1.7.0 to 1.8.0 (#1763) 067cfac3 build(deps): bump golangci/golangci-lint-action from v2.4.0 to v2.5.1 (#1798) d6db13d7 build(deps): bump sonatype-nexus-community/nancy-github-action (#1762) 2880d89b bump durationcheck from 0.0.4 to 0.0.6 (#1757) 5ca29739 fix: use same default linter as go vet. (#1793) eefb9743 ineffassign: use upstrea instead of golangci fork (#1780) b407bb8f revive: add rule name in message. (#1772)

    Commits
    • 507703b Update Docs and Assets Github Actions (#1460)
    • d4ee818 build(deps): bump gatsby-source-filesystem in /docs (#1806)
    • c77b82f build(deps): bump gatsby-plugin-manifest from 2.12.0 to 2.12.1 in /docs (#1807)
    • 7516c37 build(deps): bump gatsby-plugin-offline from 3.10.0 to 3.10.2 in /docs (#1801)
    • 01a6238 build(deps): bump gatsby-transformer-remark in /docs (#1805)
    • 38ad382 build(deps): bump gatsby from 2.32.3 to 2.32.8 in /docs (#1804)
    • 5925964 build(deps): bump prism-react-renderer from 1.1.1 to 1.2.0 in /docs (#1802)
    • 2c5a421 build(deps): bump gatsby-plugin-mdx from 1.10.0 to 1.10.1 in /docs (#1800)
    • 1a906bc Use go v1.14 in go.mod file (#1803)
    • d22c64e build(deps): bump puppeteer from 7.0.1 to 8.0.0 in /docs (#1796)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependency 
    opened by dependabot-preview[bot] 4
  • Bump actions/setup-go from 2.1.5 to 2.2.0

    Bump actions/setup-go from 2.1.5 to 2.2.0

    Bumps actions/setup-go from 2.1.5 to 2.2.0.

    Release notes

    Sourced from actions/setup-go's releases.

    Add check-latest input

    In scope of this release we add the check-latest input. If check-latest is set to true, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a Go version will then be downloaded from go-versions repository. By default check-latest is set to false. Example of usage:

    steps:
      - uses: actions/[email protected]
      - uses: actions/[email protected]
        with:
          go-version: '1.16'
          check-latest: true
      - run: go version
    

    Moreover, we updated @actions/core from 1.2.6 to 1.6.0

    Commits
    • bfdd357 Implement "check-latest" flag to check if pre-cached version is latest one (#...
    • 44e2214 Replace 'ubuntu-16.04' -> 'ubuntu-latest' (#180)
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency 
    opened by dependabot[bot] 3
  • revert the chages which migrates terminal library from nsf/termbox-go to gdamore/tcell

    revert the chages which migrates terminal library from nsf/termbox-go to gdamore/tcell

    I'm sorry for @tjmtmmnk, but I decided to revert a Pull Request which migrates the terminal library from nsf/termbox-go to gdamore/tcell. gdamore/tcell has a known bug that causes https://github.com/ktr0731/go-fuzzyfinder/issues/17 and https://github.com/ktr0731/go-fuzzyfinder/issues/46. A workaround is proposed in https://github.com/gdamore/tcell/issues/194#issuecomment-478209769, but it requires a Cgo dependency and it doesn't reproduce in the latest macOS version (I don't know the detailed cause...).

    Also, I think that go-fuzzyfinder shouldn't depend on Cgo dependencies because it is designed to use from various platforms such as macOS, Linux, and Windows, etc. Multi-compile is one of the greatest features of Go, so we want to continue to support multi-platform compile.

    So, I revert the changes and I'm going to wait for terminal library migration until gdamore/tcell will be fixed the bug officially.

    opened by ktr0731 3
  • Lockup on second call to `fuzzyfinder.Find()`

    Lockup on second call to `fuzzyfinder.Find()`

    Describe the bug

    The window pops up fine for me on the first call to fuzzyfinder.Find() but the program will lock up on the second call. It doesn't even display the second options window. It will just sit at terminal accepting keys and echoing them but nothing except CTRL+C seems to do anything.

    To reproduce

    The following code will reproduce the error:

    package main
    
    import (
            "fmt"
            "github.com/ktr0731/go-fuzzyfinder"
    )
    
    func main() {
            first_options := []string{"one", "two", "three"}
            second_options := []string{"uno", "dos", "tres"}
    
            idx, err := fuzzyfinder.Find(
                    first_options,
                    func(i int) string { return first_options[i] },
            )
    
            if err != nil {
                    panic(err)
            }
    
            fmt.Println("First Selection:", first_options[idx])
    
            idx, err = fuzzyfinder.Find(
                    second_options,
                    func(i int) string { return second_options[i] },
            )
    
            if err != nil {
                    panic(err)
            }
    
            fmt.Println("Second Selection:", second_options[idx])
    }
    

    Expected behavior

    I expect it to give me another window to select an option.

    Screenshots

    N/A

    Environment

    • OS: Linux Mint 20
    • Terminal: zsh 5.8 (x86_64-ubuntu-linux-gnu)
    • go-fuzzyfinder version: v0.3.1

    Additional context

    bug 
    opened by zanloy 3
  • Maximum Height Option

    Maximum Height Option

    I'm really interesting to use your module for tagging purpose.

    I usually do something like:

    # display img
    # display some details
    # run fzf with maximum height of 30% of the screen
    fzf --multi --height 30% --border --layout reverse -e --bind esc:clear-query < $TAG > "$TAG_SELECT"
    

    I can't use the window function to display the information I need, because I need to show the picture of what I want to tag, and it doesn't work in the window preview.

    Can you add an option to limit the height of the selection? Instead of filling the terminal, we fill a part of it.

    enhancement help wanted 
    opened by celogeek 1
  • Ansi color in preview mode

    Ansi color in preview mode

    Describe the bug

    I want to display text with Ansi colors (provided by github.com/logrusorgru/aurora). It's not possible, or it's not make sense?

    To reproduce

    	projects, err := hbtn.GetProjects()
    		if err != nil {
    			log.Fatal(err)
    		}
    
    		idx, err := fuzzyfinder.FindMulti(
    			projects,
    			func(i int) string {
    				return projects[i].Title
    			},
    			fuzzyfinder.WithPreviewWindow(func(i, w, h int) string {
    				if i == -1 {
    					return ""
    				}
    
    				return fmt.Sprintf("Track: %s (%s)\nAlbum: %s",
    					Green(projects[i].Title),
    					projects[i].Tasks,
    					projects[i].ID)
    			}))
    		if err != nil {
    			log.Fatal(err)
    		}
    		fmt.Printf("selected: %v\n", idx)
    

    Expected behavior

    Screenshots

    image

    Environment

    • OS: Arch linux
    • Terminal: Tilix
    • go-fuzzyfinder version: Latest

    Additional context

    enhancement help wanted 
    opened by davixcky 6
Releases(v0.6.0)
  • v0.6.0(Mar 4, 2022)

    New features

    8255f49 Use locking to solve data race. (#141) 35bbbaa Add an option to begin at the top of the list (fix #126) (#130)

    CI improvements

    d52df63 update approve_and_merge.yml (#142)

    Changelog

    d14157c Bump github.com/google/go-cmp from 0.5.6 to 0.5.7 (#136) 71c25a3 Bump actions/setup-go from 2.1.5 to 3 (#143) 81ff9cb Bump actions/github-script from 4.1 to 5.1.0 (#135) 3cbd4a4 Bump actions/setup-go from 2.1.4 to 2.1.5 (#133) 73c3d0d Bump actions/cache from 2.1.6 to 2.1.7 (#132) 92a96ad add go.mod for example directory (#131)

    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Nov 12, 2021)

  • v0.5.0(Aug 31, 2021)

    Changelog

    New features

    1df34fd add header option (#111)

    CI Improvements

    3fab597 update project config

    Dependency updates

    2bff5ce Bump github.com/goreleaser/goreleaser from 0.175.0 to 0.176.0 (#114) 638d260 Bump actions/setup-go from 2.1.3 to 2.1.4 (#113) 1dd3a86 Bump github.com/goreleaser/goreleaser from 0.174.2 to 0.175.0 (#110) 01fadac Bump github.com/golangci/golangci-lint from 1.41.1 to 1.42.0 (#109) e439278 Bump actions/github-script from 4.0.2 to 4.1 (#108) 4c36b3a Bump github.com/goreleaser/goreleaser from 0.174.0 to 0.174.2 (#107) 189cc7d Bump github.com/goreleaser/goreleaser from 0.173.2 to 0.174.0 (#105) 8e2a8c0 Bump codecov/codecov-action from 1 to 2.0.2 (#104) 6103df5 Bump github.com/gdamore/tcell/v2 from 2.3.11 to 2.4.0 (#103) 8cd8196 Bump github.com/goreleaser/goreleaser from 0.173.1 to 0.173.2 (#101)

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Jul 5, 2021)

    Changelog

    go-fuzzyfinder now on gdamore/tcell 🎉

    Bug fixes & Improvements

    0a80152 sort/maintain-list-order: maintain original order when when scores are tied (#85) 418d4d3 [retry] Replace termbox to tcell (#55)

    CI improvements

    4ff7f5c improve approve_and_merge.yml (#78) 86d247a tweak approve_and_merge.yml (#71) 8f3cff8 tweak approve_and_merge.yml (#70) 3cae20e tweak dependabot.yml (#69) 7d420eb fix to use GitHub native Dependabot and enable auto approve/merge (#64) c5b63c8 fix dependabot config (#53) eb61594 enable automerge and add docker as an update target (#51)

    Dependency updates

    d4d5c72 Bump github.com/goreleaser/goreleaser from 0.172.1 to 0.173.1 (#100) 08636ef Bump github.com/goreleaser/goreleaser from 0.170.0 to 0.172.1 (#99) bc7ae03 Bump github.com/golangci/golangci-lint from 1.40.1 to 1.41.1 (#98) 39e3ded Bump github.com/goreleaser/goreleaser from 0.169.0 to 0.170.0 (#97) e03b240 Bump github.com/gdamore/tcell/v2 from 2.3.9 to 2.3.11 (#96) dfa1873 Bump github.com/goreleaser/goreleaser from 0.166.2 to 0.169.0 (#94) a45488a Bump github.com/gdamore/tcell/v2 from 2.3.3 to 2.3.9 (#95) 367e365 Bump github.com/goreleaser/goreleaser from 0.165.0 to 0.166.2 (#93) 2f798e8 Bump github.com/mattn/go-runewidth from 0.0.12 to 0.0.13 (#92) 563870d Bump github.com/google/go-cmp from 0.5.5 to 0.5.6 (#91) 209aa3d Bump actions/cache from 2.1.5 to 2.1.6 (#90) 01d1a3f Bump github.com/goreleaser/goreleaser from 0.164.0 to 0.165.0 (#89) 68c4343 Bump github.com/gdamore/tcell/v2 from 2.3.1 to 2.3.3 (#88) 736ff34 Bump github.com/gdamore/tcell/v2 from 2.2.1 to 2.3.1 (#87) e3fc494 Bump github.com/golangci/golangci-lint from 1.39.0 to 1.40.1 (#86) 3920822 Bump github.com/goreleaser/goreleaser from 0.162.1 to 0.164.0 (#84) 28f2319 Bump actions/github-script from v3.1 to v4.0.2 (#83) e1d9c6e Bump github.com/goreleaser/goreleaser from 0.162.0 to 0.162.1 (#82) 1a38511 Bump github.com/gdamore/tcell/v2 from 2.2.0 to 2.2.1 (#81) ba97357 Bump actions/cache from v2.1.4 to v2.1.5 (#80) c3df107 Bump github.com/goreleaser/goreleaser from 0.161.1 to 0.162.0 (#77) f73d3a2 Bump github.com/mattn/go-runewidth from 0.0.10 to 0.0.12 (#76) 2cd89c8 Bump golangci/golangci-lint-action from v2 to v2.5.2 (#75) db5f3c1 Bump github.com/goreleaser/goreleaser from 0.160.0 to 0.161.1 (#74) 4ced084 Bump github.com/golangci/golangci-lint from 1.38.0 to 1.39.0 (#73) 0dc93ef Bump github.com/goreleaser/goreleaser from 0.159.0 to 0.160.0 (#72) f625819 Bump actions/setup-go from v1 to v2.1.3 (#65) 6c12589 Bump actions/checkout from v1 to v2.3.4 (#66) b940e6a Bump actions/cache from v1 to v2.1.4 (#67) 2029f16 Bump github.com/golangci/golangci-lint from 1.37.1 to 1.38.0 (#68) 2e52f49 Bump github.com/google/go-cmp from 0.5.4 to 0.5.5 (#60) 103f22a update CREDITS (#62) 8a5c5ef Bump github.com/goreleaser/goreleaser from 0.158.0 to 0.159.0 (#59) 2e0e6bf Bump github.com/goreleaser/goreleaser from 0.157.0 to 0.158.0 (#58) 7ba6032 Bump github.com/golangci/golangci-lint from 1.36.0 to 1.37.1 (#57) 6a7b2e4 Bump github.com/goreleaser/goreleaser from 0.155.2 to 0.157.0 (#56) bddb553 Bump github.com/goreleaser/goreleaser from 0.155.1 to 0.155.2 (#54) 4547402 Bump github.com/goreleaser/goreleaser from 0.155.0 to 0.155.1 (#50) a28d124 Bump github.com/golangci/golangci-lint from 1.35.2 to 1.36.0 (#49) ffba574 Bump github.com/goreleaser/goreleaser from 0.149.0 to 0.155.0 (#48)

    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Jul 5, 2021)

  • v0.3.2(Jan 17, 2021)

    Changelog

    f3bcd19 revert the chages which migrates terminal library from nsf/termbox-go to gdamore/tcell (#47) 646e0e7 Bump github.com/mattn/go-runewidth from 0.0.9 to 0.0.10 (#44) 7845095 Bump github.com/golangci/golangci-lint from 1.35.0 to 1.35.2 (#45) aa53ae7 Bump github.com/golangci/golangci-lint from 1.34.1 to 1.35.0 (#41) 28728ee happy new year! (#40) ac804ca Bump github.com/golangci/golangci-lint from 1.34.0 to 1.34.1 (#39) 0aa58d9 Bump github.com/golangci/golangci-lint from 1.33.0 to 1.34.0 (#38) d3629b8 Merge pull request #37 from ktr0731/dependabot/go_modules/github.com/gdamore/tcell/v2-2.1.0 de095b3 Bump github.com/gdamore/tcell/v2 from 2.0.0 to 2.1.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Dec 25, 2020)

    Changelog

    0555829 Merge pull request #36 from tjmtmmnk/backspace-ignore-cursor 776f827 add test 2ceffe3 consider cursor when backspace press

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Dec 25, 2020)

    Changelog

    0d9e17e Merge pull request #35 from ktr0731/introduce-goreleaser cf6641c generate CREDITS 6ef0001 introduce GoReleaser 8ba8c46 Merge pull request #34 from ktr0731/tweak-ci c18bf41 ignore mock.go from Codecov target 3011bc4 configure golangci-lint to GitHub Actions 8b0da57 add .golangci.yml and fix lint errors 2a033e9 Merge pull request #33 from ktr0731/use-tools bf4c7c2 use Go modules instead of dept 821eba4 Merge pull request #32 from tjmtmmnk/replace-to-tcell 159aa65 replace no longer needed functions eb34660 use v2 flag ae3ab9f clarify v2 bedd404 Update fuzzyfinder.go 0b0c964 use v2 f371c18 backward compatible for public interface e37529d call Fini in find a19c30d numCases doesn't interfere tcell limit a432d84 follow comment style 56c7830 don't use panic, return error a302584 mis-remove build tag f095d03 embed screen db0b770 remove comment about termbox 0e1592c sleep to filter 7fa1592 take lock ae89753 mis flag position 7b394be apply workaround for tcell bug fd4b878 call Fini when find done 703ab69 go test parallel one f6c262a make more stable 7e24714 call Fini if not in test 825a74e update golden files 87172be migrate to tcell in test c1de08d misuse style 6ae4881 mix color logic was wrong efa7b49 replace with tcell function 6cc406b Merge pull request #31 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.5.4 7826140 Bump github.com/google/go-cmp from 0.5.3 to 0.5.4 3900764 Merge pull request #30 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.5.3 3209794 Bump github.com/google/go-cmp from 0.5.2 to 0.5.3 b2fac15 Merge pull request #28 from ktr0731/fix-docs 4b0cf87 Merge branch 'master' into fix-docs 179f0f3 fix README badge f07e1d8 Merge pull request #27 from ktr0731/update-docs 9c15c40 update docs 66a4a15 Merge pull request #26 from fsmiamoto/master ea86cca use a instead of an for ui 07df027 improve comments 64bd58f Merge pull request #25 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.5.2 0dfd9ea Bump github.com/google/go-cmp from 0.5.1 to 0.5.2 1ceabab Merge pull request #24 from ktr0731/dependabot/go_modules/github.com/google/gofuzz-1.2.0 f25a238 Bump github.com/google/gofuzz from 1.1.0 to 1.2.0 741f72f Merge pull request #23 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.5.1 1197670 Bump github.com/google/go-cmp from 0.5.0 to 0.5.1 82a8361 Merge pull request #21 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.5.0 d6eb96f Bump github.com/google/go-cmp from 0.4.1 to 0.5.0 2c531c7 Merge pull request #20 from ktr0731/dependabot/go_modules/github.com/google/go-cmp-0.4.1 ff736c2 Bump github.com/google/go-cmp from 0.4.0 to 0.4.1 4ffa95a tweak coverage target

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Nov 27, 2019)

Owner
ktr
application engineer & digital painter
ktr
Twitter ID Finder For Golang

Twitter ID Finder n文字の全数IDを探せます Usage $ make go build -o main main.go $ ./main Twitter ID Finder Creator: @_m_vt Digits: 2 Target IDs: 100 Really? [

null 0 Dec 12, 2021
Dedugo - Simple duplicate image finder for golang

Dedugo Image Duplicate Finder De-duplicate in Go (get it?) Summary This simple p

Mike Lloyd 1 May 5, 2022
GoFind - Concurrent file finder in Golang

GoFind How to Run? Clona la repository. Setta il tuo GOPATH dalla root della rep

Giuseppe Mattia 1 Feb 17, 2022
Software for archiving my digital stuff like tweets

rsms's memex Software for managing my digital information, like tweets. Usage First check out the source and build. You'll need Make and Go installed.

Rasmus 43 Jul 21, 2022
A simple Go utility to display track information from, and send commands to, spotifyd from Tiling Window Managers like Sway and i3

Untitled Spotifyd Controller A simple Go utility to display track information from, and send commands to, spotifyd from Tiling Window Managers like Sw

Matt 2 Mar 8, 2022
DND-magic-item-Generator - D&D magic item generator like in Diablo

DND-magic-item-Generator D&D magic item generator like in Diablo Legendary items

Hex Kot 0 Mar 28, 2022
Nvote - Decentralized, vote-driven community similar to services like Reddit and HackerNews. Built on nostr

NVote Nvote is a decentralized, vote-driven community similar to services like R

Ronald Bell 21 Aug 29, 2022
Service that wrap up different movies-related APIs like IMDB and match it to streaming services

Service that wrap up different movies-related APIs like IMDB and match it to streaming services. That way you can check in which platforms you can find your favorite movies.

Xavier Graterol 2 Feb 10, 2022
Prig is for Processing Records In Go. Like AWK, but snobbish.

Prig: the snobbish AWK Prig is for Processing Records In Go. It's like AWK, but snobbish (Go! static typing!). It's also faster to execute, and if you

Ben Hoyt 60 Jun 10, 2022
GoBatch is a batch processing framework in Go like Spring Batch in Java

GoBatch English|中文 GoBatch is a batch processing framework in Go like Spring Batch in Java. If you are familiar with Spring Batch, you will find GoBat

null 15 Sep 22, 2022
Go Client Library for Amazon Product Advertising API

go-amazon-product-advertising-api Go Client Library for Amazon Product Advertising API How to Use go get -u github.com/ngs/go-amazon-product-advertisi

Atsushi NAGASE 53 Aug 3, 2022
A Go client library for the Twitter 1.1 API

Anaconda Anaconda is a simple, transparent Go package for accessing version 1.1 of the Twitter API. Successful API queries return native Go structs th

Aditya Mukerjee 1.1k Sep 6, 2022
Go library for http://www.brewerydb.com/ API

brewerydb brewerydb is a Go library for accessing the BreweryDB API usage import "github.com/naegelejd/brewerydb" Construct a new Client using your Br

Joseph Naegele 18 Apr 11, 2022
Go(lang) client library for Cachet (open source status page system).

cachet Go(lang) client library for Cachet (open source status page system). Features Full API support Components Incidents Metrics Subscribers Various

Andy Grunwald 90 Jan 28, 2022
Go library for interacting with CircleCI

go-circleci Go library for interacting with CircleCI's API. Supports all current API endpoints allowing you do do things like: Query for recent builds

Jesse Szwedko 65 Sep 27, 2022
Clarifai library for Go

Clarifai Golang Library Library for our v1 API. Disclaimer This API client only supports Clarifai v1 API. Stay tuned for the v2 support. Usage go get

Clarifai 56 Apr 29, 2022
Go library for accessing the Codeship API v2

Codeship API v2 Client for Go Codeship API v2 client for Go. Documentation https://godoc.org/github.com/codeship/codeship-go Usage go get -u github.co

CodeShip 18 Nov 15, 2021
Go client library for interacting with Coinpaprika's API

Coinpaprika API Go Client Usage This library provides convenient way to use coinpaprika.com API in Go. Coinpaprika delivers full market data to the wo

Coinpaprika 15 Aug 8, 2022