You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f0dabaf
Browse filesBrowse the repository at this point in the historyBrowse files
A palette that finds files and folders under the active pane's
directory by name as you type, and focuses the chosen one in the pane.
- The walk is breadth-first (new `walk::walk_breadth_first`, sharing the
per-entry rules with the depth-first walk; `leave` is not called) so
the nearest entries arrive first, and results re-rank live.
- Matching is VS Code's in-order subsequence match, scored with
nucleo-matcher; name matches rank above path matches, ties go to the
shallower and shorter path. Spaces split the query into pieces.
- Walk and ranking run next to the VFS (`newt_common::quick_open`, with
Local and Remote clients and a hairpin client for the host's own
filesystem in remote sessions); only the top 100 cross the RPC
boundary. Query changes travel as signals once the run is listening.
- `.gitignore` files (in and above the root, up to the repository's top)
and `.git/info/exclude` are applied as the walk goes, through a new
`Visitor::listed` hook; no git is run. Hidden entries follow the
pane's toggle.
- The run lives in the modal's own data, so closing or replacing the
modal stops it.
- New `[quick_open]` settings: gitignore, follow_symlinks, exclude,
limit.
Drive-bys: a string-list control in the Settings dialog (list settings
such as `environment.extra_path` had no working control); `Pane::reveal`
replaces two inline copies of navigate-and-focus; the mock VFS marks
dot-files hidden; a `go-to-file` docs scene.
Copy file name to clipboardExpand all lines: FEATURE_DUMP.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1486,6 +1486,16 @@ Each category can be independently toggled on/off in preferences (Hot Paths sect
1486
1486
1487
1487
Selecting an entry navigates via `navigate_to_path`, which takes the whole `VfsPath` — `vfs_id` included, so an entry on a mounted VFS lands on that VFS. Removal is keyed by `bookmark_key`, the verbatim `[[bookmark]]``path` from settings.toml, which is a display path rather than the wire form.
1488
1488
1489
+
### Go to File (Mod+G)
1490
+
1491
+
A palette that finds files and folders anywhere under the active pane's directory by name, as you type — the file manager's take on VS Code's Ctrl+P. Enter focuses the chosen entry in the pane it was opened from: the pane goes to the entry's folder and puts the cursor on it, a folder as much as a file. Opening it from there is the pane's own Enter, so Mod+G, a few characters, Enter, Enter opens a file through its association.
1492
+
1493
+
-**Live**: the directory is walked when the palette opens, nearest entries first (breadth-first: everything in a folder before anything in its subfolders), and results appear and re-rank while the walk goes on. A status line under the input counts the entries seen ("Searching… 12,345 items"), says when the walk stopped at the limit, and how many folders couldn't be read. Nothing is cached: each opening walks afresh, and closing the palette stops the walk.
1494
+
-**Matching** is VS Code's: an entry matches when the query's characters appear in its path in order, ignoring case — `fobr` finds `foo_bar.txt`. Spaces split the query into pieces that all have to match (`pane tsx`). There is no other query syntax.
1495
+
-**Ranking**: a match within the name ranks above one that needs the folders too, so `pane` puts `Pane.tsx` before `pane_helpers/x.ts`, while `mw/pane` still reaches `main_window/Pane.tsx`. Among matches of the same kind, runs of consecutive characters and characters at word starts (after `/`, `_`, `-`, `.`, a case change) score higher; ties go to the shallower entry, then the shorter path. With an empty query the list is simply the nearest entries. The top 100 are shown, with the matched characters in bold.
1496
+
-**What's left out**: hidden entries, unless the pane is showing hidden files; `.git` always; names matching `quick_open.exclude`; and, with `quick_open.gitignore` (on by default), whatever `.gitignore` files ignore — those in the folders walked, those in the folders above up to the repository's top, and the repository's `.git/info/exclude`. The user's global git excludes file is not consulted, and no `git` is run: the rules are read and applied as the walk goes, on any filesystem. Symlinked folders are entered only with `quick_open.follow_symlinks`; the walk stays on one filesystem and stops after `quick_open.limit` entries (200,000).
1497
+
-**Where it runs**: next to the files — in a remote session on the remote host, so only the top results cross the connection, whatever the size of the tree; this machine's own files, browsed from a remote session, are walked here. It works on any filesystem a pane can show: local, SFTP, S3, archives, disc images.
1498
+
1489
1499
### Bookmark Operations
1490
1500
1491
1501
-**Add Bookmark** (Mod+B): Bookmarks the active pane's current directory. Optional custom name (defaults to the directory name). Stored as `[[bookmark]]` in `settings.toml`. The new entry goes to the *top* of the list, and bookmarking an already-bookmarked path moves it there instead of adding a second copy (any duplicates a hand-edited file already had are collapsed at the same time).
recent_folders = true# Show recently visited directories
1686
1696
1697
+
[quick_open] # Go to File (Mod+G)
1698
+
gitignore = true# Leave out what .gitignore files and .git/info/exclude ignore
1699
+
follow_symlinks = false# Enter folders reached through symlinks
1700
+
exclude = [] # Name globs never shown or descended into, e.g. ["node_modules", "*.pyc"]
1701
+
limit = 200000# Entries looked at before the search stops
1702
+
1687
1703
[editor]
1688
1704
word_wrap = false# Default word wrap in the text editor (per-file toggle still overrides)
1689
1705
@@ -1728,6 +1744,7 @@ Four tabs:
1728
1744
- Enum → dropdown.
1729
1745
- Number → number input.
1730
1746
- String → text input.
1747
+
- List of strings → a text input per item with a × to remove it, and a dashed row at the end that adds what's typed into it (Enter or leaving the row); an item emptied out is removed.
1731
1748
- Custom widgets for complex preferences (rendered below the description):
1732
1749
-**Columns**: Visible/Hidden panels side by side — visible rows carry a drag handle (mouse drag to reorder, arrow keys when focused); checkboxes toggle simple columns; timestamps get a presentation dropdown (Date & time / Date only / Separate columns).
1733
1750
-**Default Sort**: Dropdown for sort key + ascending checkbox.
@@ -2040,6 +2057,7 @@ Toggle visibility of files starting with `.` (dot files). The `..` parent direct
2040
2057
| Mod+. | Copy pane path to other pane | Pane focused |
## Major new features (groom/write design docs first)
105
105
106
106
- Batch rename (probably with enrichers preview)
107
-
- Quick Open (VS Code's Ctrl+P): fuzzy-find files under the current directory, as a lighter alternative to the search VFS — matches stream in live as the walk proceeds, and choosing one jumps to it. Wants a breadth-first mode for the walker (`libs/newt-common/src/vfs/walk.rs` is depth-first only) so near files surface first.
0 commit comments