Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
This plugin provides quick searching/gotos for all symbols in the currently active script file using a currently hardcoded keyboard shortcut: Ctrl + Shift + O. This is a recreation of VSCode's Go To Symbol utility.
Godot Symbol Search
Quick search/gotos for all symbols in currently active scripts.
This is a plugin for the Godot Game Engine created with godot-cpp that provides quick searching/gotos for all symbols in the currently active script file using a currently hardcoded keyboard shortcut: Ctrl + Shift + O. This is a recreation of VSCode's Go To Symbol utility, improving workflow efficiency for developers who are familiar with this ... workflow. Mainly just a pain point for me working in Godot. Now solved.
Table of Contents
Features
- Quick Symbol Search: Instant access to all symbols in the current script using
Ctrl + Shift + O. - Fuzzy Matching: Find symbols quickly by typing just a few characters. Embrace the lazy.
- Live Navigation: The script editor jumps to the symbol's location as you navigate the search list, providing an immediate preview.
- Reset Cursor Position: If you cancel the search (Esc), the cursor position resets to the starting line and column.
- Comprehensive Symbol Extraction: Currently parses and categorizes
func,var,const,signal, andstaticsymbols. - Detached Script Editor Support: Works when script editor is popped out!
- Symbol Cursor Go-To: Places the caret at the exact line and column of the selected symbol.
- High Performance: Built with C++ (GDExtension) for near-instant indexing and filtering, even in massive script files.
Screenshots
Large Script Symbol List
Fuzzy Search Filtering
Usage
Once the plugin is enabled, you can use the following keyboard shortcuts:
Trigger the Popup:
- Press
Ctrl + Shift + O. - A popup will appear, displaying a list of symbols in your active script, sorted from top to bottom.
- Press
Navigate the List:
- Use the arrow keys to navigate symbols. The script editor will goto the selected symbol's line as you navigate about.
Select a Symbol:
- Press the
Enterkey. - The editor will goto the line your selected symbol is on in the Script Editor.
- Press the
Installation
Godot Asset Library (recommended)
- Open Godot β AssetLib tab
- Search "GodotSymbolSearch" β Download
- Project β Project Settings β Plugins β Enable Godot Symbol Search
- Restart the Editor
Releases (easy)
Head to releases and download whatever version you want. I'll have files for Windows/Linux/Mac available there.
- Download a release zip.
- Extract to your project's addons dir:
../addons/godot-symbol-search. - Enable the plugin:
- Project β Project Settings β Plugins
- Click to enable Godot Symbol Search
Manual (fun)
You'll have to compile it on your target platform and then enable it in your Godot project. This project requries CMake, GCC, and Ninja my preference recommended.
Clone the Repository.
cd godot-symbol-search/ git clone https://github.com/travlee/godot-symbol-search.git .Compiling: This plugin is written in C++ using
godot-cpp. You must compile the plugin for your specific OS and architecture using CMake. I use Ninja as the build system, if you use Visual Studio, the output dir will differ so you'll have to combine them into theaddons/godot_symbol_search/dir.- From the root of the project, configure the CMake build:
cmake -G Ninja -S . -B build -DCMAKE_BUILD_TYPE=Release - Build the plugin:
cmake --build build --config Release - After building, simply copy the
./godot/addons/godot_symbol_search/dir to your project's./addons/dir.
- From the root of the project, configure the CMake build:
Enable the Plugin in Godot:
- Project β Project Settings β Plugins
- Click to enable Godot Symbol Search
Technical Details
Surface
You can write Godot plugins in GDScript fairly easily, but I choose to do this in C++ which comes with more hurdles but worthy (to me) benefits.
- Blazingly Fast: The main benefit of using
C++, searching through thousands of lines of code happens instantly without slowing down your editor. I tested this on a 10k LoC file with zero issues. - Full Script Parsing: The whole active file is
readto extract out all important symbols (funcs, vars, signals). - Deep Editor Integration: It hooks directly into the Godot Editor, allowing it to work even if you have your script editor popped out in a separate window.
Deeper
This plugin is implemented in C++ using Godot's GDExtension system and the godot-cpp bindings.
- Plugin Architecture: Inherits from
EditorPluginand registers custom logic at theEDITORinitialization level. - Symbol Extraction: Uses
regexto parse the activeScriptresource's source code on-demand. - UI System: Built using native Godot
Controlnodes (PanelContainer,LineEdit,ItemList) for consistent styling and low overhead. Also allows for easy style customization by editing thegodot_symbol_search_panel.tscnscene file. - Input Handling: Intercepts input events to provide a responsive, modal-like experience without interfering with other editor shortcuts.
For the deepest dive into the implementation, see TECHNICAL_OVERVIEW.md.
Contributing
If you encounter any bugs, have suggestions for new features, or would like to improve the existing code, please feel free to:
- Open an Issue: Describe the bug or feature request in detail on the GitHub issue tracker.
- Submit a Pull Request: Fork the repo, make some changes, and submit a PR.
License
This plugin provides quick searching/gotos for all symbols in the currently active script file using a currently hardcoded keyboard shortcut: Ctrl + Shift + O. This is a recreation of VSCode's Go To Symbol utility.
Reviews
Quick Information
This plugin provides quick searching/gotos for all symbols in the currently active script file using a currently hardcoded keyboard shortcut: Ctrl + Shift + O. This is a recreation of VSCode's Go To Symbol utility.