VSCode extension Search++An instant, word-based full text search (FTS) for search, autocomplete and go to definition. Maintains an index on the contents of all files in your workspace. Optimized for speed and very large workspaces. Features: images coming soon
For all text files, regardless of language. UsageYou can install the extension in VSCode from here or here. Once the initial indexing is complete, all actions provided by this extension are instant, regardless of your workspace's size. You don't need to configure anything, things should just work. BehaviorSearch++ will immediately start reading your workspace ("Scanning" in status bar) and maintain its index, even after reload. The first initial indexing ("Indexing" in status bar) per workspace takes roughly 2 ms per indexable file, so typically just a few seconds per workspace. It's always safe to exit VSCode any time, after relaunching the indexing process will simply resume where it left off. The index is written to disk and takes up around 200 % in size of the indexable files themselves. Once complete, this process never has needs to run again, as the extension keeps monitoring your workspace for changes only. A file is considered indexable if it isn't explicitly excluded with any of All searches are performed case insensitive, results are case preserving. Large workspacesEverything has been optimized for very large repositories. Behemoths like Chromium source (more than 350,000 indexable files) take about one hour for the initial indexing. There's still definitely room for indexing speed improvements, but once the onetime indexing is done, everything behaves instantaneously forever. In some very large projects like these with many Roadmap
ConfigurationXTODO PerformanceComparison with other IDEsTODO Why not LSP?This extension might as well be an LSP (Language Server Protocol). However, this would mean we couldn't use the convenient
All of that is possible, but poses significant additional work, that's why it hasn't been done so far. Search ProviderCurrently needs its own view because providing results for default search view is not yet stable (even though the api exists since 2019) and even once it's stable, it most likely will only work with virtual file systems: https://github.com/microsoft/vscode/issues/59921#issuecomment-3368450657 Tree view inputs also missing, need web views right now: https://github.com/microsoft/vscode/issues/97190 CtagsSearch++ is similar to Ctags, but in contrary to the latter, it does not require you to configure anything, and it keeps watching your files, and it integrates nicely with VSCode. The persistence layer is currently implemented using SQLite3's WASM build and its FTS5 extension. It might be worth exploring changing all of that to Ctags for better compatibility with other tools. Most likely, it'd be significantly slower though, and since this very extension is supposed to be a one-click-solution, people would be rather unlikely to start hacking with it. Ctags also follows somewhat different philosophies and is usually targetted towards a single language only. It also has no support for fast partial matches mid-word. ContributingPlease open issues in the GitHub Repository for feedback, bugs and feature requests. DebuggingThere's a verbose log in Building
Notable dependenciesNotes(¹): |