Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>JQHTMLNew to Visual Studio Code? Get it now.
JQHTML

JQHTML

JQHTML

|
2 installs
| (0) | Free
Syntax highlighting and language support for JQHTML template files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JQHTML VS Code Extension

Syntax highlighting and language support for JQHTML template files.

Introduction

JQHTML is a component templating system built on jQuery. It lets you compose logical concepts in HTML rather than assembling visual primitives with cryptic class names.

What JQHTML Is

JQHTML provides:

  • Component-based architecture without virtual DOM
  • Template compilation to efficient JavaScript
  • Deterministic lifecycle (create -> render -> load -> ready)
  • Direct jQuery integration - components ARE jQuery objects

Full documentation lives at jqhtml.org.

Features

Syntax Highlighting

Full syntax highlighting for all JQHTML constructs:

  • Component Definitions: <Define:ComponentName>
  • Template Expressions: <%= expression %>
  • Control Flow: <% if (condition) { %> ... <% } %>
  • Slots: <Slot:slotname> for both definition and content
  • Data Bindings: :property="value"
  • Event Handlers: @click="handler"
  • Special Attributes: $sid="name", $property="value"
  • Components: <MyComponent />
  • Comments: <%-- comment --%>

Language Configuration

  • Auto-closing pairs: Automatically close tags, brackets, and quotes
  • Bracket matching: Highlight matching brackets and tags
  • Code folding: Fold component definitions
  • Smart indentation: Handles control flow
  • Comment toggling: Use standard VS Code shortcuts to toggle comments

Code Snippets

Snippets for common template patterns, in .jqhtml files:

Prefix Description
define Component definition
definecomp Component with structure
if{ If statement (brace style)
for{ For loop (brace style)
exp Expression <%= %>
expraw Unescaped expression <%!= %>
expbr Expression with nl2br <%br= %>
$id Scoped ID attribute
:prop Property binding
@event Event handler
slot Named slot
slotself Self-closing slot
comment Comment block
comp Component usage
compslot Component with slot content

And for component classes, in JavaScript and TypeScript files:

Prefix Description
jqcomponent Component class with the common lifecycle hooks
jqon_create on_create() hook
jqon_load on_load() hook
jqon_loaded on_loaded() hook
jqon_render on_render() hook
jqon_ready on_ready() hook
jqon_stop on_stop() hook
jqon_viewport_resize on_viewport_resize() hook
jqgate_load gate_load() call
jqon Event listener
jqonce One-shot event listener
jqtrigger Trigger an event
jqload_only _load_only lifecycle flag
jqload_render_only _load_render_only lifecycle flag
jqforce_initial_render _force_initial_render lifecycle flag

Usage

The extension automatically activates for .jqhtml files. Features include:

Syntax Highlighting

All JQHTML syntax is highlighted with semantic colors:

<Define:UserCard>
  <div class="user-card" $sid="card">
    <h2><%= this.data.name %></h2>

    <% if (this.data.isAdmin) { %>
      <span class="admin">Admin</span>
    <% } %>

    <button @click="handleClick">Click Me</button>

    <% for (const skill of this.data.skills) { %>
      <div class="skill"><%= skill %></div>
    <% } %>
  </div>
</Define:UserCard>

IntelliSense

Basic HTML tag and attribute completion is provided through VS Code's built-in HTML support. In addition, the extension ships custom, JQHTML-aware providers:

  • Go to Definition - Jump from a component tag, $ attribute reference, extends="" attribute, or Slot: name to where it's defined, backed by a workspace-wide component index.
  • Hover - Hover over a component name for JQHTML-specific information, using the same component index.

Code Folding

Component definitions can be folded at the <Define:> level:

▼ <Define:MyComponent>
  ...
  </Define:MyComponent>

Formatting Support

The extension ships a custom, JQHTML-aware document formatter (not VS Code's generic HTML formatter) that understands <%-- --%> comments, <% %> code blocks, self-closing tags, and JQHTML's indentation rules. Run it via Format Document or your usual format-on-save setting.

Laravel Blade Support

The extension also registers a blade language (for .blade.php files) and injects JQHTML component highlighting into it, so JQHTML components used inside Laravel Blade templates get highlighted too. This includes:

  • Component tag names and the tag="" attribute highlighted via a dedicated semantic tokens provider
  • Blade-aware indentation/auto-indent rules
  • Auto-spacing inside Blade tags as you type - {{ expands to {{ | }}, {!! to {!! | !!}, and {{-- to {{-- | --}} (cursor at |)

Two settings control this behavior:

Setting Default Description
jqhtml.enableBladeSupport true Enable JQHTML component highlighting in Laravel Blade (.blade.php) files
jqhtml.enableBladeAutoSpacing true Automatically add spaces inside Blade tags when typing

Configuration

The extension sets these defaults for JQHTML files:

{
  "[jqhtml]": {
    "editor.wordWrap": "on",
    "editor.quickSuggestions": {
      "other": true,
      "comments": false,
      "strings": true
    }
  }
}

You can override these in your VS Code settings.

Theme Support

The extension uses standard TextMate scopes and works with all VS Code themes. For best results, use a theme with good HTML/JavaScript support.

License

MIT — Copyright (c) 2026 HansonXyz

Changelog

See CHANGELOG.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft