Repository navigation
π CraftEngine VS Code Extension v0.0.4 Release
π Release Date
April 1, 2026
π Version Highlights
- Architecture Rewrite
- Schema-Driven Completion System
- Diagnostic & Code Action Providers
- Minecraft Model Rendering
- Data & Schema System
- Domain Model
- CI/CD & Tooling
- Commands
β¨ New Features
- Complete migration to 5-layer clean architecture: Core β Domain β Application β Infrastructure β Presentation
- Dependency injection system with
ServiceContainerandSERVICE_TOKENS(Symbol-based) - Event-driven architecture with
EventBussupporting wildcard subscriptions and Trie-based pattern matching - Performance monitoring with
PerformanceMonitorfor automatic operation profiling - Hierarchical logging system with multiple output targets (console, file, OutputChannel)
- Strategy-based completion framework with priority system (schemaAware: 90, schemaKey: 85, delegates: 75)
- 7 delegate strategies: templateName, templateParameters, translationKey, filePath, itemId, categoryReference, versionCondition
- Rich text completion with MiniMessage tag support (40+ tags, 18 colors, click/hover actions, keybinds)
- AST-based YAML path parsing with 98% accuracy (improved from 85%)
- LRU caching for 90%+ performance improvement on repeated queries
- Category reference validation with go-to-definition and quick fixes
- Item ID validation with Minecraft namespace support and built-in item database
- MiniMessage rich text format validation (colors, click/hover actions, formatting tags)
- Translation key validation with cross-workspace reference finding
- Version condition validation with range and comparison support
- File path validation with existence checking, similar path suggestions, and auto-create
- Extended parameter type validation:
self_increase_int,condition,when,expression - Quick fixes: add missing properties, remove unknown properties, fix enum values, swap from/to values
- 3D model rendering engine with perspective projection (512x512 internal, 128x128 export)
- Item model resolution with condition, range dispatch, and select evaluators
- Model cache system (ModelCache, ResolvedModelCache, TextureCache)
- Worker pool for multi-threaded parallel rendering
- WebGL-based model preview panel with camera controls
- Pre-bundled Minecraft assets: block models, item models, textures with tint support
- JSON Schema validation system with
$refresolution, circular reference detection, and draft-07 compliance - External data configuration: completion priorities, extended types, performance/timing config, version conditions
- Minecraft data loading with multi-source fallback (Prismarine, GitHub mirrors)
- Minecraft version service supporting 1.20β1.21.11 (pack formats 15β75)
- MiniMessage data loader with tag definitions, colors, and action completions
- 20 JSON schema files covering items, recipes, loot tables, events, furniture, templates, translations
- Template entity with immutable properties, self-validation, and parameter management
- DataStoreService as unified facade implementing template, translation, item, and category repositories
- Specialized stores: TemplateStore, TranslationStore, ItemStore, CategoryStore with indexed queries
- Minecraft item model system with tint sources, condition properties, and registry pattern
- Template expansion with recursive reference resolution, circular reference detection, and parameter substitution
- Unified build and release workflow (
unified-release.yml) replacing the oldbuild-and-release.yml - GitHub Actions composite actions:
determine-package-typeandsetup-build-env - Platform-specific build scripts (
build-platform.js,build-universal.js) - Build utilities: dependency analysis (
analyze-dependencies.js), dependency copy (copy-dependencies.js), build verification (verify-build.js), cache management (cache-manager.js) - New esbuild configuration (
esbuild.config.mjs) - Package manager migration from npm to pnpm
- Build system migration to esbuild with custom build script
- Vitest test framework with VS Code mock, benchmarks, and coverage reporting
craftengine.previewModel/craftengine.refreshModelPreview: Model preview panelcraftengine.createTemplate/craftengine.extractTemplate: Template creation from selectioncraftengine.reloadSchemas/craftengine.validateDocument: Schema managementcraftengine.getStatistics/craftengine.showStatistics: Extension statistics
π§ Improvements
- Migrated from monolithic single-file architecture to 5-layer clean architecture
- Replaced all legacy providers with layered implementations using strategy pattern
- Updated entry point from
extension.jstoextension-complete.js - Decomposed
SchemaService.ts(864 lines) into 11 modular sub-services with Facade pattern - Decomposed
ExtensionServiceinto 8 specialized sub-components - Extracted
SchemaLoaderServicesub-modules: SchemaEventHandler, SchemaFileManager, SchemaUpdateCoordinator - Extracted
FileIndexingOrchestratorsub-modules: FileChangeHandler, FileLockManager, WorkspaceInitializer - Extracted
NamespaceDiscoveryServicesub-modules: NamespaceCache, NamespaceValidator, ResourceLocationParser - Extracted
YamlPathParsersub-modules: AstPathParser, IndentPathParser, PathParserCache - Extracted
ModelGenerationServicesub-modules: ModelJsonBuilder, ModelPathExtractor, SimplifiedConfigConverter - Introduced Prettier toolchain with unified code formatting across entire codebase
- Applied type-only imports throughout the codebase for optimized TypeScript compilation
- Extracted new interfaces for enhanced dependency inversion and module decoupling
- Migrated test framework from Mocha to Vitest with comprehensive VS Code API mock
- Migrated package manager from npm to pnpm
- Enhanced
package.jsonfor marketplace readiness (publisher:craftengine) - Updated extension ID to
craftengine.craftengine-vsc
π Bug Fixes
- Resolved 11 CodeQL security alerts from PR#1
- Fixed dependency security vulnerabilities
- Fixed vsce package build pipeline issues:
- Missing vsce package invocation in package script
- Added @vscode/vsce dependency and fixed package script commands
- Resolved vsce package and vscode:prepublish infinite recursion
- Fixed pnpm project vsce package dependency check failures
- Removed minimatch override to fix vsce package failures
- Fixed Schema Validation CI workflow
- Fixed Benchmark workflow base branch installation failure
- Allowed package job to run on PR events
- Resolved all TypeScript compilation errors and circular dependency issues
- Fixed service registration order and dependency injection lifecycle conflicts
- Fixed YAML path parsing accuracy (85% β 98%) using AST-based approach
- Fixed enum value escaping for special characters (
|,,,\,$,}) - Fixed LRU cache invalidation on schema reload, preventing memory leaks
- Fixed duplicate completion suggestions with smart key filtering
- Fixed E2E test setup: extension ID, Mocha config, module path resolution, Windows compatibility
- Improved variable naming for better readability
π¦ Installation
Method 1: Install from GitHub Release
- Visit the Releases page
- Download the
craftengine-vsc-0.0.4.vsixfile - Open VS Code and press
Ctrl+Shift+Pto open the command palette - Type
Extensions: Install from VSIX... - Select the downloaded
.vsixfile to install
Method 2: Manual Installation
# Download the extension file
wget https://github.com/INSide-734/craftengine-vsc/releases/download/v0.0.4/craftengine-vsc-0.0.4.vsix
# Install to VS Code
code --install-extension craftengine-vsc-0.0.4.vsixπ Upgrade Instructions
If you have an older version installed, please follow these steps to upgrade:
-
Uninstall the old version:
- Open VS Code Extensions panel (
Ctrl+Shift+X) - Search for "CraftEngine"
- Click the uninstall button
- Open VS Code Extensions panel (
-
Install the new version:
- Follow the installation methods above
π οΈ Technical Details
- Node.js Version: 22+
- VS Code Version: 1.103.0+
- TypeScript Version: 5.9+
- Build Tool: GitHub Actions
π€ Contributors
Thanks to all developers who contributed to this release!
π Related Links
CraftEngine VS Code Extension - Making CraftEngine template development more efficient! π―
π‘ Tip: If you encounter any issues while using the extension, please visit the Issues page to submit feedback.