232 lines
6.4 KiB
Nix
232 lines
6.4 KiB
Nix
{
|
|
inputs,
|
|
spkgs,
|
|
...
|
|
}: let
|
|
inherit
|
|
(inputs.nixcats)
|
|
utils
|
|
;
|
|
in {
|
|
imports = [
|
|
inputs.nixcats.homeModule
|
|
];
|
|
|
|
config = {
|
|
# this value, nixCats is the defaultPackageName you pass to mkNixosModules
|
|
# it will be the namespace for your options.
|
|
nixCats = {
|
|
enable = true;
|
|
nixpkgs_version = inputs.nixpkgs-unstable;
|
|
# this will add the overlays from ./overlays and also,
|
|
# add any plugins in inputs named "plugins-pluginName" to pkgs.neovimPlugins
|
|
# It will not apply to overall system, just nixCats.
|
|
addOverlays =
|
|
/*
|
|
(import ./overlays inputs) ++
|
|
*/
|
|
[
|
|
(utils.standardPluginOverlay inputs)
|
|
];
|
|
# see the packageDefinitions below.
|
|
# This says which of those to install.
|
|
packageNames = ["auroranvim"];
|
|
|
|
luaPath = "${./.}";
|
|
|
|
# the .replace vs .merge options are for modules based on existing configurations,
|
|
# they refer to how multiple categoryDefinitions get merged together by the module.
|
|
# for useage of this section, refer to :h nixCats.flake.outputs.categories
|
|
categoryDefinitions.replace = {
|
|
pkgs,
|
|
settings,
|
|
categories,
|
|
extra,
|
|
name,
|
|
mkNvimPlugin,
|
|
...
|
|
} @ packageDef: {
|
|
lspsAndRuntimeDeps = {
|
|
general = with pkgs; [
|
|
ripgrep
|
|
fd
|
|
];
|
|
treesitter = with pkgs; [
|
|
tree-sitter
|
|
];
|
|
lang = with pkgs; {
|
|
lua = [
|
|
lua-language-server
|
|
];
|
|
nix = [
|
|
nil
|
|
nix-doc
|
|
];
|
|
rust = with pkgs; [
|
|
cargo
|
|
rust-analyzer
|
|
];
|
|
zig = with pkgs; [
|
|
spkgs.zls # FIX: using spkgs version as zls is broken rn ;-;
|
|
];
|
|
elixir = with pkgs; [
|
|
elixir-ls
|
|
];
|
|
gleam = with pkgs; [
|
|
gleam
|
|
];
|
|
java = with pkgs; [
|
|
jdt-language-server
|
|
javaPackages.compiler.openjdk17
|
|
javaPackages.compiler.openjdk21
|
|
];
|
|
};
|
|
};
|
|
|
|
startupPlugins = {
|
|
general = with pkgs.vimPlugins; [
|
|
lze
|
|
plenary-nvim
|
|
nvim-notify
|
|
nvim-web-devicons
|
|
base16-nvim
|
|
mini-nvim
|
|
];
|
|
treesitter = with pkgs.vimPlugins; [
|
|
nvim-treesitter-textobjects
|
|
nvim-treesitter.withAllGrammars
|
|
];
|
|
};
|
|
optionalPlugins = {
|
|
general = with pkgs.vimPlugins; [
|
|
];
|
|
ui = with pkgs.vimPlugins; [
|
|
dressing-nvim
|
|
];
|
|
qol = with pkgs.vimPlugins; [
|
|
undotree
|
|
mini-hipatterns
|
|
];
|
|
telescope = with pkgs.vimPlugins; [
|
|
telescope-nvim
|
|
telescope-fzf-native-nvim
|
|
telescope-ui-select-nvim
|
|
];
|
|
fyler = with pkgs.vimPlugins; [
|
|
fyler-nvim
|
|
];
|
|
lsp = with pkgs.vimPlugins; [
|
|
nvim-lspconfig
|
|
];
|
|
completion = with pkgs.vimPlugins; [
|
|
blink-cmp
|
|
nvim-cmp
|
|
luasnip
|
|
friendly-snippets
|
|
cmp_luasnip
|
|
cmp-buffer
|
|
cmp-path
|
|
cmp-nvim-lua
|
|
cmp-nvim-lsp
|
|
cmp-cmdline
|
|
cmp-nvim-lsp-signature-help
|
|
cmp-cmdline-history
|
|
lspkind-nvim
|
|
];
|
|
lang = with pkgs.vimPlugins; {
|
|
java = [
|
|
nvim-jdtls
|
|
];
|
|
};
|
|
discord = with pkgs.vimPlugins; [
|
|
neocord # discord presence plugin :3
|
|
];
|
|
};
|
|
|
|
# shared libraries to be added to LD_LIBRARY_PATH
|
|
# variable available to nvim runtime
|
|
sharedLibraries = {
|
|
general = with pkgs; [
|
|
# libgit2
|
|
];
|
|
};
|
|
environmentVariables = {
|
|
lang = {
|
|
rust = {
|
|
# it literally won't see the rust-analyzer provided to it
|
|
# if you don't use an envrionment variable to tell it
|
|
RUST_ANALYZER_CMD = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
|
};
|
|
elixir = {
|
|
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
|
|
};
|
|
java = {
|
|
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
|
|
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
|
|
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
|
|
};
|
|
};
|
|
};
|
|
extraWrapperArgs = {
|
|
test = [
|
|
''--set CATTESTVAR2 "It worked again!"''
|
|
];
|
|
};
|
|
# lists of the functions you would have passed to
|
|
# python.withPackages or lua.withPackages
|
|
|
|
# get the path to this python environment
|
|
# in your lua config via
|
|
# vim.g.python3_host_prog
|
|
# or run from nvim terminal via :!<packagename>-python3
|
|
extraPython3Packages = {
|
|
test = _: [];
|
|
};
|
|
# populates $LUA_PATH and $LUA_CPATH
|
|
extraLuaPackages = {
|
|
test = [(_: [])];
|
|
};
|
|
};
|
|
|
|
# see :help nixCats.flake.outputs.packageDefinitions
|
|
packageDefinitions.replace = {
|
|
# these are the names of your packages
|
|
# you can include as many as you wish.
|
|
auroranvim = {pkgs, ...}: {
|
|
# they contain a settings set defined above
|
|
# see :help nixCats.flake.outputs.settings
|
|
settings = {
|
|
wrapRc = true;
|
|
# IMPORTANT:
|
|
# your alias may not conflict with your other packages.
|
|
aliases = ["auroravim" "auravim" "foxyvim" "avix" "fvix" "auim"];
|
|
};
|
|
# and a set of categories that you want
|
|
# (and other information to pass to lua)
|
|
categories = {
|
|
general = true;
|
|
|
|
ui = true;
|
|
qol = true;
|
|
telescope = true;
|
|
fyler = true;
|
|
lsp = true;
|
|
completion = true;
|
|
treesitter = true;
|
|
discord = false;
|
|
|
|
lang = {
|
|
lua = true;
|
|
nix = true;
|
|
rust = true;
|
|
zig = true;
|
|
elixir = true;
|
|
gleam = true;
|
|
java = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|