|  |  | @ -29,12 +29,8 @@ vim.keymap.set("i", "<CR>", press_enter, { desc = "On enter", noremap = true, ex | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | local function toggle_todo() |  |  |  | local function toggle_todo() | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local openpattern = "^%s*%- %[[ ]%]" |  |  |  | 	local openpattern = "^%s*%- %[[ ]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local closedpattern = "^%s*%- %[[x]%]" |  |  |  | 	local closedpattern = "^%s*%- %[[x]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local titleopenpattern = "^%s*# %[[ ]%]" |  |  |  | 	local titleopenpattern = "^%s*# %[[ ]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- create a variable called titleclosedpattern with a pattern that matches a string that starts with "# [x]" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local titleclosedpattern = "^%s*# %[[x]%]" |  |  |  | 	local titleclosedpattern = "^%s*# %[[x]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local line = vim.api.nvim_get_current_line() |  |  |  | 	local line = vim.api.nvim_get_current_line() | 
			
		
	
	
		
		
			
				
					|  |  | @ -52,35 +48,27 @@ local function toggle_todo() | 
			
		
	
		
		
			
				
					
					|  |  |  | 		line = string.gsub(line, titleclosedpattern, "# [ ]") |  |  |  | 		line = string.gsub(line, titleclosedpattern, "# [ ]") | 
			
		
	
		
		
			
				
					
					|  |  |  | 		vim.api.nvim_set_current_line(line) |  |  |  | 		vim.api.nvim_set_current_line(line) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	end |  |  |  | 	end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- if string.sub(line, 1, 5) == "- [ ]" then |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = string.sub(line, 6, -1) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = "- [x]" .. line |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	vim.api.nvim_set_current_line(line) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- elseif string.sub(line, 1, 5) == "- [x]" then |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = string.sub(line, 6, -1) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = "- [ ]" .. line |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	vim.api.nvim_set_current_line(line) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- elseif string.sub(line, 1, 5) == "# [ ]" then |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = string.sub(line, 6, -1) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = "# [x]" .. line |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	vim.api.nvim_set_current_line(line) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- elseif string.sub(line, 1, 5) == "# [x]" then |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = string.sub(line, 6, -1) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	line = "# [ ]" .. line |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- 	vim.api.nvim_set_current_line(line) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	-- end |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | end |  |  |  | end | 
			
		
	
		
		
			
				
					
					|  |  |  | vim.keymap.set("n", "<leader>tt", toggle_todo, { desc = "Toggle todo" }) |  |  |  | vim.keymap.set("n", "<leader>tt", toggle_todo, { desc = "Toggle todo" }) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | -- function that checks if the current line doesn't start with the string "- [ ] " and, if it doesn't, adds the string at the beginning of the line |  |  |  | -- function that checks if the current line doesn't start with the string "- [ ] " and, if it doesn't, adds the string at the beginning of the line | 
			
		
	
		
		
			
				
					
					|  |  |  | local function add_todo() |  |  |  | local function add_todo() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	local openpattern = "^%s*%- %[[ ]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	local closedpattern = "^%s*%- %[[x]%]" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	local line = vim.api.nvim_get_current_line() |  |  |  | 	local line = vim.api.nvim_get_current_line() | 
			
		
	
		
		
			
				
					
					|  |  |  | 	if string.sub(line, 1, 5) ~= "- [ ] " then |  |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	if !string.match(line, openpattern) and !string.match(line, closedpattern) then | 
			
		
	
		
		
			
				
					
					|  |  |  | 		line = "- [ ] " .. line |  |  |  | 		line = "- [ ] " .. line | 
			
		
	
		
		
			
				
					
					|  |  |  | 		vim.api.nvim_set_current_line(line) |  |  |  | 		vim.api.nvim_set_current_line(line) | 
			
		
	
		
		
			
				
					
					|  |  |  | 		vim.api.nvim_feedkeys("A", "n", true) |  |  |  | 		vim.api.nvim_feedkeys("A", "n", true) | 
			
		
	
		
		
			
				
					
					|  |  |  | 	end |  |  |  | 	end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	-- if string.sub(line, 1, 5) ~= "- [ ] " then | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	-- 	line = "- [ ] " .. line | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	-- 	vim.api.nvim_set_current_line(line) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	-- 	vim.api.nvim_feedkeys("A", "n", true) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	-- end | 
			
		
	
		
		
			
				
					
					|  |  |  | end |  |  |  | end | 
			
		
	
		
		
			
				
					
					|  |  |  | vim.keymap.set("n", "<leader>ta", add_todo, { desc = "Add todo" }) |  |  |  | vim.keymap.set("n", "<leader>ta", add_todo, { desc = "Add todo" }) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |