mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 12:42:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib.modules) mkRenamedOptionModule;
 | 
						|
  inherit (lib.options) mkOption mkEnableOption;
 | 
						|
  inherit (lib.types) str listOf;
 | 
						|
  inherit (lib.nvim.binds) mkMappingOption;
 | 
						|
  inherit (lib.nvim.types) mkPluginSetupOption;
 | 
						|
in {
 | 
						|
  imports = let
 | 
						|
    renamedSetupOption = oldPath: newPath:
 | 
						|
      mkRenamedOptionModule
 | 
						|
      (["vim" "notes" "todo-comments"] ++ oldPath)
 | 
						|
      (["vim" "notes" "todo-comments" "setupOpts"] ++ newPath);
 | 
						|
  in [
 | 
						|
    (renamedSetupOption ["patterns" "highlight"] ["highlight" "pattern"])
 | 
						|
    (renamedSetupOption ["patterns" "search"] ["search" "pattern"])
 | 
						|
  ];
 | 
						|
 | 
						|
  options.vim.notes.todo-comments = {
 | 
						|
    enable = mkEnableOption "todo-comments: highlight and search for todo comments like TODO, HACK, BUG in your code base";
 | 
						|
 | 
						|
    setupOpts = mkPluginSetupOption "todo-comments.nvim" {
 | 
						|
      highlight = {
 | 
						|
        pattern = mkOption {
 | 
						|
          type = str;
 | 
						|
          default = ''.*<(KEYWORDS)(\([^\)]*\))?:'';
 | 
						|
          description = "vim regex pattern used for highlighting comments";
 | 
						|
        };
 | 
						|
      };
 | 
						|
 | 
						|
      search = {
 | 
						|
        pattern = mkOption {
 | 
						|
          type = str;
 | 
						|
          default = ''\b(KEYWORDS)(\([^\)]*\))?:'';
 | 
						|
          description = "ripgrep regex pattern used for searching comments";
 | 
						|
        };
 | 
						|
 | 
						|
        command = mkOption {
 | 
						|
          type = str;
 | 
						|
          default = "${pkgs.ripgrep}/bin/rg";
 | 
						|
          description = "search command";
 | 
						|
        };
 | 
						|
 | 
						|
        args = mkOption {
 | 
						|
          type = listOf str;
 | 
						|
          default = ["--color=never" "--no-heading" "--with-filename" "--line-number" "--column"];
 | 
						|
          description = "arguments to pass to the search command";
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    mappings = {
 | 
						|
      quickFix = mkMappingOption "Open Todo-s in a quickfix list" "<leader>tdq";
 | 
						|
      telescope = mkMappingOption "Open Todo-s in telescope" "<leader>tds";
 | 
						|
      trouble = mkMappingOption "Open Todo-s in Trouble" "<leader>tdt";
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |