feat: add formatter

This commit is contained in:
Yadunand Prem 2024-11-18 12:27:24 -05:00
parent bbeb0aa8c2
commit 74c81d7fea
No known key found for this signature in database
3 changed files with 210 additions and 57 deletions

View File

@ -9,14 +9,22 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
flake-utils.url = "github:numtide/flake-utils";
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
flake-utils.url = "github:numtide/flake-utils";
}; };
outputs = { nixpkgs, home-manager, flake-utils, agenix, nixvim, ... }@inputs: { outputs = {
nixpkgs,
home-manager,
flake-utils,
agenix,
nixvim,
...
} @ inputs: {
formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra;
homeConfigurations = { homeConfigurations = {
"yadunut@yadunut-mbp" = home-manager.lib.homeManagerConfiguration { "yadunut@yadunut-mbp" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
@ -28,7 +36,7 @@
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
}; };
modules = [ ./yadunut-mbp/home.nix ]; modules = [./yadunut-mbp/home.nix];
}; };
"yadunut@yadunut-mba" = home-manager.lib.homeManagerConfiguration { "yadunut@yadunut-mba" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
@ -50,7 +58,7 @@
modules = [ modules = [
./falcon-nixos/configuration.nix ./falcon-nixos/configuration.nix
agenix.nixosModules.default agenix.nixosModules.default
{ _module.args = { inherit inputs; };} {_module.args = {inherit inputs;};}
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;

View File

@ -1,9 +1,15 @@
{ config, pkgs, inputs, lib, ... }:
{ {
config,
pkgs,
inputs,
lib,
...
}: {
imports = [ imports = [
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
]; ];
programs.nixvim = { programs.nixvim = {
nixpkgs.pkgs = pkgs;
performance.combinePlugins.enable = false; performance.combinePlugins.enable = false;
performance.byteCompileLua.enable = true; performance.byteCompileLua.enable = true;
@ -13,13 +19,22 @@
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
colorschemes.gruvbox.enable = true; colorschemes.gruvbox.enable = true;
extraPlugins = [ pkgs.vimPlugins.todo-txt-vim ]; extraPlugins = [pkgs.vimPlugins.todo-txt-vim];
plugins = { plugins = {
flash.enable = true; flash.enable = true;
oil.enable = true; oil.enable = true;
neogit.enable = true; neogit.enable = true;
hardtime.enable = true; hardtime.enable = true;
lsp = { lsp = {
package = pkgs.vimUtils.buildVimPlugin {
name = "lsp";
src = pkgs.fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "541f3a2781de481bb84883889e4d9f0904250a56";
hash = "sha256-f9CqwKBWZgC2ystm+g7FmsHR0fLcM6Wj+GkSwoUIanw=";
};
};
enable = true; enable = true;
servers = { servers = {
gleam.enable = true; gleam.enable = true;
@ -39,17 +54,44 @@
gopls.enable = true; gopls.enable = true;
}; };
keymaps.lspBuf = { keymaps.lspBuf = {
gd = { action = "definition"; desc = "Goto Definition"; }; gd = {
gr = { action = "references"; desc = "Goto References"; }; action = "definition";
gD = { action = "declaration"; desc = "Goto Declaration"; }; desc = "Goto Definition";
gI = { action = "implementation"; desc = "Goto Implementation"; }; };
gT = { action = "type_definition"; desc = "Type Definition"; }; gr = {
K = { action = "hover"; desc = "Hover"; }; action = "references";
"<leader>rn" = { action = "rename"; desc = "Rename"; }; desc = "Goto References";
};
gD = {
action = "declaration";
desc = "Goto Declaration";
};
gI = {
action = "implementation";
desc = "Goto Implementation";
};
gT = {
action = "type_definition";
desc = "Type Definition";
};
K = {
action = "hover";
desc = "Hover";
};
"<leader>rn" = {
action = "rename";
desc = "Rename";
};
}; };
keymaps.extra = [ keymaps.extra = [
{ action.__raw = "vim.lsp.buf.code_action"; key = "<leader>la"; } {
{ action.__raw = "function() vim.lsp.buf.format { async = true } end"; key = "<leader>lf"; } action.__raw = "vim.lsp.buf.code_action";
key = "<leader>la";
}
{
action.__raw = "function() vim.lsp.buf.format { async = true } end";
key = "<leader>lf";
}
]; ];
keymaps.diagnostic = { keymaps.diagnostic = {
"<leader>cd" = { "<leader>cd" = {
@ -72,13 +114,23 @@
autoEnableSources = true; autoEnableSources = true;
settings = { settings = {
sources = [ sources = [
{ name = "nvim_lsp"; } {name = "nvim_lsp";}
{ name = "nvim_lua"; } {name = "nvim_lua";}
{ name = "emoji"; } {name = "emoji";}
{ name = "emoji"; } {name = "emoji";}
{ name = "buffer"; option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; keywordLength = 3; } {
{ name = "path"; keywordLength = 3; } name = "buffer";
{ name = "luasnip"; keywordLength = 3; } option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
keywordLength = 3;
}
{
name = "path";
keywordLength = 3;
}
{
name = "luasnip";
keywordLength = 3;
}
]; ];
window = { window = {
# completion = { border = "solid"; }; # completion = { border = "solid"; };
@ -108,7 +160,21 @@
updateFocusedFile.enable = true; updateFocusedFile.enable = true;
}; };
luasnip.enable = true; friendly-snippets.enable = true;
luasnip = {
enable = true;
settings = {
enable_autosnippets = true;
store_selection_keys = "<Tab>";
};
fromVscode = [
{
lazyLoad = true;
paths = "${pkgs.vimPlugins.friendly-snippets}";
}
];
};
bufferline.enable = true; bufferline.enable = true;
@ -143,29 +209,40 @@
move = { move = {
enable = true; enable = true;
gotoNextStart = { gotoNextStart = {
"]m" = { query = "@function.outer"; }; "]m" = {query = "@function.outer";};
"]]" = { query = "@class.outer"; desc = "Next class start"; }; "]]" = {
"]o" = { query = "@loop.*"; }; query = "@class.outer";
"]s" = { query = "@scope"; queryGroup = "locals"; desc = "Next scope"; }; desc = "Next class start";
"]z" = { query = "@fold"; queryGroup = "folds"; desc = "Next fold"; }; };
"]o" = {query = "@loop.*";};
"]s" = {
query = "@scope";
queryGroup = "locals";
desc = "Next scope";
};
"]z" = {
query = "@fold";
queryGroup = "folds";
desc = "Next fold";
};
}; };
gotoNextEnd = { gotoNextEnd = {
"]M" = { query = "@function.outer"; }; "]M" = {query = "@function.outer";};
"][" = { query = "@class.outer"; }; "][" = {query = "@class.outer";};
}; };
gotoPreviousStart = { gotoPreviousStart = {
"[m" = { query = "@function.outer"; }; "[m" = {query = "@function.outer";};
"[[" = { query = "@class.outer"; }; "[[" = {query = "@class.outer";};
}; };
gotoPreviousEnd = { gotoPreviousEnd = {
"[M" = { query = "@function.outer"; }; "[M" = {query = "@function.outer";};
"[]" = { query = "@class.outer"; }; "[]" = {query = "@class.outer";};
}; };
gotoNext = { gotoNext = {
"]d" = { query = "@conditional.outer"; }; "]d" = {query = "@conditional.outer";};
}; };
gotoPrevious = { gotoPrevious = {
"[d" = { query = "@conditional.outer"; }; "[d" = {query = "@conditional.outer";};
}; };
}; };
}; };
@ -178,20 +255,18 @@
settings = { settings = {
defaults = { defaults = {
mappings = { mappings = {
i = { "<C-t>".__raw = "require('trouble.sources.telescope').open"; }; i = {"<C-t>".__raw = "require('trouble.sources.telescope').open";};
n = { "<C-t>".__raw = "require('trouble.sources.telescope').open"; }; n = {"<C-t>".__raw = "require('trouble.sources.telescope').open";};
}; };
}; };
}; };
}; };
project-nvim = { project-nvim = {
enable = true; enable = true;
enableTelescope = true; enableTelescope = true;
}; };
web-devicons.enable = true; web-devicons.enable = true;
}; };
opts = { opts = {
number = true; number = true;
@ -219,25 +294,85 @@
maplocalleader = " "; maplocalleader = " ";
}; };
keymaps = [ keymaps = [
{ action = ":"; key = ";"; mode = [ "n" ]; } {
action = ":";
key = ";";
mode = ["n"];
}
# { action = "gj"; key = "j"; mode = [ "n" ]; } # { action = "gj"; key = "j"; mode = [ "n" ]; }
# { action = "gk"; key = "k"; mode = [ "n" ]; } # { action = "gk"; key = "k"; mode = [ "n" ]; }
{ action = "<Esc>"; key = "jk"; mode = [ "i" ]; } {
action = "<Esc>";
key = "jk";
mode = ["i"];
}
{ action = "<cmd>Telescope find_files<CR>"; key = "<leader><leader>"; options.desc = "Find Files"; } {
{ action = "<cmd>Telescope live_grep<CR>"; key = "<leader>fg"; options.desc = "Grep";} action = "<cmd>Telescope find_files<CR>";
{ action = "<cmd>Telescope buffers<CR>"; key = "<leader>fb"; options.desc = "Find Buffers";} key = "<leader><leader>";
{ action = "<cmd>Telescope projects<CR>"; key = "<leader>pp"; options.desc = "Switch Projects";} options.desc = "Find Files";
}
{
action = "<cmd>Telescope live_grep<CR>";
key = "<leader>fg";
options.desc = "Grep";
}
{
action = "<cmd>Telescope buffers<CR>";
key = "<leader>fb";
options.desc = "Find Buffers";
}
{
action = "<cmd>Telescope projects<CR>";
key = "<leader>pp";
options.desc = "Switch Projects";
}
{ action = "<cmd>Trouble diagnostics toggle<CR>"; key = "<leader>tr"; } {
{ action = "<cmd>Neogit<CR>"; key = "<leader>gg"; options.desc = "Open Git"; } action = "<cmd>Trouble diagnostics toggle<CR>";
{ action = "<cmd>NvimTreeToggle<CR>"; key = "<leader>tt"; options.desc = "Tree View";} key = "<leader>tr";
}
{
action = "<cmd>Neogit<CR>";
key = "<leader>gg";
options.desc = "Open Git";
}
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<leader>tt";
options.desc = "Tree View";
}
{ action.__raw = "function() require('flash').jump() end"; key = "s"; mode = [ "n" "x" "o" ]; options.desc = "Flash"; } {
{ action.__raw = "function() require('flash').treesitter() end"; key = "S"; mode = [ "n" "x" "o" ]; options.desc = "Flash Treesitter"; } action.__raw = "function() require('flash').jump() end";
{ action.__raw = "function() require('flash').remote() end"; key = "r"; mode = [ "o" ]; options.desc = "Remote Flash"; } key = "s";
{ action.__raw = "function() require('flash').treesitter_search() end"; key = "R"; mode = [ "o" ]; options.desc = "Treesitter Search"; } mode = ["n" "x" "o"];
{ action.__raw = "function() require('flash').toggle() end"; key = "<c-s>"; mode = [ "c" ]; options.desc = "Toggle Flash"; } options.desc = "Flash";
}
{
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

@ -60,6 +60,16 @@ config.keys = {
nav_pane("j", "Down"), nav_pane("j", "Down"),
nav_pane("k", "Up"), nav_pane("k", "Up"),
nav_pane("l", "Right"), nav_pane("l", "Right"),
{
key = ">",
mods = "LEADER",
action = wezterm.action.MoveTabRelative(1)
},
{
key = "<",
mods = "LEADER",
action = wezterm.action.MoveTabRelative(-1)
},
} }
local function get_current_working_dir(tab) local function get_current_working_dir(tab)