@@ -137,47 +137,63 @@ rec {
137137      } " ; 
138138    } ; 
139139
140-   pluginLuaConfig   =   types . submodule   ( 
141-     {  config ,  ...  } :
140+   pluginLuaConfig   = 
141+     {  hasContent  } :
142142    let 
143143      inherit  ( builtins )  toString ; 
144144      inherit  ( lib . nixvim . utils )  mkBeforeSection  mkAfterSection ; 
145-     in 
146-     { 
147-       options   =  { 
148-         pre   =  lib . mkOption   { 
149-           type   =  with  types ;  nullOr   lines ; 
150-           default   =  null ; 
151-           description   =  '' 
152-             Lua code inserted at the start of the plugin's configuration. 
153-             This is the same as using `lib.nixvim.utils.mkBeforeSection` when defining `content`. 
154-           '' ; 
155-         } ; 
156-         post   =  lib . mkOption   { 
157-           type   =  with  types ;  nullOr   lines ; 
158-           default   =  null ; 
159-           description   =  '' 
160-             Lua code inserted at the end of the plugin's configuration. 
161-             This is the same as using `lib.nixvim.utils.mkAfterSection` when defining `content`. 
162-           '' ; 
163-         } ; 
164-         content   =  lib . mkOption   { 
165-           type   =  types . lines ; 
166-           default   =  "" ; 
167-           description   =  '' 
168-             Configuration of the plugin. 
169- 
170-             If `pre` and/or `post` are non-null, they will be merged using the order priorities 
171-             ${ toString   ( mkBeforeSection   null ) . priority }  and ${ toString   ( mkBeforeSection   null ) . priority }  
172-             respectively. 
173-           '' ; 
145+ 
146+       commonModule   =  { 
147+         options   =  { 
148+           pre   =  lib . mkOption   { 
149+             type   =  with  types ;  nullOr   lines ; 
150+             default   =  null ; 
151+             description   = 
152+               '' 
153+                 Lua code inserted at the start of the plugin's configuration. 
154+               '' 
155+               +  lib . optionalString   hasContent  '' 
156+                 This is the same as using `lib.nixvim.utils.mkBeforeSection` when defining `content`. 
157+               '' ; 
158+           } ; 
159+           post   =  lib . mkOption   { 
160+             type   =  with  types ;  nullOr   lines ; 
161+             default   =  null ; 
162+             description   = 
163+               '' 
164+                 Lua code inserted at the end of the plugin's configuration. 
165+               '' 
166+               +  lib . optionalString   hasContent  '' 
167+                 This is the same as using `lib.nixvim.utils.mkAfterSection` when defining `content`. 
168+               '' ; 
169+           } ; 
174170        } ; 
175171      } ; 
176172
177-       config . content   =  lib . mkMerge   ( 
178-         lib . optional   ( config . pre   !=  null )  ( mkBeforeSection   config . pre ) 
179-         ++  lib . optional   ( config . post   !=  null )  ( mkAfterSection   config . post ) 
180-       ) ; 
181-     } 
182-   ) ; 
173+       contentModule   = 
174+         {  config ,  ... } :
175+         { 
176+           options   =  { 
177+             content   =  lib . mkOption   { 
178+               type   =  types . lines ; 
179+               default   =  "" ; 
180+               description   =  '' 
181+                 Configuration of the plugin. 
182+ 
183+                 If `pre` and/or `post` are non-null, they will be merged using the order priorities 
184+                 ${ toString   ( mkBeforeSection   null ) . priority }  and ${ toString   ( mkBeforeSection   null ) . priority }  
185+                 respectively. 
186+               '' ; 
187+             } ; 
188+           } ; 
189+ 
190+           config   =  { 
191+             content   =  lib . mkMerge   ( 
192+               lib . optional   ( config . pre   !=  null )  ( mkBeforeSection   config . pre ) 
193+               ++  lib . optional   ( config . post   !=  null )  ( mkAfterSection   config . post ) 
194+             ) ; 
195+           } ; 
196+         } ; 
197+     in 
198+     types . submodule   ( [  commonModule  ]  ++  ( lib . optional   hasContent  contentModule ) ) ; 
183199} 
0 commit comments