diff --git a/init.lua b/init.lua index 955269a..ec20438 100644 --- a/init.lua +++ b/init.lua @@ -13,6 +13,6 @@ vim.opt.rtp:prepend(lazypath) require('mappings') require('options') -require("lazy").setup("plugins") +require('lazy').setup('plugins') require('lsp_settings') require('autocmds') diff --git a/lua/lazyopts.lua b/lua/lazyopts.lua new file mode 100644 index 0000000..cbac3da --- /dev/null +++ b/lua/lazyopts.lua @@ -0,0 +1,140 @@ +return { + root = vim.fn.stdpath("data") .. "/lazy", -- directory where plugins will be installed + defaults = { + lazy = false, -- should plugins be lazy-loaded? + version = nil, + -- version = "*", -- enable this to try installing the latest stable versions of plugins + }, + -- leave nil when passing the spec as the first argument to setup() + spec = nil, ---@type LazySpec + lockfile = vim.fn.stdpath("config") .. "/lazy-lock.json", -- lockfile generated after running update. + concurrency = nil, ---@type number limit the maximum amount of concurrent tasks + git = { + -- defaults for the `Lazy log` command + -- log = { "-10" }, -- show the last 10 commits + log = { "--since=3 days ago" }, -- show commits from the last 3 days + timeout = 120, -- kill processes that take more than 2 minutes + url_format = "https://github.com/%s.git", + -- lazy.nvim requires git >=2.19.0. If you really want to use lazy with an older version, + -- then set the below to false. This is should work, but is NOT supported and will + -- increase downloads a lot. + filter = true, + }, + dev = { + -- directory where you store your local plugin projects + path = "~/projects", + ---@type string[] plugins that match these patterns will use your local versions instead of being fetched from GitHub + patterns = {}, -- For example {"folke"} + fallback = false, -- Fallback to git when local plugin doesn't exist + }, + install = { + -- install missing plugins on startup. This doesn't increase startup time. + missing = true, + -- try to load one of these colorschemes when starting an installation during startup + colorscheme = { "habamax" }, + }, + ui = { + -- a number <1 is a percentage., >1 is a fixed size + size = { width = 0.8, height = 0.8 }, + wrap = true, -- wrap the lines in the ui + -- The border to use for the UI window. Accepts same border values as |nvim_open_win()|. + border = "none", + icons = { + cmd = " ", + config = "", + event = "", + ft = " ", + init = " ", + import = " ", + keys = " ", + lazy = "󰒲 ", + loaded = "●", + not_loaded = "○", + plugin = " ", + runtime = " ", + source = " ", + start = "", + task = "✔ ", + list = { + "●", + "➜", + "★", + "‒", + }, + }, + -- leave nil, to automatically select a browser depending on your OS. + -- If you want to use a specific browser, you can define it here + browser = nil, ---@type string? + throttle = 20, -- how frequently should the ui process render events + custom_keys = { + -- you can define custom key maps here. + -- To disable one of the defaults, set it to false + + -- open lazygit log + ["l"] = function(plugin) + require("lazy.util").float_term({ "lazygit", "log" }, { + cwd = plugin.dir, + }) + end, + -- open a terminal for the plugin dir + ["t"] = function(plugin) + require("lazy.util").float_term(nil, { + cwd = plugin.dir, + }) + end, + }, + }, + diff = { + -- diff command can be one of: + -- * browser: opens the github compare view. Note that this is always mapped to as well, + -- so you can have a different command for diff + -- * git: will run git diff and open a buffer with filetype git + -- * terminal_git: will open a pseudo terminal with git diff + -- * diffview.nvim: will open Diffview to show the diff + cmd = "git", + }, + checker = { + -- automatically check for plugin updates + enabled = false, + concurrency = nil, ---@type number? set to 1 to check for updates very slowly + notify = true, -- get a notification when new updates are found + frequency = 3600, -- check for updates every hour + }, + change_detection = { + -- automatically check for config file changes and reload the ui + enabled = true, + notify = true, -- get a notification when changes are found + }, + performance = { + cache = { + enabled = true, + }, + reset_packpath = true, -- reset the package path to improve startup time + rtp = { + reset = true, -- reset the runtime path to $VIMRUNTIME and your config directory + ---@type string[] + paths = {}, -- add any custom paths here that you want to includes in the rtp + ---@type string[] list any plugins you want to disable here + disabled_plugins = { + -- "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + -- "tarPlugin", + -- "tohtml", + -- "tutor", + -- "zipPlugin", + }, + }, + }, + -- lazy can generate helptags from the headings in markdown readme files, + -- so :help works even for plugins that don't have vim docs. + -- when the readme opens with :help it will be correctly displayed as markdown + readme = { + root = vim.fn.stdpath("state") .. "/lazy/readme", + files = { "README.md", "lua/**/README.md" }, + -- only generate markdown helptags for plugins that dont have docs + skip_if_doc_exists = true, + }, + state = vim.fn.stdpath("state") .. "/lazy/state.json", -- state info for checker and other things +} diff --git a/lua/plugins.lua b/lua/plugins.lua index 288125e..d98f687 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -72,7 +72,8 @@ return { cmd = "Glow", config = function() require('glow').setup({}) - end + end, + ft = { "markdown" } }, -- https://github.com/windwp/nvim-autopairs @@ -105,6 +106,7 @@ return { -- https://github.com/nvim-telescope/telescope.nvim { 'nvim-telescope/telescope.nvim', + cmd = "Telescope", branch = '0.1.x', dependencies = { {