nix: move all plugins to flake
This commit is contained in:
parent
afa9f5caf9
commit
38cf6958e8
7 changed files with 460 additions and 49 deletions
15
default.nix
15
default.nix
|
@ -3,8 +3,10 @@
|
||||||
, enableTabby ? false
|
, enableTabby ? false
|
||||||
, viAlias ? false
|
, viAlias ? false
|
||||||
, vimAlias ? false
|
, vimAlias ? false
|
||||||
|
, theme ? { }
|
||||||
, wrapNeovim
|
, wrapNeovim
|
||||||
, neovim-unwrapped
|
, neovim-unwrapped
|
||||||
|
, tree-sitter
|
||||||
, vimPlugins
|
, vimPlugins
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
@ -19,17 +21,24 @@ let
|
||||||
|
|
||||||
plugins = callPlugins [
|
plugins = callPlugins [
|
||||||
./plugins/config
|
./plugins/config
|
||||||
./plugins/syntax
|
(import ./plugins/syntax {
|
||||||
|
inherit tree-sitter;
|
||||||
|
})
|
||||||
./plugins/git
|
./plugins/git
|
||||||
./plugins/explorer
|
./plugins/explorer
|
||||||
(import ./plugins/theme {
|
(import ./plugins/theme {
|
||||||
inherit enableDevIcons enableBarBar enableTabby;
|
inherit enableDevIcons enableTabby;
|
||||||
|
inherit theme;
|
||||||
})
|
})
|
||||||
./plugins/lsp
|
./plugins/lsp
|
||||||
./plugins/formatter
|
./plugins/formatter
|
||||||
./plugins/ux
|
./plugins/ux
|
||||||
];
|
];
|
||||||
|
|
||||||
|
basePlugins = [ vimPlugins.plenary-nvim ];
|
||||||
|
customPlugins = builtins.catAttrs "plugins" plugins;
|
||||||
|
allPlugins = basePlugins ++ customPlugins;
|
||||||
|
|
||||||
basicConfigs = builtins.map builtins.readFile [ ./config/basic.lua ];
|
basicConfigs = builtins.map builtins.readFile [ ./config/basic.lua ];
|
||||||
pluginConfigs = builtins.catAttrs "luaConfig" plugins;
|
pluginConfigs = builtins.catAttrs "luaConfig" plugins;
|
||||||
allConfigs = basicConfigs ++ pluginConfigs;
|
allConfigs = basicConfigs ++ pluginConfigs;
|
||||||
|
@ -45,6 +54,6 @@ wrapNeovim neovim-unwrapped {
|
||||||
configure = {
|
configure = {
|
||||||
customRC = lib.mkLuaRc allConfigs;
|
customRC = lib.mkLuaRc allConfigs;
|
||||||
|
|
||||||
packages.myVimPackages = { start = builtins.catAttrs "plugins" plugins; };
|
packages.myVimPackages = { start = allPlugins; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
251
flake.lock
251
flake.lock
|
@ -1,5 +1,39 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"cmp-luasnip": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1651433493,
|
||||||
|
"narHash": "sha256-8ocJY5qeAJXFSuTnavXX6NvZyAB0EEn2Y+amrWp8B1Y=",
|
||||||
|
"owner": "saadparwaiz1",
|
||||||
|
"repo": "cmp_luasnip",
|
||||||
|
"rev": "a9de941bcbda508d0a45d28ae366bb3f08db2e36",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "saadparwaiz1",
|
||||||
|
"repo": "cmp_luasnip",
|
||||||
|
"rev": "a9de941bcbda508d0a45d28ae366bb3f08db2e36",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cmp-nvim-lsp": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1652705110,
|
||||||
|
"narHash": "sha256-19Ka4EQhqo//IMjJ/DnXiHsevVWFy2M90oSjmBFfCO0=",
|
||||||
|
"owner": "hrsh7th",
|
||||||
|
"repo": "cmp-nvim-lsp",
|
||||||
|
"rev": "affe808a5c56b71630f17aa7c38e15c59fd648a8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hrsh7th",
|
||||||
|
"repo": "cmp-nvim-lsp",
|
||||||
|
"rev": "affe808a5c56b71630f17aa7c38e15c59fd648a8",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"editorconfig-nvim": {
|
"editorconfig-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -17,6 +51,23 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"gitsigns-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663543397,
|
||||||
|
"narHash": "sha256-FgNSwvW7Bk+eKutMj0zqEorJ3+ijCALtOXs2OYiSX1I=",
|
||||||
|
"owner": "lewis6991",
|
||||||
|
"repo": "gitsigns.nvim",
|
||||||
|
"rev": "f98c85e7c3d65a51f45863a34feb4849c82f240f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lewis6991",
|
||||||
|
"repo": "gitsigns.nvim",
|
||||||
|
"rev": "f98c85e7c3d65a51f45863a34feb4849c82f240f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lspsaga-nvim": {
|
"lspsaga-nvim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -34,6 +85,74 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lualine-lsp-progress": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1634947677,
|
||||||
|
"narHash": "sha256-8HMtydFDzTxsuKvce+bIra9vZ9zHfEBHyR346W635b8=",
|
||||||
|
"owner": "arkav",
|
||||||
|
"repo": "lualine-lsp-progress",
|
||||||
|
"rev": "56842d097245a08d77912edf5f2a69ba29f275d7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "arkav",
|
||||||
|
"repo": "lualine-lsp-progress",
|
||||||
|
"rev": "56842d097245a08d77912edf5f2a69ba29f275d7",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lualine-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1662921346,
|
||||||
|
"narHash": "sha256-bGVozEoffFxjiLACTfnDGX11yIHGhLawQWn80Nbd6TM=",
|
||||||
|
"owner": "nvim-lualine",
|
||||||
|
"repo": "lualine.nvim",
|
||||||
|
"rev": "a52f078026b27694d2290e34efa61a6e4a690621",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nvim-lualine",
|
||||||
|
"repo": "lualine.nvim",
|
||||||
|
"rev": "a52f078026b27694d2290e34efa61a6e4a690621",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"luaship": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663664003,
|
||||||
|
"narHash": "sha256-56x4Eke/7Cdn4/8T0SM73WpDqBSFq1vFY5VdkNlUBwI=",
|
||||||
|
"owner": "L3MON4D3",
|
||||||
|
"repo": "LuaSnip",
|
||||||
|
"rev": "d36c063b7f6e701852f7880f1314656592a61b4f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "L3MON4D3",
|
||||||
|
"repo": "LuaSnip",
|
||||||
|
"rev": "d36c063b7f6e701852f7880f1314656592a61b4f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoformat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1661997045,
|
||||||
|
"narHash": "sha256-x+TDVvH0DgmCCjOjhbE2/YaxnjCd4fcPxuQD6bhwVNs=",
|
||||||
|
"owner": "sbdchd",
|
||||||
|
"repo": "neoformat",
|
||||||
|
"rev": "0ae951121da29a157d80db70c32679b428afffdc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sbdchd",
|
||||||
|
"repo": "neoformat",
|
||||||
|
"rev": "0ae951121da29a157d80db70c32679b428afffdc",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1663146586,
|
"lastModified": 1663146586,
|
||||||
|
@ -50,6 +169,40 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nvim-cmp": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663990701,
|
||||||
|
"narHash": "sha256-gpkPMlOUMfTlef5WRFHLkmKEDZ9TRA/yRPqb6UXnKOA=",
|
||||||
|
"owner": "hrsh7th",
|
||||||
|
"repo": "nvim-cmp",
|
||||||
|
"rev": "17a55b3d5498c617855d015bbcad0c872d10c879",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hrsh7th",
|
||||||
|
"repo": "nvim-cmp",
|
||||||
|
"rev": "17a55b3d5498c617855d015bbcad0c872d10c879",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nvim-lspconfig": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663921594,
|
||||||
|
"narHash": "sha256-uCFhwcR4oW+4wrSt6rx5G8k75dOLeqmYzW1G1CYlLkM=",
|
||||||
|
"owner": "neovim",
|
||||||
|
"repo": "nvim-lspconfig",
|
||||||
|
"rev": "d4eb971db353ccf78cefb3be1b05483b69ec1e69",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "neovim",
|
||||||
|
"repo": "nvim-lspconfig",
|
||||||
|
"rev": "d4eb971db353ccf78cefb3be1b05483b69ec1e69",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nvim-tree-lua": {
|
"nvim-tree-lua": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -67,14 +220,78 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nvim-treesitter": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1664008557,
|
||||||
|
"narHash": "sha256-hZqZkXrIw9OfXLqioSqagmEPoIz8gcT+WpEhVURdeHw=",
|
||||||
|
"owner": "nvim-treesitter",
|
||||||
|
"repo": "nvim-treesitter",
|
||||||
|
"rev": "a60aa7b2e1dd9219c6356f65ba48bdbd50090abd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nvim-treesitter",
|
||||||
|
"repo": "nvim-treesitter",
|
||||||
|
"rev": "a60aa7b2e1dd9219c6356f65ba48bdbd50090abd",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nvim-web-devicons": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663532214,
|
||||||
|
"narHash": "sha256-e8FP68mEmPAEbk+rYEKKGi0ZTJHDCPxrulnivkzInXk=",
|
||||||
|
"owner": "kyazdani42",
|
||||||
|
"repo": "nvim-web-devicons",
|
||||||
|
"rev": "969728506c0175644a1d448f55e311ccdada7eaf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kyazdani42",
|
||||||
|
"repo": "nvim-web-devicons",
|
||||||
|
"rev": "969728506c0175644a1d448f55e311ccdada7eaf",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plenary-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663402373,
|
||||||
|
"narHash": "sha256-d06QP5JGhpH6UUVF9STYzfJMzvg5HrJfDqlAoVXaLeM=",
|
||||||
|
"owner": "nvim-lua",
|
||||||
|
"repo": "plenary.nvim",
|
||||||
|
"rev": "62dc2a7acd2fb2581871a36c1743b29e26c60390",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nvim-lua",
|
||||||
|
"repo": "plenary.nvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"cmp-luasnip": "cmp-luasnip",
|
||||||
|
"cmp-nvim-lsp": "cmp-nvim-lsp",
|
||||||
"editorconfig-nvim": "editorconfig-nvim",
|
"editorconfig-nvim": "editorconfig-nvim",
|
||||||
|
"gitsigns-nvim": "gitsigns-nvim",
|
||||||
"lspsaga-nvim": "lspsaga-nvim",
|
"lspsaga-nvim": "lspsaga-nvim",
|
||||||
|
"lualine-lsp-progress": "lualine-lsp-progress",
|
||||||
|
"lualine-nvim": "lualine-nvim",
|
||||||
|
"luaship": "luaship",
|
||||||
|
"neoformat": "neoformat",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nvim-cmp": "nvim-cmp",
|
||||||
|
"nvim-lspconfig": "nvim-lspconfig",
|
||||||
"nvim-tree-lua": "nvim-tree-lua",
|
"nvim-tree-lua": "nvim-tree-lua",
|
||||||
|
"nvim-treesitter": "nvim-treesitter",
|
||||||
|
"nvim-web-devicons": "nvim-web-devicons",
|
||||||
|
"plenary-nvim": "plenary-nvim",
|
||||||
"tabby-nvim": "tabby-nvim",
|
"tabby-nvim": "tabby-nvim",
|
||||||
"telescope-live-grep-args-nvim": "telescope-live-grep-args-nvim",
|
"telescope-live-grep-args-nvim": "telescope-live-grep-args-nvim",
|
||||||
|
"telescope-nvim": "telescope-nvim",
|
||||||
|
"theme": "theme",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -112,6 +329,40 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"telescope-nvim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663402536,
|
||||||
|
"narHash": "sha256-hIOg0rFAek9p6/k2USBAPQwIoVdSJ+Tw6A0jrup9xto=",
|
||||||
|
"owner": "nvim-telescope",
|
||||||
|
"repo": "telescope.nvim",
|
||||||
|
"rev": "30e2dc5232d0dd63709ef8b44a5d6184005e8602",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nvim-telescope",
|
||||||
|
"repo": "telescope.nvim",
|
||||||
|
"rev": "30e2dc5232d0dd63709ef8b44a5d6184005e8602",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1663990749,
|
||||||
|
"narHash": "sha256-EdmZ5qXY10jkYBgtd/qe23Ccl5qwFm3bwXNQIG8Qn5A=",
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nvim",
|
||||||
|
"rev": "9ac18414f0446478024b19018d73b7ea14f6fc96",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "catppuccin",
|
||||||
|
"repo": "nvim",
|
||||||
|
"rev": "9ac18414f0446478024b19018d73b7ea14f6fc96",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1659877975,
|
||||||
|
|
150
flake.nix
150
flake.nix
|
@ -3,51 +3,175 @@
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
utils.url = "github:numtide/flake-utils";
|
utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
nvim-tree-lua = {
|
# Plenary (required by crates-nvim)
|
||||||
url = "github:kyazdani42/nvim-tree.lua?rev=0417d9148b6546bf4883b6e9750f992f980afbfe";
|
plenary-nvim = {
|
||||||
|
url = "github:nvim-lua/plenary.nvim";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
tabby-nvim = {
|
# config
|
||||||
url = "github:nanozuki/tabby.nvim?rev=916c9e56d043906a441cd9f905e2ca1f5c4dddb0";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
# https://github.com/gpanders/editorconfig.nvim
|
||||||
editorconfig-nvim = {
|
editorconfig-nvim = {
|
||||||
url = "github:gpanders/editorconfig.nvim?rev=7d10fe6bc340fd783c0b61cf627dd235100284db";
|
url = "github:gpanders/editorconfig.nvim?rev=7d10fe6bc340fd783c0b61cf627dd235100284db";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# explorer
|
||||||
|
|
||||||
|
# https://github.com/kyazdani42/nvim-tree.lua
|
||||||
|
nvim-tree-lua = {
|
||||||
|
url = "github:kyazdani42/nvim-tree.lua?rev=0417d9148b6546bf4883b6e9750f992f980afbfe";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/nvim-telescope/telescope.nvim
|
||||||
|
telescope-nvim = {
|
||||||
|
url = "github:nvim-telescope/telescope.nvim?rev=30e2dc5232d0dd63709ef8b44a5d6184005e8602";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/nvim-telescope/telescope-live-grep-args.nvim
|
||||||
telescope-live-grep-args-nvim = {
|
telescope-live-grep-args-nvim = {
|
||||||
url = "github:nvim-telescope/telescope-live-grep-args.nvim?rev=32b633b062d1168a2d18ad27994e5b4ef97f0a74";
|
url = "github:nvim-telescope/telescope-live-grep-args.nvim?rev=32b633b062d1168a2d18ad27994e5b4ef97f0a74";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# formatter
|
||||||
|
|
||||||
|
# https://github.com/sbdchd/neoformat
|
||||||
|
neoformat = {
|
||||||
|
url = "github:sbdchd/neoformat?rev=0ae951121da29a157d80db70c32679b428afffdc";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# git
|
||||||
|
|
||||||
|
# https://github.com/lewis6991/gitsigns.nvim
|
||||||
|
gitsigns-nvim = {
|
||||||
|
url = "github:lewis6991/gitsigns.nvim?rev=f98c85e7c3d65a51f45863a34feb4849c82f240f";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# lsp
|
||||||
|
|
||||||
|
# https://github.com/neovim/nvim-lspconfig
|
||||||
|
nvim-lspconfig = {
|
||||||
|
url = "github:neovim/nvim-lspconfig?rev=d4eb971db353ccf78cefb3be1b05483b69ec1e69";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/glepnir/lspsaga.nvim
|
||||||
lspsaga-nvim = {
|
lspsaga-nvim = {
|
||||||
url = "github:glepnir/lspsaga.nvim?rev=c2ef0115fb917460daf5c76fe3ad3a9357213b54";
|
url = "github:glepnir/lspsaga.nvim?rev=c2ef0115fb917460daf5c76fe3ad3a9357213b54";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/L3MON4D3/LuaSnip
|
||||||
|
luaship = {
|
||||||
|
url = "github:L3MON4D3/LuaSnip?rev=d36c063b7f6e701852f7880f1314656592a61b4f";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/hrsh7th/nvim-cmp
|
||||||
|
nvim-cmp = {
|
||||||
|
url = "github:hrsh7th/nvim-cmp?rev=17a55b3d5498c617855d015bbcad0c872d10c879";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/hrsh7th/cmp-nvim-lsp
|
||||||
|
cmp-nvim-lsp = {
|
||||||
|
url = "github:hrsh7th/cmp-nvim-lsp?rev=affe808a5c56b71630f17aa7c38e15c59fd648a8";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/saadparwaiz1/cmp_luasnip
|
||||||
|
cmp-luasnip = {
|
||||||
|
url = "github:saadparwaiz1/cmp_luasnip?rev=a9de941bcbda508d0a45d28ae366bb3f08db2e36";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# syntax
|
||||||
|
|
||||||
|
# https://github.com/nvim-treesitter/nvim-treesitter
|
||||||
|
nvim-treesitter = {
|
||||||
|
url = "github:nvim-treesitter/nvim-treesitter?rev=a60aa7b2e1dd9219c6356f65ba48bdbd50090abd";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# theme
|
||||||
|
|
||||||
|
# https://github.com/nanozuki/tabby.nvim
|
||||||
|
tabby-nvim = {
|
||||||
|
url = "github:nanozuki/tabby.nvim?rev=916c9e56d043906a441cd9f905e2ca1f5c4dddb0";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/nvim-lualine/lualine.nvim
|
||||||
|
lualine-nvim = {
|
||||||
|
url = "github:nvim-lualine/lualine.nvim?rev=a52f078026b27694d2290e34efa61a6e4a690621";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/arkav/lualine-lsp-progress
|
||||||
|
lualine-lsp-progress = {
|
||||||
|
url = "github:/arkav/lualine-lsp-progress?rev=56842d097245a08d77912edf5f2a69ba29f275d7";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/kyazdani42/nvim-web-devicons
|
||||||
|
nvim-web-devicons = {
|
||||||
|
url = "github:kyazdani42/nvim-web-devicons?rev=969728506c0175644a1d448f55e311ccdada7eaf";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/catppuccin/nvim
|
||||||
|
theme = {
|
||||||
|
url = "github:catppuccin/nvim?rev=9ac18414f0446478024b19018d73b7ea14f6fc96";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, utils, ... }:
|
outputs = inputs @ { self, nixpkgs, utils, ... }:
|
||||||
utils.lib.eachDefaultSystem (system:
|
utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
inputPlugins = [
|
inputPlugins = [
|
||||||
"nvim-tree-lua"
|
"plenary-nvim"
|
||||||
"tabby-nvim"
|
# config
|
||||||
"editorconfig-nvim"
|
"editorconfig-nvim"
|
||||||
|
# explorer
|
||||||
|
"nvim-tree-lua"
|
||||||
|
"telescope-nvim"
|
||||||
"telescope-live-grep-args-nvim"
|
"telescope-live-grep-args-nvim"
|
||||||
|
# formatter
|
||||||
|
"neoformat"
|
||||||
|
# git
|
||||||
|
"gitsigns-nvim"
|
||||||
|
# lsp
|
||||||
|
"nvim-lspconfig"
|
||||||
"lspsaga-nvim"
|
"lspsaga-nvim"
|
||||||
|
"luaship"
|
||||||
|
"nvim-cmp"
|
||||||
|
"cmp-nvim-lsp"
|
||||||
|
"cmp-luasnip"
|
||||||
|
# syntax
|
||||||
|
"nvim-treesitter"
|
||||||
|
# theme
|
||||||
|
"tabby-nvim"
|
||||||
|
"lualine-nvim"
|
||||||
|
"lualine-lsp-progress"
|
||||||
|
"nvim-web-devicons"
|
||||||
|
"theme"
|
||||||
];
|
];
|
||||||
|
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
overlays = [
|
overlays = [
|
||||||
(f: p:
|
(final: prev:
|
||||||
let
|
let
|
||||||
inherit (p.lib) listToAttrs nameValuePair;
|
inherit (prev.lib) listToAttrs nameValuePair;
|
||||||
|
|
||||||
buildPlugin = name: p.vimUtils.buildVimPluginFrom2Nix {
|
buildPlugin = name: prev.vimUtils.buildVimPluginFrom2Nix {
|
||||||
name = name;
|
name = name;
|
||||||
src = builtins.getAttr name inputs;
|
src = builtins.getAttr name inputs;
|
||||||
};
|
};
|
||||||
|
@ -56,7 +180,9 @@
|
||||||
|
|
||||||
customPlugins = listToAttrs (builtins.map buildPluginValuePair inputPlugins);
|
customPlugins = listToAttrs (builtins.map buildPluginValuePair inputPlugins);
|
||||||
in
|
in
|
||||||
{ vimPlugins = p.vimPlugins // customPlugins; }
|
{
|
||||||
|
vimPlugins = prev.vimPlugins // customPlugins;
|
||||||
|
}
|
||||||
)
|
)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
23
lib.nix
23
lib.nix
|
@ -1,15 +1,17 @@
|
||||||
rec {
|
let
|
||||||
#############################################################################
|
inherit (builtins) length elemAt isList isString hasAttr getAttr;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
# Helpers
|
# Helpers
|
||||||
|
|
||||||
# Source: https://github.com/NixOS/nixpkgs/blob/d61bc96d16ca288c69b798b8e31eca64050098e3/lib/lists.nix
|
# Source: https://github.com/NixOS/nixpkgs/blob/d61bc96d16ca288c69b798b8e31eca64050098e3/lib/lists.nix
|
||||||
foldr = op: nul: list:
|
foldr = op: nul: list:
|
||||||
let
|
let
|
||||||
len = builtins.length list;
|
len = length list;
|
||||||
fold' = n:
|
fold' = n:
|
||||||
if n == len
|
if n == len
|
||||||
then nul
|
then nul
|
||||||
else op (builtins.elemAt list n) (fold' (n + 1));
|
else op (elemAt list n) (fold' (n + 1));
|
||||||
in
|
in
|
||||||
fold' 0;
|
fold' 0;
|
||||||
|
|
||||||
|
@ -25,12 +27,15 @@ rec {
|
||||||
optional = cond: val:
|
optional = cond: val:
|
||||||
let
|
let
|
||||||
def =
|
def =
|
||||||
if builtins.isList val then [ ]
|
if isList val then [ ]
|
||||||
else if builtins.isString val then ""
|
else if isString val then ""
|
||||||
else null;
|
else null;
|
||||||
in
|
in
|
||||||
if cond then val else def;
|
if cond then val else def;
|
||||||
|
|
||||||
|
getAttrOpt = a: s:
|
||||||
|
if hasAttr a s then getAttr a s else null;
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Lua
|
# Lua
|
||||||
|
|
||||||
|
@ -41,4 +46,10 @@ rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mkLuaRc = contents: concatMap mkLuaHeredoc contents;
|
mkLuaRc = contents: concatMap mkLuaHeredoc contents;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit foldr concatMap;
|
||||||
|
inherit optional getAttrOpt;
|
||||||
|
inherit mkLuaHeredoc mkLuaRc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,35 @@
|
||||||
|
{ tree-sitter, ... }:
|
||||||
|
|
||||||
{ nvim-treesitter, ... }:
|
{ nvim-treesitter, ... }:
|
||||||
|
|
||||||
|
|
||||||
|
let
|
||||||
|
treesitterGrammars = tree-sitter.withPlugins
|
||||||
|
(grammars: with grammars; [
|
||||||
|
tree-sitter-nix
|
||||||
|
tree-sitter-lua
|
||||||
|
tree-sitter-ledger
|
||||||
|
tree-sitter-yaml
|
||||||
|
tree-sitter-json
|
||||||
|
tree-sitter-typescript
|
||||||
|
tree-sitter-javascript
|
||||||
|
tree-sitter-rust
|
||||||
|
tree-sitter-haskell
|
||||||
|
tree-sitter-bash
|
||||||
|
]);
|
||||||
|
|
||||||
|
nvim-treesitter-with-grammars = nvim-treesitter.overrideAttrs (oldAttrs: {
|
||||||
|
postPatch = ''
|
||||||
|
rm -r parser
|
||||||
|
ln -s ${treesitterGrammars} parser
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
in
|
||||||
{
|
{
|
||||||
luaConfig = builtins.readFile ./treesitter.lua;
|
luaConfig = builtins.readFile ./treesitter.lua;
|
||||||
|
|
||||||
plugins = [
|
plugins = [
|
||||||
(nvim-treesitter.withPlugins
|
nvim-treesitter-with-grammars
|
||||||
(ts: with ts; [
|
|
||||||
tree-sitter-nix
|
|
||||||
tree-sitter-lua
|
|
||||||
tree-sitter-ledger
|
|
||||||
tree-sitter-yaml
|
|
||||||
tree-sitter-json
|
|
||||||
tree-sitter-typescript
|
|
||||||
tree-sitter-javascript
|
|
||||||
tree-sitter-rust
|
|
||||||
tree-sitter-haskell
|
|
||||||
tree-sitter-bash
|
|
||||||
]))
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
vim.g.catppuccin_flavour = "frappe" -- latte, frappe, macchiato, mocha
|
|
||||||
|
|
||||||
require("catppuccin").setup()
|
|
||||||
|
|
||||||
vim.cmd([[colorscheme catppuccin]])
|
|
|
@ -1,31 +1,36 @@
|
||||||
{ enableDevIcons ? false
|
{ enableDevIcons ? false
|
||||||
, enableBarBar ? false
|
|
||||||
, enableTabby ? false
|
, enableTabby ? false
|
||||||
|
, theme ? { }
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{ lib
|
{ lib
|
||||||
, catppuccin-nvim
|
, theme
|
||||||
, lualine-nvim
|
, lualine-nvim
|
||||||
, lualine-lsp-progress
|
, lualine-lsp-progress
|
||||||
, nvim-web-devicons
|
, nvim-web-devicons
|
||||||
, barbar-nvim
|
|
||||||
, tabby-nvim
|
, tabby-nvim
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
lualinePlugins = [ lualine-nvim lualine-lsp-progress ];
|
inherit (builtins) readFile isString;
|
||||||
|
|
||||||
|
themeFlavour = if isString (lib.getAttrOpt "flavour" theme) then theme.flavour else "frappe";
|
||||||
|
themeConfig = if isString (lib.getAttrOpt "config" theme) then theme.config else ''
|
||||||
|
vim.g.catppuccin_flavour = "${themeFlavour}"
|
||||||
|
require("catppuccin").setup()
|
||||||
|
vim.cmd([[colorscheme catppuccin]])
|
||||||
|
'';
|
||||||
|
|
||||||
|
lualinePlugins = [ lualine-nvim lualine-lsp-progress ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
luaConfig = (builtins.readFile ./catppuccin-nvim.lua)
|
luaConfig = themeConfig
|
||||||
+ (builtins.readFile ./lualine.lua)
|
+ (readFile ./lualine.lua)
|
||||||
+ (lib.optional enableBarBar (builtins.readFile ./barbar.lua))
|
+ (lib.optional enableTabby (readFile ./tabby-nvim.lua));
|
||||||
+ (lib.optional enableTabby (builtins.readFile ./tabby-nvim.lua));
|
|
||||||
|
|
||||||
plugins = [ catppuccin-nvim ]
|
plugins = [ theme ]
|
||||||
++ lualinePlugins
|
++ lualinePlugins
|
||||||
++ (lib.optional enableDevIcons [ nvim-web-devicons ])
|
++ (lib.optional enableDevIcons [ nvim-web-devicons ])
|
||||||
++ (lib.optional enableBarBar [ barbar-nvim ])
|
|
||||||
++ (lib.optional enableTabby [ tabby-nvim ]);
|
++ (lib.optional enableTabby [ tabby-nvim ]);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue