summaryrefslogtreecommitdiff
path: root/use-cases/development/neovim.nix
diff options
context:
space:
mode:
Diffstat (limited to 'use-cases/development/neovim.nix')
-rw-r--r--use-cases/development/neovim.nix60
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!";
+}