feat(nvim): highlight mustache templates
nvim detects `.mustache` but ships no syntax for it, leaving Moodle templates
as plain text. `vim-mustache-handlebars` supplies syntax, indent and ftdetect,
covering the constructs the Handlebars tree-sitter grammar rejects: bare
sections, `{{{unescaped}}}`, partials and `{{< parent }}` inheritance.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015D4NsszUG7hy9ghKZ4nfhm
This commit is contained in:
@@ -248,6 +248,17 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# Moodle/Mustache templates. nvim detects `.mustache` as filetype mustache
|
||||
# but ships no syntax file for it, so the buffer renders as plain text.
|
||||
# Tree-sitter is not an option here: the Handlebars grammar (glimmer)
|
||||
# rejects mustache's argument-less sections, `{{{unescaped}}}`, partials
|
||||
# and Moodle's `{{< parent }}` inheritance, and a single error node drops
|
||||
# highlighting for the rest of the file. This plugin carries the syntax,
|
||||
# indent and ftdetect scripts. nixpkgs marks it unfree only because
|
||||
# upstream ships no license metadata; `allowUnfree` in modules/nixos.nix
|
||||
# already covers it.
|
||||
extraPlugins = [ pkgs.vimPlugins.vim-mustache-handlebars ];
|
||||
|
||||
# Global (non-LSP) keymaps. Deliberately small — a starting point to grow.
|
||||
keymaps = [
|
||||
{ mode = "n"; key = "<leader>w"; action = "<cmd>w<cr>"; options.desc = "Save"; }
|
||||
|
||||
Reference in New Issue
Block a user