my_nixvim_sharings/config/plugins/neorg.nix
2024-08-07 09:08:11 +08:00

82 lines
3.1 KiB
Nix

{ pkgs, pkgs-stable, ... }:
{
plugins = {
neorg = {
enable = true;
# package = pkgs-stable.vimPlugins.neorg;
package = pkgs.vimPlugins.neorg;
modules = {
"core.defaults" = { }; # -- Loads default behaviour
"core.summary" = { };
"core.export" = { };
"core.export.markdown" = { };
"core.concealer" = {
config = {
folds = false;
};
}; # -- Adds pretty icons to your documents
"core.dirman" = {
config = {
workspaces = {
n = "~/neorg/notes";
e = "~/neorg/english";
l = "~/neorg/letter";
g = "~/neorg/grammar";
p = "~/neorg/perl";
m = "~/neorg/misc";
# nvim = "~/.config/nvim/NeorgNvimNotes";
};
default_workspace = "m";
};
};
"core.keybinds" = {
config = {
default_keybinds = true;
hook.__raw = ''
function(keybinds)
keybinds.unmap("norg", "i", "<M-CR>")
keybinds.remap_event("norg", "i", "<S-CR>", "core.itero.next-iteration", "<CR>")
end
'';
};
};
};
};
};
extraConfigLua = ''
----------------------------------------------------
-- START Neorg config
----------------------------------------------------
-- vim.api.nvim_create_autocmd({'BufEnter', 'BufWinEnter'}, {
-- pattern = '*.norg',
vim.api.nvim_create_autocmd('FileType', {
pattern = 'norg',
callback = function()
vim.opt.formatoptions:remove('r')
vim.opt.formatoptions:remove('o')
-- https://github.com/nvim-neorg/neorg/discussions/1066
vim.opt.conceallevel = 2
vim.keymap.set( 'n', '<leader>Nt', function()
if vim.opt.conceallevel:get() == 2 then
vim.opt.conceallevel = 0
elseif vim.opt.conceallevel:get() == 0 then
vim.opt.conceallevel = 2
end
vim.cmd('Neorg toggle-concealer')
end, { desc = 'Neorg toggle-concealer and conceallevel' })
-- use this insteand: ['core.concealer'] = { config = { folds = false }, },
-- vim.opt.foldlevelstart = 99
vim.keymap.set( 'n', '<leader>Ng', function() vim.cmd.Neorg('generate-workspace-summary') end, { desc = 'generate-workspace-summary' })
vim.keymap.set( 'n', '<leader>NT', function() vim.cmd.Neorg('toc') end, { desc = 'Table of Content' })
end,
})
vim.keymap.set( 'n', '<leader>Nw', function() vim.api.nvim_feedkeys(':Neorg workspace ', 'n', true) end, { desc = 'Neorg workspace <fill>' })
vim.keymap.set( 'n', '<leader>Ni', function() vim.cmd('Neorg index') end, { desc = 'Neorg index' })
vim.keymap.set( 'n', '<leader>Nr', function() vim.cmd('Neorg return') end, { desc = 'Neorg return' })
vim.keymap.set( 'n', '<leader>Ne', function() vim.cmd('Neorg workspace e') end, { desc = 'Neorg workspace e (neorg-english)' })
----------------------------------------------------
-- END Neorg config
----------------------------------------------------
'';
}