mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	
		
			Some checks failed
		
		
	
	Set up binary cache / cachix (default) (push) Has been cancelled
				
			Set up binary cache / cachix (maximal) (push) Has been cancelled
				
			Set up binary cache / cachix (nix) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
				
			Validate flake & check formatting / Validate Flake (push) Has been cancelled
				
			Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
				
			Build and deploy documentation / publish (push) Has been cancelled
				
			* plugins/lsp: add code-actions module; add fastaction.nvim * deprecate nvimCodeActionMenu * fastaction-nvim: move range_code_action to visual maps * fastaction: move to vim.ui, remove mappings, enable register_ui_select by default * fastaction: add missing documentation * fastaction: support vim.ui.borders * treewide: clean up nvim-code-action-menu remnants * docs: add missing section ids --------- Co-authored-by: NotAShelf <raf@notashelf.dev>
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib.options) mkOption mkEnableOption;
 | 
						|
  inherit (lib.nvim.types) borderType;
 | 
						|
 | 
						|
  cfg = config.vim.ui.borders;
 | 
						|
in {
 | 
						|
  options.vim.ui.borders = {
 | 
						|
    enable = mkEnableOption "visible borders for most windows";
 | 
						|
 | 
						|
    globalStyle = mkOption {
 | 
						|
      type = borderType;
 | 
						|
      default = "rounded";
 | 
						|
      description = ''
 | 
						|
        The global border style to use.
 | 
						|
 | 
						|
        If a list is given, it should have a length of eight or any divisor of
 | 
						|
        eight. The array will specify the eight chars building up the border in
 | 
						|
        a clockwise fashion starting with the top-left corner. You can specify
 | 
						|
        a different highlight group for each character by passing a
 | 
						|
        [char, "YourHighlightGroup"] instead
 | 
						|
      '';
 | 
						|
      example = ["╔" "═" "╗" "║" "╝" "═" "╚" "║"];
 | 
						|
    };
 | 
						|
 | 
						|
    plugins = let
 | 
						|
      mkPluginStyleOption = name: {
 | 
						|
        enable = mkEnableOption "borders for the ${name} plugin" // {default = cfg.enable;};
 | 
						|
 | 
						|
        style = mkOption {
 | 
						|
          type = borderType;
 | 
						|
          default = cfg.globalStyle;
 | 
						|
          description = "The border style to use for the ${name} plugin";
 | 
						|
        };
 | 
						|
      };
 | 
						|
    in {
 | 
						|
      # despite not having it listed in example configuration, which-key does support the rounded type
 | 
						|
      # additionally, it supports a "shadow" type that is similar to none but is of higher contrast
 | 
						|
      which-key = mkPluginStyleOption "which-key";
 | 
						|
      lspsaga = mkPluginStyleOption "lspsaga";
 | 
						|
      nvim-cmp = mkPluginStyleOption "nvim-cmp";
 | 
						|
      lsp-signature = mkPluginStyleOption "lsp-signature";
 | 
						|
      fastaction = mkPluginStyleOption "fastaction";
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |