-- TODO: finish this -- Create a function that deindents all lines according to the indentation of the first local function d(s) local std = require("std") local _, e = string.find(s, '^%s*') local ss = std.string.split(s, '') local dedent = function(str) return str:sub(e + 1) end return std.functional.map(dedent, std.elems, ss) end ---@type LazyPluginSpec return { { "nvim-orgmode/orgmode", opts = { org_agenda_files = { "~/org/**/*.org" }, org_default_notes_file = "~/org/refile.org", mappings = { prefix = "go", global = { org_agenda = "goa", org_capture = "goc", }, }, win_split_mode = function(name) local bufnr = vim.api.nvim_create_buf(false, true) vim.api.nvim_buf_set_name(bufnr, name) if name == "orgagenda" then vim.cmd("botright 80vsplit") local win = vim.api.nvim_get_current_win() vim.api.nvim_win_set_buf(win, bufnr) return end local fill = 0.8 local width = math.floor((vim.o.columns * fill)) local height = math.floor((vim.o.lines * fill)) local row = math.floor((((vim.o.lines - height) / 2) - 1)) local col = math.floor(((vim.o.columns - width) / 2)) vim.api.nvim_open_win(bufnr, true, { relative = "editor", width = width, height = height, row = row, col = col, style = "minimal", border = "rounded", }) end, org_agenda_span = "week", org_agenda_start_on_weekday = false, org_agenda_start_day = "-2d", org_archive_location = "archive/%s_archive::", org_log_done = 'time', org_log_into_drawer = "LOGBOOK", org_startup_indented = "noindent", org_tags_column = -80, -- flushright org_todo_keywords = { "TODO(t)", "NEXT(n)", "WAITING(w)", "|", "DONE", "CANCELLED" }, org_todo_keyword_faces = { TODO = ":foreground #bf616a", NEXT = ":foreground blue", WAITING = ":foreground yellow", CANCELLED = ":foreground grey", }, org_capture_templates = { t = { description = "Task", template = "* TODO %?\n:PROPERTIES:\n:CREATED: %U\n:END:", }, l = "Log Task", lh = { description = "Log Task", template = [[ * DONE %? SCHEDULED: %t ]], }, lw = { description = "Log Task (work)", template = [[ * DONE %? SCHEDULED: %t ]], target = "~/org/work.org", headline = "Tasks" }, j = { description = "Journal", template = "\n*** %u\n**** %U - %?", target = "~/org/journal.org", }, m = { description = "Meeting", template = "* Meeting %U\n%?", target = "~/org/work.org", headline = "Meetings", }, }, }, }, { "nvim-neorg/neorg", lazy = false, version = "*", dependencies = { "nvim-lua/plenary.nvim", "luarocks.nvim", }, opts = { load = { ["core.defaults"] = {}, ["core.concealer"] = { config = { icon_preset = "diamond" } }, ["core.dirman"] = { config = { workspaces = { home = "~/norg/home", }, default_workspace = "home", }, }, ["core.keybinds"] = { config = { neorg_leader = "go", hook = function(keybinds) -- keybinds.remap_key("norg", "i", "", "") -- rebind core.itero.next-iteration keybinds.remap_event("all", "n", "", "core.looking-glass.magnify-code-block") end, }, }, ["core.summary"] = { config = { strategy = "by_path", }, }, ["core.itero"] = {}, ["core.promo"] = {}, ["core.journal"] = { config = { journal_folder = "journal", }, }, ["core.looking-glass"] = {}, ["core.qol.todo_items"] = {}, ["core.tangle"] = {}, ["core.ui.calendar"] = {}, }, } }, }