X-Git-Url: https://git.r.bdr.sh/rbdr/nota.nvim/blobdiff_plain/56292c7915662bbf721ca8c3d2cee6a04134a9c6..ca10d2a36e3e7d8d28f15f36f0812384606c238d:/lua/configuration.lua diff --git a/lua/configuration.lua b/lua/configuration.lua index 14e8591..f251eb9 100644 --- a/lua/configuration.lua +++ b/lua/configuration.lua @@ -1,3 +1,14 @@ +------------------------------------------------------------------------------- +-- Configuration for nota +------------------------------------------------------------------------------- +local Configuration = {} + +local Util = require('util') +------------------------------------------------------------------------------- +-- Internal Functions +------------------------------------------------------------------------------- +local fs = vim.loop + local defaults = { nota_home = '~/.local/share/nota', -- Root location in which to store all notes default_keybinds = true, -- Whether or not to set the default keybinds @@ -22,7 +33,7 @@ local defaults = { }, learning = { learning_file = 'learning.md', -- Location of the file in which to store learning entries, relative to nota_home - prefix = '%Y-%x-%d: ' -- Prefix to add when capturing learning entries + prefix = '%Y-%m-%d: ' -- Prefix to add when capturing learning entries }, plan = { archive = 'plans', -- Location of the plan archives. @@ -33,7 +44,7 @@ local defaults = { -- Recursively extends a table with another local function extend(target, extender) for key, value in pairs(extender) do - if type(target[key]) == "table" and type(value) == "table" then + if type(target[key]) == 'table' and type(value) == 'table' then extend(target[key], value) else target[key] = value @@ -41,6 +52,39 @@ local function extend(target, extender) end end -function configure(user_configuration) - return extend(defaults, extender) +------------------------------------------------------------------------------- +-- Public Interface +------------------------------------------------------------------------------- + +Configuration.configuration = {} +extend(Configuration.configuration, defaults) + +--- Extends configuration with another configuration +function Configuration.configure(configuration) + configuration = configuration or {} + extend(Configuration.configuration, configuration) +end + +--- Gets expanded paths relative to nota_home +-- @param path string the relative path to expand +function Configuration.path_for(path) + if not path then + return vim.fn.expand(Configuration.configuration.nota_home) + end + return Util.join(vim.fn.expand(Configuration.configuration.nota_home), path) +end + +--- Loads a template by template name +function Configuration.load_template(type) + local template_path = Configuration.path_for(Configuration.configuration.templates[type]) + + local template_file = io.open(template_path, 'r') + if not template_file then + return '' + end + local content = template_file:read('*a') + template_file:close() + return content end + +return Configuration