1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
local M = {}
-- Default configuration
M.defaults = {
notes_directory = "~/notes",
templates_directory = "~/notes/templates/",
keymaps = {
create_note = "<leader>tnn",
update_index = "<leader>tui",
search_notes = "<leader>tns",
list_notes = "<leader>tnl",
select_template = "<leader>tmp",
toggle_quick_note = "<leader>qc",
create_quick_note = "<leader>nq",
open_entire_quick_note = "<leader>qo",
commit_notes = "<leader>tgc",
push_notes = "<leader>tgp",
},
}
M.config = {}
function M.setup(user_config)
M.config = vim.tbl_deep_extend("force", {}, M.defaults, user_config or {})
vim.g.notes_directory = M.config.notes_directory
vim.g.notes_templates_dir = M.config.templates_directory
M.set_keymaps()
end
function M.set_keymaps()
local keymaps = M.config.keymaps
vim.api.nvim_set_keymap(
"n",
keymaps.create_note,
':lua require("sketchbook.create_note").create_new_note()<CR>',
{ noremap = true, silent = true, desc = "Create a new note" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.update_index,
':lua require("sketchbook.update_index").update_index()<CR>',
{ noremap = true, silent = true, desc = "Update notes index" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.search_notes,
':lua require("sketchbook.search_notes").search_notes()<CR>',
{ noremap = true, silent = true, desc = "Search notes" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.select_template,
':lua require("sketchbook.select_template").select_template()<CR>',
{ noremap = true, silent = true, desc = "Select a note template" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.create_quick_note,
':lua require("sketchbook.quick_note").create_quick_note_window()<CR>',
{ noremap = true, silent = true, desc = "Create a quick note buffer" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.toggle_quick_note,
':lua require("sketchbook.quick_note").toggle_quick_note_window()<CR>',
{ noremap = true, silent = true, desc = "Toggle quick note window" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.open_entire_quick_note,
':lua require("sketchbook.quick_note").open_entire_quick_note()<CR>',
{ noremap = true, silent = true, desc = "Open entire quick note" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.commit_notes,
':lua require("sketchbook.git_sync").commit_notes()<CR>',
{ noremap = true, silent = true, desc = "Commit notes to Git" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.push_notes,
':lua require("sketchbook.git_sync").push_notes()<CR>',
{ noremap = true, silent = true, desc = "Push notes to remote Git repository" }
)
vim.api.nvim_set_keymap(
"n",
keymaps.list_notes,
':lua require("sketchbook.list_notes").list_all_notes()<CR>',
{ noremap = true, silent = true, desc = "List all notes" }
)
end
return M
|