{ inputs, pkgs, ... }: { imports = [ inputs.nvf.homeManagerModules.default ]; programs.nvf = { enable = true; settings = { vim = { viAlias = true; vimAlias = true; debugMode = { enable = false; level = 20; logFile = "/tmp/nvim.log"; }; }; vim.lsp = { formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; nvimCodeActionMenu.enable = true; trouble.enable = true; lspSignature.enable = true; }; vim.languages = { enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; nix.enable = true; html.enable = true; clang.enable = false; sql.enable = false; rust = { enable = false; crates.enable = false; }; ts.enable = true; go.enable = true; zig.enable = false; python.enable = false; dart.enable = false; elixir.enable = false; }; vim.visuals = { enable = true; nvimWebDevicons.enable = true; scrollBar.enable = true; smoothScroll.enable = true; cellularAutomaton.enable = true; fidget-nvim.enable = true; indentBlankline = { enable = true; fillChar = null; eolChar = null; scope.enabled = true; }; cursorline = { enable = true; lineTimeout = 0; }; }; vim.statusline = { lualine = { enable = true; theme = "onedark"; }; }; vim.theme = { enable = true; name = "onedark"; style = "dark"; transparent = false; }; vim.autopairs.enable = true; vim.autocomplete = { enable = true; type = "nvim-cmp"; }; vim.filetree = { nvimTree = { enable = true; openOnSetup = true; setupOpts = { disable_netrw = true; hijack_unnamed_buffer_when_opening = true; hijack_cursor = true; hijack_directories = { enable = true; autoOpen = true; }; git = { enable = true; showOnDirs = false; timeout = 100; }; view = { cursorline = false; width = { min = 35; max = -1; padding = 1; }; }; renderer = { indent_markers.enable = true; root_folder_label = false; icons = { modified_placement = "after"; git_placement = "after"; show.git = true; show.modified = true; }; }; diagnostics.enable = true; modified = { enable = true; show_on_dirs = false; show_on_open_dirs = true; }; }; mappings = { toggle = ""; }; }; }; vim.tabline = { nvimBufferline.enable = true; }; vim.treesitter.context.enable = true; vim.binds = { whichKey.enable = true; cheatsheet.enable = true; }; vim.telescope.enable = true; vim.git = { enable = true; gitsigns.enable = true; gitsigns.codeActions.enable = false; }; vim.minimap = { minimap-vim.enable = false; codewindow.enable = true; # lighter, faster, and uses lua for configuration }; vim.dashboard = { dashboard-nvim.enable = false; alpha.enable = true; }; vim.notify = { nvim-notify.enable = true; }; vim.projects = { project-nvim.enable = true; }; vim.utility = { ccc.enable = true; icon-picker.enable = true; diffview-nvim.enable = true; motion = { hop.enable = true; leap.enable = false; }; vim-wakatime = { enable = true; cli-package = pkgs.wakatime; }; }; vim.notes = { mind-nvim.enable = true; todo-comments.enable = true; }; vim.terminal = { toggleterm.enable = true; }; vim.ui = { noice.enable = true; smartcolumn = { enable = true; setupOpts.custom_colorcolumn = { nix = 150; ruby = 110; java = 120; go = [110 150]; }; }; }; vim.assistant = { copilot.enable = true; }; vim.session = { nvim-session-manager.enable = true; }; vim.gestures = { gesture-nvim.enable = false; }; vim.comments = { comment-nvim.enable = true; }; #vim.presence = { # presence-nvim = { # enable = true; # auto_update = true; # image_text = "The Superior Text Editor"; # client_id = "793271441293967371"; # main_image = "neovim"; # rich_presence = { # editing_text = "Editing %s"; # }; # }; #}; }; }; }