Migrate jqhtml slot syntax from <#name> to <Slot:name>

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-24 03:43:45 +00:00
parent 22df126977
commit 881425bed6
35 changed files with 124 additions and 122 deletions

View File

@@ -55,10 +55,10 @@ Indexes all files in `/rsx/` for automatic discovery and loading.
## JQHTML Named Slots (v2.2.112+)
Child template syntax changed from `<#slotname />` tags to `content('slotname')` function:
- Old: `<#header />` (deprecated)
Child template syntax changed from `<Slot:slotname />` tags to `content('slotname')` function:
- Old: `<Slot:header />` (deprecated)
- New: `<%= content('header') %>` (v2.2.112+)
- Parent syntax unchanged: `<#header>content</#header>`
- Parent syntax: `<Slot:header>content</Slot:header>`
## JQHTML Slot-Based Template Inheritance (v2.2.108+)

View File

@@ -53,9 +53,9 @@ class JqhtmlBladeCompiler
// If there's slot content, we need to output the div directly to allow blade processing of the content
if ($slot_content !== null && trim($slot_content) !== '') {
// Check for slot syntax - not allowed in Blade
if (preg_match('/<#[a-zA-Z0-9_]+/', $slot_content)) {
if (preg_match('/<Slot:[a-zA-Z0-9_]+/', $slot_content)) {
throw new \RuntimeException(
"JQHTML slot syntax (<#slotname>) is not allowed in Blade files.\n" .
"JQHTML slot syntax (<Slot:slotname>) is not allowed in Blade files.\n" .
"Component '{$component_name}' contains slot tags in its innerHTML.\n" .
"Use standard innerHTML with content() function instead.\n\n" .
"Blade usage:\n" .

View File

@@ -218,8 +218,8 @@ class Jqhtml_ManifestModule extends ManifestModule_Abstract
{
$slots = [];
// Match <#slotname> syntax
preg_match_all('/<#(\w+)>/', $content, $matches);
// Match <Slot:slotname> syntax
preg_match_all('/<Slot:(\w+)>/', $content, $matches);
foreach ($matches[1] as $slot) {
if ($slot && !in_array($slot, $slots)) {

View File

@@ -265,23 +265,23 @@ DATAGRID
$per_page=15
class="card DataGrid">
<#DG_Card_Header>
<Slot:DG_Card_Header>
<Card_Title>Client List</Card_Title>
<Card_Header_Right>
<Search_Input $sid="filter_input" $placeholder="Search..." />
</Card_Header_Right>
</#DG_Card_Header>
</Slot:DG_Card_Header>
<#DG_Table_Header>
<Slot:DG_Table_Header>
<tr>
<th data-sortby="id">ID</th>
<th data-sortby="name">Name</th>
<th data-sortby="created_at">Created</th>
<th>Actions</th>
</tr>
</#DG_Table_Header>
</Slot:DG_Table_Header>
<#row>
<Slot:row>
<tr data-href="<%= Rsx.Route('Clients_View_Action', row.id) %>">
<td><%= row.id %></td>
<td><%= row.name %></td>
@@ -297,7 +297,7 @@ DATAGRID
</div>
</td>
</tr>
</#row>
</Slot:row>
</Define:Clients_DataGrid>

View File

@@ -1316,25 +1316,25 @@ CONTENT AND SLOTS
</div>
</Define:Card_Layout>
Parent templates provide content using <#slotname> tags:
Parent templates provide content using <Slot:slotname> tags:
<!-- Use with named slots -->
<Card_Layout>
<#header><h3>User Profile</h3></#header>
<#body>
<Slot:header><h3>User Profile</h3></Slot:header>
<Slot:body>
<p>Name: <%= this.data.name %></p>
<p>Email: <%= this.data.email %></p>
</#body>
<#footer>
</Slot:body>
<Slot:footer>
<button class="btn">Save</button>
</#footer>
</Slot:footer>
</Card_Layout>
Critical rules:
- Cannot mix regular content with named slots
- If ANY named slots present, ALL content must be in slots
- Child template syntax: <%= content('slotname') %>
- Parent template syntax: <#slotname>content</#slotname>
- Parent template syntax: <Slot:slotname>content</Slot:slotname>
Decision Guide:
Use content() when:
@@ -1378,17 +1378,17 @@ CONTENT AND SLOTS
Child template - slot-only (Users_DataGrid.jqhtml):
<Define:Users_DataGrid>
<#header>
<Slot:header>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</#header>
</Slot:header>
<#row>
<Slot:row>
<td><%= row.id %></td>
<td><%= row.name %></td>
<td><%= row.email %></td>
</#row>
</Slot:row>
</Define:Users_DataGrid>
Result: Users_DataGrid renders using DataGrid_Abstract HTML
@@ -1399,9 +1399,9 @@ CONTENT AND SLOTS
<%= content('slotname', data) %>
Child templates receive data via slot parameter:
<#row>
<Slot:row>
<td><%= row.id %></td>
</#row>
</Slot:row>
The slot parameter name matches the slot name automatically.
@@ -1409,9 +1409,9 @@ CONTENT AND SLOTS
Slot names cannot be JavaScript reserved words.
Parser rejects with fatal error:
<#function>Content</#function> <!-- ERROR: reserved word -->
<#if>Content</#if> <!-- ERROR: reserved word -->
<#header>Content</#header> <!-- Valid -->
<Slot:function>Content</Slot:function> <!-- ERROR: reserved word -->
<Slot:if>Content</Slot:if> <!-- ERROR: reserved word -->
<Slot:header>Content</Slot:header> <!-- Valid -->
Reserved words include: function, if, for, class, const, let,
var, while, switch, return, try, catch, and others.

View File

@@ -251,18 +251,18 @@ EXAMPLES
<Define:DataGrid class="datagrid">
<table>
<thead>
<#header>
<Slot:header>
<% for (let col of this.data.columns) { %>
<th><%= col.title %></th>
<% } %>
</#header>
</Slot:header>
</thead>
<tbody>
<% if (this.data.records.length === 0) { %>
<tr><td colspan="100"><#empty>No records</#empty></td></tr>
<tr><td colspan="100"><Slot:empty>No records</Slot:empty></td></tr>
<% } else { %>
<% for (let [idx, record] of this.data.records.entries()) { %>
<tr><#row /></tr>
<tr><Slot:row /></tr>
<% } %>
<% } %>
</tbody>

View File

@@ -28,9 +28,9 @@ Slot tags for components with multiple content areas:
```blade
{{-- Slot tags are highlighted specially --}}
<DataGrid>
<#header>Name | Email | Status</#header>
<#row><%= row.name %> | <%= row.email %></#row>
<#empty>No data found</#empty>
<Slot:header>Name | Email | Status</Slot:header>
<Slot:row><%= row.name %> | <%= row.email %></Slot:row>
<Slot:empty>No data found</Slot:empty>
</DataGrid>
```
@@ -65,7 +65,7 @@ The extension injects TextMate grammar rules into PHP and Blade files to:
1. **Identify Component Tags**: Patterns match tags starting with uppercase letters
2. **Highlight Component Names**: Apply distinctive coloring to component names
3. **Preserve Blade Syntax**: Handle Blade expressions within component attributes
4. **Support Slots**: Recognize and highlight `<#slotname>` syntax
4. **Support Slots**: Recognize and highlight `<Slot:slotname>` syntax
## Supported Patterns
@@ -138,7 +138,7 @@ The grammar is injected into:
### Pattern Matching
- Component opening tags: `(<)([A-Z][\\w_]*)(?=\\s|>)`
- Component closing tags: `(</)([A-Z][\\w_]*)(>)`
- Slot tags: `(<#)(\\w+)(>)` and `(</#)(\\w+)(>)`
- Slot tags: `(<Slot:)(\\w+)(>)` and `(</Slot:)(\\w+)(>)`
## Troubleshooting

32
node_modules/.package-lock.json generated vendored
View File

@@ -2211,9 +2211,9 @@
}
},
"node_modules/@jqhtml/core": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.220.tgz",
"integrity": "sha512-Ig2P8LGKbWbTVVpSMWIIt5MQejFlhF1kVKudHbTM78Gsw4RYLg2jk2/f22Az4uDqQiVdtjT/E/cVlPrcgk2NRg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.221.tgz",
"integrity": "sha512-QoScXEobtXZNsLj89Ekge4mCkfFINeNbAX5UJTk4Y2OAfKGffeR+6Krj1o3CzWDGjji5EhfD3ZTUk1p4jPswBA==",
"license": "MIT",
"dependencies": {
"@rollup/plugin-node-resolve": "^16.0.1",
@@ -2237,9 +2237,9 @@
}
},
"node_modules/@jqhtml/parser": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.220.tgz",
"integrity": "sha512-xN2pjoBSfo/2G681/z3Vi2NODXBGGI+Y6xDDdmqs01J/vCJ/ojEU/rLgwfXHGVRVRIaGsPfKPhI+EW2+5n57Bg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.221.tgz",
"integrity": "sha512-bvXH+MqWGsIjH/8znVncHJ2iTQAgic0ag6pFvzROn1gQBPqVSdwXD2IiSJnSzUWbFinQpzgURHBRIOKPCnzi4w==",
"license": "MIT",
"dependencies": {
"@types/jest": "^29.5.11",
@@ -2257,9 +2257,9 @@
}
},
"node_modules/@jqhtml/router": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.220.tgz",
"integrity": "sha512-PgD/VdkpjlXbNCvHVEMX4o/DNLUTYyF57p+6Kcz+1cxSvHjIhaX72Bi2vkDORqCRloCCf3rG9yJecMOYDUg4GQ==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.221.tgz",
"integrity": "sha512-D2rdJpQmXzM5zuuRRUVe2DlvJSq5vTACw+oevcxZybNG0s1vuVhkW4vsAQlw4nYfD8QUqWncESIivKeGX7dVVQ==",
"license": "MIT",
"dependencies": {
"@rollup/plugin-node-resolve": "^16.0.1",
@@ -2277,21 +2277,21 @@
}
},
"node_modules/@jqhtml/vscode-extension": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.220.tgz",
"integrity": "sha512-H9ZfHU/MueUhjE4UmkOh/lJiqNHB4pQEbRTjrPDRhz+XFwHm1+dImtrgpiePYCDDHxdRW1rbJKGQ2IWcUwJ2Mg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.221.tgz",
"integrity": "sha512-LHLSMwk+6m0s3nCthYj3HO0S0MEznesQGP/QmBW7GmEiHvtc8UaSd0FRrnoeTBPXSFXEO4UO09VQH7Usf1y24A==",
"license": "MIT",
"engines": {
"vscode": "^1.74.0"
}
},
"node_modules/@jqhtml/webpack-loader": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.220.tgz",
"integrity": "sha512-P21MC0xUKAHg0gWyYF+by7b6eJhss5vLngRqWSijm5bBfoRpI6n3jyIWIA/cG/hyBMxPGrh+UHKJJQjrfpCs7A==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.221.tgz",
"integrity": "sha512-+UtPGO4fnEG0FJ0KgRzGyefIh7b5gMcDIARXN2Yx4vf309NFASTmguXLBKqq1JEGKRC1JQzRcqzYzKIexs9Wxg==",
"license": "MIT",
"dependencies": {
"@jqhtml/parser": "2.2.220",
"@jqhtml/parser": "2.2.221",
"@types/loader-utils": "^2.0.6",
"@types/node": "^20.0.0",
"@types/webpack": "^5.28.5",

View File

@@ -4237,7 +4237,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.2.220';
const version = '2.2.221';
// Default export with all functionality
const jqhtml = {
// Core

View File

@@ -4233,7 +4233,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.2.220';
const version = '2.2.221';
// Default export with all functionality
const jqhtml = {
// Core

View File

@@ -1,5 +1,5 @@
/**
* JQHTML Core v2.2.220
* JQHTML Core v2.2.221
* (c) 2025 JQHTML Team
* Released under the MIT License
*/
@@ -4238,7 +4238,7 @@ function init(jQuery) {
}
}
// Version - will be replaced during build with actual version from package.json
const version = '2.2.220';
const version = '2.2.221';
// Default export with all functionality
const jqhtml = {
// Core

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/core",
"version": "2.2.220",
"version": "2.2.221",
"description": "Core runtime library for JQHTML",
"type": "module",
"main": "./dist/index.js",

View File

@@ -1348,7 +1348,7 @@ export class CodeGenerator {
for (const [name, component] of this.components) {
code += `// Component: ${name}\n`;
code += `jqhtml_components.set('${name}', {\n`;
code += ` _jqhtml_version: '2.2.220',\n`; // Version will be replaced during build
code += ` _jqhtml_version: '2.2.221',\n`; // Version will be replaced during build
code += ` name: '${name}',\n`;
code += ` tag: '${component.tagName}',\n`;
code += ` defaultAttributes: ${this.serializeAttributeObject(component.defaultAttributes)},\n`;

View File

@@ -94,7 +94,7 @@ export function getSuggestion(error) {
return '\nDid you forget the closing </Define:ComponentName> tag?';
}
if (error.includes('Unclosed slot')) {
return '\nDid you mean to use a self-closing slot? Try <#name /> instead.';
return '\nDid you mean to use a self-closing slot? Try <Slot:name /> instead.';
}
if (error.includes('Unclosed tag') || error.includes('Unclosed component')) {
return '\n\nThis element was opened but never closed. Make sure every opening tag has a matching closing tag.\n' +
@@ -113,7 +113,7 @@ export function getSuggestion(error) {
return '\nCheck that your opening and closing tags match exactly (case-sensitive).';
}
if (error.includes('Mixed content not allowed')) {
return '\nWhen using slots, wrap all content in <#slotname> tags. Use <#default> for the main content.';
return '\nWhen using slots, wrap all content in <Slot:slotname> tags. Use <Slot:default> for the main content.';
}
return '';
}

View File

@@ -1 +1 @@
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}

View File

@@ -8,8 +8,8 @@ export declare enum TokenType {
DEFINE_START = "DEFINE_START",// <Define:
DEFINE_END = "DEFINE_END",// </Define:
COMPONENT_NAME = "COMPONENT_NAME",
SLOT_START = "SLOT_START",// <#
SLOT_END = "SLOT_END",// </#
SLOT_START = "SLOT_START",// <Slot:
SLOT_END = "SLOT_END",// </Slot:
SLOT_NAME = "SLOT_NAME",
TAG_OPEN = "TAG_OPEN",// <tagname or <ComponentName
TAG_CLOSE = "TAG_CLOSE",// </tagname or </ComponentName

View File

@@ -1 +1 @@
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}

View File

@@ -430,13 +430,13 @@ export class Lexer {
return;
}
// Check for slot tags (v2)
if (this.match_sequence('</#')) {
this.add_token(TokenType.SLOT_END, '</#', start, this.position);
if (this.match_sequence('</Slot:')) {
this.add_token(TokenType.SLOT_END, '</Slot:', start, this.position);
this.scan_slot_name();
return;
}
if (this.match_sequence('<#')) {
this.add_token(TokenType.SLOT_START, '<#', start, this.position);
if (this.match_sequence('<Slot:')) {
this.add_token(TokenType.SLOT_START, '<Slot:', start, this.position);
this.scan_slot_name();
return;
}
@@ -504,8 +504,8 @@ export class Lexer {
}
// Peek ahead for special sequences
if (this.peek_ahead(1) === '%' ||
this.peek_ahead(1) === '#' || // Slot start
this.peek_ahead(1) === '/' && this.peek_ahead(2) === '#' || // Slot end
this.peek_sequence_at(1, 'Slot:') || // Slot start
this.peek_sequence_at(1, '/Slot:') || // Slot end
this.peek_ahead(1) === 'D' && this.peek_sequence_at(1, 'Define:') ||
this.peek_ahead(1) === '/' && this.peek_sequence_at(1, '/Define:')) {
break;

File diff suppressed because one or more lines are too long

View File

@@ -251,7 +251,7 @@ export class Parser {
if (this.match(TokenType.CODE_START)) {
return this.parse_code_block();
}
// Slot <#name>...</#name>
// Slot <Slot:name>...</Slot:name>
if (this.match(TokenType.SLOT_START)) {
return this.parse_slot();
}
@@ -315,7 +315,7 @@ export class Parser {
// Other problematic words
'arguments', 'eval'
]);
// Parse slot <#name>content</#name> or <#name />
// Parse slot <Slot:name>content</Slot:name> or <Slot:name />
parse_slot() {
const start_token = this.previous(); // SLOT_START
const name_token = this.consume(TokenType.SLOT_NAME, 'Expected slot name');
@@ -351,7 +351,7 @@ export class Parser {
}
}
// Consume closing tag
this.consume(TokenType.SLOT_END, 'Expected </#');
this.consume(TokenType.SLOT_END, 'Expected </Slot:');
const closing_name = this.consume(TokenType.SLOT_NAME, 'Expected slot name');
if (closing_name.value !== name_token.value) {
throw mismatchedTagError(name_token.value, closing_name.value, closing_name.line, closing_name.column, this.source, this.filename);
@@ -810,7 +810,7 @@ export class Parser {
}
// If component has both slots and non-slot content, throw error
if (hasSlots && hasNonSlotContent) {
throw syntaxError(`Mixed content not allowed: when using slots, all content must be inside <#slotname> tags`, startToken.line, startToken.column, this.source, this.filename);
throw syntaxError(`Mixed content not allowed: when using slots, all content must be inside <Slot:slotname> tags`, startToken.line, startToken.column, this.source, this.filename);
}
}
/**

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/parser",
"version": "2.2.220",
"version": "2.2.221",
"description": "JQHTML template parser - converts templates to JavaScript",
"type": "module",
"main": "dist/index.js",

View File

@@ -1,5 +1,5 @@
/**
* JQHTML Router v2.2.220
* JQHTML Router v2.2.221
* (c) 2025 JQHTML Team
* Released under the MIT License
*/

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/router",
"version": "2.2.220",
"version": "2.2.221",
"description": "Client-side routing for JQHTML applications",
"type": "module",
"main": "dist/index.js",

View File

@@ -1 +1 @@
2.2.220
2.2.221

Binary file not shown.

View File

@@ -71,11 +71,11 @@ class JqhtmlDefinitionProvider {
}
// IMPORTANT: Check for slot syntax BEFORE extracting word
// This prevents slot names from being treated as component names
// Check if we're in a slot tag by looking for <# or </# before cursor
// Check if we're in a slot tag by looking for <Slot: or </Slot: before cursor
const beforeCursor = line.substring(0, position.character);
if (beforeCursor.match(/<\/?#\s*[A-Z][A-Za-z0-9_]*$/)) {
if (beforeCursor.match(/<\/?Slot:\s*[A-Z][A-Za-z0-9_]*$/)) {
// We're in a slot tag - extract the full slot name from the line
const slotNameMatch = line.match(/<\/?#\s*([A-Z][A-Za-z0-9_]*)/);
const slotNameMatch = line.match(/<\/?Slot:\s*([A-Z][A-Za-z0-9_]*)/);
if (slotNameMatch) {
const slotName = slotNameMatch[1];
console.log(`JQHTML: Detected slot tag syntax for slot: ${slotName}`);
@@ -492,7 +492,7 @@ class JqhtmlDefinitionProvider {
return undefined;
}
/**
* Handle goto definition for slot tags (<#SlotName>)
* Handle goto definition for slot tags (<Slot:SlotName>)
*
* IMPLEMENTATION SCOPE (Narrow, for now):
* - Handles direct extends="ComponentName" on <Define:> tags

File diff suppressed because one or more lines are too long

View File

@@ -79,21 +79,21 @@ function activate(context) {
const position = change.range.start;
const line = event.document.lineAt(position.line);
const lineText = line.text.substring(0, position.character + 1);
// Match opening tags: <ComponentName>, <Define:Name>, or regular HTML tags
// Match opening tags: <ComponentName>, <Define:Name>, <Slot:Name>, or regular HTML tags
// Look for self-closing indicators /> or existing closing tags
const openingTagMatch = lineText.match(/<(\/?)(Define:|#)?([A-Z][A-Za-z0-9_]*|\w+)(?:\s+[^>]*)?>$/);
const openingTagMatch = lineText.match(/<(\/?)(Define:|Slot:)?([A-Z][A-Za-z0-9_]*|\w+)(?:\s+[^>]*)?>$/);
if (openingTagMatch && !openingTagMatch[1]) { // Not a closing tag (no /)
const tagPrefix = openingTagMatch[2] || ''; // 'Define:' or '#' or ''
const tagPrefix = openingTagMatch[2] || ''; // 'Define:' or 'Slot:' or ''
const tagName = openingTagMatch[3];
// Check if it's self-closing or already has a closing tag
const beforeTag = lineText.substring(0, lineText.lastIndexOf('<'));
if (beforeTag.endsWith('/')) {
return; // Self-closing tag
}
// Check if this is a slot tag (starts with #)
const isSlot = tagPrefix === '#';
// Check if this is a slot tag (starts with Slot:)
const isSlot = tagPrefix === 'Slot:';
// For slots, check if it's self-closing syntax
if (isSlot && lineText.match(/<#\w+\s*\/?>$/)) {
if (isSlot && lineText.match(/<Slot:\w+\s*\/?>$/)) {
// Don't auto-close self-closing slots
if (lineText.endsWith('/>')) {
return;
@@ -109,7 +109,7 @@ function activate(context) {
// Build the closing tag
let closingTag = '';
if (isSlot) {
closingTag = `</#${tagName}>`;
closingTag = `</Slot:${tagName}>`;
}
else {
closingTag = `</${tagPrefix}${tagName}>`;

View File

@@ -1 +1 @@
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}

View File

@@ -2,7 +2,7 @@
"name": "@jqhtml/vscode-extension",
"displayName": "JQHTML",
"description": "Syntax highlighting and language support for JQHTML template files",
"version": "2.2.220",
"version": "2.2.221",
"publisher": "jqhtml",
"license": "MIT",
"publishConfig": {

View File

@@ -237,33 +237,35 @@
]
},
"slot-tag": {
"comment": "Slot tags <#slotname> for defining named content areas",
"comment": "Slot tags <Slot:slotname> for defining named content areas",
"patterns": [
{
"comment": "Opening slot tag <#name> or self-closing <#name />",
"comment": "Opening slot tag <Slot:name> or self-closing <Slot:name />",
"name": "meta.tag.slot.jqhtml",
"match": "(<)(#)(\\w+)\\s*([^>]*?)(/?>)",
"match": "(<)(Slot)(:)(\\w+)\\s*([^>]*?)(/?>)",
"captures": {
"1": { "name": "punctuation.definition.tag.begin.jqhtml" },
"2": { "name": "keyword.control.slot.jqhtml" },
"3": { "name": "keyword.control.slot.jqhtml" },
"4": {
"4": { "name": "keyword.control.slot.jqhtml" },
"5": {
"patterns": [
{ "include": "#tag-attributes" }
]
},
"5": { "name": "punctuation.definition.tag.end.jqhtml" }
"6": { "name": "punctuation.definition.tag.end.jqhtml" }
}
},
{
"comment": "Closing slot tag </#name>",
"comment": "Closing slot tag </Slot:name>",
"name": "meta.tag.slot.close.jqhtml",
"match": "(</)(#)(\\w+)(>)",
"match": "(</)(Slot)(:)(\\w+)(>)",
"captures": {
"1": { "name": "punctuation.definition.tag.begin.jqhtml" },
"2": { "name": "keyword.control.slot.jqhtml" },
"3": { "name": "keyword.control.slot.jqhtml" },
"4": { "name": "punctuation.definition.tag.end.jqhtml" }
"4": { "name": "keyword.control.slot.jqhtml" },
"5": { "name": "punctuation.definition.tag.end.jqhtml" }
}
}
]

View File

@@ -1,6 +1,6 @@
{
"name": "@jqhtml/webpack-loader",
"version": "2.2.220",
"version": "2.2.221",
"description": "Webpack loader for JQHTML templates",
"type": "module",
"main": "dist/index.js",
@@ -30,7 +30,7 @@
"template"
],
"dependencies": {
"@jqhtml/parser": "2.2.220",
"@jqhtml/parser": "2.2.221",
"@types/loader-utils": "^2.0.6",
"@types/node": "^20.0.0",
"@types/webpack": "^5.28.5",

32
package-lock.json generated
View File

@@ -2658,9 +2658,9 @@
}
},
"node_modules/@jqhtml/core": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.220.tgz",
"integrity": "sha512-Ig2P8LGKbWbTVVpSMWIIt5MQejFlhF1kVKudHbTM78Gsw4RYLg2jk2/f22Az4uDqQiVdtjT/E/cVlPrcgk2NRg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/core/-/core-2.2.221.tgz",
"integrity": "sha512-QoScXEobtXZNsLj89Ekge4mCkfFINeNbAX5UJTk4Y2OAfKGffeR+6Krj1o3CzWDGjji5EhfD3ZTUk1p4jPswBA==",
"license": "MIT",
"dependencies": {
"@rollup/plugin-node-resolve": "^16.0.1",
@@ -2684,9 +2684,9 @@
}
},
"node_modules/@jqhtml/parser": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.220.tgz",
"integrity": "sha512-xN2pjoBSfo/2G681/z3Vi2NODXBGGI+Y6xDDdmqs01J/vCJ/ojEU/rLgwfXHGVRVRIaGsPfKPhI+EW2+5n57Bg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/parser/-/parser-2.2.221.tgz",
"integrity": "sha512-bvXH+MqWGsIjH/8znVncHJ2iTQAgic0ag6pFvzROn1gQBPqVSdwXD2IiSJnSzUWbFinQpzgURHBRIOKPCnzi4w==",
"license": "MIT",
"dependencies": {
"@types/jest": "^29.5.11",
@@ -2704,9 +2704,9 @@
}
},
"node_modules/@jqhtml/router": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.220.tgz",
"integrity": "sha512-PgD/VdkpjlXbNCvHVEMX4o/DNLUTYyF57p+6Kcz+1cxSvHjIhaX72Bi2vkDORqCRloCCf3rG9yJecMOYDUg4GQ==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/router/-/router-2.2.221.tgz",
"integrity": "sha512-D2rdJpQmXzM5zuuRRUVe2DlvJSq5vTACw+oevcxZybNG0s1vuVhkW4vsAQlw4nYfD8QUqWncESIivKeGX7dVVQ==",
"license": "MIT",
"dependencies": {
"@rollup/plugin-node-resolve": "^16.0.1",
@@ -2724,21 +2724,21 @@
}
},
"node_modules/@jqhtml/vscode-extension": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.220.tgz",
"integrity": "sha512-H9ZfHU/MueUhjE4UmkOh/lJiqNHB4pQEbRTjrPDRhz+XFwHm1+dImtrgpiePYCDDHxdRW1rbJKGQ2IWcUwJ2Mg==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/vscode-extension/-/vscode-extension-2.2.221.tgz",
"integrity": "sha512-LHLSMwk+6m0s3nCthYj3HO0S0MEznesQGP/QmBW7GmEiHvtc8UaSd0FRrnoeTBPXSFXEO4UO09VQH7Usf1y24A==",
"license": "MIT",
"engines": {
"vscode": "^1.74.0"
}
},
"node_modules/@jqhtml/webpack-loader": {
"version": "2.2.220",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.220.tgz",
"integrity": "sha512-P21MC0xUKAHg0gWyYF+by7b6eJhss5vLngRqWSijm5bBfoRpI6n3jyIWIA/cG/hyBMxPGrh+UHKJJQjrfpCs7A==",
"version": "2.2.221",
"resolved": "http://privatenpm.hanson.xyz/@jqhtml/webpack-loader/-/webpack-loader-2.2.221.tgz",
"integrity": "sha512-+UtPGO4fnEG0FJ0KgRzGyefIh7b5gMcDIARXN2Yx4vf309NFASTmguXLBKqq1JEGKRC1JQzRcqzYzKIexs9Wxg==",
"license": "MIT",
"dependencies": {
"@jqhtml/parser": "2.2.220",
"@jqhtml/parser": "2.2.221",
"@types/loader-utils": "^2.0.6",
"@types/node": "^20.0.0",
"@types/webpack": "^5.28.5",