File tree Expand file tree Collapse file tree 4 files changed +69
-1
lines changed
docs/manual/release-notes
modules/plugins/languages Expand file tree Collapse file tree 4 files changed +69
-1
lines changed Original file line number Diff line number Diff line change @@ -92,7 +92,7 @@ isMaximal: {
9292 fsharp . enable = false ;
9393 just . enable = false ;
9494 qml . enable = false ;
95-
95+ jinja . enable = false ;
9696 tailwind . enable = false ;
9797 svelte . enable = false ;
9898
Original file line number Diff line number Diff line change 139139 [Tombi](https://tombi-toml.github.io/tombi/) language server, linter, and
140140 formatter.
141141
142+ - Added Jinja support via `languages.jinja`
143+
142144- Added [hlargs.nvim](https://github.com/m-demare/hlargs.nvim) support as
143145 `visuals.hlargs-nvim`.
144146
Original file line number Diff line number Diff line change 2121 ./html.nix
2222 ./haskell.nix
2323 ./java.nix
24+ ./jinja.nix
2425 ./json.nix
2526 ./lua.nix
2627 ./markdown.nix
Original file line number Diff line number Diff line change 1+ {
2+ config ,
3+ pkgs ,
4+ lib ,
5+ ...
6+ } : let
7+ inherit ( builtins ) attrNames ;
8+ inherit ( lib . meta ) getExe ;
9+ inherit ( lib . modules ) mkIf mkMerge ;
10+ inherit ( lib . options ) mkEnableOption mkOption ;
11+ inherit ( lib . types ) enum listOf ;
12+ inherit ( lib . nvim . types ) mkGrammarOption ;
13+ inherit ( lib . nvim . attrsets ) mapListToAttrs ;
14+
15+ cfg = config . vim . languages . jinja ;
16+ defaultServers = [ "jinja-lsp" ] ;
17+ servers = {
18+ jinja-lsp = {
19+ enable = true ;
20+ cmd = [ ( getExe pkgs . jinja-lsp ) ] ;
21+ filetypes = [ "jinja" ] ;
22+ root_markers = [
23+ ".git"
24+ ] ;
25+ } ;
26+ } ;
27+ in {
28+ options . vim . languages . jinja = {
29+ enable = mkEnableOption "Jinja template language support" ;
30+
31+ treesitter = {
32+ enable = mkEnableOption "Jinja treesitter" // { default = config . vim . languages . enableTreesitter ; } ;
33+ package = mkGrammarOption pkgs "jinja" ;
34+ inlinePackage = mkGrammarOption pkgs "jinja_inline" ;
35+ } ;
36+
37+ lsp = {
38+ enable = mkEnableOption "Jinja LSP support" // { default = config . vim . lsp . enable ; } ;
39+ servers = mkOption {
40+ description = "Jinja LSP server to use" ;
41+ type = listOf ( enum ( attrNames servers ) ) ;
42+ default = defaultServers ;
43+ } ;
44+ } ;
45+ } ;
46+
47+ config = mkIf cfg . enable ( mkMerge [
48+ ( mkIf cfg . treesitter . enable {
49+ vim . treesitter . enable = true ;
50+ vim . treesitter . grammars = [
51+ cfg . treesitter . package
52+ cfg . treesitter . inlinePackage
53+ ] ;
54+ } )
55+
56+ ( mkIf cfg . lsp . enable {
57+ vim . lsp . servers =
58+ mapListToAttrs ( n : {
59+ name = n ;
60+ value = servers . ${ n } ;
61+ } )
62+ cfg . lsp . servers ;
63+ } )
64+ ] ) ;
65+ }
You can’t perform that action at this time.
0 commit comments