Manage neovim configuration
This commit is contained in:
parent
8be833a2ce
commit
8e5ac5bd2f
@ -1,33 +1,69 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./program-neovim.nix
|
||||||
|
];
|
||||||
# I'm not a zealot about this one.
|
# I'm not a zealot about this one.
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(self: super: {
|
||||||
|
neovim = super.neovim.override {
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
EDITOR="nvim";
|
||||||
|
PAGER="less -R";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO(jwall): We need to do this some other way.
|
||||||
|
programs = with pkgs; {
|
||||||
|
neovim.enable = true;
|
||||||
|
neovim.configure = {
|
||||||
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||||
|
start = [
|
||||||
|
nerdtree
|
||||||
|
vim-nix
|
||||||
|
coc-rust-analyzer
|
||||||
|
coc-git
|
||||||
|
coc-vimlsp
|
||||||
|
coc-python
|
||||||
|
coc-clangd
|
||||||
|
coc-go
|
||||||
|
coc-html
|
||||||
|
coc-css
|
||||||
|
coc-yaml
|
||||||
|
coc-json
|
||||||
|
coc-nvim
|
||||||
|
vim-toml
|
||||||
|
hoon-vim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
zsh.enable = true; # default shell on catalina
|
||||||
|
};
|
||||||
|
|
||||||
# List packages installed in system profile. To search by name, run:
|
# List packages installed in system profile. To search by name, run:
|
||||||
# $ nix-env -qaP | grep wget
|
# $ nix-env -qaP | grep wget
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
with pkgs; [
|
with pkgs; [
|
||||||
neovim
|
tmux
|
||||||
vimPlugins.nerdtree
|
inputs.runwhen
|
||||||
vimPlugins.vim-nix
|
gnumake
|
||||||
vimPlugins.coc-rust-analyzer
|
clang
|
||||||
vimPlugins.coc-git
|
clang-tools
|
||||||
vimPlugins.coc-vimlsp
|
lld
|
||||||
vimPlugins.coc-python
|
libiconv # this is frequently needed when compiling something
|
||||||
vimPlugins.coc-clangd
|
rustup
|
||||||
vimPlugins.coc-go
|
|
||||||
vimPlugins.coc-html
|
|
||||||
vimPlugins.coc-css
|
|
||||||
vimPlugins.coc-yaml
|
|
||||||
vimPlugins.coc-json
|
|
||||||
vimPlugins.coc-nvim
|
|
||||||
vimPlugins.vim-toml
|
|
||||||
vimPlugins.hoon-vim
|
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
rustc
|
#rustc
|
||||||
cargo
|
#cargo
|
||||||
cargo-deps
|
#cargo-deps
|
||||||
# TODO find a version of the julia package that will install
|
# TODO find a version of the julia package that will install
|
||||||
# on darwin and add it as an overlay
|
# on darwin and add it as an overlay
|
||||||
python
|
python
|
||||||
@ -35,17 +71,18 @@
|
|||||||
git
|
git
|
||||||
mercurial
|
mercurial
|
||||||
bash
|
bash
|
||||||
podman
|
podman
|
||||||
curl
|
qemu
|
||||||
wget
|
curl
|
||||||
jq
|
wget
|
||||||
# TODO(jwall): Find a non broken sile package version and add it as an overlay
|
jq
|
||||||
spacebar
|
# TODO(jwall): Find a non broken sile package version and add it as an overlay
|
||||||
coreutils
|
spacebar
|
||||||
watch
|
coreutils
|
||||||
vscode
|
watch
|
||||||
iterm2
|
vscode
|
||||||
# TODO add sonic-pi here if it supports the arch
|
iterm2
|
||||||
|
# TODO add sonic-pi here if it supports the arch
|
||||||
];
|
];
|
||||||
|
|
||||||
# Use a custom configuration.nix location.
|
# Use a custom configuration.nix location.
|
||||||
@ -61,7 +98,6 @@
|
|||||||
|
|
||||||
# Create /etc/bashrc that loads the nix-darwin environment.
|
# Create /etc/bashrc that loads the nix-darwin environment.
|
||||||
# programs.bash.enable = true; # default shell on catalina
|
# programs.bash.enable = true; # default shell on catalina
|
||||||
programs.zsh.enable = true; # default shell on catalina
|
|
||||||
# programs.fish.enable = true;
|
# programs.fish.enable = true;
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
|
224
nix/darwin/flake.lock
generated
224
nix/darwin/flake.lock
generated
@ -20,7 +20,154 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"durnitisp": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"naersk": "naersk"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1646347522,
|
||||||
|
"narHash": "sha256-9FmfD+maojx6WXGqnfznBi6noeqZJVqbNAahdarmalo=",
|
||||||
|
"owner": "zaphar",
|
||||||
|
"repo": "durnitisp",
|
||||||
|
"rev": "26ac114f8855b1206c9a9df4bf461a1a0b643ce5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "zaphar",
|
||||||
|
"repo": "durnitisp",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1641205782,
|
||||||
|
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1648199409,
|
||||||
|
"narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1644229661,
|
||||||
|
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1649676176,
|
||||||
|
"narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1637014545,
|
||||||
|
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639947939,
|
||||||
|
"narHash": "sha256-pGsM8haJadVP80GFq4xhnSpNitYNQpaXk4cnA796Cso=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "2fc8ce9d3c025d59fee349c1f80be9785049d653",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"naersk_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650101877,
|
||||||
|
"narHash": "sha256-IYxYc5Z1ZHQDTQbTWsOZ9HlZepsVjgV5oZwmbKzxSJs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "8cc379478819e6a22ce7595a761fe1e17c8d7458",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1645937171,
|
||||||
|
"narHash": "sha256-n9f9GZBNMe8UMhcgmmaXNObkH01jjgp7INMrUgBgcy4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "22dc22f8cedc58fcb11afe1acb08e9999e78be9c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1650155902,
|
"lastModified": 1650155902,
|
||||||
"narHash": "sha256-UFqkwGceA/CGNbWSleACF/KTTosDzk/8ESjRV3Y70S0=",
|
"narHash": "sha256-UFqkwGceA/CGNbWSleACF/KTTosDzk/8ESjRV3Y70S0=",
|
||||||
@ -35,10 +182,85 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650109093,
|
||||||
|
"narHash": "sha256-tqlnKrAdJktRLXTou9le0oTqrYBAFpGscV5RADdpArU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "faad370edcb37162401be50d45526f52bb16a713",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650222748,
|
||||||
|
"narHash": "sha256-AHh/goEfG5hlhIMVgGQwACbuv5Wit2ND9vrcB4QthJs=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ba88a5afa6fff7710c17b5423ff9d721386c4164",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"nixpkgs": "nixpkgs"
|
"durnitisp": "durnitisp",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"runwhen": "runwhen"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runwhen": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"naersk": "naersk_2",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650223151,
|
||||||
|
"narHash": "sha256-9qyT3VFCWC6MRAPo3Wf5RTJvpDKl0qK+OgLmp4Y6754=",
|
||||||
|
"owner": "zaphar",
|
||||||
|
"repo": "runwhen",
|
||||||
|
"rev": "69f6334dc8c17537eb9af798cd7fb9561b905f09",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "zaphar",
|
||||||
|
"repo": "runwhen",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"runwhen",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650162887,
|
||||||
|
"narHash": "sha256-e23LlN7NQGxrsSWNNAjyvrWlZ3kwFSav9kXbayibKWc=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "26b570500cdd7a359526524e9abad341891122a6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
# TODO(jwall): Use the oxalica rust overlay here
|
||||||
nixpkgs.url = "github:nixos/nixpkgs";
|
nixpkgs.url = "github:nixos/nixpkgs";
|
||||||
darwin.url = "github:lnl7/nix-darwin";
|
darwin.url = "github:lnl7/nix-darwin";
|
||||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
runwhen.url = "github:zaphar/runwhen";
|
||||||
|
durnitisp.url = "github:zaphar/durnitisp";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {self, nixpkgs, darwin, ...}:
|
outputs = {self, nixpkgs, darwin, runwhen, durnitisp, ...}:
|
||||||
{
|
{
|
||||||
darwinConfigurations."jeremys-mbp" = darwin.lib.darwinSystem {
|
darwinConfigurations."jeremys-mbp" = darwin.lib.darwinSystem rec {
|
||||||
system = "aarch64-darwin";
|
system = "aarch64-darwin";
|
||||||
modules = [
|
modules = [
|
||||||
./darwin-configuration.nix
|
./darwin-configuration.nix
|
||||||
];
|
];
|
||||||
inputs = {
|
inputs = {
|
||||||
pkgs = nixpkgs;
|
runwhen = runwhen.defaultPackage."${system}";
|
||||||
|
durnitisp = durnitisp.defaultPackage."${system}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
167
nix/darwin/program-neovim.nix
Normal file
167
nix/darwin/program-neovim.nix
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.neovim;
|
||||||
|
|
||||||
|
runtime' = filter (f: f.enable) (attrValues cfg.runtime);
|
||||||
|
|
||||||
|
runtime = pkgs.linkFarm "neovim-runtime" (map (x: { name = x.target; path = x.source; }) runtime');
|
||||||
|
|
||||||
|
in {
|
||||||
|
options.programs.neovim = {
|
||||||
|
enable = mkEnableOption "Neovim";
|
||||||
|
|
||||||
|
defaultEditor = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
When enabled, installs neovim and configures neovim to be the default editor
|
||||||
|
using the EDITOR environment variable.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
viAlias = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Symlink <command>vi</command> to <command>nvim</command> binary.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
vimAlias = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Symlink <command>vim</command> to <command>nvim</command> binary.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
withRuby = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Enable Ruby provider.";
|
||||||
|
};
|
||||||
|
|
||||||
|
withPython3 = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Enable Python 3 provider.";
|
||||||
|
};
|
||||||
|
|
||||||
|
withNodeJs = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Enable Node provider.";
|
||||||
|
};
|
||||||
|
|
||||||
|
configure = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
default = {};
|
||||||
|
example = literalExpression ''
|
||||||
|
{
|
||||||
|
customRC = '''
|
||||||
|
" here your custom configuration goes!
|
||||||
|
''';
|
||||||
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||||
|
# loaded on launch
|
||||||
|
start = [ fugitive ];
|
||||||
|
# manually loadable by calling `:packadd $plugin-name`
|
||||||
|
opt = [ ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Generate your init file from your list of plugins and custom commands.
|
||||||
|
Neovim will then be wrapped to load <command>nvim -u /nix/store/<replaceable>hash</replaceable>-vimrc</command>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.neovim-unwrapped;
|
||||||
|
defaultText = literalExpression "pkgs.neovim-unwrapped";
|
||||||
|
description = "The package to use for the neovim binary.";
|
||||||
|
};
|
||||||
|
|
||||||
|
finalPackage = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
visible = false;
|
||||||
|
readOnly = true;
|
||||||
|
description = "Resulting customized neovim package.";
|
||||||
|
};
|
||||||
|
|
||||||
|
runtime = mkOption {
|
||||||
|
default = {};
|
||||||
|
example = literalExpression ''
|
||||||
|
{ "ftplugin/c.vim".text = "setlocal omnifunc=v:lua.vim.lsp.omnifunc"; }
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Set of files that have to be linked in <filename>runtime</filename>.
|
||||||
|
'';
|
||||||
|
|
||||||
|
type = with types; attrsOf (submodule (
|
||||||
|
{ name, config, ... }:
|
||||||
|
{ options = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether this /etc file should be generated. This
|
||||||
|
option allows specific /etc files to be disabled.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
target = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Name of symlink. Defaults to the attribute
|
||||||
|
name.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
text = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.nullOr types.lines;
|
||||||
|
description = "Text of the file.";
|
||||||
|
};
|
||||||
|
|
||||||
|
source = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "Path of the source file.";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
target = mkDefault name;
|
||||||
|
source = mkIf (config.text != null) (
|
||||||
|
let name' = "neovim-runtime" + baseNameOf name;
|
||||||
|
in mkDefault (pkgs.writeText name' config.text));
|
||||||
|
};
|
||||||
|
|
||||||
|
}));
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
cfg.finalPackage
|
||||||
|
];
|
||||||
|
environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "nvim");
|
||||||
|
|
||||||
|
programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
|
||||||
|
inherit (cfg) viAlias vimAlias withPython3 withNodeJs withRuby;
|
||||||
|
configure = cfg.configure // {
|
||||||
|
|
||||||
|
customRC = (cfg.configure.customRC or "") + ''
|
||||||
|
set runtimepath^=${runtime}/etc
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user