mirror of
https://github.com/dwinkler1/nvimConfig.git
synced 2026-05-22 20:13:32 -04:00
Simplified codebase
This commit is contained in:
parent
ad9473a916
commit
74600519a5
15 changed files with 83 additions and 280 deletions
|
|
@ -1,51 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
# This module implements category-based enabling of specs.
|
||||
# It runs early (order 200) so other specMaps can see the enable flags.
|
||||
#
|
||||
# How it works:
|
||||
# 1. For each spec, extract its name (removing -lazy suffix if present)
|
||||
# 2. Check if there's a corresponding cats.<name> toggle
|
||||
# 3. Set spec.value.enable based on the cats toggle (default: true)
|
||||
# 4. This allows specs to be conditionally included based on config.cats settings
|
||||
#
|
||||
# Example: If config.cats.python = false, then specs.python.enable = false
|
||||
|
||||
config.specMaps = lib.mkOrder 200 [
|
||||
{
|
||||
name = "CATS_ENABLE";
|
||||
data =
|
||||
list:
|
||||
map (
|
||||
v:
|
||||
if v.type == "spec" || v.type == "parent" then
|
||||
let
|
||||
# Extract spec name, handling lazy specs (remove -lazy suffix)
|
||||
specName =
|
||||
if v.name == null then
|
||||
null
|
||||
else if lib.hasSuffix "-lazy" v.name then
|
||||
lib.removeSuffix "-lazy" v.name
|
||||
else
|
||||
v.name;
|
||||
|
||||
# Check if this spec has a corresponding cat toggle
|
||||
catEnabled =
|
||||
if specName != null && builtins.hasAttr specName config.cats then
|
||||
config.cats.${specName}
|
||||
else
|
||||
true; # Default to enabled if no cat toggle exists
|
||||
in
|
||||
v
|
||||
// {
|
||||
value = v.value // {
|
||||
# Use explicit enable if set, otherwise use cat toggle
|
||||
enable = if v.value ? enable then v.value.enable else catEnabled;
|
||||
};
|
||||
}
|
||||
else
|
||||
v
|
||||
) list;
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
@ -5,24 +5,14 @@
|
|||
wlib,
|
||||
...
|
||||
}: {
|
||||
# ============================================================================
|
||||
# SPEC MODULE DEFAULTS
|
||||
# ============================================================================
|
||||
# Define default options available to all specs
|
||||
|
||||
config.specMods = {parentSpec ? null, ...}: {
|
||||
options.extraPackages = lib.mkOption {
|
||||
options.runtimePkgs = lib.mkOption {
|
||||
type = lib.types.listOf wlib.types.stringable;
|
||||
default = [];
|
||||
description = "a extraPackages spec field to put packages to suffix to the PATH";
|
||||
description = "a runtimePkgs spec field to put packages to suffix to the PATH";
|
||||
};
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# EXTERNAL TOOLS SPEC
|
||||
# ============================================================================
|
||||
# Core system tools and utilities
|
||||
|
||||
config.specs.external = {
|
||||
data = lib.mkDefault null;
|
||||
before = ["INIT_MAIN"];
|
||||
|
|
@ -30,7 +20,7 @@
|
|||
vim.o.shell = "${pkgs.zsh}/bin/zsh"
|
||||
'';
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
perl
|
||||
ruby
|
||||
shfmt
|
||||
|
|
@ -39,15 +29,11 @@
|
|||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL TOOLS SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.optional = lib.mkIf (config.cats.optional or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
before = ["INIT_MAIN"];
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
bat
|
||||
broot
|
||||
devenv
|
||||
|
|
@ -76,54 +62,38 @@
|
|||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# MARKDOWN SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.markdown = lib.mkIf (config.cats.markdown or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
python313Packages.pylatexenc
|
||||
quarto
|
||||
zk
|
||||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# NIX SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.nix = lib.mkIf (config.cats.nix or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
alejandra
|
||||
nix-doc
|
||||
nixd
|
||||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# LUA SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.lua = lib.mkIf (config.cats.lua or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
lua-language-server
|
||||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# PYTHON SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.python = lib.mkIf (config.cats.python or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = let
|
||||
runtimePkgs = let
|
||||
python_packages_fn =
|
||||
if pkgs ? basePythonPackages
|
||||
then ps: pkgs.basePythonPackages ps ++ config.settings.lang_packages.python
|
||||
|
|
@ -139,14 +109,10 @@
|
|||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# R SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.r = lib.mkIf (config.cats.r or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = let
|
||||
runtimePkgs = let
|
||||
r_packages = (pkgs.baseRPackages or []) ++ config.settings.lang_packages.r;
|
||||
in
|
||||
with pkgs; [
|
||||
|
|
@ -159,30 +125,22 @@
|
|||
];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# JULIA SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.julia = lib.mkIf (config.cats.julia or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = let
|
||||
runtimePkgs = let
|
||||
julia_with_packages =
|
||||
pkgs.julia-bin.withPackages config.settings.lang_packages.julia;
|
||||
in [julia_with_packages];
|
||||
};
|
||||
|
||||
# ============================================================================
|
||||
# CLICKHOUSE SPEC
|
||||
# ============================================================================
|
||||
|
||||
config.specs.clickhouse = lib.mkIf (config.cats.clickhouse or true) {
|
||||
data = lib.mkDefault null;
|
||||
runtimeDeps = "prefix";
|
||||
extraPackages = with pkgs; [
|
||||
runtimePkgs = with pkgs; [
|
||||
clickhouse-lts
|
||||
];
|
||||
};
|
||||
|
||||
config.extraPackages = config.specCollect (acc: v: acc ++ (v.extraPackages or [])) [];
|
||||
config.runtimePkgs = config.specCollect (acc: v: acc ++ (v.runtimePkgs or [])) [];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
lib,
|
||||
...
|
||||
}: {
|
||||
config.specs.gitPlugins = {
|
||||
config.specs.gitPlugins = lib.mkIf (config.cats.gitPlugins or true) {
|
||||
data = [];
|
||||
};
|
||||
|
||||
config.specs.r = {
|
||||
config.specs.r = lib.mkIf (config.cats.r or true) {
|
||||
data = with pkgs.vimPlugins; [
|
||||
pkgs.r-nvim
|
||||
quarto-nvim
|
||||
|
|
@ -19,14 +19,14 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.markdown-lazy = {
|
||||
config.specs.markdown-lazy = lib.mkIf (config.cats.markdown or true) {
|
||||
lazy = true;
|
||||
data = [
|
||||
config.nvim-lib.neovimPlugins.cmp-pandoc-references
|
||||
];
|
||||
};
|
||||
|
||||
config.specs.general = {
|
||||
config.specs.general = lib.mkIf (config.cats.general or true) {
|
||||
data = with pkgs.vimPlugins; [
|
||||
lze
|
||||
lzextras
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.lua = {
|
||||
config.specs.lua = lib.mkIf (config.cats.lua or true) {
|
||||
data = with pkgs.vimPlugins; [
|
||||
luvit-meta
|
||||
{
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.markdown = {
|
||||
config.specs.markdown = lib.mkIf (config.cats.markdown or true) {
|
||||
data = with pkgs.vimPlugins; [
|
||||
quarto-nvim
|
||||
render-markdown-nvim
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.utils = {
|
||||
config.specs.utils = lib.mkIf (config.cats.utils or true) {
|
||||
data = with pkgs.vimPlugins; [
|
||||
blink-cmp
|
||||
nvim-lspconfig
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.treesitterParsers = {
|
||||
config.specs.treesitterParsers = lib.mkIf (config.cats.treesitterParsers or true) {
|
||||
data = with pkgs.vimPlugins.nvim-treesitter-parsers; [
|
||||
bash
|
||||
c
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.utils-lazy = {
|
||||
config.specs.utils-lazy = lib.mkIf (config.cats.utils or true) {
|
||||
lazy = true;
|
||||
data = with pkgs.vimPlugins; [
|
||||
blink-compat
|
||||
|
|
@ -175,7 +175,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
config.specs.gitPlugins-lazy = {
|
||||
config.specs.gitPlugins-lazy = lib.mkIf (config.cats.gitPlugins or true) {
|
||||
lazy = true;
|
||||
data = [];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue