🧹 refactor(data): require data modules directly
require data modules directly throughout config. No longer user
require("data") as a parent module
This commit is contained in:
+18
-18
@@ -9,68 +9,68 @@
|
|||||||
-- This allows both plugin and general keybinds to
|
-- This allows both plugin and general keybinds to
|
||||||
-- be defined in a single central location
|
-- be defined in a single central location
|
||||||
|
|
||||||
-- Load data module
|
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
-- Add keymapper function
|
-- Add keymapper function
|
||||||
local add_keymap = data.func.add_keymap
|
local add_keymap = require("data.func").add_keymap
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Group Keybinds ━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Group Keybinds ━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for menu groups
|
-- Add keymaps for menu groups
|
||||||
for _, item in ipairs(data.keys.groups) do
|
for _, item in ipairs(require("data.keys").groups) do
|
||||||
add_keymap(item)
|
add_keymap(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━ General Keybinds ━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━ General Keybinds ━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for miscellaneous keybinds
|
-- Add keymaps for miscellaneous keybinds
|
||||||
for _, item in ipairs(data.keys.misc) do
|
for _, item in ipairs(require("data.keys").misc) do
|
||||||
add_keymap(item)
|
add_keymap(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━ Telescope Keybinds ━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━ Telescope Keybinds ━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for telescope symbols
|
-- Add keymaps for telescope symbols
|
||||||
for _, item in ipairs(data.keys.telescope.symbols) do
|
for _, item in ipairs(require("data.keys").telescope.symbols) do
|
||||||
add_keymap(item)
|
add_keymap(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Resizing splits ━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Resizing splits ━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for resizing splits
|
-- Add keymaps for resizing splits
|
||||||
for _, map in ipairs(data.keys.splits.resize) do
|
for _, map in ipairs(require("data.keys").splits.resize) do
|
||||||
add_keymap(map[1], map[2], map[3], data.types.all_modes)
|
add_keymap(map[1], map[2], map[3], require("data.types").all_modes)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━ Moving between splits ━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━ Moving between splits ━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for moving between splits
|
-- Add keymaps for moving between splits
|
||||||
for _, map in ipairs(data.keys.splits.move) do
|
for _, map in ipairs(require("data.keys").splits.move) do
|
||||||
add_keymap(map[1], map[2], map[3], data.types.all_modes)
|
add_keymap(map[1], map[2], map[3], require("data.types").all_modes)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━ Swapping buffers between windows ━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━ Swapping buffers between windows ━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for swapping buffers
|
-- Add keymaps for swapping buffers
|
||||||
for _, map in ipairs(data.keys.splits.swap) do
|
for _, map in ipairs(require("data.keys").splits.swap) do
|
||||||
add_keymap(map[1], map[2], map[3], data.types.all_modes)
|
add_keymap(map[1], map[2], map[3], require("data.types").all_modes)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MultiCursor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MultiCursor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for multicursor
|
-- Add keymaps for multicursor
|
||||||
for _, item in ipairs(data.keys.multicursor) do
|
for _, item in ipairs(require("data.keys").multicursor) do
|
||||||
add_keymap(item)
|
add_keymap(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Overrides ━━━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Overrides ━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
-- Add keymaps for overrides
|
-- Add keymaps for overrides
|
||||||
add_keymap(data.keys.overrides)
|
add_keymap(require("data.keys").overrides)
|
||||||
|
|
||||||
-- Replace '...' with '…' (ellipsis) on InsertLeave
|
-- Replace '...' with '…' (ellipsis) on InsertLeave
|
||||||
data.func.setup_replace_ellipsis(true)
|
require("data.func").setup_replace_ellipsis(true)
|
||||||
|
|
||||||
-- Search selected text in visual mode
|
-- Search selected text in visual mode
|
||||||
add_keymap("/", "*<Esc>", "Search selected text", "v")
|
add_keymap("/", "*<Esc>", "Search selected text", "v")
|
||||||
|
|
||||||
-- Use modern cipher instead of rot13
|
-- Use modern cipher instead of rot13
|
||||||
add_keymap(data.keys.cipher.hex)
|
add_keymap(require("data.keys").cipher.hex)
|
||||||
|
|
||||||
-- Help keybinds
|
-- Help keybinds
|
||||||
for _, item in ipairs(data.keys.help) do
|
for _, item in ipairs(require("data.keys").help) do
|
||||||
add_keymap(item)
|
add_keymap(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Remap Command Mode List
|
||||||
|
require("data.keys").cmd_mode()
|
||||||
|
|||||||
+20
-21
@@ -3,61 +3,60 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ AI Tools │
|
-- │ AI Tools │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Neocodeium
|
{ -- Neocodeium
|
||||||
"monkoose/neocodeium",
|
"monkoose/neocodeium",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
opts = data.types.neocodeium.opts,
|
opts = require("data.types").neocodeium.opts,
|
||||||
keys = data.keys.neocodeium,
|
keys = require("data.keys").neocodeium,
|
||||||
cond = data.cond.neocodeium,
|
cond = require("data.cond").neocodeium,
|
||||||
},
|
},
|
||||||
{ -- Codeium
|
{ -- Codeium
|
||||||
import = "lazyvim.plugins.extras.coding.codeium",
|
import = "lazyvim.plugins.extras.coding.codeium",
|
||||||
cond = data.cond.codeium,
|
cond = require("data.cond").codeium,
|
||||||
},
|
},
|
||||||
{ -- Copilot
|
{ -- Copilot
|
||||||
import = "lazyvim.plugins.extras.coding.copilot",
|
import = "lazyvim.plugins.extras.coding.copilot",
|
||||||
cond = data.cond.copilot,
|
cond = require("data.cond").copilot,
|
||||||
},
|
},
|
||||||
{ -- Tabnine
|
{ -- Tabnine
|
||||||
import = "lazyvim.plugins.extras.coding.tabnine",
|
import = "lazyvim.plugins.extras.coding.tabnine",
|
||||||
cond = data.cond.tabnine,
|
cond = require("data.cond").tabnine,
|
||||||
},
|
},
|
||||||
{ -- Minuet-AI
|
{ -- Minuet-AI
|
||||||
"milanglacier/minuet-ai.nvim",
|
"milanglacier/minuet-ai.nvim",
|
||||||
dependencies = data.deps.minuet,
|
dependencies = require("data.deps").minuet,
|
||||||
opts = { provider = "openai" },
|
opts = { provider = "openai" },
|
||||||
cond = data.cond.minuet,
|
cond = require("data.cond").minuet,
|
||||||
},
|
},
|
||||||
{ -- ChatGPT
|
{ -- ChatGPT
|
||||||
"jackMort/ChatGPT.nvim",
|
"jackMort/ChatGPT.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
cond = data.cond.chatgpt,
|
cond = require("data.cond").chatgpt,
|
||||||
keys = data.keys.chatgpt.func,
|
keys = require("data.keys").chatgpt.func,
|
||||||
opts = data.types.chatgpt,
|
opts = require("data.types").chatgpt,
|
||||||
dependencies = data.deps.chatgpt,
|
dependencies = require("data.deps").chatgpt,
|
||||||
},
|
},
|
||||||
{ -- GP
|
{ -- GP
|
||||||
"robitx/gp.nvim",
|
"robitx/gp.nvim",
|
||||||
cond = data.cond.gp,
|
cond = require("data.cond").gp,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
opts = data.types.gp,
|
opts = require("data.types").gp,
|
||||||
keys = data.keys.gp.func,
|
keys = require("data.keys").gp.func,
|
||||||
},
|
},
|
||||||
{ -- Avante
|
{ -- Avante
|
||||||
"yetone/avante.nvim",
|
"yetone/avante.nvim",
|
||||||
cond = data.cond.avante,
|
cond = require("data.cond").avante,
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
opts = data.types.avante,
|
opts = require("data.types").avante,
|
||||||
build = "make",
|
build = "make",
|
||||||
dependencies = data.deps.avante,
|
dependencies = require("data.deps").avante,
|
||||||
keys = function()
|
keys = function()
|
||||||
-- Add keymaps for Avante group
|
-- Add keymaps for Avante group
|
||||||
for _, item in ipairs(data.keys.group.avante) do
|
for _, item in ipairs(require("data.keys").group.avante) do
|
||||||
data.func.add_keymap(item)
|
require("data.func").add_keymap(item)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|||||||
+4
-5
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Auto Completion │
|
-- │ Auto Completion │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
local perf = vim.g.cmp_performance_enabled or false
|
local perf = vim.g.cmp_performance_enabled or false
|
||||||
--- Function to return the cmp provider
|
--- Function to return the cmp provider
|
||||||
---@param performance? boolean Whether to use the experimental cmp performance fork
|
---@param performance? boolean Whether to use the experimental cmp performance fork
|
||||||
@@ -31,17 +30,17 @@ return { -- cmp
|
|||||||
branch = cmp_repo.branch,
|
branch = cmp_repo.branch,
|
||||||
dev = cmp_repo.dev,
|
dev = cmp_repo.dev,
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
dependencies = data.deps.cmp,
|
dependencies = require("data.deps").cmp,
|
||||||
config = function()
|
config = function()
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
local luasnip = require("luasnip")
|
local luasnip = require("luasnip")
|
||||||
cmp.event:on("menu_opened", function()
|
cmp.event:on("menu_opened", function()
|
||||||
if data.cond.neocodeium() == true then
|
if require("data.cond").neocodeium() == true then
|
||||||
require("neocodeium").clear()
|
require("neocodeium").clear()
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
cmp.event:on("menu_closed", function()
|
cmp.event:on("menu_closed", function()
|
||||||
if data.cond.neocodeium() == true then
|
if require("data.cond").neocodeium() == true then
|
||||||
require("neocodeium.commands").enable()
|
require("neocodeium.commands").enable()
|
||||||
require("neocodeium").cycle_or_complete()
|
require("neocodeium").cycle_or_complete()
|
||||||
end
|
end
|
||||||
@@ -197,7 +196,7 @@ return { -- cmp
|
|||||||
end, cmp.get_config().sources),
|
end, cmp.get_config().sources),
|
||||||
})
|
})
|
||||||
-- List of filetypes to disable completion
|
-- List of filetypes to disable completion
|
||||||
local disabled_filetypes = data.types.cmp
|
local disabled_filetypes = require("data.types").cmp
|
||||||
for _, filetype in ipairs(disabled_filetypes) do
|
for _, filetype in ipairs(disabled_filetypes) do
|
||||||
cmp.setup.filetype(filetype, {
|
cmp.setup.filetype(filetype, {
|
||||||
sources = {},
|
sources = {},
|
||||||
|
|||||||
+12
-13
@@ -3,23 +3,22 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Coding │
|
-- │ Coding │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Mason-lspconfig
|
{ -- Mason-lspconfig
|
||||||
"williamboman/mason-lspconfig.nvim",
|
"williamboman/mason-lspconfig.nvim",
|
||||||
opts = data.types.mason_lsp_config.opts,
|
opts = require("data.types").mason_lsp_config.opts,
|
||||||
},
|
},
|
||||||
{ -- luasnip
|
{ -- luasnip
|
||||||
import = "lazyvim.plugins.extras.coding.luasnip",
|
import = "lazyvim.plugins.extras.coding.luasnip",
|
||||||
},
|
},
|
||||||
{ -- nvim-treesitter
|
{ -- nvim-treesitter
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
opts = data.types.treesitter.opts,
|
opts = require("data.types").treesitter.opts,
|
||||||
},
|
},
|
||||||
{ -- nvim-lspconfig
|
{ -- nvim-lspconfig
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
opts = data.types.lspconfig.opts,
|
opts = require("data.types").lspconfig.opts,
|
||||||
},
|
},
|
||||||
{ -- Yanky
|
{ -- Yanky
|
||||||
import = "lazyvim.plugins.extras.coding.yanky",
|
import = "lazyvim.plugins.extras.coding.yanky",
|
||||||
@@ -27,8 +26,8 @@ return {
|
|||||||
{ -- Yanky
|
{ -- Yanky
|
||||||
"gbprod/yanky.nvim",
|
"gbprod/yanky.nvim",
|
||||||
requires = { "kkharji/sqlite.lua" },
|
requires = { "kkharji/sqlite.lua" },
|
||||||
opts = data.types.yanky,
|
opts = require("data.types").yanky,
|
||||||
keys = data.keys.yanky,
|
keys = require("data.keys").yanky,
|
||||||
},
|
},
|
||||||
{ -- Neogen
|
{ -- Neogen
|
||||||
import = "lazyvim.plugins.extras.coding.neogen",
|
import = "lazyvim.plugins.extras.coding.neogen",
|
||||||
@@ -52,24 +51,24 @@ return {
|
|||||||
{ -- Alternate
|
{ -- Alternate
|
||||||
"ton/vim-alternate",
|
"ton/vim-alternate",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
ft = data.types.alternate,
|
ft = require("data.types").alternate,
|
||||||
keys = data.keys.alternate,
|
keys = require("data.keys").alternate,
|
||||||
},
|
},
|
||||||
{ -- Tailwind
|
{ -- Tailwind
|
||||||
"luckasRanarison/tailwind-tools.nvim",
|
"luckasRanarison/tailwind-tools.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
dependencies = data.deps.needs_treesitter,
|
dependencies = require("data.deps").needs_treesitter,
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
{ -- Substitute
|
{ -- Substitute
|
||||||
"gbprod/substitute.nvim",
|
"gbprod/substitute.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = data.types.substitute,
|
opts = require("data.types").substitute,
|
||||||
keys = data.keys.substitute,
|
keys = require("data.keys").substitute,
|
||||||
},
|
},
|
||||||
{ -- Comment
|
{ -- Comment
|
||||||
"numToStr/Comment.nvim",
|
"numToStr/Comment.nvim",
|
||||||
opts = data.types.comment,
|
opts = require("data.types").comment,
|
||||||
},
|
},
|
||||||
{ -- Fast Action
|
{ -- Fast Action
|
||||||
"Chaitanyabsprip/fastaction.nvim",
|
"Chaitanyabsprip/fastaction.nvim",
|
||||||
@@ -84,7 +83,7 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- EasyAlign
|
{ -- EasyAlign
|
||||||
"junegunn/vim-easy-align",
|
"junegunn/vim-easy-align",
|
||||||
keys = data.keys.easyalign,
|
keys = require("data.keys").easyalign,
|
||||||
},
|
},
|
||||||
{ -- Vim-Shebang
|
{ -- Vim-Shebang
|
||||||
"vitalk/vim-shebang",
|
"vitalk/vim-shebang",
|
||||||
|
|||||||
@@ -3,23 +3,22 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Core │
|
-- │ Core │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- require("config.rocks").plugin_spec,
|
-- require("config.rocks").plugin_spec,
|
||||||
{ -- LazyVim
|
{ -- LazyVim
|
||||||
"LazyVim/LazyVim",
|
"LazyVim/LazyVim",
|
||||||
priority = 900,
|
priority = 900,
|
||||||
opts = data.types.lazyvim.opts,
|
opts = require("data.types").lazyvim.opts,
|
||||||
},
|
},
|
||||||
{ -- Bufferline
|
{ -- Bufferline
|
||||||
"akinsho/bufferline.nvim",
|
"akinsho/bufferline.nvim",
|
||||||
cond = data.types.bufferline.enabled,
|
cond = require("data.types").bufferline.enabled,
|
||||||
opts = data.types.bufferline.opts,
|
opts = require("data.types").bufferline.opts,
|
||||||
},
|
},
|
||||||
{ -- Which-Key
|
{ -- Which-Key
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = data.types.whichkey.opts,
|
opts = require("data.types").whichkey.opts,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Debug │
|
-- │ Debug │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- DAP Core
|
{ -- DAP Core
|
||||||
@@ -21,9 +20,9 @@ return {
|
|||||||
{ -- Neotest
|
{ -- Neotest
|
||||||
"nvim-neotest/neotest",
|
"nvim-neotest/neotest",
|
||||||
opts = {
|
opts = {
|
||||||
adapters = data.deps.neotest.adapters,
|
adapters = require("data.deps").neotest.adapters,
|
||||||
},
|
},
|
||||||
dependencies = data.deps.neotest.deps,
|
dependencies = require("data.deps").neotest.deps,
|
||||||
},
|
},
|
||||||
{ -- Profiling
|
{ -- Profiling
|
||||||
"stevearc/profile.nvim",
|
"stevearc/profile.nvim",
|
||||||
|
|||||||
+29
-30
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Editor │
|
-- │ Editor │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Aerial
|
{ -- Aerial
|
||||||
@@ -32,21 +31,21 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Trouble
|
{ -- Trouble
|
||||||
"folke/trouble.nvim",
|
"folke/trouble.nvim",
|
||||||
cmd = data.cmd.trouble,
|
cmd = require("data.cmd").trouble,
|
||||||
opts = data.types.trouble.opts,
|
opts = require("data.types").trouble.opts,
|
||||||
},
|
},
|
||||||
{ -- Flash
|
{ -- Flash
|
||||||
"folke/flash.nvim",
|
"folke/flash.nvim",
|
||||||
opts = data.types.flash,
|
opts = require("data.types").flash,
|
||||||
keys = data.keys.flash,
|
keys = require("data.keys").flash,
|
||||||
},
|
},
|
||||||
{ -- NeoTree
|
{ -- NeoTree
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
opts = data.types.neotree.opts,
|
opts = require("data.types").neotree.opts,
|
||||||
},
|
},
|
||||||
{ -- Arrow
|
{ -- Arrow
|
||||||
"otavioschwanck/arrow.nvim",
|
"otavioschwanck/arrow.nvim",
|
||||||
opts = data.types.arrow,
|
opts = require("data.types").arrow,
|
||||||
},
|
},
|
||||||
{ -- indent-blankline
|
{ -- indent-blankline
|
||||||
"lukas-reineke/indent-blankline.nvim",
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
@@ -56,9 +55,9 @@ return {
|
|||||||
{ -- NeoMiniMap
|
{ -- NeoMiniMap
|
||||||
"Isrothy/neominimap.nvim",
|
"Isrothy/neominimap.nvim",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
keys = data.keys.minimap.func,
|
keys = require("data.keys").minimap.func,
|
||||||
init = data.types.minimap.init(),
|
init = require("data.types").minimap.init(),
|
||||||
cond = data.types.minimap.cond(),
|
cond = require("data.types").minimap.cond(),
|
||||||
},
|
},
|
||||||
{ -- Persistence
|
{ -- Persistence
|
||||||
"folke/persistence.nvim",
|
"folke/persistence.nvim",
|
||||||
@@ -68,37 +67,37 @@ return {
|
|||||||
{ -- DeadColumn
|
{ -- DeadColumn
|
||||||
"Bekaboo/deadcolumn.nvim",
|
"Bekaboo/deadcolumn.nvim",
|
||||||
event = "BufEnter",
|
event = "BufEnter",
|
||||||
cond = data.func.check_global_var("dead_column", true, true),
|
cond = require("data.func").check_global_var("dead_column", true, true),
|
||||||
},
|
},
|
||||||
{ -- Precognition
|
{ -- Precognition
|
||||||
"tris203/precognition.nvim",
|
"tris203/precognition.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = {},
|
opts = {},
|
||||||
keys = data.keys.precog,
|
keys = require("data.keys").precog,
|
||||||
},
|
},
|
||||||
{ -- Zen Mode
|
{ -- Zen Mode
|
||||||
"folke/zen-mode.nvim",
|
"folke/zen-mode.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = data.types.zen,
|
opts = require("data.types").zen,
|
||||||
keys = data.keys.zen,
|
keys = require("data.keys").zen,
|
||||||
},
|
},
|
||||||
{ -- SmoothCursor
|
{ -- SmoothCursor
|
||||||
"gen740/SmoothCursor.nvim",
|
"gen740/SmoothCursor.nvim",
|
||||||
event = "BufEnter",
|
event = "BufEnter",
|
||||||
-- lazy = true,
|
-- lazy = true,
|
||||||
opts = data.types.smoothcursor,
|
opts = require("data.types").smoothcursor,
|
||||||
enabled = false,
|
enabled = false,
|
||||||
},
|
},
|
||||||
{ -- Smart Scrolloff
|
{ -- Smart Scrolloff
|
||||||
"tonymajestro/smart-scrolloff.nvim",
|
"tonymajestro/smart-scrolloff.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
cond = data.func.check_global_var("smart_scrolloff", true, true),
|
cond = require("data.func").check_global_var("smart_scrolloff", true, true),
|
||||||
opts = data.types.smartscrolloff,
|
opts = require("data.types").smartscrolloff,
|
||||||
},
|
},
|
||||||
{ -- Recorder
|
{ -- Recorder
|
||||||
"chrisgrieser/nvim-recorder",
|
"chrisgrieser/nvim-recorder",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
dependencies = data.deps.recorder,
|
dependencies = require("data.deps").recorder,
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
{ -- Comment Box
|
{ -- Comment Box
|
||||||
@@ -106,8 +105,8 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Todo Comments
|
{ -- Todo Comments
|
||||||
"folke/todo-comments.nvim",
|
"folke/todo-comments.nvim",
|
||||||
opts = data.types.todo.opts,
|
opts = require("data.types").todo.opts,
|
||||||
cond = data.cond.todo,
|
cond = require("data.cond").todo,
|
||||||
enabled = true,
|
enabled = true,
|
||||||
},
|
},
|
||||||
{ -- Rainbow Delimeters
|
{ -- Rainbow Delimeters
|
||||||
@@ -117,34 +116,34 @@ return {
|
|||||||
"nvim-zh/colorful-winsep.nvim",
|
"nvim-zh/colorful-winsep.nvim",
|
||||||
enabled = false,
|
enabled = false,
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = data.types.winsep,
|
opts = require("data.types").winsep,
|
||||||
event = { "WinLeave" },
|
event = { "WinLeave" },
|
||||||
},
|
},
|
||||||
{ -- Auto Cursorline
|
{ -- Auto Cursorline
|
||||||
"delphinus/auto-cursorline.nvim",
|
"delphinus/auto-cursorline.nvim",
|
||||||
cond = data.func.check_global_var("auto_cursorline", true, true),
|
cond = require("data.func").check_global_var("auto_cursorline", true, true),
|
||||||
opts = data.types.autocursorline,
|
opts = require("data.types").autocursorline,
|
||||||
},
|
},
|
||||||
{ -- Bars N Lines
|
{ -- Bars N Lines
|
||||||
"OXY2DEV/bars-N-lines.nvim",
|
"OXY2DEV/bars-N-lines.nvim",
|
||||||
cond = data.types.barsNlines.enabled,
|
cond = require("data.types").barsNlines.enabled,
|
||||||
lazy = false,
|
lazy = false,
|
||||||
config = data.types.barsNlines.config,
|
config = require("data.types").barsNlines.config,
|
||||||
},
|
},
|
||||||
{ -- UndoTree
|
{ -- UndoTree
|
||||||
"mbbill/undotree",
|
"mbbill/undotree",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
config = data.types.undotree,
|
config = require("data.types").undotree,
|
||||||
keys = data.keys.undotree,
|
keys = require("data.keys").undotree,
|
||||||
},
|
},
|
||||||
{ -- Noice
|
{ -- Noice
|
||||||
"folke/noice.nvim",
|
"folke/noice.nvim",
|
||||||
optional = true,
|
optional = true,
|
||||||
opts = data.types.noice,
|
opts = require("data.types").noice,
|
||||||
},
|
},
|
||||||
{ -- Duck
|
{ -- Duck
|
||||||
"tamton-aquib/duck.nvim",
|
"tamton-aquib/duck.nvim",
|
||||||
config = data.types.duck,
|
config = require("data.types").duck,
|
||||||
},
|
},
|
||||||
{ -- Volt
|
{ -- Volt
|
||||||
"rootiest/volt",
|
"rootiest/volt",
|
||||||
@@ -156,7 +155,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"folke/twilight.nvim",
|
"folke/twilight.nvim",
|
||||||
opts = data.types.twilight,
|
opts = require("data.types").twilight,
|
||||||
},
|
},
|
||||||
-- { -- vim-footprints
|
-- { -- vim-footprints
|
||||||
-- "axlebedev/vim-footprints",
|
-- "axlebedev/vim-footprints",
|
||||||
|
|||||||
+12
-13
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Git Plugins │
|
-- │ Git Plugins │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Octo plugin
|
{ -- Octo plugin
|
||||||
@@ -12,16 +11,16 @@ return {
|
|||||||
{ -- Gist Tools
|
{ -- Gist Tools
|
||||||
"Rawnly/gist.nvim",
|
"Rawnly/gist.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.gist,
|
cmd = require("data.cmd").gist,
|
||||||
keys = data.keys.gist.func,
|
keys = require("data.keys").gist.func,
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- LazyGit
|
{ -- LazyGit
|
||||||
"kdheepak/lazygit.nvim",
|
"kdheepak/lazygit.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.lazygit,
|
cmd = require("data.cmd").lazygit,
|
||||||
keys = data.keys.lazygit,
|
keys = require("data.keys").lazygit,
|
||||||
dependencies = data.deps.lazygit,
|
dependencies = require("data.deps").lazygit,
|
||||||
config = function()
|
config = function()
|
||||||
require("telescope").load_extension("lazygit")
|
require("telescope").load_extension("lazygit")
|
||||||
end,
|
end,
|
||||||
@@ -29,25 +28,25 @@ return {
|
|||||||
{ -- Thanks/github-stars
|
{ -- Thanks/github-stars
|
||||||
"jsongerber/thanks.nvim",
|
"jsongerber/thanks.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.thanks,
|
cmd = require("data.cmd").thanks,
|
||||||
opts = data.types.thanks.opts,
|
opts = require("data.types").thanks.opts,
|
||||||
},
|
},
|
||||||
{ -- GitLinker
|
{ -- GitLinker
|
||||||
"linrongbin16/gitlinker.nvim",
|
"linrongbin16/gitlinker.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.gitlinker,
|
cmd = require("data.cmd").gitlinker,
|
||||||
opts = {},
|
opts = {},
|
||||||
keys = data.keys.gitlinker,
|
keys = require("data.keys").gitlinker,
|
||||||
},
|
},
|
||||||
{ -- Git Blame
|
{ -- Git Blame
|
||||||
"f-person/git-blame.nvim",
|
"f-person/git-blame.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
opts = data.types.gitblame.opts,
|
opts = require("data.types").gitblame.opts,
|
||||||
},
|
},
|
||||||
{ -- Git Graph
|
{ -- Git Graph
|
||||||
"isakbm/gitgraph.nvim",
|
"isakbm/gitgraph.nvim",
|
||||||
opts = data.types.gitgraph.opts,
|
opts = require("data.types").gitgraph.opts,
|
||||||
keys = data.keys.gitgraph,
|
keys = require("data.keys").gitgraph,
|
||||||
},
|
},
|
||||||
{ -- Diffview
|
{ -- Diffview
|
||||||
"sindrets/diffview.nvim",
|
"sindrets/diffview.nvim",
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Mini │
|
-- │ Mini │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- mini.animate
|
{ -- mini.animate
|
||||||
@@ -19,8 +18,8 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Mini Indentscope
|
{ -- Mini Indentscope
|
||||||
"echasnovski/mini.indentscope",
|
"echasnovski/mini.indentscope",
|
||||||
opts = data.types.miniindentscope.opts,
|
opts = require("data.types").miniindentscope.opts,
|
||||||
init = data.types.miniindentscope.init,
|
init = require("data.types").miniindentscope.init,
|
||||||
},
|
},
|
||||||
{ -- mini.align
|
{ -- mini.align
|
||||||
"echasnovski/mini.align",
|
"echasnovski/mini.align",
|
||||||
@@ -33,7 +32,7 @@ return {
|
|||||||
"echasnovski/mini.splitjoin",
|
"echasnovski/mini.splitjoin",
|
||||||
event = "InsertEnter",
|
event = "InsertEnter",
|
||||||
opts = {
|
opts = {
|
||||||
mappings = data.keys.splitjoin,
|
mappings = require("data.keys").splitjoin,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ -- mini.surround
|
{ -- mini.surround
|
||||||
@@ -42,9 +41,9 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- mini.files
|
{ -- mini.files
|
||||||
"echasnovski/mini.files",
|
"echasnovski/mini.files",
|
||||||
opts = data.types.minifiles.opts,
|
opts = require("data.types").minifiles.opts,
|
||||||
keys = data.keys.minifiles,
|
keys = require("data.keys").minifiles,
|
||||||
config = data.types.minifiles.config,
|
config = require("data.types").minifiles.config,
|
||||||
},
|
},
|
||||||
{ -- mini.icons
|
{ -- mini.icons
|
||||||
"echasnovski/mini.icons",
|
"echasnovski/mini.icons",
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
local data = require("data")
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
|
-- │ Nvim-Updater │
|
||||||
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
return { -- Neovim Updater
|
return { -- Neovim Updater
|
||||||
"rootiest/nvim-updater.nvim",
|
"rootiest/nvim-updater.nvim",
|
||||||
@@ -15,9 +17,9 @@ return { -- Neovim Updater
|
|||||||
},
|
},
|
||||||
keys = function()
|
keys = function()
|
||||||
-- Add Neovim Updater menu
|
-- Add Neovim Updater menu
|
||||||
data.func.add_keymap(data.keys.group.nvimup)
|
require("data.func").add_keymap(require("data.keys").group.nvimup)
|
||||||
-- Add Neovim Updater keys
|
-- Add Neovim Updater keys
|
||||||
return data.keys.nvimup
|
return require("data.keys").nvimup
|
||||||
end,
|
end,
|
||||||
dev = vim.g.rootiest_dev or false,
|
dev = vim.g.rootiest_dev or false,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,14 @@
|
|||||||
-- │ Heirline │
|
-- │ Heirline │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"rebelot/heirline.nvim",
|
"rebelot/heirline.nvim",
|
||||||
cond = data.func.check_global_var("statusline", "heirline", "lualine"),
|
cond = require("data.func").check_global_var(
|
||||||
|
"statusline",
|
||||||
|
"heirline",
|
||||||
|
"lualine"
|
||||||
|
),
|
||||||
event = "UIEnter",
|
event = "UIEnter",
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
local wakatime_stats = require("utils.wakatime_stats")
|
local wakatime_stats = require("utils.wakatime_stats")
|
||||||
local music_stats = require("utils.music_stats")
|
local music_stats = require("utils.music_stats")
|
||||||
local data = require("data")
|
|
||||||
local funcs = data.func
|
|
||||||
|
|
||||||
-- Setup NeoMiniMap extension
|
-- Setup NeoMiniMap extension
|
||||||
-- local minimap_extension = require("neominimap.statusline").lualine_default
|
-- local minimap_extension = require("neominimap.statusline").lualine_default
|
||||||
@@ -103,9 +101,13 @@ vim.api.nvim_create_autocmd("User", {
|
|||||||
|
|
||||||
return { -- Lualine
|
return { -- Lualine
|
||||||
"nvim-lualine/lualine.nvim",
|
"nvim-lualine/lualine.nvim",
|
||||||
cond = data.func.check_global_var("statusline", "lualine", "lualine"),
|
cond = require("data.func").check_global_var(
|
||||||
|
"statusline",
|
||||||
|
"lualine",
|
||||||
|
"lualine"
|
||||||
|
),
|
||||||
|
|
||||||
dependencies = data.deps.lualine,
|
dependencies = require("data.deps").lualine,
|
||||||
init = function()
|
init = function()
|
||||||
vim.g.lualine_laststatus = vim.o.laststatus
|
vim.g.lualine_laststatus = vim.o.laststatus
|
||||||
if vim.fn.argc(-1) > 0 then
|
if vim.fn.argc(-1) > 0 then
|
||||||
@@ -132,7 +134,7 @@ return { -- Lualine
|
|||||||
if not status then
|
if not status then
|
||||||
todos_component = nil -- Set to nil if the plugin is not loaded
|
todos_component = nil -- Set to nil if the plugin is not loaded
|
||||||
else
|
else
|
||||||
todos_component = todos.component(data.types.todo.lualine())
|
todos_component = todos.component(require("data.types").todo.lualine())
|
||||||
end
|
end
|
||||||
|
|
||||||
local opts = {
|
local opts = {
|
||||||
@@ -149,21 +151,21 @@ return { -- Lualine
|
|||||||
lualine_a = {
|
lualine_a = {
|
||||||
{ -- Mode
|
{ -- Mode
|
||||||
function()
|
function()
|
||||||
return data.types.mode.current.lualine()
|
return require("data.types").mode.current.lualine()
|
||||||
end,
|
end,
|
||||||
padding = { left = 1, right = 0 },
|
padding = { left = 1, right = 0 },
|
||||||
separator = { left = "", right = "" },
|
separator = { left = "", right = "" },
|
||||||
},
|
},
|
||||||
{ -- MultiCursors
|
{ -- MultiCursors
|
||||||
function()
|
function()
|
||||||
return data.func.mc_statusline().count
|
return require("data.func").mc_statusline().count
|
||||||
.. data.func.mc_statusline().icon
|
.. require("data.func").mc_statusline().icon
|
||||||
end,
|
end,
|
||||||
cond = function()
|
cond = function()
|
||||||
return data.func.mc_statusline().cursors > 1
|
return require("data.func").mc_statusline().cursors > 1
|
||||||
end,
|
end,
|
||||||
color = function()
|
color = function()
|
||||||
return data.func.mc_statusline().color
|
return require("data.func").mc_statusline().color
|
||||||
end,
|
end,
|
||||||
padding = { left = 1, right = 0 },
|
padding = { left = 1, right = 0 },
|
||||||
separator = { left = "", right = "" },
|
separator = { left = "", right = "" },
|
||||||
@@ -178,7 +180,7 @@ return { -- Lualine
|
|||||||
{ -- Todo
|
{ -- Todo
|
||||||
todos_component,
|
todos_component,
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(100)
|
return require("data.func").is_window_wide_enough(100)
|
||||||
end,
|
end,
|
||||||
padding = { left = 1, right = 0 },
|
padding = { left = 1, right = 0 },
|
||||||
on_click = function()
|
on_click = function()
|
||||||
@@ -190,7 +192,7 @@ return { -- Lualine
|
|||||||
return require("arrow.statusline").text_for_statusline_with_icons()
|
return require("arrow.statusline").text_for_statusline_with_icons()
|
||||||
end,
|
end,
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(100)
|
return require("data.func").is_window_wide_enough(100)
|
||||||
and pcall(require, "arrow")
|
and pcall(require, "arrow")
|
||||||
end,
|
end,
|
||||||
padding = { left = 1, right = 0 },
|
padding = { left = 1, right = 0 },
|
||||||
@@ -290,7 +292,7 @@ return { -- Lualine
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(200)
|
return require("data.func").is_window_wide_enough(200)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 0 },
|
padding = { left = 0, right = 0 },
|
||||||
on_click = function()
|
on_click = function()
|
||||||
@@ -308,7 +310,7 @@ return { -- Lualine
|
|||||||
return wakatime_stats.get_color()
|
return wakatime_stats.get_color()
|
||||||
end,
|
end,
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(100)
|
return require("data.func").is_window_wide_enough(100)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
},
|
},
|
||||||
@@ -317,7 +319,7 @@ return { -- Lualine
|
|||||||
return music_stats.get_icon_with_text()
|
return music_stats.get_icon_with_text()
|
||||||
end,
|
end,
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(100)
|
return require("data.func").is_window_wide_enough(100)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
},
|
},
|
||||||
@@ -356,7 +358,7 @@ return { -- Lualine
|
|||||||
end,
|
end,
|
||||||
icon = " ",
|
icon = " ",
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(80)
|
return require("data.func").is_window_wide_enough(80)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
on_click = function()
|
on_click = function()
|
||||||
@@ -368,7 +370,7 @@ return { -- Lualine
|
|||||||
separator = "",
|
separator = "",
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(60)
|
return require("data.func").is_window_wide_enough(60)
|
||||||
end,
|
end,
|
||||||
icon = "",
|
icon = "",
|
||||||
on_click = function()
|
on_click = function()
|
||||||
@@ -379,7 +381,7 @@ return { -- Lualine
|
|||||||
"location",
|
"location",
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(40)
|
return require("data.func").is_window_wide_enough(40)
|
||||||
end,
|
end,
|
||||||
on_click = function()
|
on_click = function()
|
||||||
vim.cmd("Telescope grep_string")
|
vim.cmd("Telescope grep_string")
|
||||||
@@ -388,14 +390,14 @@ return { -- Lualine
|
|||||||
{ -- Selection
|
{ -- Selection
|
||||||
"selection_count",
|
"selection_count",
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(120)
|
return require("data.func").is_window_wide_enough(120)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
},
|
},
|
||||||
{ -- Filesize
|
{ -- Filesize
|
||||||
"filesize",
|
"filesize",
|
||||||
cond = function()
|
cond = function()
|
||||||
return funcs.is_window_wide_enough(100)
|
return require("data.func").is_window_wide_enough(100)
|
||||||
end,
|
end,
|
||||||
padding = { left = 0, right = 1 },
|
padding = { left = 0, right = 1 },
|
||||||
icon = "",
|
icon = "",
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
---@module "plugins.telescope"
|
---@module "plugins.telescope"
|
||||||
--- This module defines the telescope plugins specs for the Neovim configuration.
|
--- This module defines the telescope plugins specs for the Neovim configuration.
|
||||||
|
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
local P = { -- Define Telescope Plugins Specs
|
local P = { -- Define Telescope Plugins Specs
|
||||||
{ -- Telescope All Recent
|
{ -- Telescope All Recent
|
||||||
"prochri/telescope-all-recent.nvim",
|
"prochri/telescope-all-recent.nvim",
|
||||||
@@ -42,11 +40,11 @@ local P = { -- Define Telescope Plugins Specs
|
|||||||
{ -- Telescope Spell checker
|
{ -- Telescope Spell checker
|
||||||
"matkrin/telescope-spell-errors.nvim",
|
"matkrin/telescope-spell-errors.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.spell_errors,
|
cmd = require("data.cmd").spell_errors,
|
||||||
config = function()
|
config = function()
|
||||||
require("telescope").load_extension("spell_errors")
|
require("telescope").load_extension("spell_errors")
|
||||||
end,
|
end,
|
||||||
dependencies = data.deps.needs_telescope,
|
dependencies = require("data.deps").needs_telescope,
|
||||||
},
|
},
|
||||||
{ -- Telescope Toggleterm
|
{ -- Telescope Toggleterm
|
||||||
"ryanmsnyder/toggleterm-manager.nvim",
|
"ryanmsnyder/toggleterm-manager.nvim",
|
||||||
@@ -56,12 +54,12 @@ local P = { -- Define Telescope Plugins Specs
|
|||||||
"nvim-lua/plenary.nvim", -- only needed because it's a dependency of telescope
|
"nvim-lua/plenary.nvim", -- only needed because it's a dependency of telescope
|
||||||
},
|
},
|
||||||
config = true,
|
config = true,
|
||||||
keys = data.keys.telescope.toggleterm,
|
keys = require("data.keys").telescope.toggleterm,
|
||||||
},
|
},
|
||||||
{ -- Telescope Lazy
|
{ -- Telescope Lazy
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
dependencies = "tsakirist/telescope-lazy.nvim",
|
dependencies = "tsakirist/telescope-lazy.nvim",
|
||||||
keys = data.keys.telescope.lazy,
|
keys = require("data.keys").telescope.lazy,
|
||||||
},
|
},
|
||||||
{ -- Telescope Luasnip
|
{ -- Telescope Luasnip
|
||||||
"benfowler/telescope-luasnip.nvim",
|
"benfowler/telescope-luasnip.nvim",
|
||||||
@@ -78,6 +76,7 @@ local P = { -- Define Telescope Plugins Specs
|
|||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
"debugloop/telescope-undo.nvim",
|
"debugloop/telescope-undo.nvim",
|
||||||
|
"jonarrien/telescope-cmdline.nvim",
|
||||||
},
|
},
|
||||||
opts = function()
|
opts = function()
|
||||||
require("telescope").load_extension("undo")
|
require("telescope").load_extension("undo")
|
||||||
@@ -111,7 +110,7 @@ local P = { -- Define Telescope Plugins Specs
|
|||||||
config = function()
|
config = function()
|
||||||
require("telescope").load_extension("file_browser")
|
require("telescope").load_extension("file_browser")
|
||||||
end,
|
end,
|
||||||
keys = data.keys.telescope.filebrowser,
|
keys = require("data.keys").telescope.filebrowser,
|
||||||
},
|
},
|
||||||
{ -- Cheatsheet
|
{ -- Cheatsheet
|
||||||
"doctorfree/cheatsheet.nvim",
|
"doctorfree/cheatsheet.nvim",
|
||||||
|
|||||||
+13
-14
@@ -3,17 +3,16 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Terminals │
|
-- │ Terminals │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Smart-Splits
|
{ -- Smart-Splits
|
||||||
"mrjones2014/smart-splits.nvim",
|
"mrjones2014/smart-splits.nvim",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
build = data.types.smart_splits.build(),
|
build = require("data.types").smart_splits.build(),
|
||||||
},
|
},
|
||||||
{ -- Image Renderer
|
{ -- Image Renderer
|
||||||
"3rd/image.nvim",
|
"3rd/image.nvim",
|
||||||
ft = data.types.image,
|
ft = require("data.types").image,
|
||||||
config = function()
|
config = function()
|
||||||
require("image").setup({
|
require("image").setup({
|
||||||
backend = "kitty", -- Kitty will provide the best experience, but you need a compatible terminal
|
backend = "kitty", -- Kitty will provide the best experience, but you need a compatible terminal
|
||||||
@@ -76,49 +75,49 @@ return {
|
|||||||
{ -- ToggleTerm
|
{ -- ToggleTerm
|
||||||
"akinsho/toggleterm.nvim",
|
"akinsho/toggleterm.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
keys = data.keys.toggleterm,
|
keys = require("data.keys").toggleterm,
|
||||||
config = function()
|
config = function()
|
||||||
require("toggleterm").setup(data.types.toggleterm)
|
require("toggleterm").setup(require("data.types").toggleterm)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ -- Kitty-Runner
|
{ -- Kitty-Runner
|
||||||
"jghauser/kitty-runner.nvim",
|
"jghauser/kitty-runner.nvim",
|
||||||
cond = data.func.is_kitty(),
|
cond = require("data.func").is_kitty(),
|
||||||
},
|
},
|
||||||
{ -- Kitty-Scrollback
|
{ -- Kitty-Scrollback
|
||||||
"mikesmithgh/kitty-scrollback.nvim",
|
"mikesmithgh/kitty-scrollback.nvim",
|
||||||
enabled = true,
|
enabled = true,
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.kitty_scrollback,
|
cmd = require("data.cmd").kitty_scrollback,
|
||||||
event = { "User KittyScrollbackLaunch" },
|
event = { "User KittyScrollbackLaunch" },
|
||||||
version = "*",
|
version = "*",
|
||||||
config = function() -- Using Kitty-Scrollback
|
config = function() -- Using Kitty-Scrollback
|
||||||
if data.func.is_kitty_scrollback() then
|
if require("data.func").is_kitty_scrollback() then
|
||||||
require("kitty-scrollback").setup()
|
require("kitty-scrollback").setup()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
cond = data.func.is_kitty_scrollback(),
|
cond = require("data.func").is_kitty_scrollback(),
|
||||||
},
|
},
|
||||||
{ -- Nekifoch
|
{ -- Nekifoch
|
||||||
"NeViRAIDE/nekifoch.nvim",
|
"NeViRAIDE/nekifoch.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.nekifoch,
|
cmd = require("data.cmd").nekifoch,
|
||||||
opts = {
|
opts = {
|
||||||
kitty_conf_path = vim.env.HOME .. "/.kittyoverrides",
|
kitty_conf_path = vim.env.HOME .. "/.kittyoverrides",
|
||||||
},
|
},
|
||||||
keys = data.keys.nekifoch,
|
keys = require("data.keys").nekifoch,
|
||||||
cond = data.func.is_kitty(),
|
cond = require("data.func").is_kitty(),
|
||||||
},
|
},
|
||||||
{ -- WezTerm
|
{ -- WezTerm
|
||||||
"willothy/wezterm.nvim",
|
"willothy/wezterm.nvim",
|
||||||
config = true,
|
config = true,
|
||||||
cond = data.func.is_wezterm(),
|
cond = require("data.func").is_wezterm(),
|
||||||
},
|
},
|
||||||
{ -- Tmux
|
{ -- Tmux
|
||||||
"aserowy/tmux.nvim",
|
"aserowy/tmux.nvim",
|
||||||
config = function()
|
config = function()
|
||||||
return require("tmux").setup()
|
return require("tmux").setup()
|
||||||
end,
|
end,
|
||||||
cond = data.func.is_tmux(),
|
cond = require("data.func").is_tmux(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Themes │
|
-- │ Themes │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Tokyonight
|
{ -- Tokyonight
|
||||||
@@ -19,7 +18,7 @@ return {
|
|||||||
lazy = false, -- Override
|
lazy = false, -- Override
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
name = "catppuccin",
|
name = "catppuccin",
|
||||||
opts = data.types.catppuccin,
|
opts = require("data.types").catppuccin,
|
||||||
},
|
},
|
||||||
{ -- Ayu
|
{ -- Ayu
|
||||||
"Shatur/neovim-ayu",
|
"Shatur/neovim-ayu",
|
||||||
@@ -100,24 +99,24 @@ return {
|
|||||||
"zenbones-theme/zenbones.nvim",
|
"zenbones-theme/zenbones.nvim",
|
||||||
name = "zenbones",
|
name = "zenbones",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
dependencies = data.deps.zenbones,
|
dependencies = require("data.deps").zenbones,
|
||||||
},
|
},
|
||||||
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ UTILITIES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ UTILITIES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
{ -- Transparent
|
{ -- Transparent
|
||||||
"xiyaowong/transparent.nvim",
|
"xiyaowong/transparent.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
keys = data.keys.transparent,
|
keys = require("data.keys").transparent,
|
||||||
cmd = data.cmd.transparent,
|
cmd = require("data.cmd").transparent,
|
||||||
},
|
},
|
||||||
{ -- Auto Dark Mode
|
{ -- Auto Dark Mode
|
||||||
"f-person/auto-dark-mode.nvim",
|
"f-person/auto-dark-mode.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = data.types.auto_dark_mode,
|
opts = require("data.types").auto_dark_mode,
|
||||||
cond = data.cond.auto_dark_mode,
|
cond = require("data.cond").auto_dark_mode,
|
||||||
},
|
},
|
||||||
{ -- Highlight colors
|
{ -- Highlight colors
|
||||||
"brenoprata10/nvim-highlight-colors",
|
"brenoprata10/nvim-highlight-colors",
|
||||||
event = "BufReadPre",
|
event = "BufReadPre",
|
||||||
opts = data.types.hightlight_colors,
|
opts = require("data.types").hightlight_colors,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-24
@@ -3,7 +3,6 @@
|
|||||||
-- ╭─────────────────────────────────────────────────────────╮
|
-- ╭─────────────────────────────────────────────────────────╮
|
||||||
-- │ Utilities │
|
-- │ Utilities │
|
||||||
-- ╰─────────────────────────────────────────────────────────╯
|
-- ╰─────────────────────────────────────────────────────────╯
|
||||||
local data = require("data")
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ -- Chezmoi
|
{ -- Chezmoi
|
||||||
@@ -33,19 +32,19 @@ return {
|
|||||||
{ -- Link following
|
{ -- Link following
|
||||||
"chrishrb/gx.nvim",
|
"chrishrb/gx.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
cmd = data.cmd.gx,
|
cmd = require("data.cmd").gx,
|
||||||
keys = data.keys.gx,
|
keys = require("data.keys").gx,
|
||||||
init = function()
|
init = function()
|
||||||
vim.g.netrw_nogx = 1
|
vim.g.netrw_nogx = 1
|
||||||
end,
|
end,
|
||||||
dependencies = data.deps.gx,
|
dependencies = require("data.deps").gx,
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- Ripgrep substitute
|
{ -- Ripgrep substitute
|
||||||
"chrisgrieser/nvim-rip-substitute",
|
"chrisgrieser/nvim-rip-substitute",
|
||||||
event = "InsertEnter",
|
event = "InsertEnter",
|
||||||
cmd = data.cmd.ripsub,
|
cmd = require("data.cmd").ripsub,
|
||||||
keys = data.keys.ripsub,
|
keys = require("data.keys").ripsub,
|
||||||
},
|
},
|
||||||
{ -- Unception
|
{ -- Unception
|
||||||
"samjwill/nvim-unception",
|
"samjwill/nvim-unception",
|
||||||
@@ -55,21 +54,21 @@ return {
|
|||||||
},
|
},
|
||||||
{ -- Codesnap
|
{ -- Codesnap
|
||||||
"mistricky/codesnap.nvim",
|
"mistricky/codesnap.nvim",
|
||||||
cond = data.func.check_global_var("codesnap", true, true),
|
cond = require("data.func").check_global_var("codesnap", true, true),
|
||||||
lazy = true,
|
lazy = true,
|
||||||
build = "make",
|
build = "make",
|
||||||
opts = data.types.codesnap,
|
opts = require("data.types").codesnap,
|
||||||
cmd = data.cmd.codesnap,
|
cmd = require("data.cmd").codesnap,
|
||||||
keys = data.keys.codesnap,
|
keys = require("data.keys").codesnap,
|
||||||
},
|
},
|
||||||
{ -- Kulala
|
{ -- Kulala
|
||||||
"mistweaverco/kulala.nvim",
|
"mistweaverco/kulala.nvim",
|
||||||
ft = data.types.kulala.ft,
|
ft = require("data.types").kulala.ft,
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
{ -- Hardtime
|
{ -- Hardtime
|
||||||
"m4xshen/hardtime.nvim",
|
"m4xshen/hardtime.nvim",
|
||||||
dependencies = data.deps.hardtime,
|
dependencies = require("data.deps").hardtime,
|
||||||
opts = function()
|
opts = function()
|
||||||
return { enabled = vim.g.usehardtime }
|
return { enabled = vim.g.usehardtime }
|
||||||
end,
|
end,
|
||||||
@@ -78,20 +77,20 @@ return {
|
|||||||
"dmtrKovalenko/caps-word.nvim",
|
"dmtrKovalenko/caps-word.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
opts = {},
|
opts = {},
|
||||||
keys = data.keys.capsword,
|
keys = require("data.keys").capsword,
|
||||||
},
|
},
|
||||||
{ -- Music Controls
|
{ -- Music Controls
|
||||||
"AntonVanAssche/music-controls.nvim",
|
"AntonVanAssche/music-controls.nvim",
|
||||||
cond = data.func.check_global_var("usemusic", true, true),
|
cond = require("data.func").check_global_var("usemusic", true, true),
|
||||||
dependencies = data.deps.musiccontrols,
|
dependencies = require("data.deps").musiccontrols,
|
||||||
opts = {
|
opts = {
|
||||||
default_player = "YoutubeMusic",
|
default_player = "YoutubeMusic",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ -- Qalc
|
{ -- Qalc
|
||||||
"Apeiros-46B/qalc.nvim",
|
"Apeiros-46B/qalc.nvim",
|
||||||
cmd = data.cmd.qalc,
|
cmd = require("data.cmd").qalc,
|
||||||
keys = data.keys.qalc,
|
keys = require("data.keys").qalc,
|
||||||
opts = {
|
opts = {
|
||||||
bufname = "qalc",
|
bufname = "qalc",
|
||||||
set_ft = "qalc",
|
set_ft = "qalc",
|
||||||
@@ -109,32 +108,32 @@ return {
|
|||||||
"amitds1997/remote-nvim.nvim",
|
"amitds1997/remote-nvim.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
version = "*", -- Pin to GitHub releases
|
version = "*", -- Pin to GitHub releases
|
||||||
dependencies = data.deps.remotenvim,
|
dependencies = require("data.deps").remotenvim,
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- Encourage
|
{ -- Encourage
|
||||||
"r-cha/encourage.nvim",
|
"r-cha/encourage.nvim",
|
||||||
cond = data.func.check_global_var("encourage", true, true),
|
cond = require("data.func").check_global_var("encourage", true, true),
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{ -- Helpview
|
{ -- Helpview
|
||||||
"OXY2DEV/helpview.nvim",
|
"OXY2DEV/helpview.nvim",
|
||||||
ft = "help",
|
ft = "help",
|
||||||
dependencies = data.deps.needs_treesitter,
|
dependencies = require("data.deps").needs_treesitter,
|
||||||
},
|
},
|
||||||
{ -- Suda
|
{ -- Suda
|
||||||
"lambdalisue/vim-suda",
|
"lambdalisue/vim-suda",
|
||||||
cmd = data.cmd.suda,
|
cmd = require("data.cmd").suda,
|
||||||
config = data.types.suda,
|
config = require("data.types").suda,
|
||||||
},
|
},
|
||||||
-- { -- Pigeon
|
-- { -- Pigeon
|
||||||
-- "Pheon-Dev/pigeon",
|
-- "Pheon-Dev/pigeon",
|
||||||
-- config = data.types.pigeon,
|
-- config = require('data.types').pigeon,
|
||||||
-- },
|
-- },
|
||||||
{ -- Discord Presence
|
{ -- Discord Presence
|
||||||
"IogaMaster/neocord",
|
"IogaMaster/neocord",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
cond = data.func.check_global_var("usediscord", true, true),
|
cond = require("data.func").check_global_var("usediscord", true, true),
|
||||||
opts = {
|
opts = {
|
||||||
logo = "https://raw.githubusercontent.com/rootiest/rootiest-nvim/b949af32e72db9fc35c18e14e2088710dc36dd15/logo/icon.png",
|
logo = "https://raw.githubusercontent.com/rootiest/rootiest-nvim/b949af32e72db9fc35c18e14e2088710dc36dd15/logo/icon.png",
|
||||||
main_image = "logo",
|
main_image = "logo",
|
||||||
|
|||||||
+9
-12
@@ -6,12 +6,9 @@
|
|||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
-- Load utils
|
|
||||||
local data = require("data")
|
|
||||||
local funcs = data.func
|
|
||||||
-- Readability functions
|
-- Readability functions
|
||||||
local get_bg_color = funcs.get_bg_color
|
local get_bg_color = require("data.func").get_bg_color
|
||||||
local get_fg_color = funcs.get_fg_color
|
local get_fg_color = require("data.func").get_fg_color
|
||||||
local set_hl = vim.api.nvim_set_hl
|
local set_hl = vim.api.nvim_set_hl
|
||||||
local sign_def = vim.fn.sign_define
|
local sign_def = vim.fn.sign_define
|
||||||
|
|
||||||
@@ -90,16 +87,16 @@ function M.setup_indent_highlight()
|
|||||||
if vim.g.tab_char then
|
if vim.g.tab_char then
|
||||||
tab_char = vim.g.tab_char
|
tab_char = vim.g.tab_char
|
||||||
elseif vim.g.tab_char_name then
|
elseif vim.g.tab_char_name then
|
||||||
tab_char = data.types.ibl.char[vim.g.tab_char_name]
|
tab_char = require("data.types").ibl.char[vim.g.tab_char_name]
|
||||||
else
|
else
|
||||||
tab_char = data.types.ibl.char.none
|
tab_char = require("data.types").ibl.char.none
|
||||||
end
|
end
|
||||||
if vim.g.indent_char then
|
if vim.g.indent_char then
|
||||||
indent_char = vim.g.indent_char
|
indent_char = vim.g.indent_char
|
||||||
elseif vim.g.indent_char_name then
|
elseif vim.g.indent_char_name then
|
||||||
indent_char = data.types.ibl.char[vim.g.indent_char_name]
|
indent_char = require("data.types").ibl.char[vim.g.indent_char_name]
|
||||||
else
|
else
|
||||||
indent_char = data.types.ibl.char.none
|
indent_char = require("data.types").ibl.char.none
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Configure the indent-blankline plugin
|
-- Configure the indent-blankline plugin
|
||||||
@@ -115,7 +112,7 @@ function M.setup_indent_highlight()
|
|||||||
enabled = false,
|
enabled = false,
|
||||||
},
|
},
|
||||||
exclude = {
|
exclude = {
|
||||||
filetypes = data.types.highlights.exclude,
|
filetypes = require("data.types").highlights.exclude,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
@@ -206,7 +203,7 @@ end
|
|||||||
--- Function to set up transparency of the editor
|
--- Function to set up transparency of the editor
|
||||||
---@return nil
|
---@return nil
|
||||||
function M.setup_transparency()
|
function M.setup_transparency()
|
||||||
if data.func.is_kitty() and not vim.g.disable_transparency then
|
if require("data.func").is_kitty() and not vim.g.disable_transparency then
|
||||||
vim.cmd("TransparentEnable")
|
vim.cmd("TransparentEnable")
|
||||||
else
|
else
|
||||||
vim.cmd("TransparentDisable")
|
vim.cmd("TransparentDisable")
|
||||||
@@ -254,7 +251,7 @@ function M.setup_autocommands()
|
|||||||
local autocmd = vim.api.nvim_create_autocmd
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
|
||||||
-- List of filetypes to exclude
|
-- List of filetypes to exclude
|
||||||
local excluded_filetypes = data.types.highlights.exclude
|
local excluded_filetypes = require("data.types").highlights.exclude
|
||||||
|
|
||||||
-- Create a new augroup for the IndentHighlight
|
-- Create a new augroup for the IndentHighlight
|
||||||
local IndentGroup = autogrp("IndentHighlight", { clear = true })
|
local IndentGroup = autogrp("IndentHighlight", { clear = true })
|
||||||
|
|||||||
@@ -53,11 +53,9 @@ end
|
|||||||
--- Create keymaps for the module
|
--- Create keymaps for the module
|
||||||
---@return nil
|
---@return nil
|
||||||
function M.setup()
|
function M.setup()
|
||||||
-- Load the data module
|
|
||||||
local data = require("data")
|
|
||||||
-- Create keymaps
|
-- Create keymaps
|
||||||
for _, map in ipairs(data.keys.indentor) do
|
for _, map in ipairs(require("data.keys").indentor) do
|
||||||
data.func.add_keymap(map[1], map[2], map[3], map[4])
|
require("data.func").add_keymap(map[1], map[2], map[3], map[4])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user