Socket
Book a DemoInstallSign in
Socket

tree-sitter-hygen-template

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tree-sitter-hygen-template

Hygen Template grammar for tree-sitter

pipPyPI
Version
0.3.2
Maintainers
1

tree-sitter-hygen-template

CI discord matrix crates npm pypi

Tree-sitter grammar for Hygen templates.

It extends the tree-sitter-embedded-template grammar.

Parser requirements

  • bash (optional): highlight of metadata.value when metadata.key is sh
  • javascript (optional): highlight of code nodes
  • regex (optional): highlight of metadata.value when metadata.key is after, before or skip_if
  • Any other parser that you want to use for dynamic injection

Usage in Editors

Neovim

  • hygen.nvim: plugin that integrates this grammar to your Neovim configuration.

Helix

To be added

Emacs

To be added

In General

You can get the built files from the release branch. If you have specific instructions for your editor, PR's are welcome.

Dynamic Injection

Thanks to content node of tree-sitter-embedded-template grammar, dynamic injections can be attached to template body.

File naming convention

Just add .hygen to the end of the file name, i.e.:

  • index.html.hygen
  • .gitignore.hygen
  • .tsconfig.json.hygen

Tree-sitter directive

To implement dynamic injection, is recommended to create a directive with the following name:

#inject-hygen-tmpl!

[!NOTE] The creation of this directive varies for each editor

This directive will the responsible to remove .hygen from the file name and use the rest of the file name to retrieve the parser to be used for dynamic injection. See implementations for more details.

[!WARNING] Ignore dynamic injection for *.ejs.hygen, *.erb.hygen and *.hygen.hygen files to avoid weird behaviours

Once created, add it to the end of injections.scm file that will be used by the editor:

; dynamic injection
((content) @injection.content
  (#inject-hygen-tmpl! "")
  (#set! injection.combined))

Implementations

hygen.nvim

References

Keywords

incremental

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts