Skip to content

Commit 22fdedb

Browse files
committed
feature(neogit/diffview): Add diffview to neogit
1 parent e413f9e commit 22fdedb

6 files changed

Lines changed: 110 additions & 31 deletions

File tree

config/editor/git.nix

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,28 @@ in {
3737
package = adopure-nvim;
3838
};
3939
};
40+
utility.diffview-nvim = {
41+
enable = true;
42+
setupOpts = {
43+
keymaps = let
44+
movement =
45+
lib.generators.mkLuaInline
46+
/*
47+
lua
48+
*/
49+
''
50+
{
51+
{ "n", "l", require("diffview.actions").prev_entry, { desc = "Bring the cursor to the previous file entry" } },
52+
{ "n", "k", require("diffview.actions").next_entry, { desc = "Bring the cursor to the next file entry" } },
53+
}
54+
'';
55+
in
56+
lib.mkIf config'.useDefaultKeybinds {
57+
file_panel = movement;
58+
file_history_panel = movement;
59+
};
60+
};
61+
};
4062
git = mkDashDefault {
4163
gitsigns = {
4264
enable = true;
@@ -51,6 +73,10 @@ in {
5173
enable = true;
5274
setupOpts = {
5375
use_default_keymaps = false;
76+
integrations = {
77+
telescope = true;
78+
diffview = true;
79+
};
5480
mappings = lib.mkIf config'.useDefaultKeybinds {
5581
commit_editor = {
5682
"q" = "Close";
@@ -107,16 +133,15 @@ in {
107133
"B" = "BisectPopup";
108134
"c" = "CommitPopup";
109135
"f" = "FetchPopup";
110-
"l" = "LogPopup";
111136
"m" = "MergePopup";
112137
"p" = "PullPopup";
113138
"r" = "RebasePopup";
114139
"v" = "RevertPopup";
115140
"w" = "WorktreePopup";
116141
};
117142
status = {
118-
l = "MoveUp";
119-
k = "MoveDown";
143+
"l" = "MoveUp";
144+
"k" = "MoveDown";
120145
"q" = "Close";
121146
"o" = "OpenTree";
122147
"I" = "InitRepo";

config/keybinds.nix

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,12 +253,6 @@
253253
action = ''<CMD>lua require("telescope.builtin").git_status()<CR>'';
254254
desc = "Git status";
255255
}
256-
{
257-
mode = "n";
258-
key = "<leader>gn";
259-
action = "<CMD>Neogit <CR>";
260-
desc = "Neogit";
261-
}
262256
{
263257
mode = "n";
264258
key = "<leader>gg";
@@ -378,6 +372,42 @@
378372
silent = true;
379373
}
380374

375+
# git+diff
376+
{
377+
mode = [
378+
"n"
379+
"v"
380+
];
381+
key = "<leader>gf";
382+
action = "<CMD>DiffviewFileHistory %s<CR>";
383+
noremap = true;
384+
silent = true;
385+
desc = "Diffview File history (current file)";
386+
}
387+
{
388+
mode = [
389+
"n"
390+
"v"
391+
];
392+
key = "<leader>gF";
393+
action = "<CMD>DiffviewFileHistory<CR>";
394+
noremap = true;
395+
silent = true;
396+
desc = "Diffview File history (all files)";
397+
}
398+
{
399+
mode = "n";
400+
key = "<leader>gn";
401+
action = "<CMD>Neogit <CR>";
402+
desc = "Neogit dashboard";
403+
}
404+
{
405+
mode = "n";
406+
key = "<leader>gd";
407+
action = "<CMD>Neogit diff <CR>";
408+
desc = "Neogit diff";
409+
}
410+
381411
# code action
382412
{
383413
mode = [
@@ -591,6 +621,21 @@
591621
action = ''<CMD>lua require("dap").step_into()<CR>'';
592622
desc = "Step Into";
593623
}
624+
{
625+
mode = "n";
626+
key = "<leader>de";
627+
action = ''
628+
<cmd>lua
629+
local dap = require('dap')
630+
dap.listeners.after.event_initialized["set_exception_breakpoints"] = function()
631+
dap.set_exception_breakpoints({ "raised", "uncaught" })
632+
end
633+
<cr>
634+
'';
635+
noremap = true;
636+
silent = true;
637+
desc = "Stop on exceptions";
638+
}
594639
{
595640
mode = "n";
596641
key = "<leader>dc";

config/languages/lsp.nix

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@
1010
"ng.nvim" = mkDashDefault {
1111
package = ng-nvim;
1212
};
13+
"roslyn.nvim" = mkDashDefault {
14+
package = roslyn-nvim;
15+
setupModule = "roslyn";
16+
event = [
17+
{
18+
event = "FileType";
19+
pattern = "cs";
20+
}
21+
];
22+
};
1323
};
1424
extraPlugins = with pkgs.vimPlugins; {
1525
"easy-dotnet.nvim" = mkDashDefault {
@@ -54,6 +64,8 @@
5464
function(client, bufnr)
5565
${(import ../luaFunctions.nix).isAngular}
5666
67+
-- This shit is the most annoying thing ever
68+
client.server_capabilities.textDocument.completion.completionItem.insertReplaceSupport = false
5769
local root_dir = client.config.root_dir
5870
if is_angular_project(root_dir) then
5971
client.server_capabilities.renameProvider = false

flake.lock

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/dependencies.nix

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
{
2-
pkgs,
3-
stable,
4-
...
5-
}: let
1+
{pkgs, ...}: let
62
easyDotnet = pkgs.buildDotnetGlobalTool {
73
pname = "EasyDotnet";
84
version = "2.2.28";
@@ -20,4 +16,5 @@ in
2016
fd
2117
zoxide
2218
gh
19+
roslyn-ls
2320
]

modules/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,8 @@
208208
csharp = {
209209
enable = true;
210210
lsp = {
211-
enable = true;
212-
servers = "omnisharp";
211+
enable = false;
212+
servers = "roslyn_ls";
213213
};
214214
};
215215
css = {

0 commit comments

Comments
 (0)