Compare commits

..

No commits in common. "90c325849679c2a55217bfba05f478c6642c6075" and "95705bc43b68d422eda690e342b001919d762bd5" have entirely different histories.

11 changed files with 119 additions and 132 deletions

View file

@ -11,7 +11,7 @@ entries in nvf:
inserted before the rest of the DAG
2. `globalsScript` - used to set globals defined in `vim.globals`
3. `basic` - used to set basic configuration options
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
4. `theme` - 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,
see the [Custom Plugins](/index.xhtml#ch-custom-plugins) page for adding your own
plugins) DAG, used to set up internal plugins

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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