@ 261102.1

260420.2 · 8b664899876d5c1863a8c209905f312eeb75561f

Clean up non-ascii characters

reading declarations

ADVANCED.md

@@ -309,16 +309,16 @@ I know it's a lot to digest, let's try to break down the code.   available color options. - The value of `--preview-window` option consists of 5 components delimited   by `,`-    1. `up` — Position of the preview window-    1. `60%` — Size of the preview window-    1. `border-bottom` — Preview window border only on the bottom side-    1. `+{2}+3/3` — Scroll offset of the preview contents-    1. `~3` — Fixed header+    1. `up` -- Position of the preview window+    1. `60%` -- Size of the preview window+    1. `border-bottom` -- Preview window border only on the bottom side+    1. `+{2}+3/3` -- Scroll offset of the preview contents+    1. `~3` -- Fixed header - Let's break down the latter two. We want to display the bat output in the   preview window with a certain scroll offset so that the matching line is   positioned near the center of the preview window.-    - `+{2}` — The base offset is extracted from the second token-    - `+3` — We add 3 lines to the base offset to compensate for the header+    - `+{2}` -- The base offset is extracted from the second token+    - `+3` -- We add 3 lines to the base offset to compensate for the header       part of `bat` output         - ```           ───────┬──────────────────────────────────────────────────────────

README.md

@@ -15,7 +15,7 @@   <a href="https://commitgoods.com/collections/fzf"><img src="https://junegunn.github.io/fzf/images/fzf-mugs.jpg" width="80%" alt="fzf merch"></a>   <br/>   <br/>-  Show your love for fzf — T-shirts, mugs, and stickers now available!+  Show your love for fzf -- T-shirts, mugs, and stickers now available!   <br/>   <br/>   <a href="https://commitgoods.com/collections/fzf">commitgoods.com/collections/fzf</a>@@ -37,10 +37,10 @@ characters and still get the results you want. Highlights ---------- -- **Portable** — Distributed as a single binary for easy installation-- **Fast** — Optimized to process millions of items instantly-- **Versatile** — Fully customizable through an event-action binding mechanism-- **All-inclusive** — Comes with integrations for Bash, Zsh, Fish, Vim, and Neovim+- **Portable** -- Distributed as a single binary for easy installation+- **Fast** -- Optimized to process millions of items instantly+- **Versatile** -- Fully customizable through an event-action binding mechanism+- **All-inclusive** -- Comes with integrations for Bash, Zsh, Fish, Vim, and Neovim  Table of Contents -----------------@@ -440,7 +440,7 @@ or `py`.  The user interface of fzf is fully customizable with a large number of configuration options. For a quick setup, you can start with one of the style-presets — `default`, `full`, or `minimal` — using the `--style` option.+presets -- `default`, `full`, or `minimal` -- using the `--style` option.  ```sh fzf --style full \

src/algo/SIMD.md

@@ -2,10 +2,10 @@  ## What these functions do -`indexByteTwo(s []byte, b1, b2 byte) int` — returns the index of the+`indexByteTwo(s []byte, b1, b2 byte) int` -- returns the index of the **first** occurrence of `b1` or `b2` in `s`, or `-1`. -`lastIndexByteTwo(s []byte, b1, b2 byte) int` — returns the index of the+`lastIndexByteTwo(s []byte, b1, b2 byte) int` -- returns the index of the **last** occurrence of `b1` or `b2` in `s`, or `-1`.  They are used by the fuzzy matching algorithm (`algo.go`) to skip ahead@@ -91,9 +91,9 @@ implementations (`2xIndexByte` using `bytes.IndexByte`, and a simple `loop`).  The assembly is verified by three layers of testing: -1. **Table-driven tests** — known inputs with expected outputs.-2. **Exhaustive tests** — all lengths 0–256, every match position, no-match+1. **Table-driven tests** -- known inputs with expected outputs.+2. **Exhaustive tests** -- all lengths 0–256, every match position, no-match    cases, and both-bytes-present cases, compared against a simple loop    reference.-3. **Fuzz tests** — randomized inputs via `testing.F`, compared against the+3. **Fuzz tests** -- randomized inputs via `testing.F`, compared against the    same loop reference.

src/algo/indexbyte2_arm64.s

@@ -78,7 +78,7 @@ loop: 	CBZ	R6, loop  end:-	// Found something or out of data — build full syndrome+	// Found something or out of data, build full syndrome 	VAND	V5.B16, V3.B16, V3.B16 	VAND	V5.B16, V4.B16, V4.B16 	VADDP	V4.B16, V3.B16, V6.B16

src/ansi.go

@@ -484,7 +484,7 @@ func interpretCode(ansiCode string, prevState *ansiState) ansiState { 					state.attr = state.attr | tui.Italic 				case 4: 					if sep == ':' {-						// SGR 4:N — underline style sub-parameter+						// SGR 4:N - underline style sub-parameter 						var subNum int 						subNum, _, ansiCode = parseAnsiCode(ansiCode) 						state.attr = state.attr &^ tui.UnderlineStyleMask

src/terminal_test.go

@@ -721,7 +721,7 @@ func TestWordWrapAnsiLine(t *testing.T) { 		t.Errorf("ANSI: %q", result) 	} -	// Long word (no space) — no break, let character wrapping handle it+	// Long word (no space) - no break, let character wrapping handle it 	result = term.wordWrapAnsiLine("abcdefghij", 5, 2) 	if len(result) != 1 || result[0] != "abcdefghij" { 		t.Errorf("Long word: %q", result)@@ -749,7 +749,7 @@ func TestWordWrapAnsiLine(t *testing.T) {  	// Tab handling: tab expands to tabstop-aligned width 	term.tabstop = 8-	// "\thi there" — tab at column 0 expands to 8, total "hi" starts at 8+	// "\thi there" - tab at column 0 expands to 8, total "hi" starts at 8 	// maxWidth=15: "\thi" = 10 wide, "there" = 5 wide, total 16 > 15, wrap at space 	result = term.wordWrapAnsiLine("\thi there", 15, 2) 	if len(result) != 2 || result[0] != "\thi" || result[1] != "there" {

src/tui/tui_test.go

@@ -9,7 +9,7 @@ func TestWrapLine(t *testing.T) { 		t.Errorf("Basic wrap: %v", lines) 	} -	// Exact fit — no wrapping needed+	// Exact fit - no wrapping needed 	lines = WrapLine("hello", 0, 5, 8, 2) 	if len(lines) != 1 || lines[0].Text != "hello" || lines[0].DisplayWidth != 5 { 		t.Errorf("Exact fit: %v", lines)

test/test_core.rb

@@ -1672,7 +1672,7 @@ class TestCore < TestInteractive     end     tmux.send_keys :BSpace, :BSpace, :BSpace -    # Reload with shuffled order — cursor should track "555"+    # Reload with shuffled order - cursor should track "555"     tmux.send_keys 'C-r'     tmux.until do |lines|       assert_equal 1000, lines.match_count@@ -1694,7 +1694,7 @@ class TestCore < TestInteractive     tmux.send_keys :Up     tmux.until { |lines| assert_includes lines, '> 2 banana' } -    # Reload — the second field changes, but first field "2" stays+    # Reload - the second field changes, but first field "2" stays     tmux.send_keys 'C-r'     tmux.until do |lines|       assert_equal 3, lines.match_count@@ -1709,7 +1709,7 @@ class TestCore < TestInteractive     tmux.send_keys :Up     tmux.until { |lines| assert_includes lines, '> beta' } -    # Reload with completely different items — no match for "beta"+    # Reload with completely different items - no match for "beta"     # Cursor stays at the same position (second item)     tmux.send_keys 'C-r'     tmux.until do |lines|@@ -1727,7 +1727,7 @@ class TestCore < TestInteractive       assert_includes lines[-2], '+T'     end -    # Trigger slow reload — should show +T* while blocked+    # Trigger slow reload - should show +T* while blocked     tmux.send_keys 'C-r'     tmux.until { |lines| assert_includes lines[-2], '+T*' } @@ -1769,7 +1769,7 @@ class TestCore < TestInteractive       assert_includes lines, '> 1'     end -    # Trigger reload — blocked during initial sleep+    # Trigger reload - blocked during initial sleep     tmux.send_keys 'C-r'     tmux.until { |lines| assert_includes lines[-2], '+T*' }     # Match "1" arrives, unblocks before the remaining items load@@ -1790,7 +1790,7 @@ class TestCore < TestInteractive       assert_includes lines, '> 1'     end -    # Trigger reload-sync — every observable state must be either:+    # Trigger reload-sync - every observable state must be either:     # 1. +T* (still blocked), or     # 2. final state (count=10, +T without *)     # Any other combination (e.g. unblocked while count < 10) is a bug.@@ -1835,7 +1835,7 @@ class TestCore < TestInteractive     tmux.send_keys :Up     tmux.until { |lines| assert_includes lines, '> beta' } -    # Reload with completely different items — no match for "beta"+    # Reload with completely different items - no match for "beta"     tmux.send_keys 'C-r'     tmux.until { |lines| assert_includes lines[-2], '+T*' }     # After stream completes, unblocks with cursor at same position (second item)@@ -1857,7 +1857,7 @@ class TestCore < TestInteractive     tmux.send_keys 'C-t'     tmux.until { |lines| assert_includes lines[-2], '+t' } -    # Reload — should track by field "2"+    # Reload - should track by field "2"     tmux.send_keys 'C-r'     tmux.until do |lines|       assert_equal 3, lines.match_count@@ -1876,7 +1876,7 @@ class TestCore < TestInteractive     tmux.send_keys :Up, :Up, :Tab     tmux.until { |lines| assert_includes lines[-2], '(2)' } -    # Reload — selections should be preserved by id-nth key+    # Reload - selections should be preserved by id-nth key     tmux.send_keys 'C-r'     tmux.until do |lines|       assert_equal 3, lines.match_count

test/test_server.rb

@@ -40,7 +40,7 @@ class TestServer < TestInteractive       assert_equal [0, 1], state[:current][:positions]       assert_equal state[:current][:positions], state[:current][:positions].sort -      # No match — no current item+      # No match - no current item       Net::HTTP.post(fn.call, 'change-query(yo)+reload(seq 100)+change-prompt:hundred> ')       tmux.until { |lines| assert_equal 100, lines.item_count }       tmux.until { |lines| assert_equal 'hundred> yo', lines[-1] }