mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-11-04 20:52:21 +00:00
Compare commits
7 commits
d70c3a8340
...
c4d80273aa
| Author | SHA1 | Date | |
|---|---|---|---|
|
c4d80273aa |
|||
|
|
72846557d5 |
||
|
|
af87edae84 |
||
|
5d607f3aef |
|||
|
|
ec2c64e04d |
||
|
|
94908ffb0a |
||
|
|
045f098f0e |
11 changed files with 93 additions and 5 deletions
|
|
@ -15,6 +15,7 @@ isMaximal: {
|
||||||
|
|
||||||
spellcheck = {
|
spellcheck = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
programmingWordlist.enable = isMaximal;
|
||||||
};
|
};
|
||||||
|
|
||||||
lsp = {
|
lsp = {
|
||||||
|
|
@ -162,6 +163,7 @@ isMaximal: {
|
||||||
enable = true;
|
enable = true;
|
||||||
gitsigns.enable = true;
|
gitsigns.enable = true;
|
||||||
gitsigns.codeActions.enable = false; # throws an annoying debug message
|
gitsigns.codeActions.enable = false; # throws an annoying debug message
|
||||||
|
neogit.enable = isMaximal;
|
||||||
};
|
};
|
||||||
|
|
||||||
minimap = {
|
minimap = {
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,10 @@
|
||||||
module interface. You may set [](#opt-vim.clipboard.registers) appropriately
|
module interface. You may set [](#opt-vim.clipboard.registers) appropriately
|
||||||
to configure Neovim to use the system clipboard.
|
to configure Neovim to use the system clipboard.
|
||||||
|
|
||||||
|
- Changed which-key group used for gitsigns from `<leader>g` to `<leader>h` to
|
||||||
|
align with the "hunks" themed mapping and avoid conflict with the new [neogit]
|
||||||
|
group.
|
||||||
|
|
||||||
[NotAShelf](https://github.com/notashelf):
|
[NotAShelf](https://github.com/notashelf):
|
||||||
|
|
||||||
[typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim
|
[typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim
|
||||||
|
|
@ -433,10 +437,11 @@
|
||||||
|
|
||||||
[solarized.nvim]: https://github.com/maxmx03/solarized.nvim
|
[solarized.nvim]: https://github.com/maxmx03/solarized.nvim
|
||||||
[smart-splits.nvim]: https://github.com/mrjones2014/smart-splits.nvim
|
[smart-splits.nvim]: https://github.com/mrjones2014/smart-splits.nvim
|
||||||
|
[neogit]: https://github.com/NeogitOrg/neogit
|
||||||
|
|
||||||
- Add [solarized.nvim] theme with support for multiple variants
|
- Add [solarized.nvim] theme with support for multiple variants
|
||||||
|
|
||||||
- Add [smart-splits.nvim] for navigating between Neovim windows and terminal multiplexer panes.
|
- Add [smart-splits.nvim] for navigating between Neovim windows and terminal multiplexer panes.
|
||||||
Available at `vim.utility.smart-splits`.
|
Available at `vim.utility.smart-splits`.
|
||||||
|
- Restore vim-dirtytalk plugin and fix ordering with spellcheck in generated config.
|
||||||
- Fix lualine separator options
|
- Fix lualine separator options
|
||||||
|
- Add [neogit], an interactive and powerful Git interface for Neovim, inspired by Magit
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
"runner"
|
"runner"
|
||||||
"session"
|
"session"
|
||||||
"snippets"
|
"snippets"
|
||||||
# "spellcheck" # FIXME: see neovim/init/spellcheck.nix
|
"spellcheck"
|
||||||
"statusline"
|
"statusline"
|
||||||
"tabline"
|
"tabline"
|
||||||
"terminal"
|
"terminal"
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,8 @@ in {
|
||||||
Enabling this option will unconditionally set
|
Enabling this option will unconditionally set
|
||||||
{option}`vim.spellcheck.enable` to true as vim-dirtytalk
|
{option}`vim.spellcheck.enable` to true as vim-dirtytalk
|
||||||
depends on spellchecking having been set up.
|
depends on spellchecking having been set up.
|
||||||
|
|
||||||
|
Run {command}`:DirtytalkUpdate` on first use to download the spellfile.
|
||||||
:::
|
:::
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ in {
|
||||||
./vim-fugitive
|
./vim-fugitive
|
||||||
./git-conflict
|
./git-conflict
|
||||||
./gitlinker-nvim
|
./gitlinker-nvim
|
||||||
|
./neogit
|
||||||
];
|
];
|
||||||
|
|
||||||
options.vim.git = {
|
options.vim.git = {
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
binds.whichKey.register = pushDownDefault {
|
binds.whichKey.register = pushDownDefault {
|
||||||
"<leader>g" = "+Gitsigns";
|
"<leader>h" = "+Gitsigns";
|
||||||
};
|
};
|
||||||
|
|
||||||
pluginRC.gitsigns = entryAnywhere ''
|
pluginRC.gitsigns = entryAnywhere ''
|
||||||
|
|
|
||||||
39
modules/plugins/git/neogit/config.nix
Normal file
39
modules/plugins/git/neogit/config.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
options,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf;
|
||||||
|
inherit (lib.nvim.binds) pushDownDefault mkKeymap;
|
||||||
|
|
||||||
|
cfg = config.vim.git.neogit;
|
||||||
|
|
||||||
|
keys = cfg.mappings;
|
||||||
|
inherit (options.vim.git.neogit) mappings;
|
||||||
|
in {
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
vim = {
|
||||||
|
startPlugins = ["plenary-nvim"];
|
||||||
|
|
||||||
|
lazy.plugins.neogit = {
|
||||||
|
package = "neogit";
|
||||||
|
setupModule = "neogit";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
|
||||||
|
cmd = ["Neogit"];
|
||||||
|
|
||||||
|
keys = [
|
||||||
|
(mkKeymap "n" keys.open "<Cmd>Neogit<CR>" {desc = mappings.open.description;})
|
||||||
|
(mkKeymap "n" keys.commit "<Cmd>Neogit commit<CR>" {desc = mappings.commit.description;})
|
||||||
|
(mkKeymap "n" keys.pull "<Cmd>Neogit pull<CR>" {desc = mappings.pull.description;})
|
||||||
|
(mkKeymap "n" keys.push "<Cmd>Neogit push<CR>" {desc = mappings.push.description;})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
binds.whichKey.register = pushDownDefault {
|
||||||
|
"<leader>g" = "+Git";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
6
modules/plugins/git/neogit/default.nix
Normal file
6
modules/plugins/git/neogit/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./config.nix
|
||||||
|
./neogit.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
17
modules/plugins/git/neogit/neogit.nix
Normal file
17
modules/plugins/git/neogit/neogit.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{lib, ...}: let
|
||||||
|
inherit (lib.options) mkEnableOption;
|
||||||
|
inherit (lib.nvim.binds) mkMappingOption;
|
||||||
|
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||||
|
in {
|
||||||
|
options.vim.git.neogit = {
|
||||||
|
enable = mkEnableOption "An Interactive and powerful Git interface [Neogit]";
|
||||||
|
setupOpts = mkPluginSetupOption "neogit" {};
|
||||||
|
|
||||||
|
mappings = {
|
||||||
|
open = mkMappingOption "Git Status [Neogit]" "<leader>gs";
|
||||||
|
commit = mkMappingOption "Git Commit [Neogit]" "<leader>gc";
|
||||||
|
pull = mkMappingOption "Git pull [Neogit]" "<leader>gp";
|
||||||
|
push = mkMappingOption "Git push [Neogit]" "<leader>gP";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -17,7 +17,7 @@ in {
|
||||||
# like to append programming to spelllangs as soon as
|
# like to append programming to spelllangs as soon as
|
||||||
# possible while the plugin is enabled and the state
|
# possible while the plugin is enabled and the state
|
||||||
# directory can be found.
|
# directory can be found.
|
||||||
pluginRC.vim-dirtytalk = entryAfter ["spellcheck"] ''
|
luaConfigRC.vim-dirtytalk = entryAfter ["spellcheck"] ''
|
||||||
-- If Neovim can find (or access) the state directory
|
-- If Neovim can find (or access) the state directory
|
||||||
-- then append "programming" wordlist from vim-dirtytalk
|
-- then append "programming" wordlist from vim-dirtytalk
|
||||||
-- to spelllang table. If path cannot be found, display
|
-- to spelllang table. If path cannot be found, display
|
||||||
|
|
|
||||||
|
|
@ -1530,6 +1530,22 @@
|
||||||
"url": "https://github.com/IogaMaster/neocord/archive/2ebf3792a8100376bb65fd66d5dbf60f50af7529.tar.gz",
|
"url": "https://github.com/IogaMaster/neocord/archive/2ebf3792a8100376bb65fd66d5dbf60f50af7529.tar.gz",
|
||||||
"hash": "1ycx26ppfb5djxji1mwamr7ra29z8sm0fs9a6hhwn0l69x06x353"
|
"hash": "1ycx26ppfb5djxji1mwamr7ra29z8sm0fs9a6hhwn0l69x06x353"
|
||||||
},
|
},
|
||||||
|
"neogit": {
|
||||||
|
"type": "GitRelease",
|
||||||
|
"repository": {
|
||||||
|
"type": "GitHub",
|
||||||
|
"owner": "NeogitOrg",
|
||||||
|
"repo": "neogit"
|
||||||
|
},
|
||||||
|
"pre_releases": false,
|
||||||
|
"version_upper_bound": null,
|
||||||
|
"release_prefix": null,
|
||||||
|
"submodules": false,
|
||||||
|
"version": "v2.0.0",
|
||||||
|
"revision": "7f97dbfc5af3b898c6660d927c23e3a96a5bd069",
|
||||||
|
"url": "https://api.github.com/repos/NeogitOrg/neogit/tarball/v2.0.0",
|
||||||
|
"hash": "0nyv64ai3765if7bdfyx01a0xmsmhm8cjvxyvh2s40bzvkx8xy17"
|
||||||
|
},
|
||||||
"neorg": {
|
"neorg": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue