From 09e1dd28433ba65113d6f155a452ea18e7d7f5b4 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 6 Mar 2026 16:43:56 +0100 Subject: [PATCH] language/json: add json5 support --- docs/manual/release-notes/rl-0.9.md | 2 ++ modules/plugins/languages/json.nix | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 59f2fb648..90c59b3ec 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -48,6 +48,8 @@ - Added [taplo](https://taplo.tamasfe.dev/) as the default formatter and lsp for `languages.toml` so we don't default to AI-Slop. +- Added `json5` into `languages.json`. Some options where renamed. + ## Changelog {#sec-release-0-9-changelog} [taylrfnt](https://github.com/taylrfnt) diff --git a/modules/plugins/languages/json.nix b/modules/plugins/languages/json.nix index c928d3c53..c64978d1d 100644 --- a/modules/plugins/languages/json.nix +++ b/modules/plugins/languages/json.nix @@ -18,7 +18,7 @@ servers = { jsonls = { cmd = [(getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server") "--stdio"]; - filetypes = ["json" "jsonc"]; + filetypes = ["json" "jsonc" "json5"]; init_options = {provideFormatter = true;}; root_markers = [".git"]; }; @@ -39,7 +39,8 @@ in { treesitter = { enable = mkEnableOption "JSON treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "json"; + jsonPackage = mkGrammarOption pkgs "json"; + json5Package = mkGrammarOption pkgs "json5"; }; lsp = { @@ -66,7 +67,10 @@ in { config = mkIf cfg.enable (mkMerge [ (mkIf cfg.treesitter.enable { vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; + vim.treesitter.grammars = [ + cfg.treesitter.jsonPackage + cfg.treesitter.json5Package + ]; }) (mkIf cfg.lsp.enable { @@ -83,6 +87,7 @@ in { enable = true; setupOpts = { formatters_by_ft.json = cfg.format.type; + formatters_by_ft.json5 = cfg.format.type; formatters = mapListToAttrs (name: { inherit name;