Refactor jqhtml integration to use jqhtml.boot() and migrate blade highlighting to jqhtml extension

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-25 03:33:09 +00:00
parent bd5809fdbd
commit 9be3dfc14e
58 changed files with 817 additions and 672 deletions

View File

@@ -39,6 +39,9 @@ const vscode = __importStar(require("vscode"));
const formatter_1 = require("./formatter");
const componentIndex_1 = require("./componentIndex");
const definitionProvider_1 = require("./definitionProvider");
const blade_component_provider_1 = require("./blade_component_provider");
const blade_spacer_1 = require("./blade_spacer");
const blade_language_config_1 = require("./blade_language_config");
function activate(context) {
console.log('JQHTML extension activated');
// Initialize component index
@@ -133,6 +136,32 @@ function activate(context) {
if (config.get('formatOnSave')) {
console.log('JQHTML: Format on save is enabled');
}
// =========================================================================
// BLADE SUPPORT (Optional - controlled by jqhtml.enableBladeSupport setting)
// =========================================================================
const jqhtmlConfig = vscode.workspace.getConfiguration('jqhtml');
const bladeSupport = jqhtmlConfig.get('enableBladeSupport', true);
if (bladeSupport) {
// Register Blade component semantic tokens provider
// Highlights component tag names and tag="" attributes in .blade.php files
const bladeComponentProvider = new blade_component_provider_1.BladeComponentSemanticTokensProvider();
context.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider([{ language: 'blade' }, { pattern: '**/*.blade.php' }], bladeComponentProvider, new vscode.SemanticTokensLegend(['class', 'jqhtmlTagAttribute'])));
console.log('JQHTML: Blade component highlighting registered');
// Register Blade auto-spacing ({{ -> {{ | }})
const getAutoSpacingEnabled = () => {
return vscode.workspace.getConfiguration('jqhtml').get('enableBladeAutoSpacing', true);
};
context.subscriptions.push(vscode.workspace.onDidChangeTextDocument((event) => {
(0, blade_spacer_1.blade_spacer)(event, vscode.window.activeTextEditor, getAutoSpacingEnabled());
}));
console.log('JQHTML: Blade auto-spacing registered');
// Initialize Blade language configuration (indentation rules)
(0, blade_language_config_1.init_blade_language_config)();
console.log('JQHTML: Blade language configuration initialized');
}
else {
console.log('JQHTML: Blade support disabled via settings');
}
console.log('JQHTML: All features registered (formatter, auto-close, goto definition, hover)');
// Return public API for other extensions
return {