actually move neovim config to repo
This commit is contained in:
parent
915a979cdb
commit
fa2fd014f2
|
@ -1 +0,0 @@
|
||||||
Subproject commit aaf8fd6be6829b81f5456c741cf987bd2ab10a2c
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
_G.Config = require("config")
|
||||||
|
_G.Lib = require("lib")
|
||||||
|
|
||||||
|
require("config.lazy")
|
|
@ -0,0 +1,57 @@
|
||||||
|
-- Autocmds are automatically loaded on the VeryLazy event
|
||||||
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||||
|
-- Add any additional autocmds here
|
||||||
|
|
||||||
|
local autocmds = {
|
||||||
|
{ -- Automatically change line numeration
|
||||||
|
{ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" },
|
||||||
|
{
|
||||||
|
group = "auto_number",
|
||||||
|
command = 'if &nu && mode() != "i" | set rnu | endif',
|
||||||
|
-- callback = function()
|
||||||
|
-- if vim.opt.number and vim.fn.mode() ~= "i" then
|
||||||
|
-- vim.opt.relativenumber = true
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ -- Automatically change line numeration
|
||||||
|
{ "BufLeave", "FocusLost", "InsertEnter", "WinLeave" },
|
||||||
|
{
|
||||||
|
group = "auto_number",
|
||||||
|
command = "if &nu | set nornu | endif",
|
||||||
|
-- callback = function()
|
||||||
|
-- if vim.opt.number then
|
||||||
|
-- vim.opt.relativenumber = false
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ -- Trigger shortcuts script
|
||||||
|
"BufWritePost",
|
||||||
|
{
|
||||||
|
pattern = { "directories", "files" },
|
||||||
|
command = "silent!!shortcuts",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ -- Trigger xrdb
|
||||||
|
"BufWritePost",
|
||||||
|
{
|
||||||
|
pattern = { "xresources" },
|
||||||
|
command = "silent!!xrdb %",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.api.nvim_create_augroup("user_config", { clear = true })
|
||||||
|
for _, entry in ipairs(autocmds) do
|
||||||
|
local event = entry[1]
|
||||||
|
local opts = entry[2]
|
||||||
|
if type(opts.group) == "string" and opts.group ~= "" then
|
||||||
|
local exists, _ = pcall(vim.api.nvim_get_autocmds, { group = opts.group })
|
||||||
|
if not exists then
|
||||||
|
vim.api.nvim_create_augroup(opts.group, {})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.api.nvim_create_autocmd(event, opts)
|
||||||
|
end
|
|
@ -0,0 +1,17 @@
|
||||||
|
---@class config
|
||||||
|
---@field ui config.ui
|
||||||
|
---@field language config.language
|
||||||
|
---@field shortcuts config.shortcuts
|
||||||
|
---@field secrets? config.secrets
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
setmetatable(M, {
|
||||||
|
__index = function(_, k)
|
||||||
|
local ok, mod = pcall(require, "config." .. k)
|
||||||
|
if ok then
|
||||||
|
return mod
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
return M
|
|
@ -0,0 +1,8 @@
|
||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
local unmap = vim.api.nvim_del_keymap
|
||||||
|
|
||||||
|
unmap("n", "<Leader>uL")
|
||||||
|
unmap("n", "<Leader>ul")
|
|
@ -0,0 +1,205 @@
|
||||||
|
---@diagnostic disable: missing-fields
|
||||||
|
---@class config.language
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@type table<string, conform.FormatterUnit>
|
||||||
|
M.formatters_by_ft = {
|
||||||
|
css = { "prettier" },
|
||||||
|
scss = { "prettier" },
|
||||||
|
lua = { "stylua" },
|
||||||
|
python = { "black" },
|
||||||
|
sh = { "shfmt" },
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride>
|
||||||
|
M.formatters = {
|
||||||
|
injected = { options = { ignore_errors = true } },
|
||||||
|
shfmt = { prepend_args = { "-i", "4", "-ci" } },
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type table<string,table>
|
||||||
|
M.linters_by_ft = {
|
||||||
|
dockerfile = { "hadolint" },
|
||||||
|
markdown = { "markdownlint" },
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type table<string,table>
|
||||||
|
M.linters = {}
|
||||||
|
|
||||||
|
---@type Array<string>
|
||||||
|
M.mason_install = {
|
||||||
|
"ansible-lint",
|
||||||
|
"ansible-language-server",
|
||||||
|
"basedpyright",
|
||||||
|
"bash-language-server",
|
||||||
|
"codelldb",
|
||||||
|
"debugpy",
|
||||||
|
"dockerfile-language-server",
|
||||||
|
"docker-compose-language-service",
|
||||||
|
"helm-ls",
|
||||||
|
"json-lsp",
|
||||||
|
"lua-language-server",
|
||||||
|
"hadolint",
|
||||||
|
"marksman",
|
||||||
|
"markdownlint",
|
||||||
|
"prettier",
|
||||||
|
"ruff-lsp",
|
||||||
|
"rust-analyzer",
|
||||||
|
"yaml-language-server",
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type Array<string>
|
||||||
|
M.treesitter_install = {
|
||||||
|
"bash",
|
||||||
|
"c",
|
||||||
|
"diff",
|
||||||
|
"dockerfile",
|
||||||
|
"helm",
|
||||||
|
"html",
|
||||||
|
"json",
|
||||||
|
"jsonc",
|
||||||
|
"json5",
|
||||||
|
"lua",
|
||||||
|
"luadoc",
|
||||||
|
"luap",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"ninja",
|
||||||
|
"python",
|
||||||
|
"query",
|
||||||
|
"regex",
|
||||||
|
"ron",
|
||||||
|
"rst",
|
||||||
|
"rust",
|
||||||
|
"toml",
|
||||||
|
"vim",
|
||||||
|
"vimdoc",
|
||||||
|
"xml",
|
||||||
|
"yaml",
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type lspconfig.options
|
||||||
|
M.lsp = {
|
||||||
|
intelephense = {
|
||||||
|
init_options = {
|
||||||
|
storagePath = os.getenv("XDG_CACHE_HOME") .. "/intelephense",
|
||||||
|
globalStoragePath = os.getenv("XDG_CONFIG_HOME") .. "/intelephense",
|
||||||
|
licenceKey = require("lib").get_secret("intelephense")
|
||||||
|
},
|
||||||
|
},
|
||||||
|
jsonls = {
|
||||||
|
on_new_config = function(new_config)
|
||||||
|
new_config.settings.json.schemas = new_config.settings.json.schemas or {}
|
||||||
|
vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
|
||||||
|
end,
|
||||||
|
settings = {
|
||||||
|
json = {
|
||||||
|
format = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
validate = { enable = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lua_ls = {
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
workspace = {
|
||||||
|
checkThirdParty = false,
|
||||||
|
},
|
||||||
|
codeLens = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
completion = {
|
||||||
|
callSnippet = "Replace",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ruff_lsp = {
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>co",
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.code_action({
|
||||||
|
apply = true,
|
||||||
|
context = {
|
||||||
|
only = { "source.organizeImports" },
|
||||||
|
diagnostics = {},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Organize Imports",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yamlls = {
|
||||||
|
capabilities = {
|
||||||
|
textDocument = {
|
||||||
|
foldingRange = {
|
||||||
|
dynamicRegistration = false,
|
||||||
|
lineFoldingOnly = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
on_new_config = function(new_config)
|
||||||
|
new_config.settings.yaml.schemas = vim.tbl_deep_extend(
|
||||||
|
"force",
|
||||||
|
new_config.settings.yaml.schemas or {},
|
||||||
|
require("schemastore").yaml.schemas()
|
||||||
|
)
|
||||||
|
end,
|
||||||
|
settings = {
|
||||||
|
redhat = { telemetry = { enabled = false } },
|
||||||
|
yaml = {
|
||||||
|
keyOrdering = false,
|
||||||
|
format = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
validate = true,
|
||||||
|
schemaStore = {
|
||||||
|
enable = false,
|
||||||
|
url = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||||
|
M.lsp_setup = {
|
||||||
|
ruff_lsp = function()
|
||||||
|
LazyVim.lsp.on_attach(function(client, _)
|
||||||
|
if client.name == "ruff_lsp" then
|
||||||
|
client.server_capabilities.hoverProvider = false
|
||||||
|
client.server_capabilities.renameProvider = false
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
rust_analyzer = function()
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
["*"] = function(server, opts)
|
||||||
|
local base = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
local cmp = require("cmp_nvim_lsp").default_capabilities()
|
||||||
|
vim.tbl_deep_extend("force", opts.capabilities, base)
|
||||||
|
vim.tbl_deep_extend("force", opts.capabilities, cmp)
|
||||||
|
require("lspconfig")[server].setup(opts)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
setmetatable(M, {
|
||||||
|
__index = function(_, k)
|
||||||
|
if k == "lsp" then
|
||||||
|
for l, _ in pairs(M.lsp) do
|
||||||
|
M.lsp[l].mason = false
|
||||||
|
return M.lsp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return require("custom." .. k)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
M.dap = {}
|
||||||
|
|
||||||
|
return M
|
|
@ -0,0 +1,51 @@
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable",
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
import = "lazyvim.plugins",
|
||||||
|
},
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.yanky" },
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.copilot" },
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.mini-indentscope" },
|
||||||
|
{ import = "lazyvim.plugins.extras.dap.core" },
|
||||||
|
-- { import = "lazyvim.plugins.extras.ui.edgy" },
|
||||||
|
{ import = "lazyvim.plugins.extras.editor.aerial" },
|
||||||
|
{ import = "lazyvim.plugins.extras.editor.leap" },
|
||||||
|
{ import = "lazyvim.plugins.extras.test.core" },
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
lazy = true,
|
||||||
|
version = false,
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "tokyonight" } },
|
||||||
|
checker = { enabled = true },
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
"matchparen",
|
||||||
|
"netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
|
@ -0,0 +1,16 @@
|
||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
|
|
||||||
|
local o = vim.opt
|
||||||
|
local g = vim.g
|
||||||
|
|
||||||
|
o.shiftwidth = 4
|
||||||
|
o.tabstop = 4
|
||||||
|
o.scrolloff = 8
|
||||||
|
o.conceallevel = 0
|
||||||
|
|
||||||
|
g.loaded_node_provider = 0
|
||||||
|
g.loaded_perl_provider = 0
|
||||||
|
g.loaded_python3_provider = 0
|
||||||
|
g.loaded_ruby_provider = 0
|
|
@ -0,0 +1,22 @@
|
||||||
|
-- NOTE: Managed by shortcuts script
|
||||||
|
---@class config.shortcuts
|
||||||
|
return {
|
||||||
|
gh = "/home/luca",
|
||||||
|
gch = "/home/luca/.cache",
|
||||||
|
gcf = "/home/luca/.config",
|
||||||
|
gdt = "/home/luca/.local/share",
|
||||||
|
gst = "/home/luca/.local/state",
|
||||||
|
gsc = "/home/luca/.local/bin",
|
||||||
|
gle = "/home/luca/.local/libexec",
|
||||||
|
gmn = "/mnt",
|
||||||
|
gco = "/home/luca/Documents/dev",
|
||||||
|
gdl = "/home/luca/Downloads",
|
||||||
|
gdm = "/home/luca/Documents",
|
||||||
|
gdk = "/home/luca/Desktop",
|
||||||
|
gms = "/home/luca/Music",
|
||||||
|
gpc = "/home/luca/Pictures",
|
||||||
|
gvd = "/home/luca/Videos",
|
||||||
|
gds = "/home/luca/.local/share/stow/dots",
|
||||||
|
glg = "/home/luca/.local/log",
|
||||||
|
gsv = "/home/luca/.local/sv",
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
---@class config.ui
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@type Array<string>
|
||||||
|
M.banners = {
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣿⣿⣿⣷⣶⣤⡀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀
|
||||||
|
⠀⣀⣴⣶⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀
|
||||||
|
⣰⣿⣿⠿⠛⠿⢿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
|
||||||
|
⣿⣿⡇⠀⠀⠀⠀⠈⠛⢿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀
|
||||||
|
⠹⣿⣧⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⢀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀
|
||||||
|
⠀⠙⢿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣷⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣶⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠉⠻⠷⡄⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠀⢀⣠⣤⣤⣄⡀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⡀⠀⠀⠀⠀⣿⠟⠉⠉⠙⢿⣿⣿⣷
|
||||||
|
⠀⠀⠀⣀⣠⣤⣤⣤⣶⣶⣶⣤⣤⠀⣴⣿⣿⣿⡿⠟⠛⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠉⠀⠀⠀⢀⣼⣿⣿⡿
|
||||||
|
⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠛⠻⠏⣼⣿⣿⡿⣋⣀⣤⣤⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⣀⣠⣴⣾⣿⣿⡿⠁
|
||||||
|
⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡿⠋⠘⠿⠟⠛⠛⢻⣿⣿⣿⠋⠁⠈⠉⢿⣿⣿⣧⠀⠙⠻⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀
|
||||||
|
⠙⣷⣤⣀⠀⠀⠀⢀⣀⣤⣶⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡟⠀⠀⠀⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠈⠛⠿⢿⣿⣿⣿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⡀⠀⢠⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣷⣶⣶⣶⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢶⣦⣤⣶⣾⣿⣿⡶⠈⠉⠛⠿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣶⡿⠿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠤⠤⠤⠤⠤⠤⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠒⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢦⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢇⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡀⠀⠀⠀⠀⠀
|
||||||
|
⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
|
||||||
|
⢠⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠟⠁⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⣸⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⡀⠀⠀⢉⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⣿⣿⣿⣿⣶⣦⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⠿⠿⠿⠟⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀
|
||||||
|
⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣤⣀⡀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
|
||||||
|
⠀⠘⣿⣿⣿⣯⡉⠙⠛⠻⠿⢿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣶⣦⣄⣀⡀⠀⠀⠀⣀⣀⣠⣤⣾⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠸⣿⣿⣿⣷⣤⠀⠀⠀⠀⠀⠉⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠙⣿⣿⣿⣿⣿⣶⣀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⠀⢀⠀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠈⠙⠛⠻⠿⠿⠿⠀⢀⣠⣴⣶⣦⡀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣿⣷⡀⢀⠀⠀⠀⠀⠀⠀⡀⢠⣿⠟⠉⠀⠀⠁⣀⡀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣷⣤⣦⣀⣤⣿⣿⣿⡀⠀⢀⣠⣾⣿⣿
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠻⠿⠿⠿⣿⡿⠿⠿⠿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢒⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢣⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⡦⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡐⣸⠂⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠸⡢⡀⠀⠀⠀⠀⠀⠔⣰⠏⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⢖⡠⣨⠊⠒⠠⣀⢀⠊⣠⠃⡰⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠠⠀⠀⠠⠠⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⢰⠑⠚⠀⠀⠀⡉⠀⢇⡰⠀⠀⠀⠀⠀⢀⠠⠐⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠈⡄⠀⠀⠀⠀⠘⠠⠐⡇⠀⠀⠀⠠⠐⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢃⠀⠀⠀⠀⠀⠀⢀⠁⠀⢀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠀⠼⢄⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢸⠀⠀⠀⠀⠀⠀⢸⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠈⠢⠄⠀⠀⠀⠀
|
||||||
|
⠀⠀⢸⠀⠀⠀⠀⠀⠀⠸⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠎⠀⠀⠀⠀⠀⠀⡠⠀⠈⢆⠀⠀⠀
|
||||||
|
⠀⠀⠨⠀⠀⠀⠀⠀⠀⠀⢆⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⡌⠀⠀⢎⠨⡄⠀⠀
|
||||||
|
⠀⠀⠀⡂⠀⠀⠀⠀⠀⠀⠈⢎⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠸⠀⠀⢸⠸⢀⠇⠀⠀
|
||||||
|
⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠡⢕⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⢐⠀⠀⠈⠢⠥⠀⠀⠀
|
||||||
|
⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡉⠒⠠⣀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀⡰⠁⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠠⢄⠈⠑⠒⠤⡀⠀⢐⠅⠀⠀⠀⠀⠀⠀⠀⡁⡂⠉⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠈⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠤⢀⠓⠈⠢⢀⢀⠠⠤⠐⠀⡉⠌⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠰⠐⠪⠤⢀⢀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠈⠁⠢⠄⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠒⡠⠄
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠂⠐⠐⠐⠂⠂⠠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄⠐⠂⠂⠀⠉⠀⠀⠀
|
||||||
|
]],
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type Array<table>
|
||||||
|
M.buttons = {
|
||||||
|
-- {
|
||||||
|
-- action = LazyVim.telescope("files"),
|
||||||
|
-- desc = " Find File" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "f",
|
||||||
|
-- },
|
||||||
|
{
|
||||||
|
action = "enew",
|
||||||
|
desc = " New File" .. string.rep(" ", 34),
|
||||||
|
icon = " ",
|
||||||
|
key = "n",
|
||||||
|
},
|
||||||
|
-- {
|
||||||
|
-- action = "Telescope live_grep",
|
||||||
|
-- desc = " Find Text" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "g",
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- action = "TodoTelescope",
|
||||||
|
-- desc = " Find Todo" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "t",
|
||||||
|
-- },
|
||||||
|
{
|
||||||
|
action = 'lua require("persistence").load()',
|
||||||
|
desc = " Restore Session" .. string.rep(" ", 27),
|
||||||
|
icon = " ",
|
||||||
|
key = "s",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
action = "qa",
|
||||||
|
desc = " Quit" .. string.rep(" ", 38),
|
||||||
|
icon = " ",
|
||||||
|
key = "q",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
|
@ -0,0 +1,25 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@return table<string, function>
|
||||||
|
function M.generate_shortcut_maps()
|
||||||
|
local shortcuts = Config.shortcuts
|
||||||
|
local fs = require("neo-tree.sources.filesystem")
|
||||||
|
local maps = {}
|
||||||
|
for map, path in pairs(shortcuts) do
|
||||||
|
maps[map] = function(state)
|
||||||
|
fs._navigate_internal(state, path, nil, nil, false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return maps
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param key string
|
||||||
|
---@return string?
|
||||||
|
function M.get_secret(key)
|
||||||
|
local ok, keys = pcall(require, "config.secrets")
|
||||||
|
if ok then
|
||||||
|
return keys[key]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
|
@ -0,0 +1,23 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"echasnovski/mini.surround",
|
||||||
|
opts = {
|
||||||
|
custom_surroundings = {
|
||||||
|
B = {
|
||||||
|
input = { "{{ ().*() }}" },
|
||||||
|
output = { left = "{{ ", right = " }}" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"echasnovski/mini.ai",
|
||||||
|
opts = {
|
||||||
|
custom_textobjects = {
|
||||||
|
B = {
|
||||||
|
require("mini.ai").gen_spec.pair("{{ ", " }}"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,308 @@
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"ggandor/flit.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NvChad/nvim-colorizer.lua",
|
||||||
|
cmd = { "ColorizerToggle", "ColorizerAttachToBuffer", "ColorizerDetachFromBuffer", "ColorizerReloadAllBuffers" },
|
||||||
|
opts = { user_default_options = { names = false } },
|
||||||
|
keys = { { "<leader>uH", "<cmd>ColorizerToggle<cr>", desc = "Toggle Colorizer" } },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CopilotC-Nvim/CopilotChat.nvim",
|
||||||
|
dependencies = {
|
||||||
|
{ "zbirenbaum/copilot.lua" },
|
||||||
|
{ "nvim-lua/plenary.nvim" },
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = { defaults = { ["<leader>a"] = { name = "+ai" }, ["<leader>ac"] = { name = "+copilot" } } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>acc", "<cmd>CopilotChatToggle<cr>", desc = "Toggle Chat", mode = { "n", "v" } },
|
||||||
|
{ "<leader>acx", "<cmd>CopilotChatReset<cr>", desc = "Reset Chat", mode = { "n", "v" } },
|
||||||
|
{ "<leader>acf", "<cmd>CopilotChatFix<cr>", desc = "Fix Selection", mode = { "v" } },
|
||||||
|
{ "<leader>ace", "<cmd>CopilotChatExplain<cr>", desc = "Explain Selection", mode = { "v" } },
|
||||||
|
{ "<leader>acr", "<cmd>CopilotChatExplain<cr>", desc = "Review Selection", mode = { "v" } },
|
||||||
|
{ "<leader>aco", "<cmd>CopilotChatOptimize<cr>", desc = "Optimize Selection", mode = { "v" } },
|
||||||
|
{ "<leader>acd", "<cmd>CopilotChatDocs<cr>", desc = "Document Selection", mode = { "v" } },
|
||||||
|
{ "<leader>act", "<cmd>CopilotChatTests<cr>", desc = "Unittest Selection", mode = { "v" } },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
window = {
|
||||||
|
layout = "float",
|
||||||
|
width = 0.9,
|
||||||
|
height = 0.8,
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
complete = {
|
||||||
|
detail = "Use @<Tab> or /<Tab> for options.",
|
||||||
|
insert = "<Tab>",
|
||||||
|
},
|
||||||
|
close = {
|
||||||
|
normal = "q",
|
||||||
|
insert = "<C-c>",
|
||||||
|
},
|
||||||
|
reset = {
|
||||||
|
normal = "<C-l>",
|
||||||
|
insert = "<C-l>",
|
||||||
|
},
|
||||||
|
submit_prompt = {
|
||||||
|
normal = "<CR>",
|
||||||
|
insert = "<C-CR>",
|
||||||
|
},
|
||||||
|
accept_diff = {
|
||||||
|
normal = "<C-y>",
|
||||||
|
insert = "<C-y>",
|
||||||
|
},
|
||||||
|
yank_diff = {
|
||||||
|
normal = "gy",
|
||||||
|
},
|
||||||
|
show_diff = {
|
||||||
|
normal = "gd",
|
||||||
|
},
|
||||||
|
show_system_prompt = {
|
||||||
|
normal = "gp",
|
||||||
|
},
|
||||||
|
show_user_selection = {
|
||||||
|
normal = "gs",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"jackMort/ChatGPT.nvim",
|
||||||
|
cmd = { "ChatGPT", "ChatGPTActAs", "ChatGPTEditWithInstructions", "ChatGPTRun" },
|
||||||
|
dependencies = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
["<leader>a"] = { name = "+ai" },
|
||||||
|
["<leader>ag"] = { name = "+chatgpt" },
|
||||||
|
["<leader>agt"] = { name = "+translate" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local key = Lib.get_secret("openai")
|
||||||
|
if key then
|
||||||
|
require("chatgpt.api").OPENAI_API_KEY = key
|
||||||
|
require("chatgpt.api").AUTHORIZATION_HEADER = "Authorization: Bearer " .. key
|
||||||
|
require("chatgpt").setup(opts)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
--stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ "<leader>agc", function() require("chatgpt").openChat() end, desc = "Toggle Chat" },
|
||||||
|
{ "<leader>age", function() require("chatgpt").edit_with_instructions() end, desc = "Edit with instruction", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agg", function() require("chatgpt").run_action("grammar_correction") end, desc = "Grammar Correction", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtg", function() require("chatgpt").run_action({ fargs = { "translate", "german" } }) end, desc = "German", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agte", function() require("chatgpt").run_action({ fargs = { "translate", "english" } }) end, desc = "English", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtf", function() require("chatgpt").run_action({ fargs = { "translate", "french" } }) end, desc = "French", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtr", function() require("chatgpt").run_action({ fargs = { "translate", "russian" } }) end, desc = "Russian", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agk", function() require("chatgpt").run_action({ fargs = { "keywords" } }) end, desc = "Keywords", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agd", function() require("chatgpt").run_action({ fargs = { "docstring" } }) end, desc = "Docstring", mode = { "n", "v" } },
|
||||||
|
{ "<leader>aga", function() require("chatgpt").run_action({ fargs = { "add_tests" } }) end, desc = "Add Tests", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ago", function() require("chatgpt").run_action({ fargs = { "optimize_code" } }) end, desc = "Optimize Code", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ags", function() require("chatgpt").run_action({ fargs = { "summarize" } }) end, desc = "Summarize", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agf", function() require("chatgpt").run_action({ fargs = { "fix_bugs" } }) end, desc = "Fix Bugs", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agx", function() require("chatgpt").run_action({ fargs = { "explain_code" } }) end, desc = "Explain Code", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agr", function() require("chatgpt").run_action({ fargs = { "roxygen_edit" } }) end, desc = "Roxygen Edit", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agl", function() require("chatgpt").run_action({ fargs = { "code_readability_analysis" } }) end, desc = "Code Readability Analysis", mode = { "n", "v" } },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
edit_with_instructions = {
|
||||||
|
keymaps = {
|
||||||
|
close = "<C-c>",
|
||||||
|
accept = "<C-y>",
|
||||||
|
toggle_diff = "<C-d>",
|
||||||
|
toggle_settings = "<C-o>",
|
||||||
|
toggle_help = "<C-.>",
|
||||||
|
cycle_windows = "<Tab>",
|
||||||
|
use_output_as_input = "<C-,>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
chat = {
|
||||||
|
question_sign = "",
|
||||||
|
answer_sign = "",
|
||||||
|
sessions_window = {
|
||||||
|
active_sign = " ",
|
||||||
|
inactive_sign = " ",
|
||||||
|
current_line_sign = "",
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keymaps = {
|
||||||
|
close = "<C-c>",
|
||||||
|
yank_last = "<C-y>",
|
||||||
|
yank_last_code = "<C-p>",
|
||||||
|
scroll_up = "<C-u>",
|
||||||
|
scroll_down = "<C-d>",
|
||||||
|
new_session = "<C-g>",
|
||||||
|
cycle_windows = "<Tab>",
|
||||||
|
cycle_modes = "<C-f>",
|
||||||
|
next_message = "<C-n>",
|
||||||
|
prev_message = "<C-p>",
|
||||||
|
select_session = "<Space>",
|
||||||
|
rename_session = "r",
|
||||||
|
delete_session = "d",
|
||||||
|
draft_message = "<C-r>",
|
||||||
|
edit_message = "e",
|
||||||
|
delete_message = "d",
|
||||||
|
toggle_settings = "<C-o>",
|
||||||
|
toggle_sessions = "<C-s>",
|
||||||
|
toggle_help = "<C-.>",
|
||||||
|
toggle_message_role = "<C-,>",
|
||||||
|
toggle_system_role_open = "<C-'>",
|
||||||
|
stop_generating = "<C-x>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_layout = {
|
||||||
|
default = "center",
|
||||||
|
center = {
|
||||||
|
width = "90%",
|
||||||
|
height = "80%",
|
||||||
|
},
|
||||||
|
right = {
|
||||||
|
width = "30%",
|
||||||
|
width_settings_open = "50%",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
system_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_input = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
submit = "<C-Enter>",
|
||||||
|
submit_n = "<Enter>",
|
||||||
|
},
|
||||||
|
settings_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
help_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
openai_params = {
|
||||||
|
-- model = "gpt-3.5-turbo",
|
||||||
|
model = "gpt-4-turbo",
|
||||||
|
},
|
||||||
|
openai_edit_params = {
|
||||||
|
-- model = "gpt-3.5-turbo",
|
||||||
|
model = "gpt-4-turbo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
opts = {
|
||||||
|
filesystem = {
|
||||||
|
window = {
|
||||||
|
mappings = Lib.generate_shortcut_maps(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/todo-comments.nvim",
|
||||||
|
opts = {
|
||||||
|
highlight = {
|
||||||
|
multiline = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"zk-org/zk-nvim",
|
||||||
|
ft = { "markdown" },
|
||||||
|
main = "zk",
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = { defaults = { ["<leader>z"] = { name = "+zk" } } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
picker = "telescope",
|
||||||
|
lsp = {
|
||||||
|
cmd = { "zk", "lsp" },
|
||||||
|
name = "zk",
|
||||||
|
config = {
|
||||||
|
on_attach = function(client)
|
||||||
|
if client.name == "zk" then
|
||||||
|
require("zk").cd()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
auto_attach = {
|
||||||
|
enabled = true,
|
||||||
|
filetypes = { "markdown" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
--stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ "<leader>zn", function() require("zk.commands").get("ZkNew")({ title = vim.fn.input('Title: ') }) end, desc = "New Note", mode = { "n", "v" } },
|
||||||
|
{ "<leader>znt", function() require("zk.commands").get("ZkNewFromTitleSelection")() end, desc = "Title from selection", mode = { "v" } },
|
||||||
|
{
|
||||||
|
"<leader>znc",
|
||||||
|
function()
|
||||||
|
require("zk.commands").get("ZkNewFromContentSelection")({
|
||||||
|
title = vim.fn.input(
|
||||||
|
'Title: ')
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Content from selection",
|
||||||
|
mode = { "v" }
|
||||||
|
},
|
||||||
|
{ "<leader>zb", function() require("zk.commands").get("ZkBacklinks")() end, desc = "Links" },
|
||||||
|
{ "<leader>zl", function() require("zk.commands").get("ZkLinks")() end, desc = "Backlinks" },
|
||||||
|
{ "<leader>zx", function() require("zk.commands").get("ZkIndex")() end, desc = "Index" },
|
||||||
|
{ "<leader>zf", function() require("zk.commands").get("ZkNotes")({ sort = { 'modified' } }) end, desc = "Find Notes" },
|
||||||
|
{ "<leader>zt", function() require("zk.commands").get("ZkTags")() end, desc = "Find Note Tags" },
|
||||||
|
{ "<leader>zf", function() require("zk.commands").get("ZkMatch")() end, desc = "Find Notes (Match Selection)", mode = { "v" } },
|
||||||
|
{ "<leader>zi", function() require("zk.commands").get("ZkInsertLinkAtSelection")() end, desc = "Insert Link", mode = { "n", "v" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,232 @@
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = {
|
||||||
|
auto_install = true,
|
||||||
|
ensure_installed = Config.language.treesitter_install,
|
||||||
|
highlight = {
|
||||||
|
additional_vim_regex_highlighting = { "markdown" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = {
|
||||||
|
formatters_by_ft = Config.language.formatters_by_ft,
|
||||||
|
formatters = Config.language.formatters,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
servers = Config.language.lsp,
|
||||||
|
setup = Config.language.lsp_setup,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mfussenegger/nvim-lint",
|
||||||
|
opts = {
|
||||||
|
linters_by_ft = Config.language.linters_by_ft,
|
||||||
|
linters = Config.language.linters,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = Config.language.mason_install,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.auto_brackets, "python")
|
||||||
|
|
||||||
|
table.insert(opts.sources, { name = "crates" })
|
||||||
|
|
||||||
|
opts.experimental = {
|
||||||
|
ghost_text = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- local cmp = require("cmp")
|
||||||
|
-- local luasnip = require("luasnip")
|
||||||
|
--
|
||||||
|
-- opts.preselect = cmp.PreselectMode.None
|
||||||
|
-- opts.snippet = {
|
||||||
|
-- expand = function(args)
|
||||||
|
-- require("luasnip").lsp_expand(args.body)
|
||||||
|
-- end,
|
||||||
|
-- }
|
||||||
|
-- opts.mapping = {
|
||||||
|
-- ["<Up>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }),
|
||||||
|
-- ["<Down>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }),
|
||||||
|
-- ["<C-Space>"] = cmp.mapping(function(fallback)
|
||||||
|
-- if cmp.visible() then
|
||||||
|
-- if luasnip.expandable() then
|
||||||
|
-- luasnip.expand()
|
||||||
|
-- else
|
||||||
|
-- cmp.confirm({
|
||||||
|
-- select = true,
|
||||||
|
-- })
|
||||||
|
-- end
|
||||||
|
-- else
|
||||||
|
-- fallback()
|
||||||
|
-- end
|
||||||
|
-- end),
|
||||||
|
--
|
||||||
|
-- ["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
-- if cmp.visible() then
|
||||||
|
-- cmp.select_next_item()
|
||||||
|
-- elseif luasnip.locally_jumpable(1) then
|
||||||
|
-- luasnip.jump(1)
|
||||||
|
-- else
|
||||||
|
-- fallback()
|
||||||
|
-- end
|
||||||
|
-- end, { "i", "s" }),
|
||||||
|
--
|
||||||
|
-- ["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
-- if cmp.visible() then
|
||||||
|
-- cmp.select_prev_item()
|
||||||
|
-- elseif luasnip.locally_jumpable(-1) then
|
||||||
|
-- luasnip.jump(-1)
|
||||||
|
-- else
|
||||||
|
-- fallback()
|
||||||
|
-- end
|
||||||
|
-- end, { "i", "s" }),
|
||||||
|
-- }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"towolf/vim-helm",
|
||||||
|
ft = "helm",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mfussenegger/nvim-ansible",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>tr",
|
||||||
|
function()
|
||||||
|
require("ansible").run()
|
||||||
|
end,
|
||||||
|
silent = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"b0o/SchemaStore.nvim",
|
||||||
|
lazy = true,
|
||||||
|
version = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"iamcco/markdown-preview.nvim",
|
||||||
|
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
||||||
|
build = function()
|
||||||
|
vim.fn["mkdp#util#install"]()
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>cp",
|
||||||
|
ft = "markdown",
|
||||||
|
"<cmd>MarkdownPreviewToggle<cr>",
|
||||||
|
desc = "Markdown Preview",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
vim.cmd([[do FileType]])
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-neotest/neotest",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-neotest/neotest-python",
|
||||||
|
},
|
||||||
|
opts = function(_, opts)
|
||||||
|
local _, rt = pcall(require, "rustaceanvim.neotest")
|
||||||
|
opts.adapters = vim.tbl_deep_extend("force", opts.adapters, {
|
||||||
|
["neotest-python"] = {},
|
||||||
|
rt,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mfussenegger/nvim-dap-python",
|
||||||
|
-- stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ "<leader>dPt", function() require("dap-python").test_method() end, desc = "Debug Method", ft = "python" },
|
||||||
|
{ "<leader>dPc", function() require("dap-python").test_class() end, desc = "Debug Class", ft = "python" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local path = require("mason-registry").get_package("debugpy"):get_install_path()
|
||||||
|
require("dap-python").setup(path .. "/venv/bin/python")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"linux-cultist/venv-selector.nvim",
|
||||||
|
cmd = "VenvSelect",
|
||||||
|
opts = function(_, opts)
|
||||||
|
if LazyVim.has("nvim-dap-python") then
|
||||||
|
opts.dap_enabled = true
|
||||||
|
end
|
||||||
|
return vim.tbl_deep_extend("force", opts, {
|
||||||
|
name = {
|
||||||
|
"venv",
|
||||||
|
".venv",
|
||||||
|
"env",
|
||||||
|
".env",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv" } },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Saecki/crates.nvim",
|
||||||
|
event = { "BufRead Cargo.toml" },
|
||||||
|
opts = {
|
||||||
|
src = {
|
||||||
|
cmp = { enabled = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mrcjkb/rustaceanvim",
|
||||||
|
version = "^4",
|
||||||
|
ft = { "rust" },
|
||||||
|
opts = {
|
||||||
|
server = {
|
||||||
|
on_attach = function(_, bufnr)
|
||||||
|
vim.keymap.set("n", "<leader>cR", function()
|
||||||
|
vim.cmd.RustLsp("codeAction")
|
||||||
|
end, { desc = "Code Action", buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<leader>dr", function()
|
||||||
|
vim.cmd.RustLsp("debuggables")
|
||||||
|
end, { desc = "Rust Debuggables", buffer = bufnr })
|
||||||
|
end,
|
||||||
|
default_settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
cargo = {
|
||||||
|
allFeatures = true,
|
||||||
|
loadOutDirsFromCheck = true,
|
||||||
|
runBuildScripts = true,
|
||||||
|
},
|
||||||
|
checkOnSave = {
|
||||||
|
allFeatures = true,
|
||||||
|
command = "clippy",
|
||||||
|
extraArgs = { "--no-deps" },
|
||||||
|
},
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
ignored = {
|
||||||
|
["async-trait"] = { "async_trait" },
|
||||||
|
["napi-derive"] = { "napi" },
|
||||||
|
["async-recursion"] = { "async_recursion" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
lazy = true,
|
||||||
|
opts = {
|
||||||
|
style = "night",
|
||||||
|
on_colors = function(c)
|
||||||
|
c.border = c.bg_highlight
|
||||||
|
c.border_highlight = c.blue
|
||||||
|
end,
|
||||||
|
on_highlights = function(hl, _)
|
||||||
|
hl.CurSearch = nil
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/noice.nvim",
|
||||||
|
opts = {
|
||||||
|
cmdline = {
|
||||||
|
view = "cmdline",
|
||||||
|
presets = {
|
||||||
|
command_palette = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvimdev/dashboard-nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
local center = Config.ui.buttons
|
||||||
|
local banners = Config.ui.banners
|
||||||
|
for _, button in ipairs(center) do
|
||||||
|
button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
|
||||||
|
button.key_format = " %s"
|
||||||
|
end
|
||||||
|
math.randomseed(os.time())
|
||||||
|
local banner = "\n" .. banners[math.random(#banners)] .. "\n"
|
||||||
|
opts.config.header = vim.split(banner, "\n")
|
||||||
|
opts.config.center = center
|
||||||
|
opts.config.footer = function()
|
||||||
|
local stats = require("lazy").stats()
|
||||||
|
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
|
||||||
|
return { "Behold: a Snail's Vim | " .. stats.count .. " " .. ms .. "ms" }
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"echasnovski/mini.indentscope",
|
||||||
|
opts = {
|
||||||
|
draw = {
|
||||||
|
animation = require("mini.indentscope").gen_animation.none(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
opts = {
|
||||||
|
sections = {
|
||||||
|
lualine_y = {
|
||||||
|
{
|
||||||
|
function()
|
||||||
|
--stylua: ignore
|
||||||
|
local chars = { "", "", "", "", "", "", "", "", "", "", "", "", "" }
|
||||||
|
return chars[math.ceil(vim.fn.line(".") / vim.fn.line("$") * #chars)]
|
||||||
|
end,
|
||||||
|
separator = " ",
|
||||||
|
padding = { left = 1, right = 0 },
|
||||||
|
},
|
||||||
|
{ "location", padding = { left = 0, right = 1 } },
|
||||||
|
},
|
||||||
|
lualine_z = {
|
||||||
|
{
|
||||||
|
"o:encoding",
|
||||||
|
fmt = string.upper,
|
||||||
|
separator = " ",
|
||||||
|
padding = { left = 1, right = 0 },
|
||||||
|
},
|
||||||
|
{ "fileformat", padding = { left = 0, right = 1 } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
ansible
|
||||||
|
submodules
|
||||||
|
roundcube
|
||||||
|
postgres
|
||||||
|
binpkgs
|
||||||
|
hostdir
|
||||||
|
config
|
||||||
|
wireguard
|
||||||
|
Webchecks
|
||||||
|
fail2ban
|
|
@ -0,0 +1,3 @@
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 4
|
||||||
|
column_width = 120
|
Loading…
Reference in New Issue