neovim-flake/configuration.nix

251 lines
5.8 KiB
Nix
Raw Normal View History

# This is the sample configuration for nvf, aiming to give you a feel of the default options
# while certain plugins are enabled. While it may act as one, this is not an overview of nvf's
# module options. To find a complete overview of nvf's options and examples, visit the manual.
# https://notashelf.github.io/nvf/options.html
isMaximal: {
config.vim = {
viAlias = true;
vimAlias = true;
debugMode = {
enable = false;
level = 16;
logFile = "/tmp/nvim.log";
2023-02-07 13:03:21 +01:00
};
spellcheck = {
enable = isMaximal;
};
2023-02-07 13:03:21 +01: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-18 00:48:44 +02:00
};
};
2023-04-18 00:48:44 +02:00
# This section does not include a comprehensive list of available language modules.
# To list all available language module options, please visit the nvf manual.
languages = {
enableLSP = true;
enableFormat = true;
enableTreesitter = true;
enableExtraDiagnostics = true;
# Languages that will be supported in default and maximal configurations.
nix.enable = true;
markdown.enable = true;
# Languages that are enabled in the maximal configuration.
bash.enable = isMaximal;
clang.enable = isMaximal;
css.enable = isMaximal;
html.enable = isMaximal;
sql.enable = isMaximal;
java.enable = isMaximal;
kotlin.enable = isMaximal;
ts.enable = isMaximal;
go.enable = isMaximal;
lua.enable = isMaximal;
zig.enable = isMaximal;
python.enable = isMaximal;
typst.enable = isMaximal;
rust = {
enable = isMaximal;
crates.enable = isMaximal;
2023-02-07 13:03:21 +01:00
};
# Language modules that are not as common.
assembly.enable = false;
astro.enable = false;
nu.enable = false;
csharp.enable = false;
julia.enable = false;
vala.enable = false;
scala.enable = false;
r.enable = false;
gleam.enable = false;
dart.enable = false;
ocaml.enable = false;
elixir.enable = false;
haskell.enable = false;
tailwind.enable = false;
svelte.enable = false;
# 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;
};
2023-02-07 13:03:21 +01: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 13:03:21 +01:00
# Fun
cellular-automaton.enable = false;
};
2023-02-07 13:03:21 +01:00
statusline = {
lualine = {
2023-02-07 13:03:21 +01:00
enable = true;
theme = "catppuccin";
2023-02-07 13:03:21 +01:00
};
};
2023-02-07 13:03:21 +01:00
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
transparent = false;
};
autopairs.nvim-autopairs.enable = true;
2023-02-07 13:03:21 +01:00
autocomplete.nvim-cmp.enable = true;
snippets.luasnip.enable = true;
2023-02-07 13:03:21 +01:00
filetree = {
neo-tree = {
enable = true;
2023-02-07 13:03:21 +01:00
};
};
2023-02-07 13:03:21 +01:00
tabline = {
nvimBufferline.enable = true;
};
2023-02-07 13:03:21 +01:00
treesitter.context.enable = true;
2023-02-07 13:03:21 +01:00
binds = {
whichKey.enable = true;
cheatsheet.enable = true;
};
2023-02-07 13:03:21 +01:00
telescope.enable = true;
2023-02-07 13:03:21 +01:00
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false; # throws an annoying debug message
};
2023-02-07 13:03:21 +01:00
minimap = {
minimap-vim.enable = false;
codewindow.enable = isMaximal; # lighter, faster, and uses lua for configuration
};
2023-02-07 13:03:21 +01:00
dashboard = {
dashboard-nvim.enable = false;
alpha.enable = isMaximal;
};
2023-02-07 13:03:21 +01:00
notify = {
nvim-notify.enable = true;
};
2023-04-07 19:36:27 +02:00
projects = {
project-nvim.enable = isMaximal;
};
2024-02-17 01:19:38 +01: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 10:32:02 +01:00
precognition.enable = isMaximal;
2023-02-07 13:03:21 +01:00
};
images = {
image-nvim.enable = false;
2023-02-07 13:03:21 +01:00
};
};
2023-02-07 13:03:21 +01: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 13:03:21 +01:00
terminal = {
toggleterm = {
enable = true;
lazygit.enable = true;
2023-02-07 13:03:21 +01:00
};
};
2023-02-07 13:03:21 +01: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 13:03:21 +01:00
};
fastaction.enable = true;
};
2023-02-07 13:03:21 +01:00
assistant = {
chatgpt.enable = false;
copilot = {
enable = false;
cmp.enable = isMaximal;
2023-02-07 13:03:21 +01:00
};
};
2023-02-07 13:03:21 +01:00
session = {
nvim-session-manager.enable = false;
};
gestures = {
gesture-nvim.enable = false;
};
comments = {
comment-nvim.enable = true;
};
presence = {
neocord.enable = false;
2023-02-07 13:03:21 +01:00
};
};
}