English | 繁體中文

search-enhancement
A VS Code extension that enhances built-in search with multi-keyword symbol matching backed by Universal Ctags.
Features
Type space-separated keywords in the search box. Results are symbols whose name contains all keywords, regardless of the order you typed them. A partial match mode is also available — turn it on and any symbol whose name partially contains each keyword will surface.







Installation
- Install Visual Studio Code v1.96 or newer
- Search for
search-enhancement in the Marketplace and install
Requirements
The extension reads from a Ctags-generated symbol index. Set it up before first use:
- Open a folder as a workspace
- Install Universal Ctags. Pre-built binaries:
- From the workspace root, generate the index:
ctags -R --languages=C,C++ --fields=+n --extras=+q -f .tags
Adding the ctags directory to PATH makes this easier to re-run.
Usage
- Press
Ctrl + Shift + P and run Search Symbols by Keywords, or focus the editor and press Ctrl + Alt + F. The search panel opens in the primary side bar (you can drag its icon to the secondary side bar).
- Type space-separated keywords in the search box.
- Click any result to open the file at the matching line.
- Re-run ctags whenever your code changes — line numbers depend on the index being current.
- Primary setting:
searchEnhancement.tagsFilePaths (string array). Supports multiple .tags files.
- When
tagsFilePaths is empty:
- If legacy
searchEnhancement.tagsFilePath has a custom value, it is migrated into tagsFilePaths[0] and written to your settings.
- Otherwise the extension runs with the default
${workspaceFolder}/.tags in memory without modifying any settings file.
- Legacy
searchEnhancement.tagsFilePath is deprecated and retained only for migration compatibility.
Contributing
Contributions, bug reports and feature requests are welcome. See CONTRIBUTING.md for details.
Developing
npm install
npm run compile
Press F5 in VS Code to launch a development host with the extension loaded.
Tests:
npm test # unit + integration
npm run test:unit # unit only — runs in plain Node, no VS Code needed
npm run test:integration # e2e against a real VS Code instance
License
This project is licensed under the MIT license.
Acknowledgements
Icon adapted from SVG Repo.