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

Kiritan

otoneko1102

|
2 installs
| (0) | Free
Syntax highlighting, folding, and catalog jump for Kiritan's :::kiritan{...} directive blocks in Markdown, and syntax highlighting/completion for *.kiritanconfig files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

kiritan-logo

Kiritan (VS Code extension)

English | 日本語

Syntax highlighting for Kiritan's :::kiritan{...} / ::kiritan{...} directive blocks inside Markdown — the inline/catalog document strategies, and the language-switcher marker (docs/DESIGN.md chapters 4.2/4.3/6.1).

What it does

Colors the directive fences and their attributes distinctly from surrounding Markdown:

  • :::kiritan{locale=en} / :::kiritan{locale=ja} container directives, and their closing :::.
  • :::kiritan{#usage-intro} catalog-strategy segment ids.
  • ::kiritan{switcher} leaf directive.
  • %{name} interpolation placeholders, and their \%{name} escaped form.

This directive highlighting is a purely declarative TextMate grammar injection — no compiled extension code, no activation cost beyond what Markdown already has.

Beyond highlighting, it also provides, via real (if small) extension code:

  • Folding for :::kiritan{...} blocks, correctly matched by colon count even when other directives are nested inside or around them.
  • Jump to definition from a :::kiritan{#<id>} block to its entry in the sibling <base>.<locale>.catalog.json file(s), for the catalog document strategy.
  • Undefined-%{name} warnings and inline missing/stale/machine indicators — by running the workspace's own locally-installed kiritan check --json (via npx --no-install, so a project that doesn't depend on kiritan is silently skipped rather than triggering a surprise install) and mapping its results back onto the open document. %{name} uses inside a fenced code block or an inline code span are never flagged, matching interpolation.skipCodeBlocks's own default. Only the default %{/} delimiters are supported for this particular check; a project with custom interpolation.delimiters won't see undefined-variable warnings (but still gets everything else).

It also registers *.kiritanconfig (e.g. .kiritanconfig, dev.kiritanconfig, local.kiritanconfig) as its own language, so these files get JavaScript-equivalent syntax highlighting, bracket matching, and comment toggling despite having no real file extension — and, as a side effect, a Kiritan-branded file icon in any icon theme, since no theme has a specific rule for a filename it's never heard of (see docs/DESIGN.md chapter 13 for why this file naming was chosen). Real code completion for these files works by mirroring the file's content into an in-memory javascript document and forwarding completion requests to VS Code's own built-in JavaScript/TypeScript language service — this is what makes the icon and full IntelliSense compatible, since giving the file the real javascript language id directly would let vscode-icons' own language-based rule override the custom icon.

Building locally

npm install
npm run package   # extensions/vscode/*.vsix

Install the resulting .vsix via VS Code's "Install from VSIX..." command, or press F5 in this directory to launch an Extension Development Host for live testing.

License

Distributed under the WTFPL License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft