Created
November 22, 2023 06:44
-
-
Save PoSayDone/089b4c5939a9b53195849b80e8ea09d0 to your computer and use it in GitHub Desktop.
nixvim configs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ pkgs | |
, inputs | |
, config | |
, ... | |
}: { | |
imports = [ inputs.nixvim.homeManagerModules.nixvim ]; | |
programs.neovim = { | |
defaultEditor = true; | |
}; | |
programs.nixvim = { | |
enable = true; | |
package = pkgs.neovim-unwrapped; | |
extraPlugins = with pkgs.vimPlugins; [ | |
vim-tpipeline | |
]; | |
options = { | |
clipboard="unnamedplus"; | |
number = true; | |
relativenumber = false; | |
undodir = "./undo"; | |
undofile = true; | |
fillchars = {eob = " ";}; | |
tabstop = 4; | |
shiftwidth = 4; | |
expandtab = false; | |
wrap=false; | |
laststatus = 3; | |
}; | |
colorschemes.base16.enable = true; | |
colorschemes.base16.customColorScheme = { | |
base00 = "NONE"; | |
base01 = "NONE"; | |
base02 = "#3e4451"; | |
base03 = "#6c7891"; | |
base04 = "#565c64"; | |
base05 = "#abb2bf"; | |
base06 = "#9a9bb3"; | |
base07 = "#c5c8e6"; | |
base08 = "#f38ba8"; | |
base09 = "#fab387"; | |
base0A = "#f9e2af"; | |
base0B = "#a6e3a1"; | |
base0C = "#94e2d5"; | |
base0D = "#89b4fa"; | |
base0E = "#cba6f7"; | |
base0F = "#f2cdcd"; | |
}; | |
globals = { | |
mapleader = " "; | |
}; | |
plugins = { | |
barbecue.enable = true; | |
nvim-colorizer.enable = true; | |
gitsigns.enable = true; | |
indent-blankline.enable = true; | |
surround.enable = true; | |
bufferline.enable = true; | |
nvim-autopairs.enable = true; | |
tmux-navigator.enable = true; | |
lsp-format.enable = true; | |
lint = { | |
enable = true; | |
lintersByFt = { | |
text = ["vale"]; | |
json = ["jsonlint"]; | |
markdown = ["vale"]; | |
rst = ["vale"]; | |
ruby = ["ruby"]; | |
janet = ["janet"]; | |
inko = ["inko"]; | |
clojure = ["clj-kondo"]; | |
dockerfile = ["hadolint"]; | |
terraform = ["tflint"]; | |
typscriptreact = ["prettier_eslint"]; | |
}; | |
}; | |
lualine = { | |
enable = true; | |
theme = "base16"; | |
componentSeparators = { | |
left = ""; | |
right = ""; | |
}; | |
sectionSeparators = { | |
left = ""; | |
right = ""; | |
}; | |
inactiveSections = { | |
lualine_a = null; | |
lualine_b = null; | |
lualine_c = null; | |
lualine_x = null; | |
lualine_y = null; | |
lualine_z = null; | |
}; | |
sections = { | |
lualine_a = ["mode"]; | |
lualine_b = [ "filename" "branch" ]; | |
lualine_c = [ "fileformat" ]; | |
lualine_x = [ "progress" ]; | |
lualine_y = [ "filetype" ]; | |
lualine_z = [ "location" ]; | |
}; | |
}; | |
telescope = { | |
enable = true; | |
keymaps = { | |
"<leader>ff" = "find_files"; | |
}; | |
}; | |
nvim-tree = { | |
enable = true; | |
filters.custom = [ | |
".git" | |
]; | |
}; | |
nix.enable = true; | |
zig.enable = true; | |
emmet.enable = true; | |
treesitter = { | |
enable = true; | |
nixGrammars = true; | |
}; | |
lsp = { | |
enable = true; | |
servers = { | |
clangd.enable = true; | |
rnix-lsp.enable = true; | |
rust-analyzer.enable = true; | |
pyright.enable = true; | |
zls.enable = true; | |
gopls.enable = true; | |
elixirls.enable = true; | |
eslint.enable = true; | |
tsserver.enable = true; | |
}; | |
}; | |
lspkind = { | |
enable = true; | |
cmp.ellipsisChar = "..."; | |
cmp.menu = { | |
buffer = "[Buffer]"; | |
nvim_lsp = "[LSP]"; | |
luasnip = "[LuaSnip]"; | |
nvim_lua = "[Lua]"; | |
latex_symbols = "[Latex]"; | |
}; | |
cmp.after = '' | |
function(entry, vim_item, kind) | |
local strings = vim.split(kind.kind, "%s", { trimempty = true }) | |
kind.kind = " " .. strings[1] .. " " | |
kind.menu = " " .. strings[2] | |
return kind | |
end | |
''; | |
}; | |
nvim-cmp = { | |
enable = true; | |
sources = [{ name = "nvim_lsp"; }]; | |
mappingPresets = [ "insert" ]; | |
mapping = { | |
"<CR>" = "cmp.mapping.confirm({ select = true })"; | |
}; | |
formatting.fields = [ "kind" "abbr" "menu" ]; | |
}; | |
lsp-lines.enable = true; | |
}; | |
keymaps = [ | |
{ | |
key = "<Tab>"; | |
action = ":bnext<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<S-Tab>"; | |
action = ":bprev<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<C-n>"; | |
action = ":NvimTreeToggle<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<C-s>"; | |
action = ":w<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<C-h>"; | |
action = "<C-w>h"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<C-j>"; | |
action = "<C-w>j"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<leader>x"; | |
action = ":bd<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<"; | |
action = "< gv"; | |
mode = ["v"]; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = ">"; | |
action = "> gv"; | |
mode = ["v"]; | |
options = { | |
silent = true; | |
}; | |
} | |
{ | |
key = "<Esc>"; | |
action = ":noh<CR>"; | |
options = { | |
silent = true; | |
}; | |
} | |
]; | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment