started to move extensions into configurable options
This commit is contained in:
		
							parent
							
								
									dfcd16fdd2
								
							
						
					
					
						commit
						99fb7b8a62
					
				
					 6 changed files with 106 additions and 16 deletions
				
			
		
							
								
								
									
										31
									
								
								modules/home-manager-modules/programs/vscode/aiCode.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/home-manager-modules/programs/vscode/aiCode.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: let | ||||
|   pkgsRepository = pkgs.codium-extensions; | ||||
| in { | ||||
|   options.programs.vscode.profiles = lib.mkOption { | ||||
|     type = lib.types.attrsOf (lib.types.submodule ({config, ...}: { | ||||
|       options = { | ||||
|         extraExtensions.aiCode = { | ||||
|           enable = lib.mkEnableOption "should the ai code extension for vscode be enabled"; | ||||
|           extension = lib.mkPackageOption pkgsRepository "ai-code" {}; | ||||
|           ollamaHost = lib.mkOption { | ||||
|             type = lib.types.nullOr lib.types.str; | ||||
|             description = "what host should be used for ollama"; | ||||
|             default = null; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|       config = lib.mkIf config.extraExtensions.aiCode.enable { | ||||
|         extensions = [ | ||||
|           config.extraExtensions.aiCode.extension | ||||
|         ]; | ||||
|         userSettings = { | ||||
|           "aiCode.ollamaHost" = lib.mkIf (config.extraExtensions.aiCode.ollamaHost != null) config.extraExtensions.aiCode.ollamaHost; | ||||
|         }; | ||||
|       }; | ||||
|     })); | ||||
|   }; | ||||
| } | ||||
|  | @ -0,0 +1,27 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version; | ||||
|   pkgsRepository = pkgsRepositories.open-vsx; | ||||
| in { | ||||
|   options.programs.vscode.profiles = lib.mkOption { | ||||
|     type = lib.types.attrsOf (lib.types.submodule ({config, ...}: { | ||||
|       options = { | ||||
|         extraExtensions.atomKeybindings = { | ||||
|           enable = lib.mkEnableOption "should the atom keybindings extension for vscode be enabled"; | ||||
|           extension = lib.mkPackageOption pkgsRepository "atom-keybindings" { | ||||
|             default = ["ms-vscode" "atom-keybindings"]; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|       config = lib.mkIf config.extraExtensions.atomKeybindings.enable { | ||||
|         extensions = [ | ||||
|           config.extraExtensions.atomKeybindings.extension | ||||
|         ]; | ||||
|       }; | ||||
|     })); | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										7
									
								
								modules/home-manager-modules/programs/vscode/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/home-manager-modules/programs/vscode/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| {...}: { | ||||
|   imports = [ | ||||
|     ./oneDark.nix | ||||
|     ./atomKeybindings.nix | ||||
|     ./aiCode.nix | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										30
									
								
								modules/home-manager-modules/programs/vscode/oneDark.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/home-manager-modules/programs/vscode/oneDark.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| { | ||||
|   lib, | ||||
|   pkgs, | ||||
|   config, | ||||
|   ... | ||||
| }: let | ||||
|   pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version; | ||||
|   pkgsRepository = pkgsRepositories.open-vsx; | ||||
| in { | ||||
|   options.programs.vscode.profiles = lib.mkOption { | ||||
|     type = lib.types.attrsOf (lib.types.submodule ({config, ...}: { | ||||
|       options = { | ||||
|         extraExtensions.oneDark = { | ||||
|           enable = lib.mkEnableOption "should the one dark theme for vscode be enabled"; | ||||
|           extension = lib.mkPackageOption pkgsRepository "onedark" { | ||||
|             default = ["akamud" "vscode-theme-onedark"]; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|       config = lib.mkIf config.extraExtensions.oneDark.enable { | ||||
|         extensions = [ | ||||
|           config.extraExtensions.oneDark.extension | ||||
|         ]; | ||||
|         userSettings = { | ||||
|           "workbench.colorTheme" = "Atom One Dark"; | ||||
|         }; | ||||
|       }; | ||||
|     })); | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue