Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions app/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package app

import (
"fmt"
"strings"
"time"
"unicode"

"github.com/charmbracelet/bubbles/help"
"github.com/charmbracelet/bubbles/key"
Expand Down Expand Up @@ -95,6 +97,7 @@ func NewModel() Model {
del := m.newItemDelegate()

clipboardList := list.New(entryItems, del, 0, 0)
clipboardList.Filter = sanitizedFilter
clipboardList.KeyMap = defaultOverrides(config.ClipseConfig.KeyBindings) // override default list keys with custom values
clipboardList.Title = clipboardTitle // set hardcoded title
clipboardList.SetShowHelp(false) // override with custom
Expand Down Expand Up @@ -127,6 +130,23 @@ func NewModel() Model {
return m
}

func sanitizedFilter(term string, targets []string) []list.Rank {
sanitized := make([]string, len(targets))
for i, t := range targets {
sanitized[i] = stripNonPrintable(t)
}
return list.DefaultFilter(term, sanitized)
}

func stripNonPrintable(s string) string {
return strings.Map(func(r rune) rune {
if unicode.IsPrint(r) {
return r
}
return -1
}, s)
}

// if isPinned is true, returns only an array of pinned items, otherwise all
func filterItems(clipboardItems []config.ClipboardItem, isPinned bool) []list.Item {
var filteredItems []list.Item
Expand Down