526CRD2QD6NF6N6PQUNWZT6UUGNLMC25UYNIO7ZFUCPQCUALYN4QC I4HWXLAAKJHZUQFV23XBAAEW6VTCOXO2F3AB5R6RTOHHZBZLK2VAC BJ5I57ZLQES5S3HH7WW3Z4CZSBOU4GQVR4JWFXQ7T2TKVIFGG6QAC GJHFP6NWDX4JTRENJY2LOUPIIJY5J7ZVOBGGJJQNK3VBCSR5WNXQC AH6HSGEDTDCT77KUZXFSBB3U22PORVZ2RFGEN2DHYJNUHG6UWDPAC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC KXYLAJ5WZIXV5FQ4TU3IPHCO2YRKQBAZBW27LOA5EVWI2OLVPIIAC # programs.nvf.settings.vim = {# lsp configuration# lsp = {# enable = false; # disabled initially# servers you want to enable can be configured here# rust.enable = true;# typescript.enable = true;# };
programs.nvf.settings.vim = {assistant = {supermaven-nvim = {enable = true;};};lsp = {trouble = {enable = true;mappings = {quickfix = "<leader>tq";documentDiagnostics = "<leader>tr";workspaceDiagnostics = "<leader>te";};setupOpts = {auto_close = true;modes = {diagnostics = {win = {size = 0.3;};};};};};};# treesittertreesitter = {enable = true;grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [javascripttypescriptsveltemarkdowncsshtmlluavimjsonyamlvimdocgohttprust];fold = true;indent.enable = true;highlight.enable = true;textobjects.enable = true;# autoTagHtml = true;context = {enable = true;setupOpts = {max_lines = 3;separator = "-";};};};languages = {rust = {crates.enable = true;dap.enable = true;};markdown.extensions.render-markdown-nvim = {enable = true;setupOpts = {completions = {blink = {enabled = true;};};file_types = [ "markdown" ];};};};autopairs = {nvim-autopairs = {enable = true;setupOpts = {disable_filetype = [ "typr" ];};};};autocomplete = {blink-cmp = {enable = true;setupOpts = {keymap = {preset = "enter";};completion = {documentation = {auto_show = true;auto_show_delay_ms = 250;};# menu = {# draw = {# columns = {# { "kind" };# { "label", gap = 1 };# };# };# };};cmdline = {enabled = false;};signature = {enabled = true;};sources = {default = ["lsp""path""snippets""buffer"];providers = {buffer = {opts = {# get_bufnrs = function()# return vim.tbl_filter(function(bufnr)# return vim.bo[bufnr].buftype == ""# end, vim.api.nvim_list_bufs())# end,};};};};};};};mini = {ai.enable = true;diff = {enable = true;setupOpts = {view = {style = "number";};mappings = {apply = "";reset = "";textobject = "";goto_first = "";goto_prev = "";goto_next = "";goto_last = "";};};};surround.enable = true;bufremove.enable = true;};git = {neogit = {enable = true;mappings.open = "<leader>g";setupOpts = {integrations = {telescope = true;diffview = true;};commit_editor = {staged_diff_split_kind = "vsplit";};commit_select_view = {kind = "vsplit";};};};};navigation = {harpoon = {enable = false;mappings = {file1 = "<leader>h";file2 = "<leader>j";file3 = "<leader>k";file4 = "<leader>l";};setupOpts = {defaults = {save_on_toggle = true;save_on_ui_close = true;};};};};utility = {ccc.enable = true;diffview-nvim.enable = true; # for neogitundotree.enable = true;nvim-biscuits = {enable = true;setupOpts = {cursor_line_only = true;prefix_string = " ";toggle_keybind = "<leader>bi";show_on_start = false;};};};visuals = {nvim-web-devicons.enable = true;fidget-nvim = {enable = true;setupOpts = {progress = {display = {done_ttl = 10;};};notification = {override_vim_notify = true;window = {winblend = 0;zindex = 1000;max_width = 60;};};};};};telescope = {enable = true;setupOpts = {defaults = {color_devicons = true;layout_config = {horizontal = {prompt_position = "top";preview_width = 0.6;};};path_display = [ "truncate" ];sorting_strategy = "ascending";dynamic_preview_title = true;};extensions = {workspaces = { };};};mappings = {findFiles = "<leader>ff";liveGrep = "<leader>fg";buffers = "<leader>fb";};};notes = {todo-comments = {enable = true;setupOpts = {signs = false;highlight = {before = "";keyword = "wide";after = "";};};mappings = {telescope = "<leader>td";};};};formatter.conform-nvim = {enable = true;setupOpts = {formatters_by_ft = {astro = ["prettierd""prettier"];go = ["gofumpt""goimports"];javascript = ["prettierd""prettier"];javascriptreact = ["prettierd""prettier"];typescript = ["prettierd""prettier"];typescriptreact = ["prettierd""prettier"];json = ["prettierd""prettier"];svelte = ["prettierd""prettier"];vue = ["prettierd""prettier"];yaml = ["prettierd""prettier"];md = [ "dprint" ];toml = [ "dprint" ];lua = [ "stylua" ];sql = [ "sql_formatter" ];python = [ "ruff_format" ];rust = [ "rustfmt" ];# nu = [ "nufmt" ];nix = [ "nixfmt" ];};format_after_save = {async = true;# lsp_format = "fallback"};};};# git integration# git = {# enable = false; # disabled initially# gitsigns.enable = true;# };# statusline# statusline = {# enable = false; # disabled initially# lualine.enable = true;# };lazy.plugins = {"SchemaStore.nvim" = {package = pkgs.vimPlugins.SchemaStore-nvim;};"dirbuf.nvim" = {package = pkgs.vimPlugins.dirbuf-nvim;cmd = "Dirbuf";setupModule = "dirbuf";setupOpts = {sort_order = "directories_first";write_cmd = "DirbufSync -confirm";show_hidden = true;};keys = [{mode = "n";key = "-";action = ":Dirbuf<CR>";desc = "Open dirbuf";}{mode = "n";key = "<C-s>";action = ":lua ToggleDirbuf()<CR>";desc = "Open dirbuf";}];};"no-neck-pain.nvim" = {# doesnt load on startup idk whypackage = pkgs.vimPlugins.no-neck-pain-nvim;lazy = false;priority = 1001;setupOpts = {width = 110;autocmds = {enableOnVimEnter = true;skipEnteringNoNeckPainBuffer = true;};buffers = {wo = {fillchars = "eob: ";};};};};"vimplugin-pomo.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "pomo.nvim";src = pkgs.fetchFromGitHub {owner = "epwalsh";repo = "pomo.nvim";rev = "aa8decc421d89be0f10b1fc6a602cdd269f350ff";sha256 = "sha256-tJ2TrypKnCnQm+6FDjX0KDr+UNoBBVvGIm+uWJtpNLc=";};};cmd = ["TimerStart""TimerRepeat""TimerSession"];setupModule = "pomo";setupOpts = {update_interval = 500;sessions = {pomodoro = [{name = "Work";duration = "25m";}{name = "Break";duration = "5m";}{name = "Work";duration = "25m";}{name = "Break";duration = "5m";}{name = "Work";duration = "25m";}{name = "Break";duration = "15m";}];};notifiers = [{name = "Default";opts = {sticky = false;};}];};};"vimplugin-scrolleof.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "scrolleof.nvim";src = pkgs.fetchFromGitHub {owner = "Aasim-A";repo = "scrollEOF.nvim";rev = "master";sha256 = "sha256-hHoS5WgIsbuVEOUbUBpDRxIwdNoR/cAfD+hlBWzaxug=";};};event = [ "WinScrolled" ];setupModule = "scrollEOF";setupOpts = { };};"vimplugin-tiny-inline-diagnostic.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "tiny-inline-diagnostic.nvim";src = pkgs.fetchFromGitHub {owner = "rachartier";repo = "tiny-inline-diagnostic.nvim";rev = "7dcf8542059fb15c978de845fc8665428ae13a04";sha256 = "sha256-BGmGYYNweelepgFQ58X2PhafAHNyb0N+nNqncHU0Kbc=";};};event = [ "BufReadPost" ];setupModule = "tiny-inline-diagnostic";setupOpts = {preset = "minimal";transparent_bg = true;transparent_cursorline = false;signs = {arrow = "";up_arrow = "";};options = {show_source = {enabled = true;};multilines = {enabled = true;always_show = true;};throttle = 100;};};};
# treesitter# treesitter = {# enable = false; # disabled initially# grammars = [ "rust" "typescript" "lua" "nix" ];# };
"vimplugin-package-info.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "package-info.nvim";src = pkgs.fetchFromGitHub {owner = "vuki656";repo = "package-info.nvim";rev = "4f1b8287dde221153ec9f2acd46e8237d2d0881e";sha256 = "sha256-vrRcWSPfWTDs0r7LvqJVMIPFSZTlLJQG1/dU5or6xLs=";};doCheck = false;};event = [ "BufRead package.json" ];setupModule = "package-info";setupOpts = {autostart = true;hide_unstable_versions = true;notifications = false;icons = {enable = true;style = {up_to_date = " ";outdated = " ";invalid = " ";};};};after = ''vim.api.nvim_set_hl(0, "PackageInfoUpToDateVersion", { fg = "#3c4048" })vim.api.nvim_set_hl(0, "PackageInfoOutdatedVersion", { fg = "#d19a66" })vim.api.nvim_set_hl(0, "PackageInfoInvalidVersion", { fg = "#ee4b2b" })vim.cmd("lua require('package-info').show({ force = true })")'';};"nui.nvim" = {package = pkgs.vimPlugins.nui-nvim;lazy = true;};
# autocomplete# autocomplete = {# enable = false; # disabled initially# type = "nvim-cmp";# };
"vimplugin-ts-context-commentstring.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "ts-context-commentstring.nvim";src = pkgs.fetchFromGitHub {owner = "JoosepAlviste";repo = "nvim-ts-context-commentstring";rev = "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f";sha256 = "sha256-AjDM3+n4+lNBQi8P2Yrh0Ab06uYCndBQT9TX36rDbOM=";};};event = [ "BufRead" ];setupModule = "ts_context_commentstring";setupOpts = { };};"vimplugin-vimwiki" = {package = pkgs.vimUtils.buildVimPlugin {name = "vimwiki";src = pkgs.fetchFromGitHub {owner = "vimwiki";repo = "vimwiki";rev = "72792615e739d0eb54a9c8f7e0a46a6e2407c9e8";sha256 = "sha256-O85nZUWxIKm0gFILAkWH9WqfVcEbnbxR56grqMmum3A=";};};keys = [{mode = "n";key = "<leader>ww";action = "<Plug>VimwikiIndex";desc = "Open vimwiki index";}{mode = "n";key = "<leader>wi";action = "<Plug>VimwikiDiaryIndex";desc = "Open vimwiki diary";}];beforeAll = ''vim.g.vimwiki_option_diary_path = "./diary/"vim.g.vimwiki_global_ext = 0vim.g.vimwiki_option_nested_syntaxes = { svelte = "svelte", typescript = "ts" }vim.g.vimwiki_list = {{ path = "~/vimwiki/james/", syntax = "markdown", ext = ".md" },{ path = "~/vimwiki/healgorithms/", syntax = "markdown", ext = ".md" }}'';};
# telescope# telescope = {# enable = false; # disabled initially# };
"vimplugin-workspaces.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "workspaces.nvim";src = pkgs.fetchFromGitHub {owner = "natecraddock";repo = "workspaces.nvim";rev = "55a1eb6f5b72e07ee8333898254e113e927180ca";sha256 = "sha256-a3f0NUYooMxrZEqLer+Duv6/ktq5MH2qUoFHD8z7fZA=";};};cmd = [ "Telescope workspaces" ];setupModule = "workspaces";setupOpts = {auto_open = true;};keys = [{mode = "n";key = "<leader>fp";action = ":Telescope workspaces<CR>";desc = "Open workspaces";}];after = ''require("telescope").load_extension("workspaces")'';};
# git integration# git = {# enable = false; # disabled initially# gitsigns.enable = true;# };
"vimplugin-zen-mode.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "zen-mode.nvim";src = pkgs.fetchFromGitHub {owner = "folke";repo = "zen-mode.nvim";rev = "main";sha256 = "sha256-TofQ1o5+LH3/1aoLr90oLbBaXFFtu62SXifH5oyj2/k=";};};cmd = [ "ZenMode" ];setupModule = "zen-mode";setupOpts = {window = {backdrop = 0.95;width = 80;height = 1;options = {signcolumn = "no";number = false;relativenumber = false;cursorline = false;cursorcolumn = false;foldcolumn = "0";list = false;};};plugins = {options = {enabled = true;ruler = false;showcmd = true;laststatus = 0;};twilight = {enabled = true;};gitsigns = {enabled = false;};};on_open = "function() vim.opt.colorcolumn = '' end";};};
# statusline# statusline = {# enable = false; # disabled initially# lualine.enable = true;# };
"vimplugin-twilight.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "twilight.nvim";src = pkgs.fetchFromGitHub {owner = "folke";repo = "twilight.nvim";rev = "main";sha256 = "sha256-sC9DSgkQw+jHvi+xUP+iWSSLV0kIWWmrom2Mq5q+RJo=";};};cmd = [ "Twilight" ];setupModule = "twilight";setupOpts = {dimming = {alpha = 0.4;};};};
# additional plugin configuration via lua# luaConfigRC.plugins = /* lua */ ''# -- custom plugin configurations# '';# };}
"vimplugin-typr" = {package = pkgs.vimUtils.buildVimPlugin {name = "typr";src = pkgs.fetchFromGitHub {owner = "nvzone";repo = "typr";rev = "main";sha256 = "sha256-ULjrPOYaWCk8G5B37p+aYD0jI2vngc0LxQIxQduaEWo=";};doCheck = false;};cmd = ["Typr""TyprStats"];setupModule = "typr";setupOpts = {on_attach = "function() vim.opt_local.wrap = false; vim.opt_local.complete = '' end";};};"vimplugin-screenkey.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "screenkey.nvim";src = pkgs.fetchFromGitHub {owner = "NStefan002";repo = "screenkey.nvim";rev = "main";sha256 = "sha256-94bafW0DP4Q9jfE4voiEvUy13JVTs6UP5qgLG2SbeZk=";};};cmd = [ "Screenkey" ];setupModule = "screenkey";setupOpts = {win_opts = {row = "vim.o.lines - 3";col = "vim.o.columns - 25";relative = "editor";anchor = "SE";width = 25;height = 1;border = "single";title = "Key";title_pos = "center";style = "minimal";focusable = false;noautocmd = true;};compress_after = 3;clear_after = 5;disable = {filetypes = [ ];buftypes = [ ];};show_leader = true;group_mappings = true;display_infront = [ ];display_behind = [ ];filter = "function(keys) return keys end";keys = {"<TAB>" = "";"<CR>" = "";"<ESC>" = "Esc";"<SPACE>" = "";"<BS>" = "";"<DEL>" = "";"<LEFT>" = "";"<RIGHT>" = "";"<UP>" = "";"<DOWN>" = "";"<HOME>" = "Home";"<END>" = "End";"<PAGEUP>" = "PgUp";"<PAGEDOWN>" = "PgDn";"<INSERT>" = "Ins";"<F1>" = "";"<F2>" = "";"<F3>" = "";"<F4>" = "";"<F5>" = "";"<F6>" = "";"<F7>" = "";"<F8>" = "";"<F9>" = "";"<F10>" = "";"<F11>" = "";"<F12>" = "";};};after = ''vim.cmd("Screenkey")'';};
"vimplugin-quicksnip.vim" = {package = pkgs.vimUtils.buildVimPlugin {name = "quicksnip.vim";src = pkgs.fetchFromGitHub {owner = "jamesukiyo";repo = "quicksnip.vim";rev = "5b9ccd6937f1172817c5e3054ec58d7f5281b94d";sha256 = "sha256-QMLEqx6PH4m0c0eYhLspjGin+UrdgwcV7a/MzfRPMtM=";};};cmd = ["SnipCurrent""SnipPick"];keys = [{mode = "n";key = "<leader>sp";action = ":SnipPick<CR>";desc = "Pick snippet";}{mode = "n";key = "<leader>sc";action = ":SnipCurrent<CR>";desc = "Current snippet";}];beforeAll = ''vim.g.miniSnip_dirs = { "~/.vim/snippets" }vim.g.miniSnip_trigger = "<C-c>"vim.g.miniSnip_extends = {html = { "html", "javascript" },svelte = { "html", "javascript" },javascript = { "html" },typescript = { "html", "javascript" }}'';};"vimplugin-minisnip" = {package = pkgs.vimUtils.buildVimPlugin {name = "minisnip";src = pkgs.fetchFromGitHub {owner = "Jorenar";repo = "miniSnip";rev = "79d863e1f8d5313ea36d045c3c067a55f3814ecd";sha256 = "sha256-OkF1COC3FykTYd3P/WpRAS0n0nxAPPazOytr698+6TI=";};};event = [ "InsertEnter" ];};"vimplugin-ferris.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "ferris.nvim";src = pkgs.fetchFromGitHub {owner = "vxpm";repo = "ferris.nvim";rev = "main";sha256 = "sha256-spi5Fk7HghMyhi+TqcgxRj9ME6HyJnVGyFkP+mPM010=";};};ft = [ "rust" ];setupModule = "ferris";setupOpts = {create_commands = true;url_handler = "start";};};"vimplugin-darklight.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "darklight.nvim";src = pkgs.fetchFromGitHub {owner = "eliseshaffer";repo = "darklight.nvim";rev = "main";sha256 = "sha256-/MdGhcZ0kQsAzDl02lJK4zMf/5fC5Md0iuvWrz0ZR6Q=";};};lazy = false;priority = 1000;setupModule = "darklight";setupOpts = {mode = "custom";light = "function() ColorMyPencils('light') end";dark = "function() ColorMyPencils('dark') end";};};"vimplugin-compile-mode.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "compile-mode.nvim";src = pkgs.fetchFromGitHub {owner = "ej-shafran";repo = "compile-mode.nvim";rev = "main";sha256 = "sha256-T2l/lEOiO+X5TfAT1mcsyg307nktT+YxxlpbCloNLp4=";};doCheck = false;};cmd = [ "Compile" ];keys = [{mode = "n";key = "<leader>co";action = ":vert Compile<cr>";desc = "Compile";}{mode = "n";key = "<leader>cr";action = ":vert Recompile<cr>";desc = "Recompile";}];beforeAll = ''vim.g.compile_mode = {baleia_setup = true,default_command = "",recompile_no_fail = true}'';};"plenary.nvim" = {package = pkgs.vimPlugins.plenary-nvim;lazy = true;};"vimplugin-baleia.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "baleia.nvim";src = pkgs.fetchFromGitHub {owner = "m00qek";repo = "baleia.nvim";rev = "v1.3.0";sha256 = "sha256-8wG9Oh5Ff7XXOjZ3rPvThCF5QYOyCXxiIcJjgT89RDU=";};};lazy = true;};"vimplugin-volt" = {package = pkgs.vimUtils.buildVimPlugin {name = "volt";src = pkgs.fetchFromGitHub {owner = "nvzone";repo = "volt";rev = "main";sha256 = "sha256-szq/QBI2Y6DKeqBuJ8qA4LlGYnarLT6D/fvwepIgSVc=";};};lazy = true;};};};}
{programs.nvf.settings.vim = {languages = {enableTreesitter = true;html = {enable = true;# treesitter.autoTagHtml = true;};# commented ones don't have builtinsastro.enable = true;# bacon-ls.enable = true;go.enable = true;# json.enable = true;lua.enable = true;nix.enable = true;nu.enable = true;rust.enable = true;svelte.enable = true;tailwind.enable = true;ts.enable = true;yaml.enable = true;};};}
local lsp = vim.lsplsp.set_log_level("off")local c = vim.tbl_deep_extend("force",{},vim.lsp.protocol.make_client_capabilities(),require("blink.cmp").get_lsp_capabilities())lsp.config["*"] = {capabilities = c,root_markers = { ".git" },}lsp.enable({"astro",-- "bacon-ls","gopls","json_ls","lua_ls","nixd","nushell","rust_analyzer","svelteserver","tailwindcss","ts_ls","yamlls",})local orig_util_open_floating_preview = lsp.util.open_floating_previewfunction lsp.util.open_floating_preview(contents, syntax, opts, ...)opts = opts or {}opts.border = opts.border or "single"opts.max_width = opts.max_width or 60opts.focusable = opts.focusable or falsereturn orig_util_open_floating_preview(contents, syntax, opts, ...)end-- trying tiny-inline-diagnostic.nvim for a while-- AUTOCMD("CursorHold", {-- callback = function()-- vim.diagnostic.open_float()-- end,-- })local function reload_lsp()CMD("lua vim.lsp.stop_client(vim.lsp.get_clients())")local function check_and_reload()if not lsp.buf_is_attached(0) thenCMD.edit()elsevim.defer_fn(check_and_reload, 50)endendvim.defer_fn(check_and_reload, 50)endCREATE_CMD("LspReload", reload_lsp, { desc = "Reload attached LSP" })AUTOCMD("LspAttach", {callback = function(args)vim.diagnostic.config({update_in_insert = false,virtual_text = false,float = {focusable = false,border = "rounded",source = "always",header = "",prefix = "",},})local client = lsp.get_client_by_id(args.data.client_id)MAP("n", "<leader>ih", function()if vim.lsp.inlay_hint.is_enabled() thenvim.lsp.inlay_hint.enable(false)elsevim.lsp.inlay_hint.enable(true)endend)if client:supports_method("textDocument/foldingRange") thenvim.wo.foldmethod = "expr"vim.wo.foldexpr = "v:lua.vim.lsp.foldexpr()"elsevim.wo.foldmethod = "indent"endMAP("n", "gd", function()lsp.buf.definition()end, { desc = "Go to definition" })MAP("n", "gr", function()lsp.buf.references()end, { desc = "Show references" })MAP("n", "grn", function()lsp.buf.rename()end, { desc = "vim.lsp rename" })MAP("n", "gi", function()lsp.buf.implementation()end, { desc = "vim.lsp implementation" })MAP({ "n", "v" }, "ga", function()lsp.buf.code_action()end, { desc = "vim.lsp code action" })MAP("n", "K", function()lsp.buf.hover()end, { desc = "Hover" })end,})return {}
return {filetypes = { "yaml" },settings = {yaml = {schemaStore = {-- You must disable built-in schemaStore support if you want to use-- this plugin and its advanced options like `ignore`.enable = false,-- Avoid TypeError: Cannot read properties of undefined (reading 'length')url = "",},schemas = require("schemastore").yaml.schemas(),},},}
return {cmd = { "bunx", "--bun", "typescript-language-server", "--stdio" },root_markers = { "package.json", "bun.lock", "package-lock.json" },init_options = {plugins = {{name = "@vue/typescript-plugin",location = vim.fn.exepath("vue-language-server"),languages = { "vue" },},},},filetypes = {"typescript","javascript","javascriptreact","typescriptreact","vue",},}
return {cmd = { "tailwindcss-language-server", "--stdio" },filetypes = { "astro", "svelte", "tsx", "jsx", "html", "vue" },root_markers = { "package.json", "bun.lock" },settings = {},}
return {cmd = { "svelteserver", "--stdio" },filetypes = { "svelte" },root_markers = { "package.json", "bun.lock" },settings = {},}
return {cmd = { "rust-analyzer" },filetypes = { "rust" },root_markers = { "Cargo.toml", "Cargo.lock" },settings = {["rust-analyzer"] = {assist = {preferSelf = true,},lens = {references = {adt = {enable = true,},enumVariant = {enable = true,},method = {enable = true,},trait = {enable = true,all = true,},},},semanticHighlighting = {operator = {specialization = {enable = true,},},punctuation = {enable = true,separate = {macro = {enable = true,},},specialization = {enable = true,},},},inlayHints = {bindingModeHints = {enable = true,},closureCaptureHints = {enable = true,},closureReturnTypeHints = {enable = true,},discriminantHints = {enable = true,},expressionAdjustmentHints = {enable = true,},genericParameterHints = {lifetime = {enable = true,},type = {enable = true,},},implicitDrops = {enable = true,},implicitSizedBoundHints = {enable = true,},lifetimeElisionHints = {useParameterNames = true,enable = true,},rangeExclusiveHints = {enable = true,},},-- checkOnSave and diagnostics must be disabled for bacon-lscheckOnSave = {command = "clippy",enable = true,},diagnostics = {enable = true,experimental = {enable = true,},styleLints = {enable = true,},},hover = {actions = {references = {enable = true,},},show = {enumVariants = 10,fields = 10,traitAssocItems = 10,},},interpret = {tests = true,},cargo = {features = "all",},completion = {hideDeprecated = true,fullFunctionSignatures = {enable = true,},},},},}
return {cmd = { "nu", "--lsp" },filetypes = { "nu" },settings = {},}
return {cmd = { "nixd" },filetypes = { "nix" },root_markers = { "flake.nix", ".git" },}
return {cmd = { "lua-language-server" },filetypes = { "lua" },settings = {Lua = {diagnostics = {globals = { "vim" },},workspace = {checkThirdParty = true,library = vim.api.nvim_get_runtime_file("", true),},},},}
return {filetypes = { "json", "jsonc" },settings = {json = {schemas = require("schemastore").json.schemas(),validate = { enable = true },},},}
return {capabilities = capabilities,cmd = { "gopls" },root_markers = { "go.mod", "go.sum" },filetypes = { "go" },-- init_options = {-- usePlaceholders = true,-- },settings = {experimentalPostfixCompletions = true,gofumpt = true,staticcheck = true,completeUnimported = true,usePlaceholders = true,semanticTokens = true,-- stylua: ignore startanalyses = { -- all good analyses are enabledshadow = true, QF1005 = true, QF1006 = true, QF1007 = true, QF1011 = true, S1002 = true, S1005 = true, S1006 = true, S1008 = true, S1009 = true, S1011 = true, S1016 = true, S1021 = true, S1029 = true, SA1000 = true, SA1002 = true, SA1003 = true, SA1007 = true, SA1010 = true, SA1011 = true, SA1014 = true, SA1015 = true, SA1017 = true, SA1018 = true, SA1020 = true, SA1021 = true, SA1023 = true, SA1024 = true, SA1025 = true, SA1026 = true, SA1027 = true, SA1028 = true, SA1030 = true, SA1031 = true, SA1032 = true, SA2002 = true, SA2003 = true, SA4005 = true, SA4006 = true, SA4008 = true, SA4009 = true, SA4010 = true, SA4012 = true, SA4015 = true, SA4017 = true, SA4018 = true, SA4023 = true, SA4031 = true, SA5000 = true, SA5002 = true, SA5005 = true, SA5007 = true, SA5010 = true, SA5011 = true, SA5012 = true, SA6000 = true, SA6001 = true, SA6002 = true, SA6003 = true, SA9001 = true, SA9003 = true, SA9005 = true, SA9007 = true, SA9008 = true,},-- stylua: ignore endcodelenses = {run_govulncheck = true,},vulncheck = "Imports",},}
return {cmd = { "bacon-ls" },filetypes = { "rust" },root_markers = { "Cargo.toml", "Cargo.lock", ".bacon-locations" },settings = {init_options = {locationsFile = ".bacon-locations",updateOnSave = true,updateOnSaveWaitMillis = 100,runBaconInBackground = true,synchronizeAllOpenFilesWaitMillis = 1000,},},}
return {cmd = { "astro-ls", "--stdio" },filetypes = { "astro" },root_markers = { "package.json", "bun.lock", "tsconfig.json" },settings = {},init_options = {typescript = {tsdk = "node_modules/typescript/lib",},},}
function ToggleDirbuf()if vim.bo.filetype == "dirbuf" thenvim.cmd("DirbufQuit")elsevim.cmd("Dirbuf")endendreturn {}
return {"folke/zen-mode.nvim",cmd = "ZenMode",opts = {on_open = function()vim.wo.colorcolumn = "0"end,window = {width = 80,height = 1,},plugins = {options = {enabled = true,showcmd = true,ruler = false,laststatus = 0,},twilight = { enabled = true },gitsigns = { enabled = false },},},}
return {"natecraddock/workspaces.nvim",cmd = "Telescope workspaces",keys = {{"<leader>fp",":Telescope workspaces<CR>",desc = "open project list",},},opts = {auto_open = true,},config = function()require("telescope").load_extension("workspaces")end,}
return {"vimwiki/vimwiki",keys = { "<leader>ww", "<leader>wi" },init = function()vim.g.vimwiki_option_diary_path = "./diary/"vim.g.vimwiki_global_ext = 0vim.g.vimwiki_option_nested_syntaxes = { svelte = "svelte", typescript = "ts" }vim.g.vimwiki_list = {{path = "~/vimwiki/james/",name = "james",syntax = "markdown",ext = "md",},{path = "~/vimwiki/healgorithms/",name = "healgorithms",syntax = "markdown",ext = "md",auto_toc = 1,},}end,}
return {"folke/trouble.nvim",event = "LspAttach",keys = {{"<leader>tr","<cmd>Trouble diagnostics toggle focus=true filter.buf=0<cr>",desc = "Trouble diagonostics current file",},{"<leader>te","<cmd>Trouble diagnostics toggle focus=true<cr>",desc = "Trouble diagonostics all files",},{"<leader>tq","<cmd>Trouble qflist toggle<cr>",desc = "Trouble quickfix list",},},opts = {auto_close = true,modes = {diagnostics = { -- Configure symbols modewin = {size = 0.3, -- 30% of the window})-- },--preview = {-- type = "float",-- relative = "win",-- title = "Preview",-- border = "single",--size = { width = 0.25, height = 0.4 },-- zindex = 200,--},},},},},}
return {"nvim-treesitter/nvim-treesitter",build = ":TSUpdate",event = "BufRead",main = "nvim-treesitter.configs",opts = {ensure_installed = {"javascript","typescript","svelte","markdown","css","html","lua","vim","json","yaml","vimdoc","go","http","rust",},highlight = { enable = true },auto_install = true,indent = { enable = true },},}
return {"folke/todo-comments.nvim",event = "BufRead",-- cmd = "TodoTelescope",keys = {{"<leader>td","<cmd>TodoTelescope<CR>",desc = "todo list in telescope",},},opts = {signs = false,highlight = {before = "",keyword = "wide",after = "",},},}
return {"rachartier/tiny-inline-diagnostic.nvim",event = "BufReadPost",opts = {preset = "minimal",transparent_bg = true,transparent_cursorline = false,signs = {arrow = "",up_arrow = "",},options = {show_source = { enabled = true },multilines = { enabled = true, always_show = true },throttle = 100,},},}
return {"NStefan002/screenkey.nvim",cmd = { "Screenkey" },branch = "main",opts = {win_opts = {title = "",width = 25,height = 1,border = "single",},clear_after = 5,group_mappings = true,filter = function(keys)return keysend,keys = {["<TAB>"] = "",["<CR>"] = "",["<ESC>"] = "Esc",["<SPACE>"] = "␣",["<BS>"] = "",["<DEL>"] = "Del",["<LEFT>"] = "",["<RIGHT>"] = "",["<UP>"] = "",["<DOWN>"] = "",["<HOME>"] = "Home",["<END>"] = "End",["<PAGEUP>"] = "PgUp",["<PAGEDOWN>"] = "PgDn",["<INSERT>"] = "Ins",["<F1>"] = "",["<F2>"] = "",["<F3>"] = "",["<F4>"] = "",["<F5>"] = "",["<F6>"] = "",["<F7>"] = "",["<F8>"] = "",["<F9>"] = "",["<F10>"] = "",["<F11>"] = "",["<F12>"] = "",["CTRL"] = "Ctrl",["ALT"] = "Alt",["SUPER"] = "",["<leader>"] = "<leader>",},},config = function()CMD("Screenkey")end,}
return {"jamesukiyo/quicksnip.vim",cmd = { "SnipCurrent", "SnipPick" },keys = { { "<leader>sp", ":SnipPick<CR>" }, { "<leader>sc", ":SnipCurrent<CR>" } },init = function()vim.g.miniSnip_dirs = { "~/.vim/snippets" }vim.g.miniSnip_trigger = "<C-c>"vim.g.miniSnip_complkey = ""vim.g.miniSnip_extends = {html = { "svelte" },svelte = { "typescript", "html" },javascript = { "typescript" },typescript = { "javascript" },}end,}
return {"epwalsh/pomo.nvim",version = "*",lazy = true,cmd = { "TimerStart", "TimerRepeat", "TimerSession" },opts = {update_interval = 500,sessions = {pomodoro = {{ name = "Work", duration = "25m" },{ name = "Break", duration = "5m" },{ name = "Work", duration = "25m" },{ name = "Break", duration = "5m" },{ name = "Work", duration = "25m" },{ name = "Break", duration = "15m" },},},notifiers = {{name = "Default",opts = {sticky = false,},},-- {-- name = "System", -- Doesn't work on Windows yet-- },},},}
return {"vuki656/package-info.nvim",event = "BufRead package.json",opts = {autostart = true,hide_unstable_versions = true,notifications = false,icons = {enable = true,style = {up_to_date = " ",outdated = " ",invalid = " ",},},},config = function()-- only working way to set the colors https://github.com/vuki656/package-info.nvim/issues/155#issuecomment-2270572104SET_HL(0, "PackageInfoUpToDateVersion", { fg = "#3c4048" })SET_HL(0, "PackageInfoOutdatedVersion", { fg = "#d19a66" })SET_HL(0, "PackageInfoInvalidVersion", { fg = "#ee4b2b" })CMD("lua require('package-info').show({ force = true })")end,}
return {"NeogitOrg/neogit",dependencies = { "sindrets/diffview.nvim" },cmd = "Neogit",keys = {{"<leader>g",":Neogit<CR>",desc = "open neogit",},},opts = {integrations = {telescope = true,diffview = true,},commit_editor = {staged_diff_split_kind = "vsplit",},commit_select_view = { kind = "vsplit" },},}
return {"echasnovski/mini.diff",event = "BufRead",opts = {view = {style = "number",},mappings = {apply = "",reset = "",textobject = "",goto_first = "",goto_prev = "",goto_next = "",goto_last = "",},},}
return {-- "ThePrimeagen/harpoon",-- branch = "harpoon2",-- init = function()-- require("harpoon"):setup()-- end,-- keys = {-- {-- "<leader>a",-- function()-- require("harpoon"):list():add()-- end,-- },-- {-- "<C-e>",-- function()-- require("harpoon").ui:toggle_quick_menu(require("harpoon"):list())-- end,-- },-- {-- "<leader>h",-- function()-- require("harpoon"):list():select(1)-- end,-- },-- {-- "<leader>j",-- function()-- require("harpoon"):list():select(2)-- end,-- },-- {-- "<leader>k",-- function()-- require("harpoon"):list():select(3)-- end,-- },-- {-- "<leader>l",-- function()-- require("harpoon"):list():select(4)-- end,-- },-- },-- opts = {-- settings = {-- save_on_toggle = true,-- save_on_ui_close = true,-- },-- },}
return {"j-hui/fidget.nvim",event = "VeryLazy",opts = {progress = {display = {done_ttl = 10,},},notification = {override_vim_notify = true,window = {winblend = 0,zindex = 1000,max_width = 60,},},},}
return {"eliseshaffer/darklight.nvim",opts = {mode = "custom",light_mode_callback = function()ColorMyPencils("rusticated", "light", true)DisableBold()DisableItalic()end,dark_mode_callback = function()ColorMyPencils("rasmus", "dark", true)DisableBold()DisableItalic()end,},}
return {"stevearc/conform.nvim",event = "BufRead",opts = {formatters = {-- Use system binaries without .exe extensionprettier = {command = "prettier",},prettierd = {command = "prettierd",},},formatters_by_ft = {astro = { "prettierd", "prettier", stop_after_first = true },go = { "gofumpt", "goimports", stop_after_first = true },javascript = { "prettierd", "prettier", stop_after_first = true },javascriptreact = { "prettierd", "prettier", stop_after_first = true },typescript = { "prettierd", "prettier", stop_after_first = true },typescriptreact = { "prettierd", "prettier", stop_after_first = true },json = { "prettierd", "prettier", stop_after_first = true },svelte = { "prettierd", "prettier", stop_after_first = true },vue = { "prettierd", "prettier", stop_after_first = true },yaml = { "prettierd", "prettier", stop_after_first = true },md = { "dprint" },toml = { "dprint" },lua = { "stylua" },sql = { "sql_formatter" },python = { "ruff_format" },rust = { "rustfmt" },-- nu = { "nufmt" },nix = { "nixfmt" },},format_after_save = {async = true,-- lsp_format = "fallback",},},}
return {"ej-shafran/compile-mode.nvim",cmd = "Compile",init = function()vim.g.compile_mode = {baleia_setup = true,default_command = "",recompile_no_fail = true,}end,keys = {{"<leader>co",":vert Compile<cr>",desc = "run a compile cmd",},{"<leader>cr",":vert Recompile<cr>",desc = "rerun last compile cmd",},},dependencies = {"nvim-lua/plenary.nvim",{ "m00qek/baleia.nvim", tag = "v1.3.0" },},}
return {"saghen/blink.cmp",event = "BufRead",enabled = true,version = "1.4", -- NOTE: 1.4 until fixed: https://github.com/LazyVim/LazyVim/pull/6183build = "cargo build --release",opts = {keymap = { preset = "enter" },completion = {documentation = { auto_show = true, auto_show_delay_ms = 250 },menu = {draw = {columns = {{ "kind" },{ "label", gap = 1 },},},},},cmdline = { enabled = false },-- completion = {-- menu = {-- auto_show = false,-- draw = {-- columns = {-- { "label", "label_description", gap = 1 },-- },-- },-- },-- },-- },signature = { enabled = true },sources = {default = { "lsp", "path", "snippets", "buffer" },providers = {buffer = {opts = {get_bufnrs = function()return vim.tbl_filter(function(bufnr)return vim.bo[bufnr].buftype == ""end, vim.api.nvim_list_bufs())end,},},},},},}
return {"code-biscuits/nvim-biscuits",ft = { "rust", "javascript", "typescript", "shell" },opts = {cursor_line_only = true,prefix_string = " ",toggle_keybind = "<leader>bi",show_on_start = false,},}