Commit Graph

15 Commits

Author SHA1 Message Date
bakkeby
e74a659468 Refactoring highlight and fuzzyhighlight patches
Follow-up on pull request #16 this change refactors and combines
the highlight and fuzzy highlight patches into one highlight
function.

Overall it does not make any sense using:
   - fuzzy highlighting when exact matching is used or
   - exact highlighting when fuzzy matching is used

As such it makes sense to combine the two such that:
   - exact highlighting is used when exact matching is used and
   - fuzzy highlighting is used when fuzzy matching is used

The FUZZYHIGHLIGHT_PATCH toggle has been removed in favour of
HIGHLIGHT_PATCH. The FUZZYMATCH_PATCH toggle controls whether
fuzzy matching is enabled. Enable both FUZZYMATCH_PATCH and
HIGHLIGHT_PATCH to enable fuzzy highlighting.

Additionally the fuzzy highlight patch only supported single-byte
characters and would break when encountering multi-byte UTF-8
characters. This was reported ref. #24.

This refactoring includes a change to work out the UTF-8 character
length for a given character rather than assuming that every
character uses one byte.
2024-07-16 21:45:01 +02:00
bakkeby
dc169b1971 Adding separator patch
This patch is simpler than, and superior to, the TSV patch and as
such takes precedence if both are combined.

Also addressed some compatibility issues and compilation errors.
2022-09-05 14:08:27 +02:00
bakkeby
036d2b0d08 Removing the json patch
Reasoning:
   - the patch is old and incompatible and conflicts with so many
     other patches
   - the functionality is rather limited especially considering that
     it is generally possible to convert json data to work with the
     TSV patch or the separator patch
   - the patch is for dmenu 4.9, which means that since February 2009
     nobody has bothered upgrading this patch to 5.0 or 5.1, which
     again implies that not many people actually use or rely on this
     patch

The json patch may be re-introduced into dmenu-flexipatch in the
future, but in that case it would be a bespoke version that is
designed around some of the other patches and takes more liberties
rather than trying to adhere to what is available at
https://tools.suckless.org/dmenu/patches/json/

Example using jq to convert json data to TSV format:

$ cat ~/.bookmarks
{
	"uggah": "buggah",
	"hello": "there",
	"bye": "tomorrow"
}

$ cat ~/.bookmarks | jq -r '. | to_entries | .[] | "\(.key)\t\(.value)"'
uggah	buggah
hello	there
bye	tomorrow
2022-09-05 12:46:15 +02:00
bakkeby
6a1ed51d47 Adding fzfexpect patch 2022-09-04 22:33:24 +02:00
bakkeby
3eac73fe85 Adding json patch 2020-08-09 15:10:29 +02:00
bakkeby
1f6c8c1e7c MULTI_SELECT_PATCH --> MULTI_SELECTION_PATCH 2020-08-09 13:49:41 +02:00
bakkeby
240cce1c1a Adding multi-select patch 2020-08-09 13:30:03 +02:00
bakkeby
17d32014a3 Adding highpriority patch 2020-08-05 14:54:01 +02:00
bakkeby
aa50b3f2c5 Adding highlight patch 2020-08-05 13:19:30 +02:00
bakkeby
768b5527ab Adding numbers patch 2020-08-05 12:40:03 +02:00
bakkeby
73d2405635 Adding dynamic options patch 2020-08-05 12:27:15 +02:00
bakkeby
fcfde08faf Adding fuzzyhighlight patch 2020-04-04 09:58:35 +02:00
bakkeby
9147fb7202 Adding xresources patch 2019-12-29 14:13:22 +01:00
bakkeby
687e10f42c Adding note about flexipatch-finalizer 2019-10-16 10:27:50 +02:00
bakkeby
f128efa1b2 Added border, center, fuzzymatch, incremental, initialtext, instant, line-height, mouse-support, navhistory, non-blocking-stdin, password, pipeout, printinputtext, rejectnomatch, scroll, vertfull, wmtype and xyw patches 2019-09-19 00:33:15 +02:00