Compare commits

..

12 commits

Author SHA1 Message Date
raf
90c3258496
Merge branch 'main' into feature/listof-str-border 2024-09-13 19:32:42 +03:00
b347757f8a
flake: bump nixpkgs input
Some checks are pending
Set up binary cache / cachix (default) (push) Waiting to run
Set up binary cache / cachix (maximal) (push) Waiting to run
Set up binary cache / cachix (nix) (push) Waiting to run
Validate flake & check formatting / Validate Flake (push) Waiting to run
Validate flake & check formatting / Formatting via Alejandra (push) Waiting to run
Fixes #368
2024-09-13 12:07:46 +03:00
99de583e21
flake: bump mnw
Prioritize nvf's instance of neovim over pkgs.neovim
2024-09-13 11:59:53 +03:00
ppenguin
9eb6159ca3
Telescope: fix projects binding, add Telescope resume in default (#370)
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
Build and deploy documentation / publish (push) Has been cancelled
* Telescope: fix projects binding, add Telescope resume in default

The projects command had a typo preventing it from working; the
keybinding description was the same as for Telescope files.
Added `<leader>fr` for Telescope resume per default.

* Add info to release notes
2024-09-08 15:44:42 +00:00
diniamo
67abc51902
treewide: remove the theme section from the DAG order dependance (#369)
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
Build and deploy documentation / publish (push) Has been cancelled
* treewide: remove the theme section from the DAG order dependance

* docs/dag-entries: correct theme entry note
2024-09-05 18:06:24 +00:00
c757d28ff7
flake: update nixpkgs input
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
2024-08-27 22:27:51 +03:00
Ching Pei Yang
e949a51c55
rust/clang: update lldb binary name (#365)
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
2024-08-24 17:48:20 +00:00
Ching Pei Yang
473ebea4cf
theme: fix broken function signatures (#364)
Some checks are pending
Set up binary cache / cachix (default) (push) Waiting to run
Set up binary cache / cachix (maximal) (push) Waiting to run
Set up binary cache / cachix (nix) (push) Waiting to run
Validate flake & check formatting / Validate Flake (push) Waiting to run
Validate flake & check formatting / Formatting via Alejandra (push) Waiting to run
2024-08-24 12:12:20 +00:00
Gerg-L
fc2e5998e7
flake.lock: Update (#363)
Flake lock file updates:

• Updated input 'mnw':
    'github:Gerg-L/mnw/e06b48c51291cc1df08adcd34a8796f86d5b235e?narHash=sha256-qimVBdes%2B2gNRRcyFoIUA1RyOKV0Ee40hUaVVf7ZsNs%3D' (2024-08-22)
  → 'github:Gerg-L/mnw/c261925dbbf02f523af0e8add844df64fddf0359?narHash=sha256-SMgnviF6ofBPbyV3%2BrljPGcX0Hn9HBOhgXE10Cyjaic%3D' (2024-08-23)
2024-08-24 10:47:26 +00:00
Gerg-L
25fe1c4625
flake.lock: Update (#362)
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
Flake lock file updates:

• Updated input 'mnw':
    'github:Gerg-L/mnw/c7b289f3f5a31b6e744be37d83fc231816621231?narHash=sha256-YF//iMALbrd2Ni9aju7w8NniH16Qz6RFTRD6md5UkDc%3D' (2024-07-28)
  → 'github:Gerg-L/mnw/e06b48c51291cc1df08adcd34a8796f86d5b235e?narHash=sha256-qimVBdes%2B2gNRRcyFoIUA1RyOKV0Ee40hUaVVf7ZsNs%3D' (2024-08-22)
2024-08-22 23:42:51 +00:00
fd90cf7fd5
flake: revert 37dbdbb06d4d99297ee94adf6733893242b979c7
Some checks failed
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
The bald frog balded again...
2024-08-12 19:26:09 +03:00
Gerg-L
7d824d6711
modules: fix build (#353)
Some checks failed
Set up binary cache / cachix (default) (push) Waiting to run
Set up binary cache / cachix (maximal) (push) Waiting to run
Set up binary cache / cachix (nix) (push) Waiting to run
Validate flake & check formatting / Validate Flake (push) Waiting to run
Validate flake & check formatting / Formatting via Alejandra (push) Waiting to run
Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
Build and deploy documentation / publish (push) Has been cancelled
* flake.lock: lock

* remove ussage of mapAttrsFlatten

* flake.lock: update mnw

* modules/default.nix makeNeovimConfig -> mnw

* modules/default.nix use buildVimPlugin (sad)

dont build when possible
2024-08-12 00:08:53 +00:00
11 changed files with 132 additions and 119 deletions

View file

@ -11,7 +11,7 @@ entries in nvf:
inserted before the rest of the DAG inserted before the rest of the DAG
2. `globalsScript` - used to set globals defined in `vim.globals` 2. `globalsScript` - used to set globals defined in `vim.globals`
3. `basic` - used to set basic configuration options 3. `basic` - used to set basic configuration options
4. `theme` - used to set up the theme, which has to be done before other plugins 4. `theme` (this is simply placed before `pluginConfigs`, meaning that surrounding entries don't depend on it) - used to set up the theme, which has to be done before other plugins
5. `pluginConfigs` - the result of the nested `vim.pluginRC` (internal option, 5. `pluginConfigs` - the result of the nested `vim.pluginRC` (internal option,
see the [Custom Plugins](/index.xhtml#ch-custom-plugins) page for adding your own see the [Custom Plugins](/index.xhtml#ch-custom-plugins) page for adding your own
plugins) DAG, used to set up internal plugins plugins) DAG, used to set up internal plugins

View file

@ -151,3 +151,9 @@ configuration formats.
- `nvf-print-config-path` will display the path to _a clone_ of your - `nvf-print-config-path` will display the path to _a clone_ of your
`init.lua`. This is not the path used by the Neovim wrapper, but an `init.lua`. This is not the path used by the Neovim wrapper, but an
identical clone. identical clone.
[ppenguin](https://github.com/ppenguin):
- Telescope:
- Fixed `project-nvim` command and keybinding
- Added default ikeybind/command for `Telescope resume` (`<leader>fr`)

View file

@ -69,11 +69,11 @@
}, },
"mnw": { "mnw": {
"locked": { "locked": {
"lastModified": 1722191188, "lastModified": 1726188505,
"narHash": "sha256-YF//iMALbrd2Ni9aju7w8NniH16Qz6RFTRD6md5UkDc=", "narHash": "sha256-3dkxJo6y/aKfwkAg6YnpdiQAoZKgHhWHz7ilGJHCoVU=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "mnw", "repo": "mnw",
"rev": "c7b289f3f5a31b6e744be37d83fc231816621231", "rev": "ea00b3d2162d85dd085a6ba6d49aa2a186e588e7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -129,11 +129,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1722141560, "lastModified": 1726142289,
"narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=", "narHash": "sha256-Jks8O42La+nm5AMTSq/PvM5O+fUAhIy0Ce1QYqLkyZ4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160", "rev": "280db3decab4cbeb22a4599bd472229ab74d25e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -939,6 +939,22 @@
"type": "github" "type": "github"
} }
}, },
"plugin-new-file-template-nvim": {
"flake": false,
"locked": {
"lastModified": 1721518222,
"narHash": "sha256-g0IjJrHRXw7U9goVLzVYUyHBSsDZGHMpi3YZPhg64zA=",
"owner": "otavioschwanck",
"repo": "new-file-template.nvim",
"rev": "6ac66669dbf2dc5cdee184a4fe76d22465ca67e8",
"type": "github"
},
"original": {
"owner": "otavioschwanck",
"repo": "new-file-template.nvim",
"type": "github"
}
},
"plugin-noice-nvim": { "plugin-noice-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1862,6 +1878,7 @@
"plugin-neo-tree-nvim": "plugin-neo-tree-nvim", "plugin-neo-tree-nvim": "plugin-neo-tree-nvim",
"plugin-neocord": "plugin-neocord", "plugin-neocord": "plugin-neocord",
"plugin-neodev-nvim": "plugin-neodev-nvim", "plugin-neodev-nvim": "plugin-neodev-nvim",
"plugin-new-file-template-nvim": "plugin-new-file-template-nvim",
"plugin-noice-nvim": "plugin-noice-nvim", "plugin-noice-nvim": "plugin-noice-nvim",
"plugin-none-ls": "plugin-none-ls", "plugin-none-ls": "plugin-none-ls",
"plugin-nui-nvim": "plugin-nui-nvim", "plugin-nui-nvim": "plugin-nui-nvim",

View file

@ -9,75 +9,63 @@ inputs: {
inherit (pkgs) vimPlugins; inherit (pkgs) vimPlugins;
inherit (lib.strings) isString toString; inherit (lib.strings) isString toString;
inherit (lib.lists) filter map concatLists; inherit (lib.lists) filter map concatLists;
inherit (lib.attrsets) recursiveUpdate;
# import modules.nix with `check`, `pkgs` and `lib` as arguments # import modules.nix with `check`, `pkgs` and `lib` as arguments
# check can be disabled while calling this file is called # check can be disabled while calling this file is called
# to avoid checking in all modules # to avoid checking in all modules
nvimModules = import ./modules.nix { nvimModules = import ./modules.nix {inherit pkgs check lib;};
inherit pkgs check lib;
};
# evaluate the extended library with the modules # evaluate the extended library with the modules
# optionally with any additional modules passed by the user # optionally with any additional modules passed by the user
module = lib.evalModules { module = lib.evalModules {
specialArgs = recursiveUpdate {modulesPath = toString ./.;} extraSpecialArgs; specialArgs = extraSpecialArgs // {modulesPath = toString ./.;};
modules = concatLists [[configuration] nvimModules extraModules]; modules = concatLists [[configuration] nvimModules extraModules];
}; };
# alias to the internal configuration # alias to the internal configuration
vimOptions = module.config.vim; vimOptions = module.config.vim;
noBuildPlug = {pname, ...} @ attrs: let
src = inputs."plugin-${attrs.pname}";
in
{
version = src.shortRev or src.shortDirtyRev or "dirty";
outPath = src;
passthru.vimPlugin = false;
}
// attrs;
# build a vim plugin with the given name and arguments # build a vim plugin with the given name and arguments
# if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug
# instead # instead
buildPlug = attrs: let buildPlug = attrs: let
src = inputs."plugin-${attrs.pname}"; src = inputs."plugin-${attrs.pname}";
in in
pkgs.stdenvNoCC.mkDerivation ({ pkgs.vimUtils.buildVimPlugin (
{
version = src.shortRev or src.shortDirtyRev or "dirty"; version = src.shortRev or src.shortDirtyRev or "dirty";
inherit src; inherit src;
nativeBuildInputs = with pkgs.vimUtils; [
vimCommandCheckHook
vimGenDocHook
neovimRequireCheckHook
];
passthru.vimPlugin = true;
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r . $out
runHook postInstall
'';
} }
// attrs); // attrs
);
buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars); buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars);
pluginBuilders = { pluginBuilders = {
nvim-treesitter = buildTreesitterPlug vimOptions.treesitter.grammars; nvim-treesitter = buildTreesitterPlug vimOptions.treesitter.grammars;
flutter-tools-patched = flutter-tools-patched = buildPlug {
buildPlug
{
pname = "flutter-tools"; pname = "flutter-tools";
patches = [../patches/flutter-tools.patch]; patches = [../patches/flutter-tools.patch];
}; };
}; };
buildConfigPlugins = plugins: buildConfigPlugins = plugins:
map map (
(
plug: plug:
if (isString plug) if (isString plug)
then pluginBuilders.${plug} or (buildPlug {pname = plug;}) then pluginBuilders.${plug} or (noBuildPlug {pname = plug;})
else plug else plug
) ) (filter (f: f != null) plugins);
(filter (f: f != null) plugins);
# built (or "normalized") plugins that are modified # built (or "normalized") plugins that are modified
builtStartPlugins = buildConfigPlugins vimOptions.startPlugins; builtStartPlugins = buildConfigPlugins vimOptions.startPlugins;
@ -87,7 +75,7 @@ inputs: {
}) (buildConfigPlugins vimOptions.optPlugins); }) (buildConfigPlugins vimOptions.optPlugins);
# additional Lua and Python3 packages, mapped to their respective functions # additional Lua and Python3 packages, mapped to their respective functions
# to conform to the format makeNeovimConfig expects. end user should # to conform to the format mnw expects. end user should
# only ever need to pass a list of packages, which are modified # only ever need to pass a list of packages, which are modified
# here # here
extraLuaPackages = ps: map (x: ps.${x}) vimOptions.luaPackages; extraLuaPackages = ps: map (x: ps.${x}) vimOptions.luaPackages;
@ -97,7 +85,7 @@ inputs: {
# generate a wrapped Neovim package. # generate a wrapped Neovim package.
neovim-wrapped = inputs.mnw.lib.wrap pkgs { neovim-wrapped = inputs.mnw.lib.wrap pkgs {
neovim = vimOptions.package; neovim = vimOptions.package;
plugins = concatLists [builtStartPlugins builtOptPlugins]; plugins = builtStartPlugins ++ builtOptPlugins;
appName = "nvf"; appName = "nvf";
extraBinPath = vimOptions.extraPackages; extraBinPath = vimOptions.extraPackages;
initLua = vimOptions.builtLuaConfigRC; initLua = vimOptions.builtLuaConfigRC;

View file

@ -57,7 +57,7 @@
dapConfig = '' dapConfig = ''
dap.adapters.lldb = { dap.adapters.lldb = {
type = 'executable', type = 'executable',
command = '${cfg.dap.package}/bin/lldb-vscode', command = '${cfg.dap.package}/bin/lldb-dap',
name = 'lldb' name = 'lldb'
} }
dap.configurations.cpp = { dap.configurations.cpp = {

View file

@ -173,7 +173,7 @@ in {
dap = { dap = {
adapter = { adapter = {
type = "executable", type = "executable",
command = "${cfg.dap.package}/bin/lldb-vscode", command = "${cfg.dap.package}/bin/lldb-dap",
name = "rustacean_lldb", name = "rustacean_lldb",
}, },
}, },

View file

@ -6,7 +6,7 @@
inherit (lib.trivial) boolToString warnIf; inherit (lib.trivial) boolToString warnIf;
in { in {
onedark = { onedark = {
setup = {style ? "dark"}: '' setup = {style ? "dark", ...}: ''
-- OneDark theme -- OneDark theme
require('onedark').setup { require('onedark').setup {
style = "${style}" style = "${style}"
@ -30,7 +30,7 @@ in {
}; };
dracula = { dracula = {
setup = {transparent}: '' setup = {transparent, ...}: ''
require('dracula').setup({ require('dracula').setup({
transparent_bg = ${boolToString transparent}, transparent_bg = ${boolToString transparent},
}); });

View file

@ -7,7 +7,7 @@
inherit (lib.attrsets) attrNames; inherit (lib.attrsets) attrNames;
inherit (lib.types) bool lines enum; inherit (lib.types) bool lines enum;
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryBefore;
cfg = config.vim.theme; cfg = config.vim.theme;
supportedThemes = import ./supported-themes.nix { supportedThemes = import ./supported-themes.nix {
@ -45,7 +45,7 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim = { vim = {
startPlugins = [cfg.name]; startPlugins = [cfg.name];
luaConfigRC.theme = entryAfter ["basic"] '' luaConfigRC.theme = entryBefore ["pluginConfigs"] ''
${cfg.extraConfig} ${cfg.extraConfig}
${supportedThemes.${cfg.name}.setup {inherit (cfg) style transparent;}} ${supportedThemes.${cfg.name}.setup {inherit (cfg) style transparent;}}
''; '';

View file

@ -17,17 +17,19 @@
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim.startPlugins = [ vim = {
startPlugins = [
"telescope" "telescope"
"plenary-nvim" "plenary-nvim"
]; ];
vim.maps.normal = mkMerge [ maps.normal = mkMerge [
(mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>") (mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
(mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>") (mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
(mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>") (mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
(mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>") (mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
(mkSetBinding mappings.open "<cmd> Telescope<CR>") (mkSetBinding mappings.open "<cmd> Telescope<CR>")
(mkSetBinding mappings.resume "<cmd> Telescope resume<CR>")
(mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>") (mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
(mkSetBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>") (mkSetBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
@ -53,11 +55,11 @@ in {
( (
mkIf config.vim.projects.project-nvim.enable mkIf config.vim.projects.project-nvim.enable
(mkSetBinding mappings.findProjects "<cmd Telescope projects<CR>") (mkSetBinding mappings.findProjects "<cmd> Telescope projects<CR>")
) )
]; ];
vim.binds.whichKey.register = pushDownDefault { binds.whichKey.register = pushDownDefault {
"<leader>f" = "+Telescope"; "<leader>f" = "+Telescope";
"<leader>fl" = "Telescope LSP"; "<leader>fl" = "Telescope LSP";
"<leader>fm" = "Cellular Automaton"; "<leader>fm" = "Cellular Automaton";
@ -65,7 +67,7 @@ in {
"<leader>fvc" = "Commits"; "<leader>fvc" = "Commits";
}; };
vim.pluginRC.telescope = entryAnywhere '' pluginRC.telescope = entryAnywhere ''
local telescope = require('telescope') local telescope = require('telescope')
telescope.setup(${toLuaObject cfg.setupOpts}) telescope.setup(${toLuaObject cfg.setupOpts})
@ -88,4 +90,5 @@ in {
} }
''; '';
}; };
};
} }

View file

@ -150,13 +150,13 @@
in { in {
options.vim.telescope = { options.vim.telescope = {
mappings = { mappings = {
findProjects = mkMappingOption "Find files [Telescope]" "<leader>fp"; findProjects = mkMappingOption "Find projects [Telescope]" "<leader>fp";
findFiles = mkMappingOption "Find files [Telescope]" "<leader>ff"; findFiles = mkMappingOption "Find files [Telescope]" "<leader>ff";
liveGrep = mkMappingOption "Live grep [Telescope]" "<leader>fg"; liveGrep = mkMappingOption "Live grep [Telescope]" "<leader>fg";
buffers = mkMappingOption "Buffers [Telescope]" "<leader>fb"; buffers = mkMappingOption "Buffers [Telescope]" "<leader>fb";
helpTags = mkMappingOption "Help tags [Telescope]" "<leader>fh"; helpTags = mkMappingOption "Help tags [Telescope]" "<leader>fh";
open = mkMappingOption "Open [Telescope]" "<leader>ft"; open = mkMappingOption "Open [Telescope]" "<leader>ft";
resume = mkMappingOption "Resume (previous search) [Telescope]" "<leader>fr";
gitCommits = mkMappingOption "Git commits [Telescope]" "<leader>fvcw"; gitCommits = mkMappingOption "Git commits [Telescope]" "<leader>fvcw";
gitBufferCommits = mkMappingOption "Git buffer commits [Telescope]" "<leader>fvcb"; gitBufferCommits = mkMappingOption "Git buffer commits [Telescope]" "<leader>fvcb";

View file

@ -5,9 +5,8 @@
}: let }: let
inherit (builtins) map mapAttrs filter; inherit (builtins) map mapAttrs filter;
inherit (lib.options) mkOption; inherit (lib.options) mkOption;
inherit (lib.attrsets) filterAttrs getAttrs attrValues attrNames; inherit (lib.attrsets) mapAttrsToList filterAttrs getAttrs attrValues attrNames;
inherit (lib.strings) concatLines concatMapStringsSep; inherit (lib.strings) concatLines concatMapStringsSep;
inherit (lib.misc) mapAttrsFlatten;
inherit (lib.trivial) showWarnings; inherit (lib.trivial) showWarnings;
inherit (lib.types) str nullOr; inherit (lib.types) str nullOr;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -83,7 +82,7 @@ in {
config = let config = let
filterNonNull = attrs: filterAttrs (_: value: value != null) attrs; filterNonNull = attrs: filterAttrs (_: value: value != null) attrs;
globalsScript = globalsScript =
mapAttrsFlatten (name: value: "vim.g.${name} = ${toLuaObject value}") mapAttrsToList (name: value: "vim.g.${name} = ${toLuaObject value}")
(filterNonNull cfg.globals); (filterNonNull cfg.globals);
extraPluginConfigs = resolveDag { extraPluginConfigs = resolveDag {
@ -134,8 +133,8 @@ in {
vim = { vim = {
luaConfigRC = { luaConfigRC = {
globalsScript = entryAnywhere (concatLines globalsScript); globalsScript = entryAnywhere (concatLines globalsScript);
# basic, theme # basic
pluginConfigs = entryAfter ["theme"] pluginConfigs; pluginConfigs = entryAfter ["basic"] pluginConfigs;
extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs; extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs;
mappings = entryAfter ["extraPluginConfigs"] mappings; mappings = entryAfter ["extraPluginConfigs"] mappings;
}; };