2022-05-15 20:56:19 +02:00
|
|
|
{ pkgs, lib, paths, ... }:
|
2022-01-30 20:19:35 +01:00
|
|
|
let
|
2022-05-15 20:56:19 +02:00
|
|
|
paq = pkgs.fetchFromGitHub {
|
|
|
|
owner = "savq";
|
|
|
|
repo = "paq-nvim";
|
2022-08-24 13:13:35 +02:00
|
|
|
rev = "bc5950b990729464f2493b1eaab5a7721bd40bf5";
|
|
|
|
sha256 = "0rsv3j5rxfv7ys9zvq775f63vy6w880b0xhyr164y8fcadhpypb3";
|
2022-01-30 20:19:35 +01:00
|
|
|
};
|
2022-03-10 20:59:18 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
theme = pkgs.myThemes.current;
|
2022-03-10 20:59:18 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
extraPackages = with pkgs; [
|
|
|
|
# Language servers
|
|
|
|
# haskellPackages.agda-language-server # agda
|
|
|
|
nodePackages.typescript-language-server # typescript
|
|
|
|
easy-purescript-nix.purescript-language-server # purescript
|
|
|
|
sumneko-lua-language-server # lua
|
|
|
|
rnix-lsp # nix
|
|
|
|
haskell-language-server # haskell
|
2022-08-18 09:53:29 +02:00
|
|
|
kotlin-language-server # kotlin
|
2022-09-09 00:16:11 +02:00
|
|
|
tectonic # also latex something?
|
|
|
|
texlab # latex
|
2022-07-19 20:19:36 +02:00
|
|
|
# vscode-langservers-extracted # css and shit
|
2022-03-10 20:59:18 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
# Formatters
|
|
|
|
luaformatter # lua
|
|
|
|
ormolu # haskell
|
2022-07-19 20:19:36 +02:00
|
|
|
easy-purescript-nix.purs-tidy
|
|
|
|
# prettierd # prettier but faster
|
2022-01-30 19:10:57 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
# Others
|
2022-07-27 10:00:25 +02:00
|
|
|
nodePackages.typescript # typescript
|
2022-05-22 15:42:46 +02:00
|
|
|
wakatime # time tracking
|
2022-05-15 20:56:19 +02:00
|
|
|
fd # file finder
|
|
|
|
ripgrep # grep rewrite (I think?)
|
|
|
|
nodePackages.typescript # typescript language
|
|
|
|
update-nix-fetchgit # useful for nix stuff
|
|
|
|
tree-sitter # syntax highlighting
|
2022-07-19 20:19:36 +02:00
|
|
|
libstdcxx5 # required by treesitter aparently
|
2022-01-30 19:10:57 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
texlive.combined.scheme-full # latex stuff
|
|
|
|
python38Packages.pygments # required for latex syntax highlighting
|
|
|
|
];
|
2022-01-31 21:54:22 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
myConfig = ''
|
2022-06-18 23:09:21 +02:00
|
|
|
vim.g.lualineTheme = "${theme.neovim.lualineTheme}"
|
2022-05-15 20:56:19 +02:00
|
|
|
vim.opt.runtimepath:append("${paths.dotfiles}/neovim")
|
2022-08-05 19:11:10 +02:00
|
|
|
vim.opt.runtimepath:append("${paths.dotfiles}/vscode-snippets")
|
2022-05-15 20:56:19 +02:00
|
|
|
require("my.init").setup()
|
|
|
|
'';
|
2022-02-10 00:22:51 +01:00
|
|
|
|
2022-05-15 20:56:19 +02:00
|
|
|
base = pkgs.neovim-nightly;
|
2022-06-22 22:09:55 +02:00
|
|
|
# base = pkgs.neovim;
|
2022-05-15 20:56:19 +02:00
|
|
|
neovim =
|
|
|
|
pkgs.symlinkJoin {
|
|
|
|
inherit (base) name meta;
|
|
|
|
paths = [ base ];
|
|
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
|
|
postBuild = ''
|
|
|
|
wrapProgram $out/bin/nvim \
|
|
|
|
--prefix PATH : ${lib.makeBinPath extraPackages}
|
|
|
|
'';
|
|
|
|
};
|
2022-07-19 20:19:36 +02:00
|
|
|
nvim-treesitter = pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars);
|
2022-05-15 20:56:19 +02:00
|
|
|
in
|
|
|
|
{
|
|
|
|
home-manager.users.adrielus =
|
|
|
|
{
|
|
|
|
home.file.".local/share/nvim/site/pack/paqs/start/paq-nvim".source = paq;
|
2022-09-12 13:50:02 +02:00
|
|
|
# home.file.".local/share/nvim/site/pack/treesitter/start/nvim-treesitter".source = nvim-treesitter;
|
2022-05-15 20:56:19 +02:00
|
|
|
xdg.configFile."nvim/init.lua".text = myConfig;
|
|
|
|
xdg.configFile."nvim/lua/my/theme.lua".source = theme.neovim.theme;
|
2022-06-18 23:09:21 +02:00
|
|
|
|
2022-07-19 20:19:36 +02:00
|
|
|
programs.neovim.enable = false;
|
|
|
|
|
2022-05-22 15:42:46 +02:00
|
|
|
home.packages = [
|
|
|
|
neovim
|
|
|
|
];
|
2022-05-15 20:56:19 +02:00
|
|
|
};
|
2022-01-30 19:10:57 +01:00
|
|
|
}
|