about summary refs log tree commit diff
path: root/lua/sketchbook/config.lua
diff options
context:
space:
mode:
authoriurii plugatarov <[email protected]>2024-08-02 23:19:11 +0200
committeriurii plugatarov <[email protected]>2024-08-02 23:19:11 +0200
commitf24a3ab9744a3f50eb8cacc06d4ef4c5f96875db (patch)
treee53c36d600f9ded45036d3489411cb82f26cb192 /lua/sketchbook/config.lua
parentdfee9611c0134def92d3c254ca4b067338ae7720 (diff)
downloadsketchbook.nvim-f24a3ab9744a3f50eb8cacc06d4ef4c5f96875db.tar.gz
fix
Diffstat (limited to 'lua/sketchbook/config.lua')
-rw-r--r--lua/sketchbook/config.lua88
1 files changed, 88 insertions, 0 deletions
diff --git a/lua/sketchbook/config.lua b/lua/sketchbook/config.lua
new file mode 100644
index 0000000..999245d
--- /dev/null
+++ b/lua/sketchbook/config.lua
@@ -0,0 +1,88 @@
+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",
+    select_template = "<leader>ttn",
+    toggle_quick_note = "<leader>qc",
+    create_quick_note = "<leader>nq",
+    open_entire_quick_note = "<leader>qo",
+    commit_notes = "<leader>tgc",
+    push_notes = "<leader>tgp", -- New keymap for pushing notes
+  },
+}
+
+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" }
+  )
+end
+
+return M