feat:neovim updtes

This commit is contained in:
Yadunand Prem 2024-10-11 11:32:17 -04:00
parent 114f618815
commit c01bc77f3b
No known key found for this signature in database
4 changed files with 187 additions and 102 deletions

View File

@ -86,11 +86,11 @@
]
},
"locked": {
"lastModified": 1726153070,
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
@ -104,11 +104,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
@ -122,11 +122,11 @@
"systems": "systems_3"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
@ -152,11 +152,11 @@
]
},
"locked": {
"lastModified": 1725513492,
"narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=",
"lastModified": 1728092656,
"narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "7570de7b9b504cfe92025dd1be797bf546f66528",
"rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
"type": "github"
},
"original": {
@ -215,11 +215,11 @@
]
},
"locked": {
"lastModified": 1726440980,
"narHash": "sha256-ChhIrjtdu5d83W+YDRH+Ec5g1MmM0xk6hJnkz15Ot7M=",
"lastModified": 1728306985,
"narHash": "sha256-l/KpcWTv2SjxCnqFs5GYhvjeVYd40WQV4/F2+w9btd4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a9c9cc6e50f7cbd2d58ccb1cd46a1e06e9e445ff",
"rev": "3ac39b2a8b7cbfc0f96628d8a84867c885bc988b",
"type": "github"
},
"original": {
@ -236,11 +236,11 @@
]
},
"locked": {
"lastModified": 1726357542,
"narHash": "sha256-p4OrJL2weh0TRtaeu1fmNYP6+TOp/W2qdaIJxxQay4c=",
"lastModified": 1728041527,
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e524c57b1fa55d6ca9d8354c6ce1e538d2a1f47f",
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
"type": "github"
},
"original": {
@ -257,11 +257,11 @@
]
},
"locked": {
"lastModified": 1726188813,
"narHash": "sha256-Vop/VRi6uCiScg/Ic+YlwsdIrLabWUJc57dNczp0eBc=",
"lastModified": 1727999297,
"narHash": "sha256-LTJuQPCsSItZ/8TieFeP30iY+uaLoD0mT0tAj1gLeyQ=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "21fe31f26473c180390cfa81e3ea81aca0204c80",
"rev": "8c8388ade72e58efdeae71b4cbb79e872c23a56b",
"type": "github"
},
"original": {
@ -288,11 +288,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1726243404,
"narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=",
"lastModified": 1728018373,
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059",
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
"type": "github"
},
"original": {
@ -317,11 +317,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1726502324,
"narHash": "sha256-I/WFSIBeIjlY3CgSJ6IRYxP2aEJ6b42Y1HAeATlBh48=",
"lastModified": 1728292968,
"narHash": "sha256-Jp/SQH5q2uTRBW625gFdfXLvYLjQiDNxtvQo0vVbyeA=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "2e3083e42509c399b224239f6d7fa17976b18536",
"rev": "d71cfaaae8353b4102169a9858422ce3738cd43b",
"type": "github"
},
"original": {
@ -339,11 +339,11 @@
]
},
"locked": {
"lastModified": 1726392886,
"narHash": "sha256-9RtOuG7V8KG8IU8nZje5EQ1WSM/inr7+zb3tAgTiHDM=",
"lastModified": 1728017046,
"narHash": "sha256-ofWYux/uUAv8wq7sWw8XWke0sh8p4qYxSOn8d+EaJ8c=",
"owner": "NuschtOS",
"repo": "search",
"rev": "97d34b70deed4878fcb2449ac89dab717d72efa1",
"rev": "ba81d9c1eae20fc3a1cd066062a05ac2e799e629",
"type": "github"
},
"original": {
@ -414,11 +414,11 @@
]
},
"locked": {
"lastModified": 1725271838,
"narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=",
"lastModified": 1727984844,
"narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd",
"rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64",
"type": "github"
},
"original": {

View File

@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ config, pkgs, inputs, lib, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
@ -22,7 +22,7 @@
lsp = {
enable = true;
servers = {
tsserver.enable = true; # TS/JS
ts-ls.enable = true; # TS/JS
biome.enable = true; # TS/JS
pyright.enable = true; # Python
@ -112,7 +112,37 @@
};
};
treesitter-context.enable = true;
treesitter-textobjects.enable = true;
treesitter-textobjects = {
enable = true;
move = {
enable = true;
gotoNextStart = {
"]m" = { query = "@function.outer"; };
"]]" = { query = "@class.outer"; desc = "Next class start"; };
"]o" = { query = "@loop.*"; };
"]s" = { query = "@scope"; queryGroup = "locals"; desc = "Next scope"; };
"]z" = { query = "@fold"; queryGroup = "folds"; desc = "Next fold"; };
};
gotoNextEnd = {
"]M" = { query = "@function.outer"; };
"][" = { query = "@class.outer"; };
};
gotoPreviousStart = {
"[m" = { query = "@function.outer"; };
"[[" = { query = "@class.outer"; };
};
gotoPreviousEnd = {
"[M" = { query = "@function.outer"; };
"[]" = { query = "@class.outer"; };
};
gotoNext = {
"]d" = { query = "@conditional.outer"; };
};
gotoPrevious = {
"[d" = { query = "@conditional.outer"; };
};
};
};
ts-autotag.enable = true;
which-key.enable = true;
@ -134,6 +164,7 @@
enable = true;
enableTelescope = true;
};
web-devicons.enable = true;
};
opts = {
@ -154,6 +185,8 @@
smarttab = true;
scrolloff = 5;
termguicolors = true;
foldmethod = lib.mkForce "expr";
foldexpr = lib.mkForce "v:lua.vim.treesitter.foldexpr()";
};
globals = {
mapleader = " ";
@ -178,6 +211,7 @@
{ action.__raw = "function() require('flash').treesitter() end"; key = "S"; mode = [ "n" "x" "o" ]; options.desc = "Flash Treesitter"; }
{ action.__raw = "function() require('flash').remote() end"; key = "r"; mode = [ "o" ]; options.desc = "Remote Flash"; }
{ action.__raw = "function() require('flash').treesitter_search() end"; key = "R"; mode = [ "o" ]; options.desc = "Treesitter Search"; }
{ action.__raw = "function() require('flash').toggle() end"; key = "<c-s>"; mode = [ "c" ]; options.desc = "Toggle Flash"; }
];
};
}

View File

@ -6,60 +6,60 @@ local font = wezterm.font({family = "Comic Mono"})
config.front_end = "WebGpu"
config.color_scheme = "Gruvbox Dark (Gogh)"
config.font = font
config.font_size = 13
config.window_decorations = "RESIZE"
config.window_frame = {
font = font,
font_size = 14,
font = font,
font_size = 14,
}
config.hide_tab_bar_if_only_one_tab = true
config.tab_bar_at_bottom = false
wezterm.on('update-status', function(window)
local SOLID_LEFT_ARROW = utf8.char(0xe0b2)
local color_scheme = window:effective_config().resolved_palette
local bg = color_scheme.background
local fg = color_scheme.foreground
-- set theme based on system appearance
function get_appearance()
if wezterm.gui then
return wezterm.gui.get_appearance()
end
return 'Dark'
end
window:set_right_status(wezterm.format({
{ Background = { Color = 'none' }},
{ Foreground = { Color = bg }},
{ Text = SOLID_LEFT_ARROW },
function scheme_for_appearance(appearance)
if appearance:find 'Dark' then
return 'Gruvbox Dark (Gogh)'
else
return 'Gruvbox (Gogh)'
end
end
{ Background = { Color = bg }},
{ Foreground = { Color = fg }},
{ Text = ' ' .. wezterm.hostname() .. ' ' },
}))
end)
config.color_scheme = scheme_for_appearance(get_appearance())
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
function nav_pane(key, dir)
return {
key = key,
mods = "LEADER",
action = wezterm.action.ActivatePaneDirection(dir),
}
return {
key = key,
mods = "LEADER",
action = wezterm.action.ActivatePaneDirection(dir),
}
end
config.keys = {
{
key = "\\",
mods = "LEADER",
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }
},
{
key = "-",
mods = "LEADER",
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }
},
nav_pane("h", "Left"),
nav_pane("j", "Down"),
nav_pane("k", "Up"),
nav_pane("l", "Right"),
{
key = "\\",
mods = "LEADER",
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }
},
{
key = "-",
mods = "LEADER",
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }
},
nav_pane("h", "Left"),
nav_pane("j", "Down"),
nav_pane("k", "Up"),
nav_pane("l", "Right"),
}
local function get_current_working_dir(tab)
@ -70,34 +70,34 @@ local function get_current_working_dir(tab)
or string.gsub(current_dir.file_path, '(.*[/\\])(.*)', '%2')
end
wezterm.on('format-tab-title', function(tab, tabs, panes, config, hover, max_width)
local has_unseen_output = false
if not tab.is_active then
for _, pane in ipairs(tab.panes) do
if pane.has_unseen_output then
has_unseen_output = true
break
end
end
end
local cwd = wezterm.format({
{ Text = get_current_working_dir(tab) },
})
local process = get_process(tab)
local title = process and string.format(' %s (%s) ', process, cwd) or ' [?] '
if has_unseen_output then
return {
{ Foreground = { Color = '#28719c' } },
{ Text = title },
}
end
return {
{ Text = title },
}
end)
-- wezterm.on('format-tab-title', function(tab, tabs, panes, config, hover, max_width)
-- local has_unseen_output = false
-- if not tab.is_active then
-- for _, pane in ipairs(tab.panes) do
-- if pane.has_unseen_output then
-- has_unseen_output = true
-- break
-- end
-- end
-- end
--
-- local cwd = wezterm.format({
-- { Text = get_current_working_dir(tab) },
-- })
--
-- local process = get_process(tab)
-- local title = process and string.format(' %s (%s) ', process, cwd) or ' [?] '
--
-- if has_unseen_output then
-- return {
-- { Foreground = { Color = '#28719c' } },
-- { Text = title },
-- }
-- end
--
-- return {
-- { Text = title },
-- }
-- end)
return config

View File

@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ config, pkgs, inputs, lib, ... }:
{
imports = [
@ -30,8 +30,10 @@
pkgs.entr
pkgs.gh
pkgs.zellij
pkgs.httpie
pkgs.emacs
pkgs.wezterm
pkgs.arc-browser
pkgs.raycast
@ -109,6 +111,54 @@
};
};
programs.zellij = {
enable = true;
settings = {
theme = "gruvbox-light";
themes = {
solarized-light = {
fg = "#657b83";
bg = "#fdf6e3";
black = "#073642";
red = "#dc322f";
green = "#859900";
yellow = "#b58900";
blue = "#268bd2";
magenta = "#d33682";
cyan = "#2aa198";
white = "#eee8d5";
orange = "#cb4b16";
};
gruvbox-light = {
bg="#d5c4a1";
fg="#504945";
orange="#980005";
green="#79740e";
yellow="#d79921";
blue="#458588";
magenta="#b16286";
cyan="#689d6a";
black="#ebdbb2";
white="#3c3836";
red="#d65d0e";
};
gruvbox-dark = {
fg="#ebdbb2";
bg="#504945";
black="#3c3836";
red="#cc241d";
green="#98971a";
yellow="#d79921";
blue="#458588";
magenta="#b16286";
cyan="#689d6a";
white="#fbf1c7";
orange="#d65d0e";
};
};
};
};
programs.git.extraConfig = {
gpg.ssh.program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
core.excludesFile = "~/.gitignore_global";
@ -117,4 +167,5 @@
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.bat.config.theme = lib.mkForce "gruvbox-light";
}