diff options
Diffstat (limited to 'use-cases/development/neovim.nix')
-rw-r--r-- | use-cases/development/neovim.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/use-cases/development/neovim.nix b/use-cases/development/neovim.nix new file mode 100644 index 0000000..fb7acf3 --- /dev/null +++ b/use-cases/development/neovim.nix @@ -0,0 +1,60 @@ + +# This file contains the HM configuration options for Neovim for the user +# 'linus'. Don't know him. + +{ pkgs, lib, ... }: + +{ + programs.neovim = { + enable = true; + + # Wrap neovim with LSP dependencies. + # TODO: Build fails with permission error. What? I hate computers... + # package = + # let + # base = pkgs.neovim-unwrapped; + # deps = with pkgs; [ pyright ]; + # neovim' = pkgs.runCommandLocal "neovim-with-deps" { + # buildInputs = [ pkgs.makeWrapper ]; + # } '' + # mkdir $out + # # Link every top-level folder from pkgs.hello to our new target + # ln -s ${base}/* $out + # # Except the bin folder + # rm $out/bin + # mkdir $out/bin + # # We create the bin folder ourselves and link every binary in it + # ln -s ${base}/bin/* $out/bin + # # Except the nvim binary + # rm $out/bin/nvim + # # Because we create this ourself, by creating a wrapper + # makeWrapper ${base}/bin/nvim $out/bin/nvim \ + # --prefix PATH : ${lib.makeBinPath deps} + # ''; + # in + # neovim'; + + plugins = with pkgs.vimPlugins; [ + { + plugin = nvim-lspconfig; + type = "lua"; + config = '' + local lspconfig = require("lspconfig"); + lspconfig.pyright.setup { } + ''; + } + ]; + + # Typing `vi`, `vim`, or `vimdiff` will also run neovim. + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + }; + + # Set Neovim as the default editor. + home.sessionVariables.EDITOR = "nvim"; + home.sessionVariables.VISUAL = "nvim"; + + # Use neovim as man pager. + home.sessionVariables.MANPAGER = "nvim +Man!"; +} |