190 lines
5.3 KiB
Nix
190 lines
5.3 KiB
Nix
{ pkgs, theme, vimwikiPath, ... }:
|
|
{
|
|
# symlink for a stable path
|
|
home.file.".vscode-extensions/vscode-lldb".source = pkgs.vscode-extensions.vadimcn.vscode-lldb;
|
|
|
|
programs = {
|
|
neovim = {
|
|
enable = true;
|
|
package = pkgs.neovim-unwrapped;
|
|
defaultEditor = true;
|
|
plugins = with pkgs.vimPlugins; [
|
|
# theme
|
|
nvim-solarized-lua
|
|
|
|
# auto-close brackets, etc
|
|
nvim-autopairs
|
|
|
|
# better wildmenu
|
|
wilder-nvim
|
|
|
|
# undo-tree
|
|
undotree
|
|
|
|
# quickfix
|
|
nvim-bqf
|
|
|
|
# ui
|
|
dressing-nvim
|
|
|
|
# session handling
|
|
project-nvim
|
|
auto-session
|
|
|
|
# escape handling
|
|
better-escape-nvim
|
|
|
|
nvim-treesitter.withAllGrammars
|
|
nvim-treesitter-textobjects
|
|
nvim-ts-context-commentstring
|
|
markdown-preview-nvim # use({ "iamcco/markdown-preview.nvim", run = ":call mkdp#util#install()" })
|
|
toggleterm-nvim
|
|
nvim-notify
|
|
comment-nvim
|
|
lualine-nvim
|
|
tabline-nvim
|
|
indent-blankline-nvim
|
|
plenary-nvim
|
|
vim-illuminate
|
|
vim-surround
|
|
neogen
|
|
|
|
# git
|
|
gitsigns-nvim
|
|
vim-fugitive
|
|
vim-flog
|
|
git-blame-nvim
|
|
nvim-web-devicons # used by diffview-nvim
|
|
|
|
# snippets
|
|
friendly-snippets
|
|
luasnip
|
|
|
|
# auto-completion
|
|
nvim-cmp
|
|
cmp-nvim-lsp
|
|
cmp-buffer
|
|
cmp-path
|
|
cmp-cmdline
|
|
cmp-nvim-lua
|
|
cmp_luasnip
|
|
cmp-calc
|
|
cmp-nvim-lsp-signature-help
|
|
|
|
# telescope
|
|
telescope-nvim
|
|
telescope-fzf-native-nvim
|
|
telescope-ui-select-nvim
|
|
|
|
# LSP
|
|
nvim-lspconfig
|
|
lsp-status-nvim
|
|
rustaceanvim
|
|
neodev-nvim
|
|
none-ls-nvim
|
|
lsp_lines-nvim
|
|
lsp-inlayhints-nvim
|
|
|
|
# debugging
|
|
nvim-dap
|
|
nvim-dap-ui
|
|
|
|
# vim-wiki
|
|
vimwiki
|
|
];
|
|
|
|
withNodeJs = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
# language servers
|
|
lua-language-server
|
|
bash-language-server
|
|
prettierd
|
|
nodePackages.yaml-language-server
|
|
nodePackages.dockerfile-language-server-nodejs
|
|
nodePackages.vscode-langservers-extracted
|
|
lldb
|
|
vscode-extensions.vadimcn.vscode-lldb
|
|
marksman
|
|
clang-tools
|
|
cmake-language-server
|
|
texlab
|
|
nixd
|
|
nixpkgs-fmt
|
|
bitbake-language-server
|
|
(python3.withPackages (ps: with ps; [
|
|
pep8
|
|
autopep8
|
|
python-lsp-server
|
|
]))
|
|
|
|
#clipboard
|
|
xclip
|
|
|
|
#vimwiki
|
|
vimwiki-markdown
|
|
];
|
|
|
|
extraLuaConfig = ''
|
|
vim.loader.enable()
|
|
|
|
require("local_keymaps")
|
|
require("local_options")
|
|
require("local_commands")
|
|
require("local_treesitter")
|
|
require("local_lspconfig")
|
|
require("local_auto-session")
|
|
require("local_toggleterm")
|
|
require("local_notify")
|
|
require("local_comment")
|
|
require("local_lualine")
|
|
require("local_tabline")
|
|
require("local_indent-blankline")
|
|
require("local_gitsigns")
|
|
require("local_luasnip")
|
|
require("local_nvim-cmp")
|
|
require("local_telescope")
|
|
|
|
require("local_themes").setup("${theme}")
|
|
|
|
require("local_project-nvim")
|
|
require("local_dap")
|
|
require("local_illuminate")
|
|
require("local_wilder")
|
|
|
|
require("local_vimwiki").setup("${vimwikiPath}")
|
|
|
|
vim.g.gitblame_date_format = "%r"
|
|
|
|
require("nvim-autopairs").setup({})
|
|
require("neogen").setup({ snippet_engine = "luasnip" })
|
|
'';
|
|
};
|
|
};
|
|
|
|
home.file.".config/nvim/lua/local_keymaps.lua".source = ./keymaps.lua;
|
|
home.file.".config/nvim/lua/local_options.lua".source = ./options.lua;
|
|
home.file.".config/nvim/lua/local_commands.lua".source = ./commands.lua;
|
|
home.file.".config/nvim/lua/local_treesitter.lua".source = ./treesitter.lua;
|
|
home.file.".config/nvim/lua/local_lspconfig.lua".source = ./lspconfig.lua;
|
|
home.file.".config/nvim/lua/local_auto-session.lua".source = ./auto-session.lua;
|
|
home.file.".config/nvim/lua/local_toggleterm.lua".source = ./toggleterm.lua;
|
|
home.file.".config/nvim/lua/local_notify.lua".source = ./notify.lua;
|
|
home.file.".config/nvim/lua/local_comment.lua".source = ./comment.lua;
|
|
home.file.".config/nvim/lua/local_lualine.lua".source = ./lualine.lua;
|
|
home.file.".config/nvim/lua/local_tabline.lua".source = ./tabline.lua;
|
|
home.file.".config/nvim/lua/local_indent-blankline.lua".source = ./indent-blankline.lua;
|
|
home.file.".config/nvim/lua/local_gitsigns.lua".source = ./gitsigns.lua;
|
|
home.file.".config/nvim/lua/local_luasnip.lua".source = ./luasnip.lua;
|
|
home.file.".config/nvim/lua/local_nvim-cmp.lua".source = ./nvim-cmp.lua;
|
|
home.file.".config/nvim/lua/local_telescope.lua".source = ./telescope.lua;
|
|
|
|
home.file.".config/nvim/lua/local_themes.lua".source = ./themes.lua;
|
|
home.file.".config/nvim/lua/local_vimwiki.lua".source = ./vimwiki.lua;
|
|
|
|
home.file.".config/nvim/lua/local_project-nvim.lua".source = ./project-nvim.lua;
|
|
home.file.".config/nvim/lua/local_dap.lua".source = ./dap.lua;
|
|
home.file.".config/nvim/lua/local_illuminate.lua".source = ./illuminate.lua;
|
|
home.file.".config/nvim/lua/local_wilder.lua".source = ./wilder.lua;
|
|
}
|