Skip to content

Improve Search Everywhere: opt-in actions, JetBrains keybindings, tab switching - #45720

Open
portseif wants to merge 4 commits into
zed-industries:mainfrom
portseif:search-everywhere-improvements
Open

Improve Search Everywhere: opt-in actions, JetBrains keybindings, tab switching#45720
portseif wants to merge 4 commits into
zed-industries:mainfrom
portseif:search-everywhere-improvements

Conversation

@portseif

Copy link
Copy Markdown

Summary

Improvements to Search Everywhere based on PR feedback:

  • Actions are now opt-in: Only show in the Actions tab, not in the All tab. This keeps the All tab focused on files and symbols.
  • Keybindings moved to JetBrains keymap: shift shift is now only bound in the JetBrains keymap (linux/macos), not in default keymaps. This respects Zed's VS Code-style defaults.
  • Keyboard tab switching: Added tab/shift-tab to cycle through tabs within SearchEverywhere context.

Test plan

  • Build passes (./script/clippy -p search_everywhere)
  • Manual testing: Actions only appear when Actions tab is selected
  • Manual testing: shift shift only works with JetBrains keymap
  • Manual testing: Tab/Shift-Tab cycles through tabs

Implement a unified search modal (shift shift) that combines:
- File search using fuzzy matching
- Symbol search using Tree-sitter outlines (works for all languages)
- Action/command search from command palette

Features:
- Tab filtering (All, Files, Symbols, Actions)
- Project-wide symbol indexing with progress indicator
- Global symbol cache persisted across modal open/close
- File path display for each symbol result
- Keyboard shortcut display for actions
- Respects .gitignore for file indexing
- Make actions opt-in: only show in Actions tab, not in All tab
- Move `shift shift` keybinding from default keymaps to JetBrains keymap
- Add keyboard tab switching with tab/shift-tab in SearchEverywhere context

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Dec 26, 2025
@Dima-369

Dima-369 commented Jan 1, 2026

Copy link
Copy Markdown
Contributor

Thanks!

I wonder about the project symbols:
Once it caches the symbols, it never builds the cache again. start_indexing is only called when there are no cached symbols.

I think I had some instances where some symbols were thus missing. I wonder if it would work to always repopulate the cache when the modal opens? And maybe do it smartly when files have not changed, or so?

@ZeyadZewail

This comment was marked as spam.

@smitbarmase smitbarmase added the area:pickers Everything related to pickers that are in a modal label Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:pickers Everything related to pickers that are in a modal cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants