Convert Neovim configuration to module
This commit is contained in:
parent
f65ec32010
commit
a0e5672290
13 changed files with 130 additions and 123 deletions
|
@ -5,7 +5,6 @@
|
||||||
./git.nix
|
./git.nix
|
||||||
./pass.nix
|
./pass.nix
|
||||||
./gnupg.nix
|
./gnupg.nix
|
||||||
./neovim
|
|
||||||
./vifm
|
./vifm
|
||||||
./bat.nix
|
./bat.nix
|
||||||
./eza.nix
|
./eza.nix
|
||||||
|
|
|
@ -1,122 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
let
|
|
||||||
nvim-spell-fr-utf8-dictionary = builtins.fetchurl {
|
|
||||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
|
|
||||||
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
|
|
||||||
};
|
|
||||||
|
|
||||||
nvim-spell-fr-utf8-suggestions = builtins.fetchurl {
|
|
||||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
|
|
||||||
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.file."${config.xdg.configHome}/nvim/spell/fr.utf-8.spl".source = nvim-spell-fr-utf8-dictionary;
|
|
||||||
home.file."${config.xdg.configHome}/nvim/spell/fr.utf-8.sug".source = nvim-spell-fr-utf8-suggestions;
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
vimAlias = true;
|
|
||||||
withNodeJs = true;
|
|
||||||
withPython3 = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
# LSP Servers
|
|
||||||
clang-tools
|
|
||||||
lua-language-server
|
|
||||||
marksman
|
|
||||||
nil
|
|
||||||
nodePackages.bash-language-server
|
|
||||||
python3Packages.python-lsp-server
|
|
||||||
rnix-lsp
|
|
||||||
shellcheck
|
|
||||||
|
|
||||||
# Formatters
|
|
||||||
nixfmt
|
|
||||||
shfmt
|
|
||||||
];
|
|
||||||
extraLuaConfig = (builtins.readFile ./files/options.lua);
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
|
||||||
{
|
|
||||||
plugin = nvim-autopairs;
|
|
||||||
type = "lua";
|
|
||||||
config = ''
|
|
||||||
local autopair = require("nvim-autopairs").setup {}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = nvim-base16;
|
|
||||||
type = "lua";
|
|
||||||
config = ''
|
|
||||||
vim.cmd.colorscheme 'base16-default-dark'
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = nvim-cmp;
|
|
||||||
type = "lua";
|
|
||||||
config = (builtins.readFile ./files/cmp.lua);
|
|
||||||
}
|
|
||||||
cmp-buffer
|
|
||||||
cmp-nvim-lsp
|
|
||||||
cmp-path
|
|
||||||
cmp-cmdline
|
|
||||||
cmp_luasnip
|
|
||||||
{
|
|
||||||
plugin = gitsigns-nvim;
|
|
||||||
type = "lua";
|
|
||||||
config = (builtins.readFile ./files/luasnip.lua);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = indent-blankline-nvim;
|
|
||||||
type = "lua";
|
|
||||||
config =''
|
|
||||||
require("ibl").setup{
|
|
||||||
indent = { char = "│"},
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = nvim-lspconfig;
|
|
||||||
type = "lua";
|
|
||||||
config = (builtins.readFile ./files/lspconfig.lua);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = lualine-nvim;
|
|
||||||
type = "lua";
|
|
||||||
config = (builtins.readFile ./files/lualine.lua);
|
|
||||||
}
|
|
||||||
luasnip
|
|
||||||
{
|
|
||||||
plugin = neo-tree-nvim;
|
|
||||||
type = "lua";
|
|
||||||
config = (builtins.readFile ./files/neotree.lua);
|
|
||||||
}
|
|
||||||
nui-nvim
|
|
||||||
plenary-nvim
|
|
||||||
{
|
|
||||||
plugin = (nvim-treesitter.withPlugins (p: [
|
|
||||||
p.bash
|
|
||||||
p.c
|
|
||||||
p.cpp
|
|
||||||
p.cmake
|
|
||||||
p.dockerfile
|
|
||||||
p.latex
|
|
||||||
p.lua
|
|
||||||
p.llvm
|
|
||||||
p.markdown
|
|
||||||
p.markdown_inline
|
|
||||||
p.python
|
|
||||||
p.vim
|
|
||||||
p.yaml
|
|
||||||
])
|
|
||||||
);
|
|
||||||
type = "lua";
|
|
||||||
config = ( builtins.readFile ./files/treesitter.lua);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = which-key-nvim;
|
|
||||||
type = "lua";
|
|
||||||
config = ( builtins.readFile ./files/whichkey.lua );
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +1,6 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
config.modules = {
|
config.modules = {
|
||||||
|
cli.neovim.enable = true;
|
||||||
video.kdenlive.enable = false;
|
video.kdenlive.enable = false;
|
||||||
web.firefox.enable = true;
|
web.firefox.enable = true;
|
||||||
web.qutebrowser.enable = true;
|
web.qutebrowser.enable = true;
|
||||||
|
|
128
modules/home-manager/cli/neovim/default.nix
Normal file
128
modules/home-manager/cli/neovim/default.nix
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.cli.neovim;
|
||||||
|
nvim-spell-fr-utf8-dictionary = builtins.fetchurl {
|
||||||
|
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
|
||||||
|
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
|
||||||
|
};
|
||||||
|
nvim-spell-fr-utf8-suggestions = builtins.fetchurl {
|
||||||
|
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
|
||||||
|
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.cli.neovim = {
|
||||||
|
enable = mkEnableOption "enable Neovim text editor";
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.file."${config.xdg.configHome}/nvim/spell/fr.utf-8.spl".source = nvim-spell-fr-utf8-dictionary;
|
||||||
|
home.file."${config.xdg.configHome}/nvim/spell/fr.utf-8.sug".source = nvim-spell-fr-utf8-suggestions;
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
vimAlias = true;
|
||||||
|
withNodeJs = true;
|
||||||
|
withPython3 = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# LSP Servers
|
||||||
|
clang-tools
|
||||||
|
lua-language-server
|
||||||
|
marksman
|
||||||
|
nil
|
||||||
|
nodePackages.bash-language-server
|
||||||
|
python3Packages.python-lsp-server
|
||||||
|
rnix-lsp
|
||||||
|
shellcheck
|
||||||
|
|
||||||
|
# Formatters
|
||||||
|
nixfmt
|
||||||
|
shfmt
|
||||||
|
];
|
||||||
|
extraLuaConfig = (builtins.readFile ./files/options.lua);
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
{
|
||||||
|
plugin = nvim-autopairs;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
local autopair = require("nvim-autopairs").setup {}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-base16;
|
||||||
|
type = "lua";
|
||||||
|
config = ''
|
||||||
|
vim.cmd.colorscheme 'base16-default-dark'
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-cmp;
|
||||||
|
type = "lua";
|
||||||
|
config = (builtins.readFile ./files/cmp.lua);
|
||||||
|
}
|
||||||
|
cmp-buffer
|
||||||
|
cmp-nvim-lsp
|
||||||
|
cmp-path
|
||||||
|
cmp-cmdline
|
||||||
|
cmp_luasnip
|
||||||
|
{
|
||||||
|
plugin = gitsigns-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = (builtins.readFile ./files/luasnip.lua);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = indent-blankline-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config =''
|
||||||
|
require("ibl").setup{
|
||||||
|
indent = { char = "│"},
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = nvim-lspconfig;
|
||||||
|
type = "lua";
|
||||||
|
config = (builtins.readFile ./files/lspconfig.lua);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = lualine-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = (builtins.readFile ./files/lualine.lua);
|
||||||
|
}
|
||||||
|
luasnip
|
||||||
|
{
|
||||||
|
plugin = neo-tree-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = (builtins.readFile ./files/neotree.lua);
|
||||||
|
}
|
||||||
|
nui-nvim
|
||||||
|
plenary-nvim
|
||||||
|
{
|
||||||
|
plugin = (nvim-treesitter.withPlugins (p: [
|
||||||
|
p.bash
|
||||||
|
p.c
|
||||||
|
p.cpp
|
||||||
|
p.cmake
|
||||||
|
p.dockerfile
|
||||||
|
p.latex
|
||||||
|
p.lua
|
||||||
|
p.llvm
|
||||||
|
p.markdown
|
||||||
|
p.markdown_inline
|
||||||
|
p.python
|
||||||
|
p.vim
|
||||||
|
p.yaml
|
||||||
|
])
|
||||||
|
);
|
||||||
|
type = "lua";
|
||||||
|
config = ( builtins.readFile ./files/treesitter.lua);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = which-key-nvim;
|
||||||
|
type = "lua";
|
||||||
|
config = ( builtins.readFile ./files/whichkey.lua );
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./cli/neovim
|
||||||
./desktop/sway
|
./desktop/sway
|
||||||
./gaming/lutris
|
./gaming/lutris
|
||||||
./video/kdenlive
|
./video/kdenlive
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue