added nixvim stuff
This commit is contained in:
parent
a68413e851
commit
e71ad0d7a4
2 changed files with 28 additions and 122 deletions
|
@ -32,6 +32,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
fenix = {
|
fenix = {
|
||||||
url = "github:nix-community/fenix";
|
url = "github:nix-community/fenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
@ -1,89 +1,48 @@
|
||||||
{
|
{ config, inputs, lib, pkgs, ... }:
|
||||||
config,
|
with lib; let
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: with lib; let
|
|
||||||
cfg = config.modules.programs.neovim;
|
cfg = config.modules.programs.neovim;
|
||||||
username = config.modules.other.system.username;
|
username = config.modules.other.system.username;
|
||||||
in {
|
in {
|
||||||
options.modules.programs.neovim.enable = mkEnableOption "neovim";
|
options.modules.programs.neovim.enable = mkEnableOption "neovim";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];
|
|
||||||
|
|
||||||
home-manager.users.${username} = {
|
home-manager.users.${username} = {
|
||||||
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
||||||
|
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.neovim-nightly;
|
|
||||||
enableMan = true;
|
enableMan = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|
||||||
colorscheme = "catppuccin";
|
|
||||||
colorschemes.catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
flavour = "mocha";
|
|
||||||
transparentBackground = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
opts = {
|
opts = {
|
||||||
|
background = "dark";
|
||||||
|
shiftwidth = 4;
|
||||||
|
autoread = true;
|
||||||
|
cmdheight = 1;
|
||||||
|
encoding = "utf8";
|
||||||
|
expandtab = true;
|
||||||
|
hidden = true;
|
||||||
|
ignorecase = true;
|
||||||
|
linebreak = true;
|
||||||
|
mousemoveevent = true;
|
||||||
number = true;
|
number = true;
|
||||||
relativenumber = true;
|
relativenumber = true;
|
||||||
autoread = true;
|
|
||||||
so = 7;
|
|
||||||
cmdheight = 1;
|
|
||||||
ignorecase = true;
|
|
||||||
smartcase = true;
|
|
||||||
showmatch = true;
|
showmatch = true;
|
||||||
timeoutlen = 500;
|
smartcase = true;
|
||||||
encoding = "utf8";
|
|
||||||
smarttab = true;
|
|
||||||
shiftwidth = 4;
|
|
||||||
tabstop = 4;
|
|
||||||
expandtab = true;
|
|
||||||
linebreak = true;
|
|
||||||
smartindent = true;
|
smartindent = true;
|
||||||
updatetime = 300;
|
smarttab = true;
|
||||||
hidden = true;
|
so = 7;
|
||||||
background = "dark";
|
timeoutlen = 500;
|
||||||
mousemoveevent = true;
|
tabstop = 4;
|
||||||
smoothscroll = true;
|
updatetime = 50;
|
||||||
};
|
};
|
||||||
|
|
||||||
globals = {
|
globals.mapleader = " ";
|
||||||
mapleader = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
# TODO move this to lua to be cool
|
|
||||||
# action = "vim.cmd { cmd = \"Neotree\", args = { \"toggle\" } }";
|
|
||||||
# lua = true;
|
|
||||||
action = "<CMD>Neotree toggle<CR>";
|
|
||||||
key = "<leader>v";
|
|
||||||
options.silent = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "vim.cmd.MarkdownPreviewToggle";
|
|
||||||
lua = true;
|
|
||||||
key = "<leader>m";
|
|
||||||
options.silent = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
airline = {
|
|
||||||
enable = false;
|
|
||||||
settings.theme = "catppuccin";
|
|
||||||
};
|
|
||||||
lualine = {
|
lualine = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "catppuccin";
|
theme = "catppuccin";
|
||||||
};
|
};
|
||||||
fugitive.enable = true;
|
|
||||||
treesitter = {
|
treesitter = {
|
||||||
enable = true;
|
enable = true;
|
||||||
folding = false;
|
folding = false;
|
||||||
|
@ -106,66 +65,7 @@ in {
|
||||||
neo-tree = {
|
neo-tree = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
toggleterm = {
|
# TODO laytan/cloak.nvim
|
||||||
enable = true;
|
|
||||||
direction = "float";
|
|
||||||
openMapping = "<C-\\>";
|
|
||||||
shadeTerminals = true;
|
|
||||||
shadingFactor = 2;
|
|
||||||
size = 10;
|
|
||||||
};
|
|
||||||
# TODO laytan/cloak.nvim
|
|
||||||
gitsigns = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
current_line_blame = true;
|
|
||||||
numhl = true;
|
|
||||||
signcolumn = true;
|
|
||||||
word_diff = true;
|
|
||||||
on_attach = ''
|
|
||||||
function(bufnr)
|
|
||||||
local gs = package.loaded.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 return ']c' end
|
|
||||||
vim.schedule(function() gs.next_hunk() end)
|
|
||||||
return '<Ignore>'
|
|
||||||
end, {expr=true})
|
|
||||||
|
|
||||||
map('n', '[c', function()
|
|
||||||
if vim.wo.diff then return '[c' end
|
|
||||||
vim.schedule(function() gs.prev_hunk() end)
|
|
||||||
return '<Ignore>'
|
|
||||||
end, {expr=true})
|
|
||||||
|
|
||||||
-- Actions
|
|
||||||
map('n', '<leader>hs', gs.stage_hunk)
|
|
||||||
map('n', '<leader>hr', gs.reset_hunk)
|
|
||||||
map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
|
||||||
map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
|
||||||
map('n', '<leader>hS', gs.stage_buffer)
|
|
||||||
map('n', '<leader>hu', gs.undo_stage_hunk)
|
|
||||||
map('n', '<leader>hR', gs.reset_buffer)
|
|
||||||
map('n', '<leader>hp', gs.preview_hunk)
|
|
||||||
map('n', '<leader>hb', function() gs.blame_line{full=true} end)
|
|
||||||
map('n', '<leader>tb', gs.toggle_current_line_blame)
|
|
||||||
map('n', '<leader>hd', gs.diffthis)
|
|
||||||
map('n', '<leader>hD', function() gs.diffthis('~') end)
|
|
||||||
map('n', '<leader>td', gs.toggle_deleted)
|
|
||||||
|
|
||||||
-- Text object
|
|
||||||
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
|
@ -181,6 +81,7 @@ in {
|
||||||
tsserver.enable = true;
|
tsserver.enable = true;
|
||||||
java-language-server.enable = true;
|
java-language-server.enable = true;
|
||||||
#pylyzer.enable = true;
|
#pylyzer.enable = true;
|
||||||
|
rnix-lsp.enable = true;
|
||||||
};
|
};
|
||||||
#onAttach = ''
|
#onAttach = ''
|
||||||
# vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
# vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
@ -228,7 +129,6 @@ in {
|
||||||
showParameterHints = true;
|
showParameterHints = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
leap.enable = true;
|
|
||||||
fidget.enable = true;
|
fidget.enable = true;
|
||||||
telescope = {
|
telescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -242,7 +142,6 @@ in {
|
||||||
keymapsSilent = true;
|
keymapsSilent = true;
|
||||||
};
|
};
|
||||||
comment.enable = true;
|
comment.enable = true;
|
||||||
crates-nvim.enable = true;
|
|
||||||
harpoon = {
|
harpoon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vimPlugins.harpoon.overrideAttrs {
|
package = pkgs.vimPlugins.harpoon.overrideAttrs {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue