Commit graph

1944 commits

Author SHA1 Message Date
Masayoshi Wada 42c39e38c8 fix: Ctrl+Space (ToggleSelection) not working after tcell migration
tcellEventToEvent did not convert Ctrl+Space to KeyCtrlSpace for
CSI u terminals or traditional terminals (tcell emits KeyCtrlSpace
which fell outside the KeyCtrlA..KeyCtrlZ range).
2026-03-01 20:42:04 +09:00
lestrrat 1eab243c5e
Merge pull request #803 from peco/dependabot/github_actions/goreleaser/goreleaser-action-7.0.0
build(deps): bump goreleaser/goreleaser-action from 6.4.0 to 7.0.0
2026-02-28 22:13:23 +09:00
lestrrat d232db1e32
Merge pull request #802 from peco/dependabot/github_actions/actions/setup-go-6.3.0
build(deps): bump actions/setup-go from 6.2.0 to 6.3.0
2026-02-28 22:13:11 +09:00
dependabot[bot] 14ed0ef01e
build(deps): bump goreleaser/goreleaser-action from 6.4.0 to 7.0.0
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](e435ccd777...ec59f474b9)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 00:52:15 +00:00
dependabot[bot] 3ed0b3015e
build(deps): bump actions/setup-go from 6.2.0 to 6.3.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](7a3fe6cf4c...4b73464bb3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 00:52:10 +00:00
Daisuke Maki 6ab3ff6d5d Actually update version number 2026-02-24 11:47:27 +09:00
lestrrat acdfd7ddba
Merge pull request #799 from peco/fix-release-workflow
ci: fix goreleaser dirty-state error by removing release-notes step
2026-02-24 10:54:02 +09:00
lestrrat a980ec02e4
Merge pull request #798 from peco/update-manpage
docs: update man page
2026-02-24 10:52:53 +09:00
Daisuke Maki efe1c5254f ci: fix goreleaser dirty-state error by removing release-notes step 2026-02-24 10:52:03 +09:00
Daisuke Maki e5d7c9ede6 Update Changes 2026-02-24 10:45:16 +09:00
lestrrat ce63a3fc81 docs: regenerate man page from README 2026-02-24 01:42:35 +00:00
lestrrat 70845827cd
Merge pull request #797 from peco/update-changes-v060
docs: fix v0.6.0 Changes and README gaps
2026-02-24 10:42:07 +09:00
Daisuke Maki dcad6fbf1b docs: fix v0.6.0 Changes and README gaps 2026-02-24 10:39:48 +09:00
lestrrat cf2ea47a52
Merge pull request #795 from peco/update-manpage
docs: update man page
2026-02-24 06:36:59 +09:00
lestrrat 600e20302d
Merge pull request #796 from peco/chore-default-build-target
Make build the default Makefile target
2026-02-24 06:36:05 +09:00
Daisuke Maki 2a39bf9315 Make build the default Makefile target 2026-02-23 22:26:18 +09:00
lestrrat 8f128cce45 docs: regenerate man page from README 2026-02-23 13:16:39 +00:00
lestrrat 1808f304ca
Merge pull request #794 from nekketsuuu/nekketsuuu-docs-make-build
docs fix: Build results will be at ./dist
2026-02-23 22:16:12 +09:00
nekketsuuu 8cd3fdfc62
docs fix: Build results will be at ./dist
The default output directory of goreleaser is `./dist`: https://goreleaser.com/customization/dist/

Also, the current default rule of Makefile is `check-goreleaser`, not `build`.
2026-02-22 23:30:07 +09:00
lestrrat e1453e217c
Merge pull request #793 from peco/update-manpage
docs: update man page
2026-02-22 11:45:43 +09:00
lestrrat 05d06f3a48
Merge pull request #791 from peco/docs-changelog
Tweak
2026-02-22 11:45:11 +09:00
lestrrat fdf0c9040a docs: regenerate man page from README 2026-02-22 00:07:02 +00:00
lestrrat 9a70e05aa9
Merge pull request #792 from peco/docs-readme-review-fixes
tweaks to README
2026-02-22 09:06:38 +09:00
Daisuke Maki 28039b1bd9 tweaks to README 2026-02-22 09:01:04 +09:00
Daisuke Maki f0ea966553 Tweak 2026-02-22 08:14:10 +09:00
lestrrat ba5c351e63
Merge pull request #790 from peco/docs-changelog
Update Changes
2026-02-22 06:44:39 +09:00
Daisuke Maki e37246c18e Update Changes 2026-02-22 06:42:32 +09:00
lestrrat b65eb6e7b1
Merge pull request #787 from peco/fix-matched-pool
fix: pool Matched structs with sync.Pool to reduce GC pressure
2026-02-22 00:33:31 +09:00
Daisuke Maki bf8595be01 merge master, resolve bench_test conflicts 2026-02-22 00:31:46 +09:00
Daisuke Maki 6be528ba24 fix: lint issues in matched pool 2026-02-22 00:29:33 +09:00
lestrrat 7a63934041
Merge pull request #789 from peco/fix-merge-matches-alloc
fix: in-place mergeMatches to avoid per-merge heap allocation
2026-02-22 00:29:32 +09:00
lestrrat bf02727ebd
Merge pull request #788 from peco/fix-displaystring-alloc
fix: avoid redundant displayString storage and alloc in DisplayString
2026-02-22 00:29:04 +09:00
lestrrat 43becc50fa
Merge pull request #786 from peco/fix-strip-ansi-alloc
fix: fast-path StripANSISequence to skip regexp when no ESC byte
2026-02-22 00:28:28 +09:00
Daisuke Maki a5c51bcc4b fix: pool Matched structs with sync.Pool to reduce GC pressure
Benchmark (10k lines x 3 cycles):
  pooled vs unpooled: 107KiB vs 562KiB (-81%), 2 vs 10k allocs
  end-to-end filter: 10.71MiB -> 10.14MiB (-5%), 150.6k -> 121.5k allocs (-19%)
2026-02-22 00:26:22 +09:00
Daisuke Maki b4c5d2e928 fix: avoid redundant displayString storage and alloc in DisplayString
Benchmark (10k lines, enableANSI=false):
  1244us -> 331us (-73%), 2541KiB -> 781KiB (-69%), 40k -> 10k allocs (-75%)
2026-02-22 00:26:11 +09:00
Daisuke Maki 4b6baa3751 fix: in-place mergeMatches to avoid per-merge heap allocation
Benchmark (10k lines, overlapping matches):
  47.4ms -> 42.8ms (-10%), 27.3MiB -> 21.3MiB (-22%), 861k -> 471k allocs (-45%)
2026-02-22 00:26:06 +09:00
Daisuke Maki 4b1dfa1c4d fix: fast-path StripANSISequence to skip regexp when no ESC byte
Benchmark (10k lines):
  plain text: 1023us -> 37us (-96%), 1.7MiB -> 0B (-100%), 30k -> 0 allocs
  95% plain:  1064us -> 162us (-85%), 1720KiB -> 63KiB (-96%), 30.5k -> 2k allocs
2026-02-22 00:26:02 +09:00
lestrrat a79df901f7
Merge pull request #784 from peco/fix-regexp-match-alloc
fix: reuse match/dedup slices across regexp filter loop iterations
2026-02-21 22:29:10 +09:00
Daisuke Maki 6ea14d47b9 fix: reuse match/dedup slices across regexp filter loop iterations
Move slice declarations outside loop and reset with [:0] each iteration.

| Metric     | Before  | After   | Delta  |
|------------|---------|---------|--------|
| allocs/op  | 2209    | 1813    | -396   |
| B/op       | 176836  | 147849  | -28987 |
| ns/op      | ~352k   | ~317k   | -10%   |
2026-02-21 22:28:36 +09:00
lestrrat a91172b458
Merge pull request #783 from peco/fix-closure-alloc
fix: eliminate closure allocation in fuzzy filter
2026-02-21 22:26:45 +09:00
Daisuke Maki 7588d33015 fix: eliminate closure allocation in fuzzy filter
Replace strings.IndexFunc with closure with direct CaseInsensitiveIndex.

| Metric     | Before  | After   | Delta  |
|------------|---------|---------|--------|
| allocs/op  | 3018    | 2018    | -1000  |
| B/op       | 123016  | 107014  | -16002 |
| ns/op      | ~113k   | ~88k    | -22%   |
2026-02-21 22:25:06 +09:00
lestrrat a19fa681e2
Merge pull request #785 from peco/fix-hub-batch-ctx
fix: merge two context keys into one in Hub.Batch
2026-02-21 22:24:19 +09:00
lestrrat 35e1681805
Merge pull request #782 from peco/fix-fuzzy-match-alloc
fix: pre-allocate flat backing array for fuzzy match pairs
2026-02-21 22:23:14 +09:00
lestrrat c0d97e2a49
Merge pull request #781 from peco/fix-ansi-split-alloc
fix: use stack-allocated array for SGR parameter parsing
2026-02-21 22:22:40 +09:00
lestrrat 06c4370c85
Merge pull request #780 from peco/test-ansi-color-boundary
Add tests for matching over color boundaries (me being paranoid)
2026-02-21 22:21:41 +09:00
Daisuke Maki e2bc390c68 fix: merge two context keys into one in Hub.Batch
Reduce context.WithValue calls from 2 to 1 per Batch invocation.

| Metric     | Before | After | Delta |
|------------|--------|-------|-------|
| allocs/op  | 3      | 2     | -1    |
| B/op       | 128    | 80    | -48   |
| ns/op      | ~372   | ~352  | -5%   |
2026-02-21 22:20:25 +09:00
Daisuke Maki 3c27da49ac fix: use stack-allocated array for SGR parameter parsing
Replace strings.Split with fixed [8]string array to avoid heap allocation.

| Metric     | Before | After | Delta |
|------------|--------|-------|-------|
| allocs/op  | 1      | 0     | -1    |
| B/op       | 48-80  | 0     | -100% |
| ns/op      | ~45    | ~20   | -55%  |
2026-02-21 22:20:21 +09:00
Daisuke Maki 580e062548 fix: pre-allocate flat backing array for fuzzy match pairs
Use a single backing []int with subslicing instead of per-match allocations.

| Metric     | Before  | After   | Delta  |
|------------|---------|---------|--------|
| allocs/op  | 3018    | 2018    | -1000  |
| B/op       | 123016  | 108616  | -14400 |
2026-02-21 22:20:19 +09:00
Daisuke Maki 8569cbd5bf appease linter 2026-02-21 22:18:04 +09:00
Daisuke Maki 40ac45f94d Add tests for matching over color boundaries (me being paranoid) 2026-02-21 21:30:18 +09:00