FoxPro Language Support
Visual FoxPro language support with advanced IDE features including navigation, refactoring, formatting, and diagnostics.
✨ Features
Navigation & Intelligence
- Go to Definition (F12 / Ctrl+Click) - Jump to function, procedure, and class member declarations
- Find All References - Locate all usages of symbols across the workspace
- Document Symbols - Outline view for classes, methods, and functions
- Workspace Symbols (Ctrl+T) - Quick search across all indexed symbols
- Hover Information - Shows symbol kind, name, and location
Code Quality
- Diagnostics & Linting - Real-time detection of:
- Unclosed structures (IF, FOR, WHILE, TRY, DEFINE CLASS, etc.)
- Unmatched parentheses
- Context-aware keyword validation (distinguishes SQL functions from control structures)
- Code Actions - Quick fixes for common issues:
- Close unclosed structures
- Remove duplicate parameters
- Add missing LOCAL declarations
- Rename Symbol (F2) - Safe rename with validation
- Code Formatting - Smart indentation with configurable tab size
- Code Folding - Collapse/expand classes, functions, and control structures
File Support
.prg, .h, .spr, .mnx, .sc2, .vc2 files
- Automatic encoding detection (UTF-8, Windows-1252, Latin1)
🚀 Usage
- Open a workspace containing FoxPro sources
- The extension automatically indexes your codebase
- Use F12 to navigate, F2 to rename, Shift+Alt+F to format
📋 Commands
| Command |
Description |
| Gofox: Reindex Workspace |
Manually rebuild the symbol index |
| Gofox: Open Logs |
Show diagnostic output channel |
⚙️ Configuration
General Settings
| Setting |
Type |
Default |
Description |
gofox.maxFileSize |
number |
5242880 (5 MB) |
Maximum file size to index (0 = no limit) |
gofox.logLevel |
string |
info |
Log verbosity: off, info, debug |
gofox.excludeGlobs |
array |
["**/node_modules/**", ...] |
Patterns to exclude from indexing |
Feature Toggles
| Setting |
Type |
Default |
Description |
gofox.formatting.enabled |
boolean |
true |
Enable document formatting |
gofox.formatting.indentSize |
number |
2 |
Indent size for formatting (2 or 4) |
gofox.codeFolding.enabled |
boolean |
true |
Enable code folding regions |
gofox.codeActions.enabled |
boolean |
true |
Enable quick fix suggestions |
gofox.rename.enabled |
boolean |
true |
Enable symbol renaming |
gofox.findReferences.enabled |
boolean |
true |
Enable find all references |
🔧 Development
npm install # Install dependencies
npm run compile # Build TypeScript
npm test # Run tests
npm run lint # Check code style
📦 Publishing
See .github/PUBLISH.md for instructions on setting up automatic publishing to the VS Code Marketplace.
Quick Start:
npm version patch # Bump version
git push origin main --tags # Trigger CI/CD pipeline
📝 Notes
- Case-insensitive matching for all symbols
- Context-aware diagnostics (e.g., distinguishes
IF() SQL function from IF statement)
- Smart reference detection excludes definitions from results
- Handles VFP-specific patterns:
TEXT TO...ENDTEXT, continuation with ;, etc.
📄 License
See LICENSE file for details.
🐛 Issues
Report bugs at GitHub Issues
| |