diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua new file mode 100644 index 00000000..29b56b61 --- /dev/null +++ b/lua/lazyvim/config/init.lua @@ -0,0 +1,79 @@ +---@type LazyVimConfig +local M = {} + +---@class LazyVimConfig +local defaults = { + icons = { + diagnostics = { + Error = " ", + Warn = " ", + Hint = " ", + Info = " ", + }, + git = { + added = " ", + modified = " ", + removed = " ", + }, + kinds = { + Array = " ", + Boolean = " ", + Class = " ", + Color = " ", + Constant = " ", + Constructor = " ", + Enum = " ", + EnumMember = " ", + Event = " ", + Field = " ", + File = " ", + Folder = " ", + Function = " ", + Interface = " ", + Key = " ", + Keyword = " ", + Method = " ", + Module = " ", + Namespace = " ", + Null = "ﳠ ", + Number = " ", + Object = " ", + Operator = " ", + Package = " ", + Property = " ", + Reference = " ", + Snippet = " ", + String = " ", + Struct = " ", + Text = " ", + TypeParameter = " ", + Unit = " ", + Value = " ", + Variable = " ", + }, + }, +} + +---@type LazyVimConfig +local options + +---@param opts? LazyVimConfig +function M.setup(opts) + options = vim.tbl_deep_extend("force", defaults, opts or {}) +---@param range? string +function M.has(range) + local Semver = require("lazy.manage.semver") + return Semver.range(range or M.lazy_version):matches(require("lazy.core.config").version or "0.0.0") +end + +setmetatable(M, { + __index = function(_, key) + if options == nil then + M.setup() + end + ---@cast options LazyVimConfig + return options[key] + end, +}) + +return M diff --git a/lua/lazyvim/config/settings.lua b/lua/lazyvim/config/settings.lua index f2b3c61a..31add973 100644 --- a/lua/lazyvim/config/settings.lua +++ b/lua/lazyvim/config/settings.lua @@ -1,54 +1,16 @@ ----@class LazyVimSettings -local settings = { - icons = { - diagnostics = { - Error = " ", - Warn = " ", - Hint = " ", - Info = " ", - }, - git = { - added = " ", - modified = " ", - removed = " ", - }, - kinds = { - Array = " ", - Boolean = " ", - Class = " ", - Color = " ", - Constant = " ", - Constructor = " ", - Enum = " ", - EnumMember = " ", - Event = " ", - Field = " ", - File = " ", - Folder = " ", - Function = " ", - Interface = " ", - Key = " ", - Keyword = " ", - Method = " ", - Module = " ", - Namespace = " ", - Null = "ﳠ ", - Number = " ", - Object = " ", - Operator = " ", - Package = " ", - Property = " ", - Reference = " ", - Snippet = " ", - String = " ", - Struct = " ", - Text = " ", - TypeParameter = " ", - Unit = " ", - Value = " ", - Variable = " ", - }, +require("lazy.core.util").warn( + [[`config.settings` is deprecated. + +Please configure LazyVim as a plugin: +```lua +{ + "LazyVim/LazyVim", + opts = { + -- your config comes here }, } - -return settings +``` +]], + { title = "LazyVim" } +) +return require("lazyvim.config") diff --git a/lua/lazyvim/init.lua b/lua/lazyvim/init.lua new file mode 100644 index 00000000..dceae58d --- /dev/null +++ b/lua/lazyvim/init.lua @@ -0,0 +1,8 @@ +local M = {} + +---@param opts? LazyVimConfig +function M.setup(opts) + require("lazyvim.config").setup(opts) +end + +return M diff --git a/lua/lazyvim/plugins/coding.lua b/lua/lazyvim/plugins/coding.lua index 69ce6d41..7b1372d1 100644 --- a/lua/lazyvim/plugins/coding.lua +++ b/lua/lazyvim/plugins/coding.lua @@ -63,7 +63,7 @@ return { }), formatting = { format = function(_, item) - local icons = require("lazyvim.config.settings").icons.kinds + local icons = require("lazyvim.config").icons.kinds if icons[item.kind] then item.kind = icons[item.kind] .. item.kind end diff --git a/lua/lazyvim/plugins/core.lua b/lua/lazyvim/plugins/core.lua index 7a1d9378..f21e24ab 100644 --- a/lua/lazyvim/plugins/core.lua +++ b/lua/lazyvim/plugins/core.lua @@ -1,4 +1,11 @@ -return { +local specs = { -- set to HEAD for now. I'm sill making too many changes for this repo related to lazy itself { "folke/lazy.nvim", version = false }, } + +-- only add for >=9.0.1, since there's an endless loop in earlier versions +if require("lazyvim.config").has(">=9.1.0") then + specs[#specs + 1] = { "LazyVim/LazyVim", priority = 10000, lazy = true } +end + +return specs diff --git a/lua/lazyvim/plugins/lsp/init.lua b/lua/lazyvim/plugins/lsp/init.lua index 518c89ee..7bf151cc 100644 --- a/lua/lazyvim/plugins/lsp/init.lua +++ b/lua/lazyvim/plugins/lsp/init.lua @@ -57,7 +57,7 @@ return { end) -- diagnostics - for name, icon in pairs(require("lazyvim.config.settings").icons.diagnostics) do + for name, icon in pairs(require("lazyvim.config").icons.diagnostics) do name = "DiagnosticSign" .. name vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" }) end diff --git a/lua/lazyvim/plugins/ui.lua b/lua/lazyvim/plugins/ui.lua index 217a26df..feb6d6fc 100644 --- a/lua/lazyvim/plugins/ui.lua +++ b/lua/lazyvim/plugins/ui.lua @@ -48,7 +48,7 @@ return { diagnostics = "nvim_lsp", always_show_bufferline = false, diagnostics_indicator = function(_, _, diag) - local icons = require("lazyvim.config.settings").icons.diagnostics + local icons = require("lazyvim.config").icons.diagnostics local ret = (diag.error and icons.Error .. diag.error .. " " or "") .. (diag.warning and icons.Warn .. diag.warning or "") return vim.trim(ret) @@ -74,7 +74,7 @@ return { require("lazyvim.util").deprecate("lualine.override", "lualine.opts") end - local icons = require("lazyvim.config.settings").icons + local icons = require("lazyvim.config").icons local function fg(name) return function()