88 inherit ( lib . options ) mkEnableOption mkOption ;
99 inherit ( lib . meta ) getExe ;
1010 inherit ( lib . modules ) mkIf mkMerge ;
11- inherit ( lib . types ) enum package ;
11+ inherit ( lib . types ) enum ;
1212 inherit ( lib . nvim . types ) mkGrammarOption singleOrListOf ;
1313 inherit ( lib . nvim . attrsets ) mapListToAttrs ;
1414
3030 } ;
3131 } ;
3232
33- defaultFormat = "prettier" ;
33+ defaultFormat = [ "prettier" ] ;
3434 formats = {
3535 prettier = {
36- package = pkgs . prettier ;
36+ command = getExe pkgs . prettier ;
3737 } ;
3838
3939 prettierd = {
40- package = pkgs . prettierd ;
41- nullConfig = ''
42- table.insert(
43- ls_sources,
44- null_ls.builtins.formatting.prettier.with({
45- command = "${ cfg . format . package } /bin/prettierd",
46- })
47- )
48- '' ;
40+ command = getExe pkgs . prettierd ;
4941 } ;
5042
5143 biome = {
52- package = pkgs . biome ;
53- nullConfig = ''
54- table.insert(
55- ls_sources,
56- null_ls.builtins.formatting.biome.with({
57- command = "${ cfg . format . package } /bin/biome",
58- })
59- )
60- '' ;
44+ command = getExe pkgs . biome ;
6145 } ;
6246 } ;
6347in {
8569
8670 type = mkOption {
8771 description = "CSS formatter to use" ;
88- type = enum ( attrNames formats ) ;
72+ type = singleOrListOf ( enum ( attrNames formats ) ) ;
8973 default = defaultFormat ;
9074 } ;
91-
92- package = mkOption {
93- description = "CSS formatter package" ;
94- type = package ;
95- default = formats . ${ cfg. format . type } . package ;
96- } ;
9775 } ;
9876 } ;
9977
@@ -115,10 +93,13 @@ in {
11593 ( mkIf cfg . format . enable {
11694 vim . formatter . conform-nvim = {
11795 enable = true ;
118- setupOpts . formatters_by_ft . css = [ cfg . format . type ] ;
119- setupOpts . formatters . ${ cfg . format . type } = {
120- command = getExe cfg . format . package ;
121- } ;
96+ setupOpts . formatters_by_ft . css = cfg . format . type ;
97+ setupOpts . formatters =
98+ mapListToAttrs ( name : {
99+ inherit name ;
100+ value = formats . ${ name } ;
101+ } )
102+ cfg . format . type ;
122103 } ;
123104 } )
124105 ] ) ;
0 commit comments