Compare commits

..

10 commits

24 changed files with 1154 additions and 926 deletions

View file

@ -1,5 +1,5 @@
{ {
colorschemes.gruvbox ={ colorschemes.gruvbox = {
enable = true; enable = true;
}; };
} }

View file

@ -1,59 +1,58 @@
{ {
colorschemes.onedark = { colorschemes.onedark = {
enable = true; enable = true;
}; };
extraConfigLua = '' extraConfigLua = ''
---------------------------------- ----------------------------------
-- START custom setup for onedark -- START custom setup for onedark
---------------------------------- ----------------------------------
-- https://github.com/navarasu/onedark.nvim -- https://github.com/navarasu/onedark.nvim
require('onedark').setup { require('onedark').setup {
-- Main options -- -- Main options --
style = 'darker', -- Default theme style. Choose between 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer' and 'light' style = 'darker', -- Default theme style. Choose between 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer' and 'light'
transparent = true, -- Show/hide background transparent = true, -- Show/hide background
term_colors = true, -- Change terminal color as per the selected theme style term_colors = true, -- Change terminal color as per the selected theme style
ending_tildes = false, -- Show the end-of-buffer tildes. By default they are hidden ending_tildes = false, -- Show the end-of-buffer tildes. By default they are hidden
cmp_itemkind_reverse = false, -- reverse item kind highlights in cmp menu cmp_itemkind_reverse = false, -- reverse item kind highlights in cmp menu
-- toggle theme style --- -- toggle theme style ---
-- toggle_style_key = nil, -- keybind to toggle theme style. Leave it nil to disable it, or set it to a string, for example "<leader>ts" -- toggle_style_key = nil, -- keybind to toggle theme style. Leave it nil to disable it, or set it to a string, for example "<leader>ts"
toggle_style_key = "<leader>ts", -- keybind to toggle theme style. Leave it nil to disable it, or set it to a string, for example "<leader>ts" toggle_style_key = "<leader>ts", -- keybind to toggle theme style. Leave it nil to disable it, or set it to a string, for example "<leader>ts"
-- toggle_style_list = {'dark', 'darker', 'cool', 'deep', 'warm', 'warmer', 'light'}, -- List of styles to toggle between -- toggle_style_list = {'dark', 'darker', 'cool', 'deep', 'warm', 'warmer', 'light'}, -- List of styles to toggle between
toggle_style_list = {'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'}, -- List of styles to toggle between toggle_style_list = {'dark', 'darker', 'cool', 'deep', 'warm', 'warmer'}, -- List of styles to toggle between
-- Change code style --- -- Change code style ---
-- Options are italic, bold, underline, none -- Options are italic, bold, underline, none
-- You can configure multiple style with comma seperated, For e.g., keywords = 'italic,bold' -- You can configure multiple style with comma seperated, For e.g., keywords = 'italic,bold'
code_style = { code_style = {
comments = 'italic', comments = 'italic',
keywords = 'none', keywords = 'none',
functions = 'none', functions = 'none',
strings = 'none', strings = 'none',
variables = 'none' variables = 'none'
}, },
-- Lualine options -- -- Lualine options --
-- lualine = { -- lualine = {
-- transparent = true, -- lualine center bar transparency -- transparent = true, -- lualine center bar transparency
-- }, -- },
-- Custom Highlights -- -- Custom Highlights --
colors = {}, -- Override default colors colors = {}, -- Override default colors
highlights = {}, -- Override highlight groups highlights = {}, -- Override highlight groups
-- Plugins Config --
diagnostics = {
darker = true, -- darker colors for diagnostic
undercurl = true, -- use undercurl instead of underline for diagnostics
background = true, -- use background color for virtual text
},
}
require('onedark').load()
----------------------------------
-- END custom setup for onedark
----------------------------------
'';
-- Plugins Config --
diagnostics = {
darker = true, -- darker colors for diagnostic
undercurl = true, -- use undercurl instead of underline for diagnostics
background = true, -- use background color for virtual text
},
}
require('onedark').load()
----------------------------------
-- END custom setup for onedark
----------------------------------
'';
} }

View file

@ -1,30 +1,28 @@
# The line beneath this is called `modeline`. See `:help modeline`
# vim: ts=4:sts=0:sw=0:tw=78:noet
{ {
# Import all your configuration modules here # Import all your configuration modules here
imports = [ imports = [
./colorscheme/onedark.nix ./colorscheme/onedark.nix
# ./colorscheme/gruvbox.nix # ./colorscheme/gruvbox.nix
./sets.nix ./sets.nix
./keymaps.nix ./keymaps.nix
./plugins/bufferline.nix ./plugins/bufferline.nix
./plugins/comment.nix ./plugins/comment.nix
./plugins/fugitive.nix ./plugins/fugitive.nix
./plugins/indent-blankline.nix ./plugins/indent-blankline.nix
./plugins/leap.nix ./plugins/leap.nix
./plugins/lualine.nix ./plugins/lualine.nix
./plugins/nvim-tree.nix ./plugins/nvim-tree.nix
./plugins/sleuth.nix ./plugins/sleuth.nix
./plugins/gitsigns.nix ./plugins/gitsigns.nix
./plugins/which-key.nix ./plugins/which-key.nix
./plugins/telescope.nix ./plugins/telescope.nix
./plugins/neorg.nix ./plugins/neorg.nix
./plugins/treesitter.nix ./plugins/treesitter.nix
./plugins/lsp/lsp.nix ./plugins/lsp/lsp.nix
./plugins/extra/vim-rhubarb.nix ./plugins/extra/vim-rhubarb.nix
]; ];
} }

View file

@ -1,21 +1,22 @@
# The line beneath this is called `modeline`. See `:help modeline`
# vim: ts=4:sts=0:sw=0:tw=78:noet
{ {
keymaps = [ keymaps = [
{ {
# vim.keymap.set({ "n", "v" }, "\\y", '"+y', {noremap=true, silent=true}) # vim.keymap.set({ "n", "v" }, "\\y", '"+y', {noremap=true, silent=true})
mode = [ "n" "v" ]; mode = [
key = "\\y"; "n"
action = "\"+y"; "v"
options = { ];
silent = true; key = "\\y";
remap = false; action = "\"+y";
}; options = {
} silent = true;
]; remap = false;
extraConfigLua = '' };
-- see ":help default-mapping" }
-- vim.cmd[[unmap Y]] ];
vim.keymap.del( "n", "Y" ) extraConfigLua = ''
''; -- see ":help default-mapping"
-- vim.cmd[[unmap Y]]
vim.keymap.del( "n", "Y" )
'';
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
bufferline = { bufferline = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
comment = { comment = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,6 +1,4 @@
{ pkgs { pkgs, ... }:
, ...}:{ {
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [ vim-rhubarb ];
vim-rhubarb
];
} }

View file

@ -1,6 +1,4 @@
{ pkgs { pkgs, ... }:
, ...}:{ {
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [ vim-sleuth ];
vim-sleuth
];
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
fugitive = { fugitive = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
gitsigns = { gitsigns = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,11 +1,11 @@
{ {
plugins = { plugins = {
indent-blankline = { indent-blankline = {
enable = true; enable = true;
settings.indent = { settings.indent = {
char = ""; char = "";
tab_char = ""; tab_char = "";
}; };
}; };
}; };
} }

View file

@ -1,30 +1,46 @@
{ helpers, ...}:
{ {
plugins.leap = { plugins.leap = {
enable = true; enable = true;
addDefaultMappings = false; addDefaultMappings = false;
}; };
keymaps = [ keymaps = [
{ {
mode = [ "n" "x" "o" ]; mode = [
key = "<leader>ss"; "n"
action = "function() require('leap').leap {} end"; "x"
lua = true; "o"
# action = "require('leap').leap"; ];
} key = "<leader>ss";
{ action = helpers.mkRaw "function() require('leap').leap {} end";
mode = [ "n" "x" "o" ]; # action = "require('leap').leap";
key = "<leader>sS"; }
action = "<Plug>(leap-backward-to)"; {
} mode = [
{ "n"
mode = [ "n" "x" "o" ]; "x"
key = "<leader>sx"; "o"
action = "<Plug>(leap-forward-till)"; ];
} key = "<leader>sS";
{ action = "<Plug>(leap-backward-to)";
mode = [ "n" "x" "o" ]; }
key = "<leader>sX"; {
action = "<Plug>(leap-backward-till)"; mode = [
} "n"
]; "x"
"o"
];
key = "<leader>sx";
action = "<Plug>(leap-forward-till)";
}
{
mode = [
"n"
"x"
"o"
];
key = "<leader>sX";
action = "<Plug>(leap-backward-till)";
}
];
} }

View file

@ -1,16 +1,16 @@
{ {
lsp = { lsp = {
enable = true; enable = true;
servers = { servers = {
tsserver.enable = true; tsserver.enable = true;
lua-ls.enable = true; lua-ls.enable = true;
rust-analyzer = { rust-analyzer = {
enable = true; enable = true;
installCargo = true; installCargo = true;
installRustc = true; installRustc = true;
}; };
}; };
}; };
} }

View file

@ -1,220 +1,237 @@
{ {
plugins = { plugins = {
lsp-format = { lsp-format = {
enable = false; # Enable it if you want lsp-format integration for none-ls enable = false; # Enable it if you want lsp-format integration for none-ls
}; };
lsp = { lsp = {
enable = true; enable = true;
capabilities = "offsetEncoding = 'utf-16'"; capabilities = "offsetEncoding = 'utf-16'";
servers = { servers = {
texlab = { texlab = {
enable = true; enable = true;
# cmd = ["texlab"]; # cmd = ["texlab"];
# filetypes = ["tex" "plaintex" "bib"]; # filetypes = ["tex" "plaintex" "bib"];
# extraOptions = { # extraOptions = {
# settings = { # settings = {
# texlab = { # texlab = {
# auxDirectory = "tex_aux_output"; # auxDirectory = "tex_aux_output";
# rootDirectory = nil; # rootDirectory = nil;
# build = { # build = {
# # -- forwardSearchAfter = true, # # -- forwardSearchAfter = true,
# executable = "latexmk"; # executable = "latexmk";
# args = [ # args = [
# "-xelatex" # "-xelatex"
# "-verbose" # "-verbose"
# # -- "-outdir=%f_output", # # -- "-outdir=%f_output",
# # -- "-auxdir=%f_aux", # # -- "-auxdir=%f_aux",
# "-outdir=tex_aux_output" # "-outdir=tex_aux_output"
# "-file-line-error" # "-file-line-error"
# "-synctex=1" # "-synctex=1"
# "-interaction=nonstopmode" # "-interaction=nonstopmode"
# "-pv" # "-pv"
# "%f" # "%f"
# ]; # ];
# isContinuous = false; # isContinuous = false;
# # -- "onSave = true" failed to work properly with large files like moderncv # # -- "onSave = true" failed to work properly with large files like moderncv
# # -- it would not build properly until you delete all the intermediate files # # -- it would not build properly until you delete all the intermediate files
# # -- onSave = true # # -- onSave = true
# }; # };
# # -------------------------------- # # --------------------------------
# # -- END texlab main config # # -- END texlab main config
# # -- if used with texmagic, disable this # # -- if used with texmagic, disable this
# # -------------------------------- # # --------------------------------
# # --https://github.com/latex-lsp/texlab/wiki/Previewing # # --https://github.com/latex-lsp/texlab/wiki/Previewing
# # -- https://github.com/f3fora/nvim-texlabconfig # # -- https://github.com/f3fora/nvim-texlabconfig
# forwardSearch = { # forwardSearch = {
# executable = "zathura"; # executable = "zathura";
# args = [ # args = [
# # -- This is for moving lines in nvim # # -- This is for moving lines in nvim
# "--synctex-editor-command" # "--synctex-editor-command"
# # -- I don't know why but after switching to lazy.vim, need %%% to escape the % character, so "pgrep zathura -a" can see the % sign # # -- I don't know why but after switching to lazy.vim, need %%% to escape the % character, so "pgrep zathura -a" can see the % sign
# "[[nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername" # "[[nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername"
# "--synctex-forward" # "--synctex-forward"
# "%l:1:%f" # "%l:1:%f"
# "%p" # "%p"
# ]; # ];
# }; # };
# diagnosticsDelay = 300; # diagnosticsDelay = 300;
# }; # };
# }; # };
# }; # };
}; };
clangd = {enable = true;}; clangd = {
lua-ls = { enable = true;
enable = true; };
extraOptions = { lua-ls = {
settings = { enable = true;
Lua = { extraOptions = {
completion = {
callSnippet = "Replace";
};
telemetry = {
enabled = false;
};
hint = {enable = true;};
};
};
};
};
nil_ls = {enable = true;};
tsserver = {
enable = false;
filetypes = ["javascript" "javascriptreact" "typescript" "typescriptreact"];
extraOptions = {
settings = {
javascript = {
inlayHints = {
includeInlayEnumMemberValueHints = true;
includeInlayFunctionLikeReturnTypeHints = true;
includeInlayFunctionParameterTypeHints = true;
includeInlayParameterNameHints = "all";
includeInlayParameterNameHintsWhenArgumentMatchesName = true;
includeInlayPropertyDeclarationTypeHints = true;
includeInlayVariableTypeHints = true;
};
};
typescript = {
inlayHints = {
includeInlayEnumMemberValueHints = true;
includeInlayFunctionLikeReturnTypeHints = true;
includeInlayFunctionParameterTypeHints = true;
includeInlayParameterNameHints = "all";
includeInlayParameterNameHintsWhenArgumentMatchesName = true;
includeInlayPropertyDeclarationTypeHints = true;
includeInlayVariableTypeHints = true;
};
};
};
};
};
eslint = {enable = true;};
pyright = {enable = true;};
ruff-lsp = {enable = true;};
rust-analyzer = {
enable = true;
installCargo = true;
installRustc = true;
settings = { settings = {
checkOnSave = true; Lua = {
check = { completion = {
command = "clippy"; callSnippet = "Replace";
}; };
# inlayHints = { telemetry = {
# enable = true; enabled = false;
# showParameterNames = true; };
# parameterHintsPrefix = "<- "; hint = {
# otherHintsPrefix = "=> "; enable = true;
# }; };
procMacro = {
enable = true;
}; };
}; };
}; };
}; };
# keymaps = { nil-ls = {
# silent = true; enable = true;
# lspBuf = { };
# gd = { tsserver = {
# action = "definition"; enable = false;
# desc = "Goto Definition"; filetypes = [
# }; "javascript"
# gr = { "javascriptreact"
# action = "references"; "typescript"
# desc = "Goto References"; "typescriptreact"
# }; ];
# gD = { extraOptions = {
# action = "declaration"; settings = {
# desc = "Goto Declaration"; javascript = {
# }; inlayHints = {
# gI = { includeInlayEnumMemberValueHints = true;
# action = "implementation"; includeInlayFunctionLikeReturnTypeHints = true;
# desc = "Goto Implementation"; includeInlayFunctionParameterTypeHints = true;
# }; includeInlayParameterNameHints = "all";
# gT = { includeInlayParameterNameHintsWhenArgumentMatchesName = true;
# action = "type_definition"; includeInlayPropertyDeclarationTypeHints = true;
# desc = "Type Definition"; includeInlayVariableTypeHints = true;
# }; };
# K = { };
# action = "hover"; typescript = {
# desc = "Hover"; inlayHints = {
# }; includeInlayEnumMemberValueHints = true;
# "<leader>cw" = { includeInlayFunctionLikeReturnTypeHints = true;
# action = "workspace_symbol"; includeInlayFunctionParameterTypeHints = true;
# desc = "Workspace Symbol"; includeInlayParameterNameHints = "all";
# }; includeInlayParameterNameHintsWhenArgumentMatchesName = true;
# "<leader>cr" = { includeInlayPropertyDeclarationTypeHints = true;
# action = "rename"; includeInlayVariableTypeHints = true;
# desc = "Rename"; };
# }; };
# "<leader>ca" = { };
# action = "code_action"; };
# desc = "Code Action"; };
# }; eslint = {
# "<C-k>" = { enable = true;
# action = "signature_help"; };
# desc = "Signature Help"; pyright = {
# }; enable = true;
# }; };
# diagnostic = { ruff-lsp = {
# "<leader>cd" = { enable = true;
# action = "open_float"; };
# desc = "Line Diagnostics";
# }; rust-analyzer = {
# "[d" = { enable = true;
# action = "goto_next"; installCargo = true;
# desc = "Next Diagnostic"; installRustc = true;
# }; settings = {
# "]d" = { checkOnSave = true;
# action = "goto_prev"; check = {
# desc = "Previous Diagnostic"; command = "clippy";
# }; };
# }; # inlayHints = {
# }; # enable = true;
# showParameterNames = true;
# parameterHintsPrefix = "<- ";
# otherHintsPrefix = "=> ";
# };
procMacro = {
enable = true;
};
};
};
}; };
# keymaps = {
# silent = true;
# lspBuf = {
# gd = {
# action = "definition";
# desc = "Goto Definition";
# };
# gr = {
# action = "references";
# desc = "Goto References";
# };
# gD = {
# action = "declaration";
# desc = "Goto Declaration";
# };
# gI = {
# action = "implementation";
# desc = "Goto Implementation";
# };
# gT = {
# action = "type_definition";
# desc = "Type Definition";
# };
# K = {
# action = "hover";
# desc = "Hover";
# };
# "<leader>cw" = {
# action = "workspace_symbol";
# desc = "Workspace Symbol";
# };
# "<leader>cr" = {
# action = "rename";
# desc = "Rename";
# };
# "<leader>ca" = {
# action = "code_action";
# desc = "Code Action";
# };
# "<C-k>" = {
# action = "signature_help";
# desc = "Signature Help";
# };
# };
# diagnostic = {
# "<leader>cd" = {
# action = "open_float";
# desc = "Line Diagnostics";
# };
# "[d" = {
# action = "goto_next";
# desc = "Next Diagnostic";
# };
# "]d" = {
# action = "goto_prev";
# desc = "Previous Diagnostic";
# };
# };
# };
}; };
extraConfigLua = '' };
local _border = "rounded" extraConfigLua = ''
local _border = "rounded"
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with( vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
vim.lsp.handlers.hover, { vim.lsp.handlers.hover, {
border = _border border = _border
} }
) )
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with( vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
vim.lsp.handlers.signature_help, { vim.lsp.handlers.signature_help, {
border = _border border = _border
} }
) )
vim.diagnostic.config{ vim.diagnostic.config{
float={border=_border} float={border=_border}
}; };
require('lspconfig.ui.windows').default_options = { require('lspconfig.ui.windows').default_options = {
border = _border border = _border
} }
@ -224,88 +241,88 @@
------------------------------ ------------------------------
-- START texmagic, texlab -- START texmagic, texlab
------------------------------ ------------------------------
-- Below this one line is for texmagic only -- Below this one line is for texmagic only
-- vim.g['tex_flavor'] = 'latex' -- vim.g['tex_flavor'] = 'latex'
require('lspconfig').texlab.setup{ require('lspconfig').texlab.setup{
cmd = {"texlab"}, cmd = {"texlab"},
filetypes = {"tex", "plaintex", "bib"}, filetypes = {"tex", "plaintex", "bib"},
single_file_support = true, single_file_support = true,
settings = { settings = {
-- https://github.com/latex-lsp/texlab/wiki/Configuration -- https://github.com/latex-lsp/texlab/wiki/Configuration
texlab = { texlab = {
---------------------------------- ----------------------------------
-- START for texmagic only -- START for texmagic only
---------------------------------- ----------------------------------
-- --
-- build = _G.TeXMagicBuildConfig, -- build = _G.TeXMagicBuildConfig,
-- --
---------------------------------- ----------------------------------
-- END for texmagic only -- END for texmagic only
---------------------------------- ----------------------------------
-------------------------------- --------------------------------
-- START texlab main config -- START texlab main config
-- if used with texmagic, disable this -- if used with texmagic, disable this
-------------------------------- --------------------------------
auxDirectory = "tex_aux_output", auxDirectory = "tex_aux_output",
rootDirectory = nil, rootDirectory = nil,
build = { build = {
-- forwardSearchAfter = true, -- forwardSearchAfter = true,
executable = "latexmk", executable = "latexmk",
args = { args = {
"-xelatex", "-xelatex",
"-verbose", "-verbose",
-- "-outdir=%f_output", -- "-outdir=%f_output",
-- "-auxdir=%f_aux", -- "-auxdir=%f_aux",
"-outdir=tex_aux_output", "-outdir=tex_aux_output",
"-file-line-error", "-file-line-error",
"-synctex=1", "-synctex=1",
"-interaction=nonstopmode", "-interaction=nonstopmode",
"-pv", "-pv",
"%f", "%f",
}, },
isContinuous = false, isContinuous = false,
-- "onSave = true" failed to work properly with large files like moderncv -- "onSave = true" failed to work properly with large files like moderncv
-- it would not build properly until you delete all the intermediate files -- it would not build properly until you delete all the intermediate files
-- onSave = true -- onSave = true
}, },
-------------------------------- --------------------------------
-- END texlab main config -- END texlab main config
-- if used with texmagic, disable this -- if used with texmagic, disable this
-------------------------------- --------------------------------
--https://github.com/latex-lsp/texlab/wiki/Previewing --https://github.com/latex-lsp/texlab/wiki/Previewing
-- https://github.com/f3fora/nvim-texlabconfig -- https://github.com/f3fora/nvim-texlabconfig
forwardSearch = { forwardSearch = {
executable = "zathura", executable = "zathura",
args = { args = {
-- This is for moving lines in nvim -- This is for moving lines in nvim
'--synctex-editor-command', '--synctex-editor-command',
-- I don't know why but after switching to lazy.vim, need %%% to escape the % character, so "pgrep zathura -a" can see the % sign -- I don't know why but after switching to lazy.vim, need %%% to escape the % character, so "pgrep zathura -a" can see the % sign
[[nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername, [[nvim-texlabconfig -file '%%%{input}' -line %%%{line} -server ]] .. vim.v.servername,
'--synctex-forward', '--synctex-forward',
'%l:1:%f', '%l:1:%f',
'%p', '%p',
}, },
}, },
diagnosticsDelay = 300, diagnosticsDelay = 300,
} }
} }
} }
-- compile laTeX keymap -- compile laTeX keymap
vim.keymap.set('n', '<leader>l', ':TexlabBuild<CR>' ) vim.keymap.set('n', '<leader>l', ':TexlabBuild<CR>' )
-- forwardSearch -- forwardSearch
vim.keymap.set('n', '<leader>k', ':TexlabForward<CR>' ) vim.keymap.set('n', '<leader>k', ':TexlabForward<CR>' )
-- if lsp failed to start, start manually -- if lsp failed to start, start manually
vim.keymap.set('n', '<leader>j', ':LspStart<CR>' ) vim.keymap.set('n', '<leader>j', ':LspStart<CR>' )
------------------------------ ------------------------------
-- END texmagic, texlab -- END texmagic, texlab
------------------------------ ------------------------------
''; '';
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
lualine = { lualine = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,84 +1,94 @@
# vim: ts=4:sts=0:sw=0:noet { pkgs, pkgs-stable, ... }:
{ {
pkgs-stable # https://github.com/nvim-neorg/neorg
, ... }: # NOW neorg require lua-utils.nvim, nvim-nio, pathlib.vim
{ # https://github.com/nix-community/nixvim/issues/1395#issuecomment-2267262919
plugins = { # Workaround
neorg = { extraPlugins = [
enable = true; (pkgs.vimUtils.buildVimPlugin { inherit (pkgs.luaPackages.lua-utils-nvim) pname version src; })
package = pkgs-stable.vimPlugins.neorg;
modules = { (pkgs.vimUtils.buildVimPlugin { inherit (pkgs.luaPackages.pathlib-nvim) pname version src; })
"core.defaults" = {}; # -- Loads default behaviour
"core.summary" = {}; (pkgs.vimUtils.buildVimPlugin { inherit (pkgs.luaPackages.nvim-nio) pname version src; })
"core.export" = {}; ];
"core.export.markdown" = {};
"core.concealer" = { plugins = {
config = { neorg = {
folds = false; enable = true;
}; # package = pkgs-stable.vimPlugins.neorg;
}; #-- Adds pretty icons to your documents package = pkgs.vimPlugins.neorg;
"core.dirman" = { modules = {
config = { "core.defaults" = { }; # -- Loads default behaviour
workspaces = { "core.summary" = { };
n = "~/neorg/notes"; "core.export" = { };
e = "~/neorg/english"; "core.export.markdown" = { };
l = "~/neorg/letter"; "core.concealer" = {
g = "~/neorg/grammar"; config = {
p = "~/neorg/perl"; folds = false;
m = "~/neorg/misc"; };
# nvim = "~/.config/nvim/NeorgNvimNotes"; }; # -- Adds pretty icons to your documents
}; "core.dirman" = {
default_workspace = "m"; config = {
}; workspaces = {
}; n = "~/neorg/notes";
"core.keybinds" = { e = "~/neorg/english";
config = { l = "~/neorg/letter";
default_keybinds = true; g = "~/neorg/grammar";
hook.__raw = '' p = "~/neorg/perl";
function(keybinds) m = "~/neorg/misc";
keybinds.unmap("norg", "i", "<M-CR>") # nvim = "~/.config/nvim/NeorgNvimNotes";
keybinds.remap_event("norg", "i", "<S-CR>", "core.itero.next-iteration", "<CR>") };
end default_workspace = "m";
''; };
}; };
}; "core.keybinds" = {
}; config = {
}; default_keybinds = true;
}; hook.__raw = ''
extraConfigLua = '' function(keybinds)
---------------------------------------------------- keybinds.unmap("norg", "i", "<M-CR>")
-- START Neorg config keybinds.remap_event("norg", "i", "<S-CR>", "core.itero.next-iteration", "<CR>")
---------------------------------------------------- end
-- 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') extraConfigLua = ''
----------------------------------------------------
-- https://github.com/nvim-neorg/neorg/discussions/1066 -- START Neorg config
vim.opt.conceallevel = 2 ----------------------------------------------------
vim.keymap.set( 'n', '<leader>Nt', function() -- vim.api.nvim_create_autocmd({'BufEnter', 'BufWinEnter'}, {
if vim.opt.conceallevel:get() == 2 then -- pattern = '*.norg',
vim.opt.conceallevel = 0 vim.api.nvim_create_autocmd('FileType', {
elseif vim.opt.conceallevel:get() == 0 then pattern = 'norg',
vim.opt.conceallevel = 2 callback = function()
end vim.opt.formatoptions:remove('r')
vim.cmd('Neorg toggle-concealer') vim.opt.formatoptions:remove('o')
end, { desc = 'Neorg toggle-concealer and conceallevel' })
-- use this insteand: ['core.concealer'] = { config = { folds = false }, }, -- https://github.com/nvim-neorg/neorg/discussions/1066
-- vim.opt.foldlevelstart = 99 vim.opt.conceallevel = 2
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.keymap.set( 'n', '<leader>NT', function() vim.cmd.Neorg('toc') end, { desc = 'Table of Content' }) if vim.opt.conceallevel:get() == 2 then
end, vim.opt.conceallevel = 0
}) elseif vim.opt.conceallevel:get() == 0 then
vim.keymap.set( 'n', '<leader>Nw', function() vim.api.nvim_feedkeys(':Neorg workspace ', 'n', true) end, { desc = 'Neorg workspace <fill>' }) vim.opt.conceallevel = 2
vim.keymap.set( 'n', '<leader>Ni', function() vim.cmd('Neorg index') end, { desc = 'Neorg index' }) end
vim.keymap.set( 'n', '<leader>Nr', function() vim.cmd('Neorg return') end, { desc = 'Neorg return' }) vim.cmd('Neorg toggle-concealer')
vim.keymap.set( 'n', '<leader>Ne', function() vim.cmd('Neorg workspace e') end, { desc = 'Neorg workspace e (neorg-english)' }) end, { desc = 'Neorg toggle-concealer and conceallevel' })
---------------------------------------------------- -- use this insteand: ['core.concealer'] = { config = { folds = false }, },
-- END Neorg config -- 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
----------------------------------------------------
'';
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
nvim-tree = { nvim-tree = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
sleuth = { sleuth = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,190 +1,190 @@
{ {
plugins.telescope = { plugins.telescope = {
enable = true; enable = true;
extensions = { extensions = {
fzf-native = { fzf-native = {
enable = true; enable = true;
};
# project-nvim = {
# enable = true;
# };
# ui-select = {
# settings = {
# specific_opts = {
# codeactions = true;
# };
# };
# };
undo = {
enable = true;
mappings = {
i = {
"<cr>" = "yank_additions";
"<s-cr>" = "yank_deletions";
"<c-cr>" = "restore";
};
n = {
"y" = "yank_additions";
"Y" = "yank_deletions";
"u" = "restore";
};
};
};
}; };
# If you'd prefer Telescope not to enter a normal-like mode when hitting escape (and instead exiting), you can map <Esc> to do so via: # project-nvim = {
defaults = { # enable = true;
mappings = { # };
# ui-select = {
# settings = {
# specific_opts = {
# codeactions = true;
# };
# };
# };
undo = {
enable = true;
settings.mappings = {
i = { i = {
"<esc>" = { "<cr>" = "require('telescope-undo.actions').yank_additions";
__raw = '' "<s-cr>" = "require('telescope-undo.actions').yank_deletions";
function(...) "<c-cr>" = "require('telescope-undo.actions').restore";
return require("telescope.actions").close(...) };
end''; n = {
}; "y" = "require('telescope-undo.actions').yank_additions";
"Y" = "require('telescope-undo.actions').yank_deletions";
"u" = "require('telescope-undo.actions').restore";
}; };
};
};
keymaps = {
"<leader><space>" = {
action = "find_files, {}";
desc = "Find project files";
};
"<leader>/" = {
action = "live_grep";
desc = "Grep (root dir)";
};
"<leader>:" = {
action = "command_history, {}";
desc = "Command History";
};
"<leader>b" = {
action = "buffers, {}";
desc = "+buffer";
};
"<leader>ff" = {
action = "find_files, {}";
desc = "Find project files";
};
"<leader>fr" = {
action = "oldfiles, {}";
desc = "Recent";
};
"<leader>fb" = {
action = "buffers, {}";
desc = "Buffers";
};
"<C-p>" = {
action = "git_files, {}";
desc = "Search git files";
};
"<leader>gc" = {
action = "git_commits, {}";
desc = "Commits";
};
"<leader>gs" = {
action = "git_status, {}";
desc = "Status";
};
"<leader>sa" = {
action = "autocommands, {}";
desc = "Auto Commands";
};
"<leader>sb" = {
action = "current_buffer_fuzzy_find, {}";
desc = "Buffer";
};
"<leader>sc" = {
action = "command_history, {}";
desc = "Command History";
};
"<leader>sC" = {
action = "commands, {}";
desc = "Commands";
};
"<leader>sD" = {
action = "diagnostics, {}";
desc = "Workspace diagnostics";
};
"<leader>sh" = {
action = "help_tags, {}";
desc = "Help pages";
};
"<leader>sH" = {
action = "highlights, {}";
desc = "Search Highlight Groups";
};
"<leader>sk" = {
action = "keymaps, {}";
desc = "Keymaps";
};
"<leader>sM" = {
action = "man_pages, {}";
desc = "Man pages";
};
"<leader>sm" = {
action = "marks, {}";
desc = "Jump to Mark";
};
"<leader>so" = {
action = "vim_options, {}";
desc = "Options";
};
"<leader>sR" = {
action = "resume, {}";
desc = "Resume";
};
"<leader>uC" = {
action = "colorscheme, {}";
desc = "Colorscheme preview";
}; };
}; };
}; };
keymaps = [ # If you'd prefer Telescope not to enter a normal-like mode when hitting escape (and instead exiting), you can map <Esc> to do so via:
{ settings.defaults = {
mode = "n"; mappings = {
key = "<leader>fp"; i = {
action = "<cmd>Telescope projects<CR>"; "<esc>" = {
options = { __raw = ''
desc = "Projects"; function(...)
return require("telescope.actions").close(...)
end'';
};
}; };
} };
};
keymaps = {
"<leader><space>" = {
action = "find_files, {}";
options.desc = "Find project files";
};
"<leader>/" = {
action = "live_grep";
options.desc = "Grep (root dir)";
};
"<leader>:" = {
action = "command_history, {}";
options.desc = "Command History";
};
"<leader>b" = {
action = "buffers, {}";
options.desc = "+buffer";
};
"<leader>ff" = {
action = "find_files, {}";
options.desc = "Find project files";
};
"<leader>fr" = {
action = "oldfiles, {}";
options.desc = "Recent";
};
"<leader>fb" = {
action = "buffers, {}";
options.desc = "Buffers";
};
"<C-p>" = {
action = "git_files, {}";
options.desc = "Search git files";
};
"<leader>gc" = {
action = "git_commits, {}";
options.desc = "Commits";
};
"<leader>gs" = {
action = "git_status, {}";
options.desc = "Status";
};
"<leader>sa" = {
action = "autocommands, {}";
options.desc = "Auto Commands";
};
"<leader>sb" = {
action = "current_buffer_fuzzy_find, {}";
options.desc = "Buffer";
};
"<leader>sc" = {
action = "command_history, {}";
options.desc = "Command History";
};
"<leader>sC" = {
action = "commands, {}";
options.desc = "Commands";
};
"<leader>sD" = {
action = "diagnostics, {}";
options.desc = "Workspace diagnostics";
};
"<leader>sh" = {
action = "help_tags, {}";
options.desc = "Help pages";
};
"<leader>sH" = {
action = "highlights, {}";
options.desc = "Search Highlight Groups";
};
"<leader>sk" = {
action = "keymaps, {}";
options.desc = "Keymaps";
};
"<leader>sM" = {
action = "man_pages, {}";
options.desc = "Man pages";
};
"<leader>sm" = {
action = "marks, {}";
options.desc = "Jump to Mark";
};
"<leader>so" = {
action = "vim_options, {}";
options.desc = "Options";
};
"<leader>sR" = {
action = "resume, {}";
options.desc = "Resume";
};
"<leader>uC" = {
action = "colorscheme, {}";
options.desc = "Colorscheme preview";
};
};
};
keymaps = [
{
mode = "n";
key = "<leader>fp";
action = "<cmd>Telescope projects<CR>";
options = {
desc = "Projects";
};
}
{ {
mode = "n"; mode = "n";
key = "<leader>sd"; key = "<leader>sd";
action = "<cmd>Telescope diagnostics bufnr=0<cr>"; action = "<cmd>Telescope diagnostics bufnr=0<cr>";
options = { options = {
desc = "Document diagnostics"; desc = "Document diagnostics";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>st"; key = "<leader>st";
action = "<cmd>TodoTelescope<cr>"; action = "<cmd>TodoTelescope<cr>";
options = { options = {
silent = true; silent = true;
desc = "Todo (Telescope)"; desc = "Todo (Telescope)";
}; };
} }
# { # {
# mode = "n"; # mode = "n";
# key = "<leader>,"; # key = "<leader>,";
# action = "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>"; # action = "<cmd>Telescope buffers sort_mru=true sort_lastused=true<cr>";
# options = { # options = {
# desc = "Switch Buffer"; # desc = "Switch Buffer";
# }; # };
# } # }
]; ];
extraConfigLua = '' extraConfigLua = ''
local telescope = require('telescope') local telescope = require('telescope')
telescope.setup{ telescope.setup{
pickers = { pickers = {
colorscheme = { colorscheme = {
enable_preview = true enable_preview = true
}
} }
} }
''; }
'';
} }

View file

@ -1,16 +1,16 @@
{ {
plugins = { plugins = {
treesitter = { treesitter = {
enable = true; enable = true;
incrementalSelection = { incrementalSelection = {
enable = true; enable = true;
keymaps = { keymaps = {
initSelection = "g<space><space>"; initSelection = "g<space><space>";
nodeIncremental = "g<space><space>"; nodeIncremental = "g<space><space>";
scopeIncremental = "<c-s>"; scopeIncremental = "<c-s>";
nodeDecremental = "g<space>m"; nodeDecremental = "g<space>m";
}; };
}; };
}; };
}; };
} }

View file

@ -1,7 +1,7 @@
{ {
plugins = { plugins = {
which-key = { which-key = {
enable = true; enable = true;
}; };
}; };
} }

View file

@ -1,73 +1,71 @@
# The line beneath this is called `modeline`. See `:help modeline`
# vim: ts=4:sts=0:sw=0:noet
{ {
config = { config = {
globals = { globals = {
mapleader = " "; mapleader = " ";
maplocalleader = " "; maplocalleader = " ";
}; };
options = { opts = {
relativenumber = true; relativenumber = true;
splitbelow = true; splitbelow = true;
redrawtime = 5000; redrawtime = 5000;
# new split to the right # new split to the right
splitright = true; splitright = true;
# show hidden characters # show hidden characters
list = true; list = true;
# don't break words on the edge # don't break words on the edge
linebreak = true; linebreak = true;
wrap = true; wrap = true;
# length of an actual \t character: # length of an actual \t character:
# https://stackoverflow.com/questions/191201/indenting-comments-to-match-code-in-vim # https://stackoverflow.com/questions/191201/indenting-comments-to-match-code-in-vim
smartindent = false; smartindent = false;
# length to use when shifting text (eg. <<, >> and == commands) # length to use when shifting text (eg. <<, >> and == commands)
tabstop=4; tabstop = 4;
shiftwidth = 0; shiftwidth = 0;
expandtab = false; expandtab = false;
autoindent = true; autoindent = true;
# Set highlight on search # Set highlight on search
hlsearch = false; hlsearch = false;
# Make line numbers default # Make line numbers default
number = true; number = true;
# Enable mouse mode # Enable mouse mode
mouse = "a"; mouse = "a";
# Sync clipboard between OS and Neovim. # Sync clipboard between OS and Neovim.
# Remove this option if you want your OS clipboard to remain independent. # Remove this option if you want your OS clipboard to remain independent.
# See `:help 'clipboard'` # See `:help 'clipboard'`
# vim.o.clipboard = 'unnamedplus' -- REMOVED BY ME # vim.o.clipboard = 'unnamedplus' -- REMOVED BY ME
# Enable break indent # Enable break indent
breakindent = true; breakindent = true;
# Save undo history # Save undo history
# vim.o.undofile = true -- REMOVED BY ME # vim.o.undofile = true -- REMOVED BY ME
# Case insensitive searching UNLESS /C or capital in search # Case insensitive searching UNLESS /C or capital in search
ignorecase = true; ignorecase = true;
smartcase = true; smartcase = true;
# Keep signcolumn on by default # Keep signcolumn on by default
signcolumn = "yes"; signcolumn = "yes";
# Decrease update time # Decrease update time
updatetime = 250; updatetime = 250;
timeout = true; timeout = true;
# timeoutlen = 1000; # time of valid keypress like for leader key in millisecond # timeoutlen = 1000; # time of valid keypress like for leader key in millisecond
timeoutlen = 300; # lower to 300 in favor of which-key plugins timeoutlen = 300; # lower to 300 in favor of which-key plugins
# Set completeopt to have a better completion experience # Set completeopt to have a better completion experience
completeopt = "menuone,noselect"; completeopt = "menuone,noselect";
# NOTE: You should make sure your terminal supports this # NOTE: You should make sure your terminal supports this
termguicolors = true; termguicolors = true;
}; };
}; };
} }

355
flake.lock generated
View file

@ -2,18 +2,17 @@
"nodes": { "nodes": {
"devshell": { "devshell": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1711099426, "lastModified": 1722113426,
"narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=", "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8", "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -23,6 +22,38 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1641205782,
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1641205782,
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
@ -36,7 +67,7 @@
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
} }
}, },
"flake-compat_2": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -60,11 +91,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709336216, "lastModified": 1722555600,
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -95,24 +126,6 @@
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
@ -127,11 +140,68 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": {
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1722857853,
"narHash": "sha256-3Zx53oz/MSIyevuWO/SumxABkrIvojnB7g9cimxkhiE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "06939f6b7ec4d4f465bf3132a05367cccbbf64da",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
"pre-commit-hooks", "git-hooks",
"nixpkgs" "nixpkgs"
] ]
}, },
@ -157,19 +227,75 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1711133180, "lastModified": 1720042825,
"narHash": "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=", "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb", "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"neorg": {
"flake": false,
"locked": {
"lastModified": 1722198397,
"narHash": "sha256-oaZi6UP8gC0uy1QYrXrewfYoJpds16GP+Rnef8CAaRA=",
"owner": "nvim-neorg",
"repo": "neorg",
"rev": "e5e797e6eddcb6efb1d2c3fc2612b31ad9a76cef",
"type": "github"
},
"original": {
"owner": "nvim-neorg",
"repo": "neorg",
"type": "github"
}
},
"neorg-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"neorg": "neorg",
"neorg-telescope": "neorg-telescope",
"nixpkgs": "nixpkgs",
"norg": "norg",
"norg-meta": "norg-meta"
},
"locked": {
"lastModified": 1722975193,
"narHash": "sha256-SMvVuYKD4T9wQZhHs6oFUGMF9M4t2tg1bYE5c/6SJYA=",
"owner": "nvim-neorg",
"repo": "nixpkgs-neorg-overlay",
"rev": "e8193159b8cceb991d91acc3762fa3a749a9beab",
"type": "github"
},
"original": {
"owner": "nvim-neorg",
"repo": "nixpkgs-neorg-overlay",
"type": "github"
}
},
"neorg-telescope": {
"flake": false,
"locked": {
"lastModified": 1722358034,
"narHash": "sha256-ei4uUqpIQjGKzu5ryu0Hlmis9TS9FJsYnjt4J4QdWlw=",
"owner": "nvim-neorg",
"repo": "neorg-telescope",
"rev": "ddb2556644cae922699a239bbb0fe16e25b084b7",
"type": "github"
},
"original": {
"owner": "nvim-neorg",
"repo": "neorg-telescope",
"type": "github"
}
},
"nix-darwin": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -178,11 +304,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1710717205, "lastModified": 1722924007,
"narHash": "sha256-Wf3gHh5uV6W1TV/A8X8QJf99a5ypDSugY4sNtdJDe0A=", "narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "bcc8afd06e237df060c85bad6af7128e05fd61a3", "rev": "91010a5613ffd7ee23ee9263213157a1c422b705",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -193,46 +319,76 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1711401922, "lastModified": 1722957468,
"narHash": "sha256-QoQqXoj8ClGo0sqD/qWKFWezgEwUL0SUh37/vY2jNhc=", "narHash": "sha256-SQ0TCC4aklOhN/OzcztrKqDLY8SjpIZcyvTulzhDXs0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "07262b18b97000d16a4bdb003418bd2fb067a932", "rev": "2a13929e1f191b3690dd2f2db13098b04adb9043",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1712437997,
"narHash": "sha256-g0whLLwRvgO2FsyhY8fNk+TWenS3jg5UdlWL4uqgFeo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e38d7cb66ea4f7a0eb6681920615dfcc30fc2920",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-23.11", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1711333969, "lastModified": 1644486793,
"narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", "rev": "1882c6b7368fd284ad01b0a5b5601ef136321292",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1644486793,
"narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1882c6b7368fd284ad01b0a5b5601ef136321292",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 0,
"narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
"path": "/nix/store/79j6vc975md1w3f2fgli3xw657zyxxyc-source",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1722869614,
"narHash": "sha256-7ojM1KSk3mzutD7SkrdSflHXEujPvW1u7QuqWoTLXQU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "883180e6550c1723395a3a342f830bfc5c371f6b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -240,60 +396,75 @@
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell", "devshell": "devshell",
"flake-compat": "flake-compat", "flake-compat": "flake-compat_3",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_5",
"pre-commit-hooks": "pre-commit-hooks" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1711545203, "lastModified": 1722925293,
"narHash": "sha256-PPXcH/pIbxr8awgC+q+rrIgRRH8uYeWoK5Af3kFhjEc=", "narHash": "sha256-saXm5dd/e3PMsYTEcp1Qbzifm3KsZtNFkrWjmLhXHGE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "d248bf587cdb86b661ca54f16fe2f3263018b985", "rev": "170df9814c3e41d5a4d6e3339e611801b1f02ce2",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "nixos-24.05",
"repo": "nixvim", "repo": "nixvim",
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": { "norg": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"gitignore": "gitignore", "nixpkgs": "nixpkgs_2"
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1711409088, "lastModified": 1672582520,
"narHash": "sha256-+rTCra8TY4vuSNTtQ0tcex1syCRPoKyb8vyHmoxkga4=", "narHash": "sha256-kv3UiJUqMSF1qd3r4OCWomVTHTYjwX/EBRWm8mOSdwg=",
"owner": "cachix", "owner": "nvim-neorg",
"repo": "pre-commit-hooks.nix", "repo": "tree-sitter-norg",
"rev": "db656fc3e34907000df26e8bc5cc3c94fb27f353", "rev": "d7a466e182a532065a559dbfc7a847271d5e9c29",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "nvim-neorg",
"repo": "pre-commit-hooks.nix", "ref": "dev",
"repo": "tree-sitter-norg",
"type": "github"
}
},
"norg-meta": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1713028366,
"narHash": "sha256-8qSdwHlfnjFuQF4zNdLtU2/tzDRhDZbo9K54Xxgn5+8=",
"owner": "nvim-neorg",
"repo": "tree-sitter-norg-meta",
"rev": "6f0510cc516a3af3396a682fbd6655486c2c9d2d",
"type": "github"
},
"original": {
"owner": "nvim-neorg",
"repo": "tree-sitter-norg-meta",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs", "neorg-overlay": "neorg-overlay",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs": "nixpkgs_4",
"nixvim": "nixvim" "nixvim": "nixvim"
} }
}, },
@ -327,18 +498,24 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": { "treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1722330636,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=",
"owner": "nix-systems", "owner": "numtide",
"repo": "default", "repo": "treefmt-nix",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "768acdb06968e53aa1ee8de207fd955335c754b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "numtide",
"repo": "default", "repo": "treefmt-nix",
"type": "github" "type": "github"
} }
} }

View file

@ -1,26 +1,41 @@
{ {
description = "my_nixvim flake"; # https://github.com/redyf/Neve/blob/main/flake.nix
description = "my_nixvim flake, Neve mod (only flake.nix)";
inputs = { inputs = {
nixvim.url = "github:nix-community/nixvim"; # https://github.com/nix-community/nixvim/issues/1859
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11"; # use nixos-24.05 branch to get rid of "error: attribute 'cmp-ai' missing"
nixvim.url = "github:nix-community/nixvim/nixos-24.05";
# nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
# nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
# https://github.com/nvim-neorg/nixpkgs-neorg-overlay
# https://github.com/nix-community/nixvim/issues/1395
neorg-overlay.url = "github:nvim-neorg/nixpkgs-neorg-overlay";
}; };
outputs = { outputs = {
self, self
nixpkgs, , nixpkgs
nixpkgs-stable, # , nixpkgs-stable
nixvim, , nixvim
flake-utils, , flake-utils
... , neorg-overlay
, ...
} @ inputs: let } @ inputs: let
config = import ./config; # import the module directly config = import ./config; # import the module directly
in in
flake-utils.lib.eachDefaultSystem (system: let flake-utils.lib.eachDefaultSystem (system: let
nixvimLib = nixvim.lib.${system}; nixvimLib = nixvim.lib.${system};
pkgs = import nixpkgs {inherit system;}; pkgs = import nixpkgs {
pkgs-stable = import nixpkgs-stable {inherit system;}; inherit system;
nixpkgs.overlays = [ neorg-overlay.overlays.default ];
};
# pkgs-stable = import nixpkgs-stable {
# inherit system;
# nixpkgs.overlays = [ neorg-overlay.overlays.default ];
# };
nixvim' = nixvim.legacyPackages.${system}; nixvim' = nixvim.legacyPackages.${system};
nvim = nixvim'.makeNixvimWithModule { nvim = nixvim'.makeNixvimWithModule {
inherit pkgs; inherit pkgs;
@ -28,7 +43,8 @@
# You can use `extraSpecialArgs` to pass additional arguments to your module files # You can use `extraSpecialArgs` to pass additional arguments to your module files
extraSpecialArgs = { extraSpecialArgs = {
inherit self; inherit self;
inherit pkgs-stable; # inherit pkgs-stable;
inherit pkgs;
}; };
}; };
in { in {