IDE Extensions

IDE Extensions

The Jig extension provides syntax highlighting for .jig template files with full support for embedded language blocks. It is available for VS Code and compatible editors.

Installation

Install from the VS Code Marketplace or click a button below to install directly in your editor:

Or install from the command line:

code --install-extension svallory.jig

Features

  • Syntax highlighting for Jig tags (@if, @each, @component, etc.), mustache expressions ({{ }}), and comments ({{-- --}})
  • Host language highlighting — each file extension (.html.jig, .ts.jig, .py.jig, etc.) activates the appropriate host language grammar
  • Embedded language blocks via the content type suffix
  • Emmet support in .jig and .html.jig files

Supported Languages

The extension ships grammars for the following host languages. Use the file extension for file-level highlighting or the embed identifiers with the : LANG suffix for inline embedded blocks.

LanguageFile ExtensionEmbed Identifiers
HTML.jig, .html.jightml
CSS.css.jigcss
JavaScript.js.jigjs, javascript, es6
TypeScript.ts.jigts, typescript
JSON.json.jigjson
JSX.jsx.jigjsx
TSX.tsx.jigtsx
C.c.jigc
C++.cpp.jig, .h.jigcpp, c++, cxx
C#.cs.jigcsharp, c#, cs
Dart.dart.jigdart
Dockerfile.dockerfile.jigdockerfile
F#.fs.jigfsharp
Go.go.jiggo, golang
Java.java.jigjava
Julia.jl.jigjulia, jl
Less.less.jigless
Markdown.md.jigmarkdown, md
YAML.yml.jig, .yaml.jigyaml, yml
PHP.php.jigphp
PowerShell.ps1.jigpowershell, ps1, pwsh
Python.py.jigpython, py
R.r.jigr
Ruby.rb.jigruby, rb
Rust.rs.jigrust, rs
SCSS.scss.jigscss
Shell.sh.jigshell, sh, bash, zsh
SQL.sql.jigsql
Swift.swift.jigswift
XML.xml.jigxml
Lua.lua.jiglua
Perl.pl.jigperl, pl
Groovy.groovy.jiggroovy
Batch.bat.jigbat, batch, cmd
Clojure.clj.jigclojure, clj
CoffeeScript.coffee.jigcoffee, coffeescript
Diff.diff.jigdiff
MakefileMakefile.jigmakefile
Objective-C.m.jigobjc, objective-c
Objective-C++.mm.jigobjcpp, objective-cpp
ShaderLab.shader.jigshaderlab
Visual Basic.vb.jigvb
XSL.xsl.jigxsl
Elixir.ex.jig, .exs.jigelixir
Embedded Elixir.eex.jig, .leex.jigeex
HTML EEX.html.eex.jig, .html.leex.jightml-eex

Embedded Language Blocks

Use the content type suffix (: LANG) on any block-level tag to get syntax highlighting for the tag's body:

@if(format === 'json'): json
{
"name": {{ name }},
"version": {{ version }}
}
@end
@each(query in queries): sql
SELECT * FROM {{ query.table }}
WHERE id = {{ query.id }};
@end

The identifier after : must match one of the embed identifiers from the table above. Jig expressions ({{ }}) and tags (@tag) inside the block are still highlighted as Jig syntax.

Configuration

Template Disks

Configure template lookup paths in your project's Jig configuration:

jig.mount('default', join(__dirname, 'views'))

Emmet

Emmet is enabled by default for .jig and .html.jig files. If it's not working, add this to your settings.json:

{
"emmet.includeLanguages": {
"jig-html": "html"
}
}

Jig is free and open source. If you find it useful, consider supporting its development.

Become a Sponsor