nvf/configuration.nix

238 lines
5.2 KiB
Nix
Raw Normal View History

isMaximal: {
config.vim = {
viAlias = true;
vimAlias = true;
debugMode = {
enable = false;
level = 16;
logFile = "/tmp/nvim.log";
2023-02-07 12:03:21 +00:00
};
spellcheck = {
enable = isMaximal;
};
2023-02-07 12:03:21 +00:00
lsp = {
formatOnSave = true;
lspkind.enable = false;
lightbulb.enable = true;
lspsaga.enable = false;
trouble.enable = true;
lspSignature.enable = true;
otter-nvim.enable = isMaximal;
lsplines.enable = isMaximal;
nvim-docs-view.enable = isMaximal;
};
debugger = {
nvim-dap = {
enable = true;
ui.enable = true;
2023-04-17 22:48:44 +00:00
};
};
2023-04-17 22:48:44 +00:00
languages = {
enableLSP = true;
enableFormat = true;
enableTreesitter = true;
enableExtraDiagnostics = true;
# Nim LSP is broken on Darwin and therefore
# should be disabled by default. Users may still enable
# `vim.languages.vim` to enable it, this does not restrict
# that.
# See: <https://github.com/PMunch/nimlsp/issues/178#issue-2128106096>
nim.enable = false;
nix.enable = true;
# Assembly is not common, and the asm LSP is a major hit-or-miss
assembly.enable = false;
markdown.enable = isMaximal;
html.enable = isMaximal;
css.enable = isMaximal;
sql.enable = isMaximal;
java.enable = isMaximal;
kotlin.enable = isMaximal;
ts.enable = isMaximal;
svelte.enable = isMaximal;
go.enable = isMaximal;
lua.enable = isMaximal;
elixir.enable = isMaximal;
zig.enable = isMaximal;
ocaml.enable = isMaximal;
python.enable = isMaximal;
dart.enable = isMaximal;
bash.enable = isMaximal;
r.enable = isMaximal;
tailwind.enable = isMaximal;
typst.enable = isMaximal;
clang.enable = isMaximal;
scala.enable = isMaximal;
rust = {
enable = isMaximal;
crates.enable = isMaximal;
2023-02-07 12:03:21 +00:00
};
csharp.enable = isMaximal;
julia.enable = isMaximal;
vala.enable = isMaximal;
nu.enable = false;
};
2023-02-07 12:03:21 +00:00
visuals = {
nvim-scrollbar.enable = isMaximal;
nvim-web-devicons.enable = true;
nvim-cursorline.enable = true;
cinnamon-nvim.enable = true;
fidget-nvim.enable = true;
highlight-undo.enable = true;
indent-blankline.enable = true;
2023-02-07 12:03:21 +00:00
# Fun
cellular-automaton.enable = false;
};
2023-02-07 12:03:21 +00:00
statusline = {
lualine = {
2023-02-07 12:03:21 +00:00
enable = true;
theme = "catppuccin";
2023-02-07 12:03:21 +00:00
};
};
2023-02-07 12:03:21 +00:00
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
transparent = false;
};
autopairs.nvim-autopairs.enable = true;
2023-02-07 12:03:21 +00:00
autocomplete.nvim-cmp.enable = true;
snippets.luasnip.enable = true;
2023-02-07 12:03:21 +00:00
filetree = {
neo-tree = {
enable = true;
2023-02-07 12:03:21 +00:00
};
};
2023-02-07 12:03:21 +00:00
tabline = {
nvimBufferline.enable = true;
};
2023-02-07 12:03:21 +00:00
treesitter.context.enable = true;
2023-02-07 12:03:21 +00:00
binds = {
whichKey.enable = true;
cheatsheet.enable = true;
};
2023-02-07 12:03:21 +00:00
telescope.enable = true;
2023-02-07 12:03:21 +00:00
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false; # throws an annoying debug message
};
2023-02-07 12:03:21 +00:00
minimap = {
minimap-vim.enable = false;
codewindow.enable = isMaximal; # lighter, faster, and uses lua for configuration
};
2023-02-07 12:03:21 +00:00
dashboard = {
dashboard-nvim.enable = false;
alpha.enable = isMaximal;
};
2023-02-07 12:03:21 +00:00
notify = {
nvim-notify.enable = true;
};
2023-04-07 17:36:27 +00:00
projects = {
project-nvim.enable = isMaximal;
};
2024-02-17 00:19:38 +00:00
utility = {
ccc.enable = false;
vim-wakatime.enable = false;
icon-picker.enable = isMaximal;
surround.enable = isMaximal;
diffview-nvim.enable = true;
motion = {
hop.enable = true;
leap.enable = true;
utility/precognition: init module (#437) * utility/precognition: init * utility/precognition: fix priority example, add default * utility/precognition: add files to default.nix * utility/precognition: fix typos, manual fmt * utility/precognition: remove useless mappings i was going to add binds to toggle/enable/disable but ehhh idk * utility/precognition: fix hints option it broke * utility/precognition: update gutter hints, new description * utility/precognition: add files to motion defaults * utility/precognition: add plugin to flake * utility/precognition: remove comment reference oops * utility/precognition: add precognition to maximal configuration it does work! * utility/precognition: update descriptions needs docs link, desc is somewhat obscure. * docs: add credit to release notes * utility/precognition: format * utility/precognition: de-linkify descriptions * utility/precognition: no more rec * utility/precognition: convert to setupOpts honestly raf was cooking with this one. it's much nicer to use compared to interpolation lol * utility/precognition: remove unnecessary function parameter * utility/precognition: format * utility/precognition: add description to disabled_fts oops * utility/precognition: manual format * utility/precognition: remove periods at the end of descriptions * utility/precognition: fix configuration.nix entry oops lol * utility/precognition: format * utility/precognition: expand `vim` * precognition: consistency changes Just my minor nits. --------- Co-authored-by: NotAShelf <raf@notashelf.dev>
2024-11-08 09:32:02 +00:00
precognition.enable = isMaximal;
2023-02-07 12:03:21 +00:00
};
images = {
image-nvim.enable = false;
2023-02-07 12:03:21 +00:00
};
};
2023-02-07 12:03:21 +00:00
notes = {
obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled
neorg.enable = false;
orgmode.enable = false;
mind-nvim.enable = isMaximal;
todo-comments.enable = true;
};
2023-02-07 12:03:21 +00:00
terminal = {
toggleterm = {
enable = true;
lazygit.enable = true;
2023-02-07 12:03:21 +00:00
};
};
2023-02-07 12:03:21 +00:00
ui = {
borders.enable = true;
noice.enable = true;
colorizer.enable = true;
modes-nvim.enable = false; # the theme looks terrible with catppuccin
illuminate.enable = true;
breadcrumbs = {
enable = isMaximal;
navbuddy.enable = isMaximal;
};
smartcolumn = {
enable = true;
setupOpts.custom_colorcolumn = {
# this is a freeform module, it's `buftype = int;` for configuring column position
nix = "110";
ruby = "120";
java = "130";
go = ["90" "130"];
};
2023-02-07 12:03:21 +00:00
};
fastaction.enable = true;
};
2023-02-07 12:03:21 +00:00
assistant = {
chatgpt.enable = false;
copilot = {
enable = false;
cmp.enable = isMaximal;
2023-02-07 12:03:21 +00:00
};
};
2023-02-07 12:03:21 +00:00
session = {
nvim-session-manager.enable = false;
};
gestures = {
gesture-nvim.enable = false;
};
comments = {
comment-nvim.enable = true;
};
presence = {
neocord.enable = false;
2023-02-07 12:03:21 +00:00
};
};
}