feat: add neovim
This commit is contained in:
parent
ffbbe070af
commit
8722626a35
@ -1,14 +1,134 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{
|
||||
programs.neovim = {
|
||||
imports = [
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
# extraLuaConfig = '' '';
|
||||
# extraPackages = [ ];
|
||||
colorschemes.gruvbox.enable = true;
|
||||
extraPlugins = [ pkgs.vimPlugins.todo-txt-vim ];
|
||||
plugins = {
|
||||
oil.enable = true;
|
||||
neogit.enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
tsserver.enable = true; # TS/JS
|
||||
pyright.enable = true; # Python
|
||||
biome.enable = true; # TS/JS
|
||||
};
|
||||
home.packages = [
|
||||
pkgs.nil
|
||||
keymaps.lspBuf = {
|
||||
gd = { action = "definition"; desc = "Goto Definition"; };
|
||||
gr = { action = "references"; 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 = [
|
||||
{ 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 = {
|
||||
"<leader>cd" = {
|
||||
action = "open_float";
|
||||
desc = "Line Diagnostics";
|
||||
};
|
||||
"[d" = {
|
||||
action = "goto_next";
|
||||
desc = "Next Diagnostic";
|
||||
};
|
||||
"]d" = {
|
||||
action = "goto_prev";
|
||||
desc = "Previous Diagnostic";
|
||||
};
|
||||
};
|
||||
};
|
||||
trouble.enable = true;
|
||||
cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
settings = {
|
||||
sources = [
|
||||
{ name = "nvim_lsp"; }
|
||||
{ name = "emoji"; }
|
||||
{ name = "emoji"; }
|
||||
{ name = "buffer"; option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; keywordLength = 3; }
|
||||
{ name = "path"; keywordLength = 3; }
|
||||
{ name = "luasnip"; keywordLength = 3; }
|
||||
];
|
||||
window = {
|
||||
completion = { border = "solid"; };
|
||||
documentation = { border = "solid"; };
|
||||
};
|
||||
mapping = {
|
||||
"<C-n>" = "cmp.mapping.select_next_item()";
|
||||
"<C-p>" = "cmp.mapping.select_prev_item()";
|
||||
"<C-e>" = "cmp.mapping.abort()";
|
||||
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
|
||||
};
|
||||
};
|
||||
};
|
||||
cmp-nvim-lsp.enable = true;
|
||||
cmp-buffer.enable = true;
|
||||
cmp-path.enable = true;
|
||||
cmp_luasnip.enable = true;
|
||||
cmp-cmdline.enable = true;
|
||||
|
||||
luasnip.enable = true;
|
||||
|
||||
treesitter = {
|
||||
enable = true;
|
||||
folding = true;
|
||||
settings = {
|
||||
ensure_installed = "all";
|
||||
highlight.enable = true;
|
||||
indent.enable = true;
|
||||
};
|
||||
};
|
||||
which-key.enable = true;
|
||||
ts-autotag.enable = true;
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions.fzf-native.enable = true;
|
||||
};
|
||||
};
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
signcolumn = "yes";
|
||||
undofile = true;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
swapfile = false;
|
||||
foldlevel = 9;
|
||||
smartindent = true;
|
||||
tabstop = 2;
|
||||
shiftwidth = 2;
|
||||
softtabstop = 0;
|
||||
expandtab = true;
|
||||
smarttab = true;
|
||||
scrolloff = 5;
|
||||
};
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = " ";
|
||||
};
|
||||
keymaps = [
|
||||
{ action = ":"; key = ";"; mode = [ "n" ]; }
|
||||
{ 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 buffers<CR>"; key = "<leader>fb"; options.desc = "Find Buffers";}
|
||||
{ action = "gj"; key = "j"; mode = [ "n" ]; }
|
||||
{ action = "gk"; key = "k"; mode = [ "n" ]; }
|
||||
{ action = "<cmd>Trouble diagnostics toggle<CR>"; key = "<leader>tr"; }
|
||||
{ action = "<cmd>Neogit<CR>"; key = "<leader>gg"; options.desc = "Open Git"; }
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -26,12 +26,14 @@
|
||||
home.packages = [
|
||||
pkgs.lazygit
|
||||
pkgs.jq
|
||||
pkgs.todo-txt-cli
|
||||
|
||||
pkgs.wezterm
|
||||
pkgs.raycast
|
||||
pkgs.cocoapods
|
||||
pkgs.tailscale
|
||||
pkgs.entr
|
||||
pkgs.vscode
|
||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
||||
# # "Hello, world!" when run.
|
||||
# pkgs.hello
|
||||
@ -82,8 +84,19 @@
|
||||
# /etc/profiles/per-user/yadunut/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.sessionVariables = {
|
||||
# EDITOR = "emacs";
|
||||
JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home";
|
||||
ANDROID_HOME="$HOME/Library/Android/sdk";
|
||||
EDITOR="nvim";
|
||||
VISUAL="nvim";
|
||||
};
|
||||
home.sessionPath = [
|
||||
"$ANDROID_HOME/emulator"
|
||||
"$ANDROID_HOME/platform-tools"
|
||||
];
|
||||
programs.zsh.shellAliases = {
|
||||
lg = "lazygit";
|
||||
};
|
||||
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
@ -38,8 +38,6 @@
|
||||
pkgs.pyright
|
||||
pkgs.yt-dlp
|
||||
pkgs.rsync
|
||||
|
||||
pkgs.wezterm
|
||||
# Neovim deps
|
||||
# pkgs.texlab
|
||||
# pkgs.efm-langserver
|
||||
|
Loading…
Reference in New Issue
Block a user