FortiFySchema VSCode Extension

Professional TypeScript validation with intelligent IDE support
The official VSCode extension for FortiFySchema - providing syntax highlighting, intelligent autocompletion, real-time validation, and comprehensive documentation for TypeScript schema validation.
✨ Key Features
🎨 Smart Syntax Highlighting
- Context-aware highlighting - Only activates within
Interface({...})
blocks
- Semantic token support - Rich colors for types, operators, and conditional logic
- Multiple color themes - Choose from professional color schemes
🧠 Intelligent IntelliSense
- Type autocompletion - All FortiFySchema types with constraints
- Conditional syntax - Smart suggestions for
when
expressions
- Method completion -
.in()
, .exists
, .contains()
and more
- Context-aware - Only suggests relevant completions
⚡ Real-time Validation
- Instant error detection - Catch syntax errors as you type
- Detailed diagnostics - Clear error messages with suggestions
- Performance optimized - No impact on non-FortiFySchema code
📚 Rich Documentation
- Hover information - Detailed docs for types and operators
- Example snippets - See usage examples on hover
- Quick reference - Access documentation without leaving your editor
🎯 Precision Targeting
This extension is designed to be non-intrusive and context-aware:
- ✅ Activates ONLY within
Interface({...})
function calls
- ✅ Ignores regular strings and other code
- ✅ Zero interference with your existing TypeScript/JavaScript workflow
- ✅ Performance optimized - No slowdown on large codebases
🚀 Quick Start
1. Install the Extension
From VS Code Marketplace:
- Open VS Code Extensions (
Ctrl+Shift+X
)
- Search for "FortiFySchema"
- Click "Install"
From Command Line:
code --install-extension NEHONIX.fortify-schema-vscode
2. Install FortiFySchema
npm install fortify-schema
3. Start Using
import { Interface } from "fortify-schema";
const UserSchema = Interface({
id: "int(1,)", // 🎨 Syntax highlighted
email: "email", // 💡 Hover for docs
role: "admin|user|guest", // 🌈 Union types
permissions: "when role=admin *? string[] : string[]?", // ⚡ Conditional validation
});
// ✅ Full TypeScript inference
const result = UserSchema.safeParse(userData);
📖 Supported Syntax
Basic Types
{
name: "string", // String type
age: "int(18,120)", // Integer with range
email: "email", // Email validation
optional: "string?", // Optional field
tags: "string[]", // Array type
status: "active|inactive" // Union type
}
Conditional Validation
{
// Complex business logic
maxProjects: "when accountType=free *? int(1,3) : int(1,100)",
// Method calls
access: "when role.in(admin,manager) *? =granted : =denied",
// Logical operators
features: "when role=admin && status=active *? string[] : string[]?",
}
Advanced Features
{
// Constraints
password: "string(8,128)",
score: "number(0,100)",
// Array constraints
items: "string[](https://github.com/Nehonix-Team/fortify-schema/blob/HEAD/1,10)",
// Constants
type: "=user",
// Nested conditions
access: "when status=active *? when role=admin *? =full : =limited : =none"
}
⚙️ Configuration
Recommended Settings
Add to your VS Code settings.json
:
{
"editor.semanticHighlighting.enabled": true,
"typescript.suggest.autoImports": true,
"typescript.preferences.quoteStyle": "double",
"editor.quickSuggestions": {
"strings": true
}
}
Color Themes
The extension includes multiple professional color themes:
- Default - Balanced colors for readability
- Vibrant - High contrast for better distinction
- Minimal - Subtle highlighting for clean aesthetics
- Ocean - Blue-teal palette for calm coding
- Sunset - Warm orange-purple gradient
- Matrix - Green-on-black hacker style
- Cyberpunk - Neon colors for futuristic feel
- Pastel - Soft colors for gentle highlighting
Access themes via: Ctrl+Shift+P
→ "FortiFySchema: Apply Color Scheme"
🔧 Commands
Command |
Description |
FortiFySchema: Validate Schema |
Manually validate current file |
FortiFySchema: Apply Color Scheme |
Choose color theme |
FortiFySchema: List Color Schemes |
View available themes |
🐛 Troubleshooting
Extension Not Working?
- Check file type - Extension works with
.ts
, .js
, .tsx
, .jsx
- Verify syntax - Must be inside
Interface({...})
blocks
- Restart VS Code - Sometimes needed after installation
- Check settings - Ensure semantic highlighting is enabled
The extension is optimized for performance:
- Only processes
Interface({...})
blocks
- Ignores regular strings and comments
- Uses efficient parsing algorithms
- No impact on large codebases
📚 Documentation
🤝 Contributing
We welcome contributions!
📄 License
MIT © Nehonix Team