2023-09-30 00:05:54 -04:00
|
|
|
{ pkgs, lib, ... }:
|
2023-07-19 21:52:35 -04:00
|
|
|
let
|
|
|
|
# installs a vim plugin from git with a given tag / branch
|
2023-09-30 02:09:14 -04:00
|
|
|
plugin = owner: repo: rev: hash: pkgs.vimUtils.buildVimPluginFrom2Nix {
|
2023-07-19 21:52:35 -04:00
|
|
|
pname = "${lib.strings.sanitizeDerivationName repo}";
|
2023-09-30 02:09:14 -04:00
|
|
|
version = rev;
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
inherit rev owner repo hash;
|
2023-07-19 21:52:35 -04:00
|
|
|
};
|
|
|
|
};
|
2023-09-30 02:09:14 -04:00
|
|
|
in
|
|
|
|
{
|
2023-09-19 23:23:19 -04:00
|
|
|
xdg.configFile = {
|
|
|
|
"../.gradle/gradle.properties".source = pkgs.writeText "gradle.properties" ''
|
|
|
|
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
|
|
|
'';
|
|
|
|
};
|
2023-07-19 21:52:35 -04:00
|
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.neovim-nightly;
|
|
|
|
|
|
|
|
extraConfig = builtins.concatStringsSep "\n" [
|
2023-09-30 02:09:14 -04:00
|
|
|
(lib.strings.fileContents ../../config/nvim/base.vim)
|
2023-07-19 21:52:35 -04:00
|
|
|
''
|
|
|
|
lua << EOF
|
2023-09-30 02:09:14 -04:00
|
|
|
${lib.strings.fileContents ../../config/nvim/config.lua}
|
2023-07-19 21:52:35 -04:00
|
|
|
EOF
|
|
|
|
''
|
|
|
|
];
|
|
|
|
|
|
|
|
extraPackages = with pkgs; [
|
|
|
|
tree-sitter
|
2023-09-18 23:21:45 -04:00
|
|
|
nodejs_latest
|
2023-09-19 23:23:19 -04:00
|
|
|
gradle
|
2023-09-18 23:21:45 -04:00
|
|
|
bat
|
2023-09-19 09:36:14 -04:00
|
|
|
|
|
|
|
python311Packages.pylint
|
2023-09-19 11:58:34 -04:00
|
|
|
nil
|
2023-07-19 21:52:35 -04:00
|
|
|
];
|
2023-09-19 12:54:00 -04:00
|
|
|
|
|
|
|
coc = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
"colors.enable" = true;
|
|
|
|
"coc.preferences.formatOnType" = true;
|
|
|
|
"Lua.misc.parameters" = [
|
|
|
|
"--metapath"
|
|
|
|
"~/.cache/sumneko_lua/meta"
|
|
|
|
"--logpath"
|
|
|
|
"~/.cache/sumneko_lua/log"
|
|
|
|
];
|
2023-09-30 04:07:51 -04:00
|
|
|
"Lua.workspace.library" = [
|
|
|
|
"$\{3rd\}/luv/library"
|
|
|
|
];
|
|
|
|
sumneko-lua = {
|
|
|
|
serverDir = "${pkgs.lua-language-server}/share/lua-language-server";
|
|
|
|
enableNvimLuaDev = true;
|
|
|
|
};
|
2023-09-19 23:23:19 -04:00
|
|
|
"java.jdt.ls.java.home" = "${pkgs.temurin-bin-17}";
|
2023-09-19 12:54:00 -04:00
|
|
|
"bashIde.shellcheckPath" = "${pkgs.shellcheck}/bin/shellcheck";
|
|
|
|
languageserver = {
|
|
|
|
nix = {
|
|
|
|
command = "nil";
|
|
|
|
filetypes = [ "nix" ];
|
|
|
|
rootPatterns = [ "flake.nix" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-07-19 21:52:35 -04:00
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
|
|
vim-which-key
|
|
|
|
|
2023-09-19 09:36:14 -04:00
|
|
|
coc-java
|
|
|
|
coc-css
|
|
|
|
coc-sumneko-lua
|
|
|
|
coc-highlight
|
2023-09-18 23:21:45 -04:00
|
|
|
coc-json
|
2023-09-19 09:36:14 -04:00
|
|
|
coc-pyright
|
2023-09-18 23:21:45 -04:00
|
|
|
coc-sh
|
|
|
|
coc-snippets
|
|
|
|
coc-vimlsp
|
|
|
|
coc-yaml
|
|
|
|
coc-toml
|
2023-09-19 09:36:14 -04:00
|
|
|
coc-markdownlint
|
2023-09-19 11:51:02 -04:00
|
|
|
coc-tsserver
|
2023-09-30 04:07:51 -04:00
|
|
|
neodev-nvim
|
2023-09-18 23:21:45 -04:00
|
|
|
|
|
|
|
coc-fzf
|
2023-09-30 02:09:14 -04:00
|
|
|
fzfWrapper
|
|
|
|
fzf-vim
|
2023-09-18 23:21:45 -04:00
|
|
|
|
2023-07-19 21:52:35 -04:00
|
|
|
nvim-treesitter.withAllGrammars
|
|
|
|
nvim-treesitter
|
2023-09-19 12:54:00 -04:00
|
|
|
nvim-autopairs
|
2023-07-19 21:52:35 -04:00
|
|
|
|
2023-09-30 02:09:14 -04:00
|
|
|
dracula-nvim
|
|
|
|
(plugin "lukas-reineke"
|
|
|
|
"indent-blankline.nvim"
|
|
|
|
"1e79f3dd6e750c5cb4ce99d1755a3e17025c0f47"
|
|
|
|
"sha256-YhfMeA+bnXlGSZPNsK1rRls9iMXUlXYKVFjHwXlnE4E=")
|
|
|
|
gitsigns-nvim
|
|
|
|
lualine-nvim
|
2023-09-30 03:02:15 -04:00
|
|
|
minimap-vim
|
2023-07-20 23:00:57 -04:00
|
|
|
|
2023-09-30 02:09:14 -04:00
|
|
|
neo-tree-nvim
|
2023-07-19 21:52:35 -04:00
|
|
|
|
2023-07-20 23:00:57 -04:00
|
|
|
# to explore more
|
2023-09-19 14:03:37 -04:00
|
|
|
fugitive
|
2023-09-30 02:09:14 -04:00
|
|
|
todo-comments-nvim
|
2023-07-19 21:52:35 -04:00
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|