clean things up
This commit is contained in:
parent
7da9807f23
commit
434ace2a77
7 changed files with 160 additions and 286 deletions
149
flake.nix
149
flake.nix
|
@ -1,22 +1,3 @@
|
||||||
# Copyright (c) 2023 BirdeeHub
|
|
||||||
# Licensed under the MIT license
|
|
||||||
|
|
||||||
# This is an empty nixCats config.
|
|
||||||
# you may import this template directly into your nvim folder
|
|
||||||
# and then add plugins to categories here,
|
|
||||||
# and call the plugins with their default functions
|
|
||||||
# within your lua, rather than through the nvim package manager's method.
|
|
||||||
# Use the help, and the example repository https://github.com/BirdeeHub/nixCats-nvim
|
|
||||||
|
|
||||||
# It allows for easy adoption of nix,
|
|
||||||
# while still providing all the extra nix features immediately.
|
|
||||||
# Configure in lua, check for a few categories, set a few settings,
|
|
||||||
# output packages with combinations of those categories and settings.
|
|
||||||
|
|
||||||
# All the same options you make here will be automatically exported in a form available
|
|
||||||
# in home manager and in nixosModules, as well as from other flakes.
|
|
||||||
# each section is tagged with its relevant help section.
|
|
||||||
|
|
||||||
{
|
{
|
||||||
description = "A Lua-natic's neovim flake, with extra cats! nixCats!";
|
description = "A Lua-natic's neovim flake, with extra cats! nixCats!";
|
||||||
|
|
||||||
|
@ -38,20 +19,7 @@
|
||||||
url = "github:linrongbin16/lsp-progress.nvim";
|
url = "github:linrongbin16/lsp-progress.nvim";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# see :help nixCats.flake.inputs
|
|
||||||
# If you want your plugin to be loaded by the standard overlay,
|
|
||||||
# i.e. if it wasnt on nixpkgs, but doesnt have an extra build step.
|
|
||||||
# Then you should name it "plugins-something"
|
|
||||||
# If you wish to define a custom build step not handled by nixpkgs,
|
|
||||||
# then you should name it in a different format, and deal with that in the
|
|
||||||
# overlay defined for custom builds in the overlays directory.
|
|
||||||
# for specific tags, branches and commits, see:
|
|
||||||
# https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html#examples
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# see :help nixCats.flake.outputs
|
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
|
@ -63,33 +31,14 @@
|
||||||
inherit (nixCats) utils;
|
inherit (nixCats) utils;
|
||||||
luaPath = "${./.}";
|
luaPath = "${./.}";
|
||||||
forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
|
forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
|
||||||
# the following extra_pkg_config contains any values
|
|
||||||
# which you want to pass to the config set of nixpkgs
|
|
||||||
# import nixpkgs { config = extra_pkg_config; inherit system; }
|
|
||||||
# will not apply to module imports
|
|
||||||
# as that will have your system values
|
|
||||||
extra_pkg_config = {
|
extra_pkg_config = {
|
||||||
# allowUnfree = true;
|
# allowUnfree = true;
|
||||||
};
|
};
|
||||||
# sometimes our overlays require a ${system} to access the overlay.
|
|
||||||
# management of this variable is one of the harder parts of using flakes.
|
|
||||||
|
|
||||||
# so I have done it here in an interesting way to keep it out of the way.
|
|
||||||
|
|
||||||
# First, we will define just our overlays per system.
|
|
||||||
# later we will pass them into the builder, and the resulting pkgs set
|
|
||||||
# will get passed to the categoryDefinitions and packageDefinitions
|
|
||||||
# which follow this section.
|
|
||||||
|
|
||||||
# this allows you to use ${pkgs.system} whenever you want in those sections
|
|
||||||
# without fear.
|
|
||||||
inherit
|
inherit
|
||||||
(forEachSystem (
|
(forEachSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
# see :help nixCats.flake.outputs.overlays
|
dependencyOverlays = (import ./nix/overlays.nix) ++ [
|
||||||
dependencyOverlays = # (import ./overlays inputs) ++
|
|
||||||
[
|
|
||||||
# This overlay grabs all the inputs named in the format
|
# This overlay grabs all the inputs named in the format
|
||||||
# `plugins-<pluginName>`
|
# `plugins-<pluginName>`
|
||||||
# Once we add this overlay to our nixpkgs, we are able to
|
# Once we add this overlay to our nixpkgs, we are able to
|
||||||
|
@ -119,27 +68,9 @@
|
||||||
...
|
...
|
||||||
}@packageDef:
|
}@packageDef:
|
||||||
{
|
{
|
||||||
# to define and use a new category, simply add a new list to a set here,
|
# lspsAndRuntimeDeps: this section is for dependencies that should be
|
||||||
# and later, you will include categoryname = true; in the set you
|
# available at RUN TIME for plugins. Will be available to PATH within
|
||||||
# provide when you build the package using this builder function.
|
# neovim terminal this includes LSPs
|
||||||
# see :help nixCats.flake.outputs.packageDefinitions for info on that section.
|
|
||||||
|
|
||||||
# propagatedBuildInputs:
|
|
||||||
# this section is for dependencies that should be available
|
|
||||||
# at BUILD TIME for plugins. WILL NOT be available to PATH
|
|
||||||
# However, they WILL be available to the shell
|
|
||||||
# and neovim path when using nix develop
|
|
||||||
propagatedBuildInputs = {
|
|
||||||
general =
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# lspsAndRuntimeDeps:
|
|
||||||
# this section is for dependencies that should be available
|
|
||||||
# at RUN TIME for plugins. Will be available to PATH within neovim terminal
|
|
||||||
# this includes LSPs
|
|
||||||
lspsAndRuntimeDeps = {
|
lspsAndRuntimeDeps = {
|
||||||
general = with pkgs; [
|
general = with pkgs; [
|
||||||
# essential
|
# essential
|
||||||
|
@ -157,6 +88,8 @@
|
||||||
rustfmt
|
rustfmt
|
||||||
black
|
black
|
||||||
stylua
|
stylua
|
||||||
|
marksman
|
||||||
|
tinymist
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -244,67 +177,19 @@
|
||||||
# libgit2
|
# libgit2
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# environmentVariables:
|
|
||||||
# this section is for environmentVariables that should be available
|
|
||||||
# at RUN TIME for plugins. Will be available to path within neovim terminal
|
|
||||||
# environmentVariables = {
|
|
||||||
# test = {
|
|
||||||
# CATTESTVAR = "It worked!";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# If you know what these are, you can provide custom ones by category here.
|
|
||||||
# If you dont, check this link out:
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/setup-hooks/make-wrapper.sh
|
|
||||||
# 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 = [ (_: [ ]) ];
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# And then build a package with specific categories from above here:
|
|
||||||
# All categories you wish to include must be marked true,
|
|
||||||
# but false may be omitted.
|
|
||||||
# This entire set is also passed to nixCats for querying within the lua.
|
|
||||||
|
|
||||||
# see :help nixCats.flake.outputs.packageDefinitions
|
|
||||||
packageDefinitions = {
|
packageDefinitions = {
|
||||||
# These are the names of your packages
|
|
||||||
# you can include as many as you wish.
|
|
||||||
nvim =
|
nvim =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# they contain a settings set defined above
|
|
||||||
# see :help nixCats.flake.outputs.settings
|
|
||||||
settings = {
|
settings = {
|
||||||
wrapRc = true;
|
wrapRc = true;
|
||||||
# IMPORTANT:
|
|
||||||
# your alias may not conflict with your other packages.
|
|
||||||
aliases = [
|
aliases = [
|
||||||
"vim"
|
"vim"
|
||||||
"vi"
|
"vi"
|
||||||
];
|
];
|
||||||
# neovim-unwrapped = inputs.neovim-nightly-overlay.packages.${pkgs.system}.neovim;
|
neovim-unwrapped = pkgs.neovim-unwrapped;
|
||||||
};
|
};
|
||||||
# and a set of categories that you want
|
|
||||||
# (and other information to pass to lua)
|
|
||||||
categories = {
|
categories = {
|
||||||
general = true;
|
general = true;
|
||||||
gitPlugins = true;
|
gitPlugins = true;
|
||||||
|
@ -316,12 +201,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# In this section, the main thing you will need to do is change the default package name
|
|
||||||
# to the name of the packageDefinitions entry you wish to use as the default.
|
|
||||||
defaultPackageName = "nvim";
|
defaultPackageName = "nvim";
|
||||||
in
|
in
|
||||||
|
|
||||||
# see :help nixCats.flake.outputs.exports
|
|
||||||
forEachSystem (
|
forEachSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
@ -334,20 +215,11 @@
|
||||||
;
|
;
|
||||||
} categoryDefinitions packageDefinitions;
|
} categoryDefinitions packageDefinitions;
|
||||||
defaultPackage = nixCatsBuilder defaultPackageName;
|
defaultPackage = nixCatsBuilder defaultPackageName;
|
||||||
# this is just for using utils such as pkgs.mkShell
|
|
||||||
# The one used to build neovim is resolved inside the builder
|
|
||||||
# and is passed to our categoryDefinitions and packageDefinitions
|
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# these outputs will be wrapped with ${system} by utils.eachSystem
|
|
||||||
|
|
||||||
# this will make a package out of each of the packageDefinitions defined above
|
|
||||||
# and set the default package to the one passed in here.
|
|
||||||
packages = utils.mkAllWithDefault defaultPackage;
|
packages = utils.mkAllWithDefault defaultPackage;
|
||||||
|
|
||||||
# choose your package for devShell
|
|
||||||
# and add whatever else you want in it.
|
|
||||||
devShells = {
|
devShells = {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
name = defaultPackageName;
|
name = defaultPackageName;
|
||||||
|
@ -363,16 +235,10 @@
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
# these outputs will be NOT wrapped with ${system}
|
|
||||||
|
|
||||||
# this will make an overlay out of each of the packageDefinitions defined above
|
|
||||||
# and set the default overlay to the one named here.
|
|
||||||
overlays = utils.makeOverlays luaPath {
|
overlays = utils.makeOverlays luaPath {
|
||||||
inherit nixpkgs dependencyOverlays extra_pkg_config;
|
inherit nixpkgs dependencyOverlays extra_pkg_config;
|
||||||
} categoryDefinitions packageDefinitions defaultPackageName;
|
} categoryDefinitions packageDefinitions defaultPackageName;
|
||||||
|
|
||||||
# we also export a nixos module to allow reconfiguration from configuration.nix
|
|
||||||
nixosModules.default = utils.mkNixosModules {
|
nixosModules.default = utils.mkNixosModules {
|
||||||
inherit
|
inherit
|
||||||
defaultPackageName
|
defaultPackageName
|
||||||
|
@ -384,7 +250,6 @@
|
||||||
nixpkgs
|
nixpkgs
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
# and the same for home manager
|
|
||||||
homeModule = utils.mkHomeModules {
|
homeModule = utils.mkHomeModules {
|
||||||
inherit
|
inherit
|
||||||
defaultPackageName
|
defaultPackageName
|
||||||
|
|
|
@ -24,3 +24,5 @@ lspconfig.lua_ls.setup({
|
||||||
})
|
})
|
||||||
|
|
||||||
lspconfig.nixd.setup({})
|
lspconfig.nixd.setup({})
|
||||||
|
lspconfig.marksman.setup({})
|
||||||
|
lspconfig.tinymist.setup({})
|
||||||
|
|
7
lua/plugins/autopairs.lua
Normal file
7
lua/plugins/autopairs.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
return {
|
||||||
|
"nvim-autopairs",
|
||||||
|
event = "BufEnter",
|
||||||
|
after = function()
|
||||||
|
require("nvim-autopairs").setup()
|
||||||
|
end,
|
||||||
|
}
|
60
lua/plugins/gitsigns.lua
Normal file
60
lua/plugins/gitsigns.lua
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
return {
|
||||||
|
"gitsigns.nvim",
|
||||||
|
event = "BufEnter",
|
||||||
|
after = function()
|
||||||
|
require("gitsigns").setup({
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
local gitsigns = require("gitsigns")
|
||||||
|
|
||||||
|
local function map(mode, l, r, opts)
|
||||||
|
opts = opts or {}
|
||||||
|
opts.buffer = bufnr
|
||||||
|
vim.keymap.set(mode, l, r, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Navigation
|
||||||
|
map("n", "]c", function()
|
||||||
|
if vim.wo.diff then
|
||||||
|
vim.cmd.normal({ "]c", bang = true })
|
||||||
|
else
|
||||||
|
gitsigns.nav_hunk("next")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
map("n", "[c", function()
|
||||||
|
if vim.wo.diff then
|
||||||
|
vim.cmd.normal({ "[c", bang = true })
|
||||||
|
else
|
||||||
|
gitsigns.nav_hunk("prev")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Actions
|
||||||
|
map("n", "<leader>gs", gitsigns.stage_hunk)
|
||||||
|
map("n", "<leader>gr", gitsigns.reset_hunk)
|
||||||
|
map("v", "<leader>gs", function()
|
||||||
|
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
||||||
|
end)
|
||||||
|
map("v", "<leader>gr", function()
|
||||||
|
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
||||||
|
end)
|
||||||
|
map("n", "<leader>gS", gitsigns.stage_buffer)
|
||||||
|
map("n", "<leader>gu", gitsigns.undo_stage_hunk)
|
||||||
|
map("n", "<leader>gR", gitsigns.reset_buffer)
|
||||||
|
map("n", "<leader>gp", gitsigns.preview_hunk)
|
||||||
|
map("n", "<leader>gb", function()
|
||||||
|
gitsigns.blame_line({ full = true })
|
||||||
|
end)
|
||||||
|
map("n", "<leader>gb", gitsigns.toggle_current_line_blame)
|
||||||
|
map("n", "<leader>gd", gitsigns.diffthis)
|
||||||
|
map("n", "<leader>gD", function()
|
||||||
|
gitsigns.diffthis("~")
|
||||||
|
end)
|
||||||
|
map("n", "<leader>gtd", gitsigns.toggle_deleted)
|
||||||
|
|
||||||
|
-- Text object
|
||||||
|
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
51
lua/plugins/lsp-progress.lua
Normal file
51
lua/plugins/lsp-progress.lua
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
return {
|
||||||
|
"lsp-progress",
|
||||||
|
after = function()
|
||||||
|
require("lsp-progress").setup({
|
||||||
|
client_format = function(client_name, spinner, series_messages)
|
||||||
|
if #series_messages == 0 then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
return {
|
||||||
|
name = client_name,
|
||||||
|
body = spinner .. " " .. table.concat(series_messages, ", "),
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
format = function(client_messages)
|
||||||
|
--- @param name string
|
||||||
|
--- @param msg string?
|
||||||
|
--- @return string
|
||||||
|
local function stringify(name, msg)
|
||||||
|
return msg and string.format("%s %s", name, msg) or name
|
||||||
|
end
|
||||||
|
|
||||||
|
local sign = "" -- nf-fa-gear \uf013
|
||||||
|
local lsp_clients = vim.lsp.get_clients()
|
||||||
|
local messages_map = {}
|
||||||
|
for _, climsg in ipairs(client_messages) do
|
||||||
|
messages_map[climsg.name] = climsg.body
|
||||||
|
end
|
||||||
|
|
||||||
|
if #lsp_clients > 0 then
|
||||||
|
table.sort(lsp_clients, function(a, b)
|
||||||
|
return a.name < b.name
|
||||||
|
end)
|
||||||
|
local builder = {}
|
||||||
|
for _, cli in ipairs(lsp_clients) do
|
||||||
|
if type(cli) == "table" and type(cli.name) == "string" and string.len(cli.name) > 0 then
|
||||||
|
if messages_map[cli.name] then
|
||||||
|
table.insert(builder, stringify(cli.name, messages_map[cli.name]))
|
||||||
|
else
|
||||||
|
table.insert(builder, stringify(cli.name))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #builder > 0 then
|
||||||
|
return sign .. " " .. table.concat(builder, ", ")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return ""
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
|
@ -5,65 +5,10 @@ return {
|
||||||
require("plugins.harpoon"),
|
require("plugins.harpoon"),
|
||||||
require("plugins.lualine"),
|
require("plugins.lualine"),
|
||||||
require("plugins.conform"),
|
require("plugins.conform"),
|
||||||
{
|
require("plugins.lsp-progress"),
|
||||||
"lsp-progress",
|
require("plugins.gitsigns"),
|
||||||
after = function()
|
require("plugins.autopairs"),
|
||||||
require("lsp-progress").setup({
|
|
||||||
client_format = function(client_name, spinner, series_messages)
|
|
||||||
if #series_messages == 0 then
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
return {
|
|
||||||
name = client_name,
|
|
||||||
body = spinner .. " " .. table.concat(series_messages, ", "),
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
format = function(client_messages)
|
|
||||||
--- @param name string
|
|
||||||
--- @param msg string?
|
|
||||||
--- @return string
|
|
||||||
local function stringify(name, msg)
|
|
||||||
return msg and string.format("%s %s", name, msg) or name
|
|
||||||
end
|
|
||||||
|
|
||||||
local sign = "" -- nf-fa-gear \uf013
|
|
||||||
local lsp_clients = vim.lsp.get_clients()
|
|
||||||
local messages_map = {}
|
|
||||||
for _, climsg in ipairs(client_messages) do
|
|
||||||
messages_map[climsg.name] = climsg.body
|
|
||||||
end
|
|
||||||
|
|
||||||
if #lsp_clients > 0 then
|
|
||||||
table.sort(lsp_clients, function(a, b)
|
|
||||||
return a.name < b.name
|
|
||||||
end)
|
|
||||||
local builder = {}
|
|
||||||
for _, cli in ipairs(lsp_clients) do
|
|
||||||
if type(cli) == "table" and type(cli.name) == "string" and string.len(cli.name) > 0 then
|
|
||||||
if messages_map[cli.name] then
|
|
||||||
table.insert(builder, stringify(cli.name, messages_map[cli.name]))
|
|
||||||
else
|
|
||||||
table.insert(builder, stringify(cli.name))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if #builder > 0 then
|
|
||||||
return sign .. " " .. table.concat(builder, ", ")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return ""
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ "telescope-ui-select.nvim", priority = 70 },
|
{ "telescope-ui-select.nvim", priority = 70 },
|
||||||
{
|
|
||||||
"nvim-autopairs",
|
|
||||||
event = "BufEnter",
|
|
||||||
after = function()
|
|
||||||
require("nvim-autopairs").setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"nvim-lspconfig",
|
"nvim-lspconfig",
|
||||||
event = "BufEnter",
|
event = "BufEnter",
|
||||||
|
@ -111,6 +56,7 @@ return {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"typst-preview",
|
"typst-preview",
|
||||||
|
filetypes = { "*.typ" },
|
||||||
after = function()
|
after = function()
|
||||||
require("typst-preview").setup({
|
require("typst-preview").setup({
|
||||||
dependencies_bin = {
|
dependencies_bin = {
|
||||||
|
@ -220,66 +166,6 @@ return {
|
||||||
require("mini.hipatterns").setup()
|
require("mini.hipatterns").setup()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"gitsigns.nvim",
|
|
||||||
event = "BufEnter",
|
|
||||||
after = function()
|
|
||||||
require("gitsigns").setup({
|
|
||||||
on_attach = function(bufnr)
|
|
||||||
local gitsigns = require("gitsigns")
|
|
||||||
|
|
||||||
local function map(mode, l, r, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
opts.buffer = bufnr
|
|
||||||
vim.keymap.set(mode, l, r, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Navigation
|
|
||||||
map("n", "]c", function()
|
|
||||||
if vim.wo.diff then
|
|
||||||
vim.cmd.normal({ "]c", bang = true })
|
|
||||||
else
|
|
||||||
gitsigns.nav_hunk("next")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
map("n", "[c", function()
|
|
||||||
if vim.wo.diff then
|
|
||||||
vim.cmd.normal({ "[c", bang = true })
|
|
||||||
else
|
|
||||||
gitsigns.nav_hunk("prev")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Actions
|
|
||||||
map("n", "<leader>gs", gitsigns.stage_hunk)
|
|
||||||
map("n", "<leader>gr", gitsigns.reset_hunk)
|
|
||||||
map("v", "<leader>gs", function()
|
|
||||||
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
||||||
end)
|
|
||||||
map("v", "<leader>gr", function()
|
|
||||||
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
||||||
end)
|
|
||||||
map("n", "<leader>gS", gitsigns.stage_buffer)
|
|
||||||
map("n", "<leader>gu", gitsigns.undo_stage_hunk)
|
|
||||||
map("n", "<leader>gR", gitsigns.reset_buffer)
|
|
||||||
map("n", "<leader>gp", gitsigns.preview_hunk)
|
|
||||||
map("n", "<leader>gb", function()
|
|
||||||
gitsigns.blame_line({ full = true })
|
|
||||||
end)
|
|
||||||
map("n", "<leader>gb", gitsigns.toggle_current_line_blame)
|
|
||||||
map("n", "<leader>gd", gitsigns.diffthis)
|
|
||||||
map("n", "<leader>gD", function()
|
|
||||||
gitsigns.diffthis("~")
|
|
||||||
end)
|
|
||||||
map("n", "<leader>gtd", gitsigns.toggle_deleted)
|
|
||||||
|
|
||||||
-- Text object
|
|
||||||
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"neogit",
|
"neogit",
|
||||||
cmd = "Neogit",
|
cmd = "Neogit",
|
||||||
|
|
3
nix/overlays.nix
Normal file
3
nix/overlays.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Overlays for building custom non-trivial plugins
|
||||||
|
|
||||||
|
[ (self: super: { }) ]
|
Loading…
Reference in a new issue