68 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { inputs, config, pkgs, lib, ... }:
 | |
| let
 | |
|   cfg = config.homeModules.console.editor.helix;
 | |
|   inherit (config) colorscheme;
 | |
| in
 | |
| {
 | |
| 
 | |
|   imports = [
 | |
|     ./languages.nix
 | |
|   ];
 | |
|   
 | |
|   config = lib.mkIf cfg.enable {
 | |
|     programs.helix = {
 | |
|       enable = true;
 | |
|       defaultEditor = lib.mkIf cfg.default true;
 | |
|       package = inputs.helix.packages.${pkgs.system}.default.overrideAttrs (old: {
 | |
|         makeWrapperArgs = with pkgs;
 | |
|           old.makeWrapperArgs
 | |
|           or []
 | |
|           ++ [
 | |
|             "--suffix"
 | |
|             "PATH"
 | |
|             ":"
 | |
|             (lib.makeBinPath [
 | |
|               clang-tools
 | |
|               marksman
 | |
|               nil
 | |
|               nodePackages.bash-language-server
 | |
|               nodePackages.vscode-css-languageserver-bin
 | |
|               nodePackages.vscode-langservers-extracted
 | |
|               shellcheck
 | |
|             ])
 | |
|           ];
 | |
|       });
 | |
|       settings = {
 | |
|         theme = colorscheme.slug;
 | |
|         editor = {
 | |
|           color-modes = true;
 | |
|           middle-click-paste = false;
 | |
|           line-number = "relative";
 | |
|           indent-guides.render = true;
 | |
|           true-color = true;
 | |
|           cursorline = true;
 | |
|           cursor-shape = {
 | |
|             normal = "block";
 | |
|             insert = "bar";
 | |
|             select = "underline";
 | |
|           };
 | |
|           statusline = {
 | |
|             left = [ "mode" "spinner" ];
 | |
|             center = [ "file-name" ];
 | |
|             right = [ "diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type" ];
 | |
|           };
 | |
|           lsp = {
 | |
|             display-messages = true;
 | |
|             display-inlay-hints = true;
 | |
|           };
 | |
|         };
 | |
|         keys.normal.space.u = {
 | |
|           f = ":format";
 | |
|           w = ":set whitespace.render all";
 | |
|           W = ":set whitespace.render none";
 | |
|         };
 | |
|       };
 | |
|       themes = import ./theme.nix { inherit colorscheme; };
 | |
|     };
 | |
|   };
 | |
| }
 |