1
Fork 0
satellite/modules/applications/neovim.nix

78 lines
2.3 KiB
Nix
Raw Normal View History

{ pkgs, lib, paths, ... }:
2022-01-30 20:19:35 +01:00
let
paq = pkgs.fetchFromGitHub {
owner = "savq";
repo = "paq-nvim";
rev = "cbbb8a550e35b1e6c9ddf7b098b25e6c2d8b1e86";
sha256 = "0fsbww2kqwayi1azhglsjal6mwh68n03ylxxqzq17v7sar17vx4c";
2022-01-30 20:19:35 +01:00
};
2022-03-10 20:59:18 +01:00
theme = pkgs.myThemes.current;
2022-03-10 20:59:18 +01: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-07-19 20:19:36 +02:00
# vscode-langservers-extracted # css and shit
2022-03-10 20:59:18 +01: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
# Others
2022-07-27 10:00:25 +02:00
nodePackages.typescript # typescript
wakatime # time tracking
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
texlive.combined.scheme-full # latex stuff
python38Packages.pygments # required for latex syntax highlighting
];
2022-01-31 21:54:22 +01:00
myConfig = ''
2022-06-18 23:09:21 +02:00
vim.g.lualineTheme = "${theme.neovim.lualineTheme}"
vim.opt.runtimepath:append("${paths.dotfiles}/neovim")
2022-08-05 19:11:10 +02:00
vim.opt.runtimepath:append("${paths.dotfiles}/vscode-snippets")
require("my.init").setup()
'';
base = pkgs.neovim-nightly;
2022-06-22 22:09:55 +02:00
# base = pkgs.neovim;
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);
in
{
home-manager.users.adrielus =
{
home.file.".local/share/nvim/site/pack/paqs/start/paq-nvim".source = paq;
2022-07-19 20:19:36 +02:00
home.file.".local/share/nvim/site/pack/treesitter/start/nvim-treesitter".source = nvim-treesitter;
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;
home.packages = [
neovim
];
};
2022-01-30 19:10:57 +01:00
}