diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index 8a685a01..fcadcc37 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -24,28 +24,29 @@ package = pkgs.rWrapper.override { packages = [pkgs.rPackages.styler]; }; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.styler.with({ - command = "${cfg.format.package}/bin/R", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/R"; + }; }; format_r = { package = pkgs.rWrapper.override { packages = [pkgs.rPackages.formatR]; }; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.format_r.with({ - command = "${cfg.format.package}/bin/R", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/R"; + stdin = true; + args = [ + "--slave" + "--no-restore" + "--no-save" + "-s" + "-e" + ''formatR::tidy_source(source="stdin")'' + ]; + # TODO: range_args seem to be possible + # https://github.com/nvimtools/none-ls.nvim/blob/main/lua/null-ls/builtins/formatting/format_r.lua + }; }; }; @@ -118,8 +119,11 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.r-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.r = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = formats.${cfg.format.type}.config; + }; }) (mkIf cfg.lsp.enable {