188 lines
4.5 KiB
Nix
188 lines
4.5 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
|
|
|
|
# neorg
|
|
neorg
|
|
neorg-telescope
|
|
|
|
# vim-wiki
|
|
vimwiki
|
|
];
|
|
|
|
withNodeJs = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
# language servers
|
|
lua-language-server
|
|
terraform-ls
|
|
tflint
|
|
bash-language-server
|
|
prettierd
|
|
nodePackages.yaml-language-server
|
|
nodePackages.eslint_d
|
|
nodePackages.typescript-language-server
|
|
nodePackages.typescript
|
|
nodePackages.dockerfile-language-server-nodejs
|
|
nodePackages.vscode-langservers-extracted
|
|
vscode-extensions.vue.volar
|
|
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
|
|
]))
|
|
pyright
|
|
|
|
#clipboard
|
|
xclip
|
|
|
|
#vimwiki
|
|
vimwiki-markdown
|
|
];
|
|
|
|
extraLuaPackages = luaPackages: [
|
|
luaPackages.lua-utils-nvim
|
|
luaPackages.pathlib-nvim
|
|
];
|
|
|
|
extraConfig = ''
|
|
lua << EOF
|
|
vim.o.guifont = "DejaVu Sans Mono:h10"
|
|
|
|
${builtins.readFile ./keymaps.lua }
|
|
${builtins.readFile ./options.lua }
|
|
${builtins.readFile ./commands.lua }
|
|
${builtins.readFile ./treesitter.lua }
|
|
${builtins.readFile ./lspconfig.lua }
|
|
${builtins.readFile ./auto-session.lua }
|
|
${builtins.readFile ./toggleterm.lua }
|
|
${builtins.readFile ./notify.lua }
|
|
${builtins.readFile ./comment.lua }
|
|
${builtins.readFile ./lualine.lua }
|
|
${builtins.readFile ./tabline.lua }
|
|
${builtins.readFile ./indent-blankline.lua }
|
|
${builtins.readFile ./gitsigns.lua }
|
|
${builtins.readFile ./luasnip.lua }
|
|
${builtins.readFile ./nvim-cmp.lua }
|
|
${builtins.readFile ./telescope.lua }
|
|
|
|
${builtins.readFile ./themes.lua }
|
|
vim.opt.background = '${theme}'
|
|
|
|
${builtins.readFile ./project-nvim.lua }
|
|
${builtins.readFile ./dap.lua }
|
|
${builtins.readFile ./neorg.lua }
|
|
${builtins.readFile ./illuminate.lua }
|
|
${builtins.readFile ./wilder.lua }
|
|
|
|
do
|
|
local vimwiki_path = "${vimwikiPath}"
|
|
${builtins.readFile ./vimwiki.lua }
|
|
end
|
|
|
|
vim.g.gitblame_date_format = "%r"
|
|
|
|
require("nvim-autopairs").setup({})
|
|
require("neogen").setup({ snippet_engine = "luasnip" })
|
|
EOF
|
|
'';
|
|
};
|
|
};
|
|
}
|