- ✅ Created complete extension manifest (
package.json) - ✅ Configured activation events for ObjectQL files
- ✅ Set up TypeScript build configuration (
tsconfig.json) - ✅ Created proper directory structure
- ✅ Mapped
*.object.ymlto object.schema.json - ✅ Mapped
*.app.ymlto app.schema.json - ✅ Copied all JSON schemas from
@objectql/types - ✅ Configured YAML validation integration
- ✅ Created 30+ code snippets for common patterns:
- Object definitions (oql-object)
- Field types (text, number, select, lookup, datetime, email, currency, file, image)
- Validation rules (cross-field, unique, business, state machine)
- Indexes and AI search configuration
- TypeScript hooks (beforeCreate, afterCreate, beforeUpdate, afterUpdate, beforeDelete, afterDelete)
- TypeScript actions (record-level, global)
- Repository operations (query, create, update)
- ✅ Added custom file icons for ObjectQL files (SVG format)
- ✅ Configured YAML language server integration
- ✅ Created language configuration for auto-pairing and comments
- ✅ Implemented commands to create new ObjectQL files:
ObjectQL: New Object DefinitionObjectQL: New Validation RulesObjectQL: New Permission RulesObjectQL: New Application ConfigObjectQL: Validate Current File
- ✅ Added file templates with best practices
- ✅ Integrated with Red Hat YAML extension for validation
- ✅ Welcome message for first-time users
- ✅ Configuration settings (validation, completion, diagnostics)
- ✅ Comprehensive README with:
- Feature overview
- Installation instructions
- Usage examples
- Snippet reference
- Configuration guide
- ✅ Created CHANGELOG documenting v0.1.0 features
- ✅ Added CONTRIBUTING.md for developers
- ✅ Created INSTALL.md with detailed installation steps
- ✅ Added icon generation guide
- ✅ Successfully packaged as
.vsix(29KB)
- ✅ Created test workspace with example ObjectQL files
- ✅ Updated repository documentation:
- Updated main README.md with VSCode extension section
- Enhanced docs/guide/ide-setup.md with extension details
- Added extension to .vscode/extensions.json recommendations
- ✅ Created launch configuration for debugging
- ✅ Set up build tasks for VS Code
- ✅ Verified compilation and packaging
The packaged extension (vscode-objectql-0.1.0.vsix) includes:
- Compiled Extension:
out/extension.js(10.92 KB) - JSON Schemas: 4 schemas (49.51 KB total)
- object.schema.json (39.83 KB)
- app.schema.json (1.29 KB)
- page.schema.json (15.43 KB)
- menu.schema.json (2.96 KB)
- Snippets: 2 snippet files (13.93 KB total)
- objectql.json (6.63 KB) - YAML snippets
- hooks-actions.json (7.3 KB) - TypeScript snippets
- File Icons: 5 SVG icons
- Documentation: README, CHANGELOG, INSTALL, CONTRIBUTING
# From the extension directory
cd packages/tools/vscode-objectql
npm install
npm run compile
npm run package
# Install in VS Code
code --install-extension vscode-objectql-0.1.0.vsix- Intelligent IntelliSense: Context-aware auto-completion for all ObjectQL metadata files
- Real-time Validation: JSON Schema validation with inline error reporting
- 30+ Snippets: Quick scaffolding for objects, fields, validations, hooks, and actions
- Quick Commands: Create new ObjectQL files with pre-filled templates
- File Icons: Visual distinction for ObjectQL metadata files
- YAML Integration: Seamless integration with Red Hat YAML extension
- Open Command Palette (
Ctrl+Shift+P) - Type "ObjectQL: New Object Definition"
- Enter object name (e.g., "product")
- File created with complete template
- Type
oql-field-textfor text field - Type
oql-field-selectfor select field with options - Type
oql-validation-cross-fieldfor validation rule - Type
oql-hook-beforeCreatefor TypeScript hook
- Edit
.object.ymlfiles and get suggestions for:- Field types
- Validation operators
- Index configurations
- AI search settings
- Language: TypeScript (strict mode)
- Dependencies:
- vscode-languageclient: ^9.0.1
- Requires: redhat.vscode-yaml extension
- Activation: Triggered when ObjectQL files are detected in workspace
- Size: 29 KB packaged
- Files: 22 files in package
*.object.yml- Object definitions (with custom icon)*.validation.yml- Validation rules (with custom icon)*.permission.yml- Permission rules*.app.yml- Application configuration*.hook.ts- Hook implementations*.action.ts- Action implementations
{
"objectql.validation.enabled": true,
"objectql.completion.enabled": true,
"objectql.diagnostics.enabled": true,
"objectql.trace.server": "off"
}Test workspace included with example files:
test-workspace/src/objects/product.object.yml- Complete product objecttest-workspace/src/validations/product.validation.yml- Validation rules
To test:
- Open extension folder in VS Code
- Press F5 to launch Extension Development Host
- Open test-workspace files
- Verify snippets, validation, and commands work
- Add PNG icon (currently using SVG)
- Publish to VS Code Marketplace
- Add hover documentation with examples
- Implement diagnostics for custom validation
- Add code lens for actions and hooks
- Create unit tests for extension features
- Add support for
.permission.ymlschema validation - Implement object definition preview
- Icon: Extension currently has no icon (needs PNG conversion from SVG)
- Schema Coverage: Permission and validation files don't have dedicated schemas yet
- Marketplace: Not yet published to VS Code Marketplace
- Testing: No automated tests yet (manual testing only)
All documentation is complete and includes:
- User-facing README with examples
- Developer CONTRIBUTING guide
- Detailed INSTALL instructions
- CHANGELOG for v0.1.0
- Integration with main repository docs
The ObjectQL VSCode extension is functionally complete and ready for use. It provides a comprehensive development experience for working with ObjectQL metadata files, including intelligent auto-completion, validation, and quick scaffolding tools.
Status: ✅ Ready for installation and testing Package: vscode-objectql-0.1.0.vsix (29 KB) Next Steps: Test extension, add PNG icon, publish to marketplace