Code Navigation Guide
Navigate your codebase efficiently with IfAI's intelligent code navigation.
Go to Definition
Jump to where symbols are defined in your code.
Keyboard Shortcuts
| Action | macOS | Windows/Linux |
|---|---|---|
| Go to Definition | F12 or Cmd+Click | F12 or Ctrl+Click |
What It Does
- Functions: Jumps to function definition
- Classes: Goes to class/struct definition
- Variables: Shows where variable is declared
- Types: Opens type/interface definition
- Imports: Opens imported module/file
Usage
- Place cursor on any symbol
- Press
F12orCmd+Click - Editor navigates to definition
Example:
typescript
// Cursor on 'calculateTotal'
const result = calculateTotal(items); // <- Press F12 here
// Navigates to:
function calculateTotal(items: Item[]) {
return items.reduce((sum, item) => sum + item.price, 0);
}1
2
3
4
5
6
7
2
3
4
5
6
7
Find References
Find all places where a symbol is used.
Keyboard Shortcuts
| Action | macOS | Windows/Linux |
|---|---|---|
| Find References | Shift+F12 | Shift+F12 |
What It Shows
- All usages of the symbol
- Grouped by file
- Shows read vs write references
- Display count of occurrences
Usage
- Place cursor on any symbol
- Press
Shift+F12 - Results panel shows all references
Example:
typescript
function getUser(id: string) { // <- Shift+F12 here
return users[id];
}
// Results show:
// - user.service.ts:15 - Called in 'loadUser'
// - user.service.ts:23 - Called in 'refreshUser'
// - user.test.ts:5 - Referenced in test1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Symbol Search
Search for symbols across your entire project.
Keyboard Shortcuts
| Action | macOS | Windows/Linux |
|---|---|---|
| Symbol Search | Cmd+Shift+O | Ctrl+Shift+O |
Search Types
- All Symbols: Search functions, classes, variables
- Functions Only: Type
@to filter - Classes Only: Type
#to filter
Usage
- Press
Cmd+Shift+O - Type symbol name (fuzzy search)
- Use
@or#prefixes to filter - Press Enter to navigate
Example:
Type: "usr"
Matches:
- getUser
- userService
- username1
2
3
4
5
2
3
4
5
Supported Languages
IfAI's code navigation works with 35+ languages:
Fully Supported
| Language | Status |
|---|---|
| TypeScript | ✅ Full |
| JavaScript | ✅ Full |
| Python | ✅ Full |
| Rust | ✅ Full |
| Go | ✅ Full |
| Java | ✅ Full |
| C/C++ | ✅ Full |
| C# | ✅ Full |
| PHP | ✅ Full |
| Ruby | ✅ Full |
| Swift | ✅ Full |
| Kotlin | ✅ Full |
| Dart | ✅ Full |
| Lua | ✅ Full |
| Scala | ✅ Full |
| ... and more! |
Partial Support
- HTML/XML
- CSS/SCSS
- JSON/YAML
- Markdown
- Shell scripts
Symbol Indexing
How It Works
- Automatic Indexing: Files are indexed when opened
- Background Updates: Index updates as you edit
- Project-Wide: All files in project are indexed
- Language Aware: Uses Tree-sitter for accurate parsing
Checking Index Status
Look at the status bar:
✓ Indexed 245 files, 3,420 symbols1
Rebuilding Index
If navigation seems off:
Cmd+Shift+P> "Rebuild Symbol Index"- Wait for indexing to complete
- Try navigation again
Tips and Tricks
1. Peek Definition
See definition without leaving current location:
macOS: Cmd+Shift+F12Windows/Linux: Ctrl+Shift+F12
2. Back/Forward Navigation
Navigate through history:
Back: Ctrl+- (Cmd+- on Mac) Forward: Ctrl+Shift+- (Cmd+Shift+- on Mac)
3. Go to Line
Jump to specific line:
macOS: Ctrl+GWindows/Linux: Ctrl+G
4. Go to Symbol in File
Search within current file:
macOS: Cmd+Shift+OWindows/Linux: Ctrl+Shift+O
5. Multi-Definition
For ambiguous symbols:
- Use Peek References first
- Select the correct one
- Navigate from there
Troubleshooting
"Definition not found"
Causes:
- Symbol not in indexed files
- Dynamic language limitations
- File not saved
Solutions:
- Save the file
- Wait for indexing to complete
- Check if symbol is in indexed project
"No references found"
Causes:
- Symbol is only defined, never used
- References in non-indexed files
Solutions:
- Verify symbol is actually used
- Check project indexing scope
- Rebuild symbol index
Navigation is slow
Solutions:
- Reduce project size
- Exclude unnecessary folders (Settings > Project)
- Close unused files
- Use more specific search terms
Next Steps
- Basic Usage - Core editor features
- AI Chat Guide - AI-assisted navigation
- Settings Reference - Configure navigation