forked from jan-leila/nix-config
		
	main #5
					 4 changed files with 91 additions and 44 deletions
				
			
		|  | @ -33,20 +33,8 @@ in { | ||||||
|               "editor.tabSize" = 2; |               "editor.tabSize" = 2; | ||||||
|               "editor.insertSpaces" = false; |               "editor.insertSpaces" = false; | ||||||
|             } |             } | ||||||
|             (lib.mkIf nix-development-enabled { |  | ||||||
|               "nix.enableLanguageServer" = true; |  | ||||||
|               "nix.serverPath" = "nil"; |  | ||||||
|               "[nix]" = { |  | ||||||
|                 "editor.defaultFormatter" = "kamadorueda.alejandra"; |  | ||||||
|                 "editor.formatOnPaste" = true; |  | ||||||
|                 "editor.formatOnSave" = true; |  | ||||||
|                 "editor.formatOnType" = true; |  | ||||||
|               }; |  | ||||||
|               "alejandra.program" = "alejandra"; |  | ||||||
|             }) |  | ||||||
|           ]; |           ]; | ||||||
| 
 | 
 | ||||||
|           # TODO: move the rest of the extensions into enable options like this |  | ||||||
|           extraExtensions = { |           extraExtensions = { | ||||||
|             oneDark.enable = true; |             oneDark.enable = true; | ||||||
|             atomKeybindings.enable = true; |             atomKeybindings.enable = true; | ||||||
|  | @ -54,49 +42,43 @@ in { | ||||||
|               enable = ai-tooling-enabled; |               enable = ai-tooling-enabled; | ||||||
|               ollamaHost = "http://defiant:11434"; |               ollamaHost = "http://defiant:11434"; | ||||||
|             }; |             }; | ||||||
|  |             alejandra.enable = nix-development-enabled; | ||||||
|  |             nixIde.enable = nix-development-enabled; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           extensions = let |           extensions = let | ||||||
|             extension-pkgs = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version; |             extension-pkgs = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version; | ||||||
|           in ( |           in ( | ||||||
|             ( |             ( | ||||||
|               with extension-pkgs.open-vsx; ( |               with extension-pkgs.open-vsx; [ | ||||||
|                 [ |                 # vs code feel extensions | ||||||
|                   # vs code feel extensions |                 streetsidesoftware.code-spell-checker | ||||||
|                   streetsidesoftware.code-spell-checker |                 streetsidesoftware.code-spell-checker-german | ||||||
|                   streetsidesoftware.code-spell-checker-german |                 streetsidesoftware.code-spell-checker-italian | ||||||
|                   streetsidesoftware.code-spell-checker-italian |                 jeanp413.open-remote-ssh | ||||||
|                   jeanp413.open-remote-ssh |  | ||||||
| 
 | 
 | ||||||
|                   # html extensions |                 # html extensions | ||||||
|                   formulahendry.auto-rename-tag |                 formulahendry.auto-rename-tag | ||||||
|                   ms-vscode.live-server |                 ms-vscode.live-server | ||||||
| 
 | 
 | ||||||
|                   # js extensions |                 # js extensions | ||||||
|                   dsznajder.es7-react-js-snippets |                 dsznajder.es7-react-js-snippets | ||||||
|                   dbaeumer.vscode-eslint |                 dbaeumer.vscode-eslint | ||||||
|                   standard.vscode-standard |                 standard.vscode-standard | ||||||
|                   orta.vscode-jest |                 orta.vscode-jest | ||||||
|                   stylelint.vscode-stylelint |                 stylelint.vscode-stylelint | ||||||
|                   tauri-apps.tauri-vscode |                 tauri-apps.tauri-vscode | ||||||
| 
 | 
 | ||||||
|                   # go extensions |                 # go extensions | ||||||
|                   golang.go |                 golang.go | ||||||
| 
 | 
 | ||||||
|                   # astro blog extensions |                 # astro blog extensions | ||||||
|                   astro-build.astro-vscode |                 astro-build.astro-vscode | ||||||
|                   unifiedjs.vscode-mdx |                 unifiedjs.vscode-mdx | ||||||
| 
 | 
 | ||||||
|                   # misc extensions |                 # misc extensions | ||||||
|                   tamasfe.even-better-toml |                 tamasfe.even-better-toml | ||||||
|                 ] |               ] | ||||||
|                 ++ (lib.lists.optionals nix-development-enabled [ |  | ||||||
|                   # nix extensions |  | ||||||
|                   pinage404.nix-extension-pack |  | ||||||
|                   jnoortheen.nix-ide |  | ||||||
|                   kamadorueda.alejandra |  | ||||||
|                 ]) |  | ||||||
|               ) |  | ||||||
|             ) |             ) | ||||||
|             ++ ( |             ++ ( | ||||||
|               with extension-pkgs.vscode-marketplace; ( |               with extension-pkgs.vscode-marketplace; ( | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								modules/home-manager-modules/programs/vscode/alejandra.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								modules/home-manager-modules/programs/vscode/alejandra.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | ||||||
|  | { | ||||||
|  |   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.alejandra = { | ||||||
|  |           enable = lib.mkEnableOption "Enable Alejandra extension for Nix formatting"; | ||||||
|  |           extension = lib.mkPackageOption pkgsRepository "alejandra" { | ||||||
|  |             default = ["kamadorueda" "alejandra"]; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       config = lib.mkIf config.extraExtensions.alejandra.enable { | ||||||
|  |         extensions = [config.extraExtensions.alejandra.extension]; | ||||||
|  |         userSettings = { | ||||||
|  |           "[nix]" = { | ||||||
|  |             "editor.defaultFormatter" = "kamadorueda.alejandra"; | ||||||
|  |             "editor.formatOnPaste" = true; | ||||||
|  |             "editor.formatOnSave" = true; | ||||||
|  |             "editor.formatOnType" = true; | ||||||
|  |           }; | ||||||
|  |           "alejandra.program" = "alejandra"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     })); | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -3,5 +3,7 @@ | ||||||
|     ./oneDark.nix |     ./oneDark.nix | ||||||
|     ./atomKeybindings.nix |     ./atomKeybindings.nix | ||||||
|     ./aiCode.nix |     ./aiCode.nix | ||||||
|  |     ./alejandra.nix | ||||||
|  |     ./nixIde.nix | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										29
									
								
								modules/home-manager-modules/programs/vscode/nixIde.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								modules/home-manager-modules/programs/vscode/nixIde.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | ||||||
|  | { | ||||||
|  |   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.nixIde = { | ||||||
|  |           enable = lib.mkEnableOption "Enable Nix IDE extension"; | ||||||
|  |           extension = lib.mkPackageOption pkgsRepository "nix-ide" { | ||||||
|  |             default = ["jnoortheen" "nix-ide"]; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       config = lib.mkIf config.extraExtensions.nixIde.enable { | ||||||
|  |         extensions = [config.extraExtensions.nixIde.extension]; | ||||||
|  |         userSettings = { | ||||||
|  |           "nix.enableLanguageServer" = true; | ||||||
|  |           "nix.serverPath" = "nil"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     })); | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue