{ config, pkgs, ... }: let myneovim = pkgs.myneovim.override { viAlias = true; vimAlias = true; enableDevIcons = true; enableTabby = true; enableOrgMode = true; extraPlugins = [ pkgs.vimPlugins.d2-vim ]; plugins = with pkgs.myneovim.nix2lua; { nvimTree.settings = { open_on_setup = true; renderer = { group_empty = true; full_name = true; }; tab.sync = { open = true; close = true; }; }; telescope.settings = { extensions.live_grep_args = { auto_quoting = true; mappings.i = { "" = mkLuaRaw "require('telescope-live-grep-args.actions').quote_prompt()"; }; }; }; lspSaga.settings = { border_style = "rounded"; symbol_in_winbar.enable = false; code_action_lightbulb.enable = false; code_action_keys = { quit = ""; }; definition_action_keys = { quit = ""; }; rename_action_quit = ""; }; lspConfig = { servers = { nickel_ls = { }; nil_ls = { }; tsserver = { }; eslint = { }; denols = { root_dir = mkLuaRaw "root_pattern(\"deno.json\", \"deno.jsonc\")"; }; rust_analyzer = { settings.rust-analyzer = { "server.path" = "rust-analyzer"; "updates.prompt" = false; "updates.checkOnStartup" = false; "checkOnSave.enable" = true; "checkOnSave.command" = "clippy"; "cargo.autoreload" = true; }; }; }; }; lualine.settings = { options.ignore_focus = [ "NvimTree" ]; sections = { lualine_a = [ [ "filename" (mkNamedField "path" 1) ] ]; lualine_b = [ "branch" "diff" "diagnostics" ]; lualine_c = [ "lsp_progress" ]; lualine_x = [ "filesize" "filetype" ]; lualine_y = [ "progress" ]; lualine_z = [ "location" "mode" ]; }; }; orgmode.settings = { org_agenda_files = [ "~/orgs/**/*" ]; org_default_notes_file = "~/orgs/refile.org"; win_split_mode = "tabnew"; org_hide_leading_stars = true; }; }; }; in { home.packages = [ myneovim ]; home.sessionVariables.EDITOR = "nvim"; }