Wasted way too much time on hydra.nvim shit
This commit is contained in:
parent
fe3c267ca9
commit
8a54d25b3b
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,3 +4,4 @@ result
|
||||||
README.html
|
README.html
|
||||||
*.qcow2
|
*.qcow2
|
||||||
*.log
|
*.log
|
||||||
|
.luarc.json
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"workspace.checkThirdParty": false
|
|
||||||
}
|
|
|
@ -2,18 +2,18 @@ local opts = function(desc)
|
||||||
return { desc = desc, buffer = true }
|
return { desc = desc, buffer = true }
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>lf", ":source %<cr>", opts("Run [l]ua [f]ile "))
|
local function runLocal(functionName)
|
||||||
vim.keymap.set("n", "<leader>ls", function()
|
return function()
|
||||||
local path = vim.api.nvim_buf_get_name(0)
|
local path = vim.api.nvim_buf_get_name(0)
|
||||||
local status, M = pcall(dofile, path)
|
local status, M = pcall(dofile, path)
|
||||||
|
|
||||||
if status then
|
if status then
|
||||||
if M ~= nil then
|
if M ~= nil then
|
||||||
if type(M.setup) == "function" then
|
if type(M[functionName]) == "function" then
|
||||||
M.setup()
|
M[functionName]()
|
||||||
print("M.setup() executed succesfully!")
|
print("M." .. functionName .. "() executed succesfully!")
|
||||||
else
|
else
|
||||||
print("Module does not return a setup function")
|
print("Module does not return a " .. functionName .. " function")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
print("Module returned nil")
|
print("Module returned nil")
|
||||||
|
@ -21,5 +21,19 @@ vim.keymap.set("n", "<leader>ls", function()
|
||||||
else
|
else
|
||||||
print("Cannot import current file :(")
|
print("Cannot import current file :(")
|
||||||
end
|
end
|
||||||
end, opts("Run .setup() in current file"))
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>lf", ":source %<cr>", opts("Run [l]ua [f]ile "))
|
||||||
|
vim.keymap.set(
|
||||||
|
"n",
|
||||||
|
"<leader>ls",
|
||||||
|
runLocal("setup"),
|
||||||
|
opts("Run .[s]etup() in current file")
|
||||||
|
)
|
||||||
|
vim.keymap.set(
|
||||||
|
"n",
|
||||||
|
"<leader>lc",
|
||||||
|
runLocal("config"),
|
||||||
|
opts("Run .[c]onfig() in current file")
|
||||||
|
)
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"dressing.nvim": { "branch": "master", "commit": "6bde51adabba06f7fd4a469885a85f36d78a5f52" },
|
"dressing.nvim": { "branch": "master", "commit": "6bde51adabba06f7fd4a469885a85f36d78a5f52" },
|
||||||
"fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
"fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "967117690bd677cb7b6a87f0bc0077d2c0be3a27" },
|
"flash.nvim": { "branch": "main", "commit": "967117690bd677cb7b6a87f0bc0077d2c0be3a27" },
|
||||||
|
"formatter.nvim": { "branch": "master", "commit": "44c89f09dcc220dc2a9b056e93c3a87c86e79804" },
|
||||||
"github-actions-yaml.vim": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
|
"github-actions-yaml.vim": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
|
||||||
"gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
"gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
|
||||||
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
|
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
|
||||||
|
@ -27,6 +28,7 @@
|
||||||
"kotlin-vim": { "branch": "master", "commit": "53fe045906df8eeb07cb77b078fc93acda6c90b8" },
|
"kotlin-vim": { "branch": "master", "commit": "53fe045906df8eeb07cb77b078fc93acda6c90b8" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "dac844ed617dda4f9ec85eb88e9629ad2add5e05" },
|
"lazy.nvim": { "branch": "main", "commit": "dac844ed617dda4f9ec85eb88e9629ad2add5e05" },
|
||||||
"lean.nvim": { "branch": "main", "commit": "67580fab5bed73920fa3fdd712fc8e805c389c3d" },
|
"lean.nvim": { "branch": "main", "commit": "67580fab5bed73920fa3fdd712fc8e805c389c3d" },
|
||||||
|
"live-command.nvim": { "branch": "main", "commit": "d460067d47948725a6f25b20f31ea8bbfdfe4622" },
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" },
|
"lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||||
"magma-nvim": { "branch": "main", "commit": "ff3deba8a879806a51c005e50782130246143d06" },
|
"magma-nvim": { "branch": "main", "commit": "ff3deba8a879806a51c005e50782130246143d06" },
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
|
|
||||||
"Lua.workspace.checkThirdParty": false
|
|
||||||
}
|
|
|
@ -23,9 +23,17 @@ M.functions = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function M.setup()
|
function M.setup()
|
||||||
A.manyGlobalAbbr(scrap.expand_many(M.types, A.no_capitalization))
|
scrap.many_local_abbreviations(
|
||||||
A.manyGlobalAbbr(scrap.expand_many(M.symols, A.no_capitalization))
|
scrap.expand_many(M.types, A.no_capitalization)
|
||||||
A.manyGlobalAbbr(scrap.expand_many(M.functions, A.no_capitalization))
|
)
|
||||||
|
|
||||||
|
scrap.many_local_abbreviations(
|
||||||
|
scrap.expand_many(M.symols, A.no_capitalization)
|
||||||
|
)
|
||||||
|
|
||||||
|
scrap.many_local_abbreviations(
|
||||||
|
scrap.expand_many(M.functions, A.no_capitalization)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -24,7 +24,6 @@ function M.manyGlobalAbbr(abbreviations)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function M.setup()
|
function M.setup()
|
||||||
require("my.abbreviations.global").setup()
|
require("my.abbreviations.global").setup()
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,9 +3,8 @@ local M = {}
|
||||||
function M.setup()
|
function M.setup()
|
||||||
-- Import my other files
|
-- Import my other files
|
||||||
require("my.options").setup()
|
require("my.options").setup()
|
||||||
require('my.keymaps').setup()
|
require("my.keymaps").setup()
|
||||||
require('my.lazy').setup()
|
require("my.lazy").setup()
|
||||||
require('my.abbreviations').setup()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -13,6 +13,15 @@ function M.setup()
|
||||||
enabled = false,
|
enabled = false,
|
||||||
notify = false,
|
notify = false,
|
||||||
},
|
},
|
||||||
|
dev = {
|
||||||
|
-- Fallback to git when local plugin doesn't exist
|
||||||
|
fallback = true,
|
||||||
|
|
||||||
|
-- Directory where I store my local plugin projects
|
||||||
|
path = "~/Projects",
|
||||||
|
|
||||||
|
patterns = { "Mateiadrielrafael" },
|
||||||
|
},
|
||||||
performance = {
|
performance = {
|
||||||
rtp = {
|
rtp = {
|
||||||
paths = {
|
paths = {
|
||||||
|
|
42
dotfiles/neovim/lua/my/plugins/format-nvim.lua
Normal file
42
dotfiles/neovim/lua/my/plugins/format-nvim.lua
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
local env = require("my.helpers.env")
|
||||||
|
local K = require("my.keymaps")
|
||||||
|
|
||||||
|
local M = {
|
||||||
|
"mhartington/formatter.nvim",
|
||||||
|
event = "BufReadPre",
|
||||||
|
cond = env.vscode.not_active(),
|
||||||
|
}
|
||||||
|
|
||||||
|
function M.config()
|
||||||
|
local any = require("formatter.filetypes.any")
|
||||||
|
local formatters = {
|
||||||
|
markdown = {
|
||||||
|
require("formatter.filetypes.markdown").prettierd,
|
||||||
|
},
|
||||||
|
lua = {
|
||||||
|
require("formatter.filetypes.lua").stylua,
|
||||||
|
},
|
||||||
|
["*"] = {
|
||||||
|
any.remove_trailing_whitespace,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require("formatter").setup({ filetype = formatters })
|
||||||
|
|
||||||
|
local format = function()
|
||||||
|
if formatters[vim.bo.filetype] ~= nil then
|
||||||
|
vim.cmd([[Format]])
|
||||||
|
elseif next(vim.lsp.get_active_clients({ bufnr = 0 })) == nil then
|
||||||
|
vim.lsp.buf.format()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
K.nmap("<leader>F", format, "[F]ormat file")
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
|
group = vim.api.nvim_create_augroup("Formatting", { clear = false }),
|
||||||
|
callback = format,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
|
@ -2,58 +2,361 @@ local M = {
|
||||||
-- keybinds where you only hit the head once
|
-- keybinds where you only hit the head once
|
||||||
"anuvyklack/hydra.nvim",
|
"anuvyklack/hydra.nvim",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"jbyuki/venn.nvim", -- draw ascii diagrams
|
|
||||||
"mrjones2014/smart-splits.nvim", -- the name says it all
|
"mrjones2014/smart-splits.nvim", -- the name says it all
|
||||||
},
|
},
|
||||||
keys = { "<C-S-w>", "<leader>V" },
|
keys = { "<C-S-w>" },
|
||||||
}
|
}
|
||||||
|
|
||||||
local venn_hint = [[
|
-- {{{ Helpers
|
||||||
Arrow^^^^^^ Select region with <C-v>
|
local function identity(x)
|
||||||
^ ^ _K_ ^ ^ _f_: surround it with box
|
return x
|
||||||
_H_ ^ ^ _L_
|
end
|
||||||
^ ^ _J_ ^ ^ _<Esc>_
|
|
||||||
]]
|
|
||||||
|
|
||||||
local window_hint = [[
|
local function len(x)
|
||||||
^^^^^^^^^^^^ Move ^^ Size ^^ ^^ Split
|
return #x
|
||||||
^^^^^^^^^^^^------------- ^^-----------^^ ^^---------------
|
end
|
||||||
|
|
||||||
|
local function box(value, w, h)
|
||||||
|
return { value = value, width = w, height = h }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function min(l, r)
|
||||||
|
if l < r then
|
||||||
|
return l
|
||||||
|
else
|
||||||
|
return r
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function max(l, r)
|
||||||
|
return -min(-l, -r)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function zip_with(l, r, f, default)
|
||||||
|
local output = {}
|
||||||
|
for i = 1, max(#l, #r), 1 do
|
||||||
|
output[i] = f(l[i] or default, r[i] or default)
|
||||||
|
end
|
||||||
|
|
||||||
|
return output
|
||||||
|
end
|
||||||
|
|
||||||
|
local function flatten_list(list)
|
||||||
|
local output = {}
|
||||||
|
|
||||||
|
for i = 1, #list, 1 do
|
||||||
|
for j = 1, #list[i], 1 do
|
||||||
|
table.insert(output, list[i][j])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return output
|
||||||
|
end
|
||||||
|
|
||||||
|
local function map_list(list, f)
|
||||||
|
local output = {}
|
||||||
|
for i = 1, #list, 1 do
|
||||||
|
output[i] = f(list[i])
|
||||||
|
end
|
||||||
|
return output
|
||||||
|
end
|
||||||
|
|
||||||
|
local function l_repeat(v, times)
|
||||||
|
if times == 0 then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local o = {}
|
||||||
|
|
||||||
|
for i = 1, times, 1 do
|
||||||
|
o[i] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
return o
|
||||||
|
end
|
||||||
|
|
||||||
|
local function s_repeat(text, times)
|
||||||
|
local o = ""
|
||||||
|
|
||||||
|
for _ = 1, times, 1 do
|
||||||
|
o = o .. text
|
||||||
|
end
|
||||||
|
|
||||||
|
return o
|
||||||
|
end
|
||||||
|
local function string_split(text, sep)
|
||||||
|
---@diagnostic disable-next-line: redefined-local
|
||||||
|
local sep, fields = sep or ":", {}
|
||||||
|
local pattern = string.format("([^%s]+)", sep)
|
||||||
|
text:gsub(pattern, function(c)
|
||||||
|
fields[#fields + 1] = c
|
||||||
|
end)
|
||||||
|
return fields
|
||||||
|
end
|
||||||
|
|
||||||
|
local function table_max(list, f, default)
|
||||||
|
if #list == 0 then
|
||||||
|
return default
|
||||||
|
end
|
||||||
|
---@diagnostic disable-next-line: redefined-local
|
||||||
|
local f = f or identity
|
||||||
|
local c_max = list[1]
|
||||||
|
for i = 1, #list, 1 do
|
||||||
|
if f(list[i]) >= f(c_max) then
|
||||||
|
c_max = list[i]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return c_max
|
||||||
|
end
|
||||||
|
|
||||||
|
local function string_value(t)
|
||||||
|
if type(t) == "string" then
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
return t.value
|
||||||
|
end
|
||||||
|
|
||||||
|
local function lines(text)
|
||||||
|
return string_split(string_value(text), "\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function unlines(text)
|
||||||
|
return table.concat(text, "\n")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function map_lines(text, f)
|
||||||
|
return unlines(map_list(lines(text), f))
|
||||||
|
end
|
||||||
|
|
||||||
|
local function string_width(t)
|
||||||
|
if type(t) == "string" then
|
||||||
|
return #table_max(lines(t), len, "")
|
||||||
|
end
|
||||||
|
|
||||||
|
return t.width
|
||||||
|
end
|
||||||
|
|
||||||
|
local function string_height(t)
|
||||||
|
if type(t) == "string" then
|
||||||
|
return #lines(t)
|
||||||
|
end
|
||||||
|
|
||||||
|
return t.height
|
||||||
|
end
|
||||||
|
|
||||||
|
local function half_down(num)
|
||||||
|
return math.floor(num / 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function half_up(num)
|
||||||
|
return math.ceil(num / 2)
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
-- {{{ Hint helpers
|
||||||
|
local H = {}
|
||||||
|
|
||||||
|
function H.highlight(t)
|
||||||
|
return box("_" .. t .. "_", string_width(t), 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.spacing(amount)
|
||||||
|
return s_repeat(" ", amount)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.spacing_for(text)
|
||||||
|
return H.spacing(string_width(text))
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.spacing_largest(values)
|
||||||
|
return H.spacing_for(table_max(values))
|
||||||
|
end
|
||||||
|
|
||||||
|
H.nojustify = { justify = "nojustify" }
|
||||||
|
|
||||||
|
function H.pad_left(text, length)
|
||||||
|
local spaces = length - string_width(text)
|
||||||
|
|
||||||
|
return box(
|
||||||
|
map_lines(text, function(line)
|
||||||
|
return H.spacing(spaces) .. line
|
||||||
|
end),
|
||||||
|
length,
|
||||||
|
string_height(text)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.pad_right(text, length)
|
||||||
|
local spaces = length - string_width(text)
|
||||||
|
return box(
|
||||||
|
map_lines(text, function(line)
|
||||||
|
return line .. H.spacing(spaces)
|
||||||
|
end),
|
||||||
|
length,
|
||||||
|
string_height(text)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.pad_around(text, length)
|
||||||
|
local spaces = length - string_width(text)
|
||||||
|
return box(
|
||||||
|
map_lines(text, function(line)
|
||||||
|
return H.spacing(half_up(spaces)) .. line .. H.spacing(half_down(spaces))
|
||||||
|
end),
|
||||||
|
length,
|
||||||
|
string_height(text)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.pad(text, length, justify)
|
||||||
|
if justify == "nojustify" then
|
||||||
|
return text
|
||||||
|
elseif justify == "center" then
|
||||||
|
return H.pad_around(text, length)
|
||||||
|
elseif justify == "right" then
|
||||||
|
return H.pad_left(text, length)
|
||||||
|
else
|
||||||
|
return H.pad_right(text, length)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.directional(h, j, k, l, spacing_amount)
|
||||||
|
---@diagnostic disable-next-line: redefined-local
|
||||||
|
local spacing_amount = spacing_amount or 1
|
||||||
|
|
||||||
|
return H.concat_many_w({
|
||||||
|
H.highlight(k),
|
||||||
|
H.concat_many_h({
|
||||||
|
H.highlight(h),
|
||||||
|
H.spacing(spacing_amount),
|
||||||
|
H.highlight(l),
|
||||||
|
}),
|
||||||
|
H.highlight(j),
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.add_title(title, body)
|
||||||
|
local width = max(string_width(title), string_width(body))
|
||||||
|
|
||||||
|
return H.concat_many_w({
|
||||||
|
title,
|
||||||
|
s_repeat("-", width),
|
||||||
|
body,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.concat_h(left, right, spacing_amount)
|
||||||
|
---@diagnostic disable-next-line: redefined-local
|
||||||
|
local spacing_amount = spacing_amount or 0
|
||||||
|
|
||||||
|
return box(
|
||||||
|
unlines(zip_with(lines(left), lines(right), function(l, r)
|
||||||
|
return l .. H.spacing(spacing_amount) .. r
|
||||||
|
end, "")),
|
||||||
|
string_width(left) + string_width(right) + spacing_amount,
|
||||||
|
max(string_height(left), string_height(right))
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.concat_w(above, below, opts)
|
||||||
|
---@diagnostic disable-next-line: redefined-local
|
||||||
|
local opts = opts or {}
|
||||||
|
local spacing_amount = opts.spacing_amount or 0
|
||||||
|
local justify = opts.justify or "center"
|
||||||
|
local width = max(string_width(above), string_width(below))
|
||||||
|
|
||||||
|
return box(
|
||||||
|
unlines(flatten_list({
|
||||||
|
{ H.pad(above, width, justify).value },
|
||||||
|
l_repeat(H.spacing(width), spacing_amount),
|
||||||
|
{ H.pad(below, width, justify).value },
|
||||||
|
})),
|
||||||
|
width,
|
||||||
|
spacing_amount + string_height(above) + string_height(below)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.concat_many_h(list, spacing_amount)
|
||||||
|
local result = list[1]
|
||||||
|
|
||||||
|
for i = 2, #list, 1 do
|
||||||
|
result = H.concat_h(result, list[i], spacing_amount)
|
||||||
|
end
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.concat_many_w(list, opts)
|
||||||
|
local result = list[1]
|
||||||
|
|
||||||
|
for i = 2, #list, 1 do
|
||||||
|
result = H.concat_w(result, list[i], opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
function H.pad_lengths_right(list)
|
||||||
|
local max_length = table_max(list, string_width)
|
||||||
|
return map_list(list, function(t)
|
||||||
|
return H.concat_h(t, H.spacing(max_length - string_width(t)))
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.hint = H
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
local window_hint_old = [[
|
||||||
|
^^^^^^ Move ^^^^^^ ^^ Size ^^ ^^ Split
|
||||||
|
^^^^^^-------------^^^^^^ ^^-----------^^ ^^---------------
|
||||||
^ ^ _k_ ^ ^ ^ ^ _K_ ^ ^ ^ _<C-k>_ ^ _s_: horizontally
|
^ ^ _k_ ^ ^ ^ ^ _K_ ^ ^ ^ _<C-k>_ ^ _s_: horizontally
|
||||||
_h_ ^ ^ _l_ _H_ ^ ^ _L_ _<C-h>_ _<C-l>_ _v_: vertically
|
_h_ ^ ^ _l_ _H_ ^ ^ _L_ _<C-h>_ _<C-l>_ _v_: vertically
|
||||||
^ ^ _j_ ^ ^ ^ ^ _J_ ^ ^ ^ _<C-j>_ ^ _q_: close
|
^ ^ _j_ ^ ^ ^ ^ _J_ ^ ^ ^ _<C-j>_ ^ _q_: close
|
||||||
focus^^^^^^ window^^^^^^ ^_=_: equalize^ _o_: close remaining
|
^^^focus^^^ ^^^window^^^ ^_=_: equalize^ _o_: close remaining
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
local window_hint = H.concat_many_h({
|
||||||
|
H.add_title(
|
||||||
|
"Move",
|
||||||
|
H.concat_h(
|
||||||
|
H.concat_w(H.directional("h", "j", "k", "l", 3), "focus"),
|
||||||
|
H.concat_w(
|
||||||
|
H.directional("H", "J", "K", "L", 3),
|
||||||
|
"window",
|
||||||
|
{ justify = "left" }
|
||||||
|
),
|
||||||
|
2
|
||||||
|
)
|
||||||
|
),
|
||||||
|
H.add_title(
|
||||||
|
"Size",
|
||||||
|
H.concat_w(
|
||||||
|
H.directional("<C-h>", "<C-j>", "<C-k>", "<C-l>"),
|
||||||
|
H.concat_many_h({
|
||||||
|
H.highlight("="),
|
||||||
|
": equalize",
|
||||||
|
})
|
||||||
|
)
|
||||||
|
),
|
||||||
|
H.add_title(
|
||||||
|
"Split",
|
||||||
|
H.concat_many_w({
|
||||||
|
H.concat_h(H.highlight("s"), ": horizontally"),
|
||||||
|
H.concat_h(H.highlight("v"), ": vertical"),
|
||||||
|
H.concat_h(H.highlight("q"), ": close"),
|
||||||
|
H.concat_h(H.highlight("o"), ": close remaining"),
|
||||||
|
}, { justify = "left" })
|
||||||
|
),
|
||||||
|
}, 3).value
|
||||||
|
|
||||||
|
print(window_hint)
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
local Hydra = require("hydra")
|
local Hydra = require("hydra")
|
||||||
local pcmd = require("hydra.keymap-util").pcmd
|
local pcmd = require("hydra.keymap-util").pcmd
|
||||||
local splits = require("smart-splits")
|
local splits = require("smart-splits")
|
||||||
|
|
||||||
-- {{{ Diagrams
|
|
||||||
Hydra({
|
|
||||||
name = "Draw Diagram",
|
|
||||||
hint = venn_hint,
|
|
||||||
config = {
|
|
||||||
invoke_on_body = true,
|
|
||||||
hint = {
|
|
||||||
border = "rounded",
|
|
||||||
},
|
|
||||||
on_enter = function()
|
|
||||||
vim.o.virtualedit = "all"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
mode = "n",
|
|
||||||
body = "<leader>V",
|
|
||||||
heads = {
|
|
||||||
{ "H", "<C-v>h:VBox<CR>" },
|
|
||||||
{ "J", "<C-v>j:VBox<CR>" },
|
|
||||||
{ "K", "<C-v>k:VBox<CR>" },
|
|
||||||
{ "L", "<C-v>l:VBox<CR>" },
|
|
||||||
{ "f", ":VBox<CR>", { mode = "v" } },
|
|
||||||
{ "<Esc>", nil, { exit = true } },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
-- }}}
|
|
||||||
-- {{{ Windows
|
-- {{{ Windows
|
||||||
local resize = function(direction)
|
local resize = function(direction)
|
||||||
return function()
|
return function()
|
||||||
|
|
|
@ -96,10 +96,20 @@ return {
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Helper libs
|
-- Helper libs
|
||||||
|
{
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
|
-- Autoload when running tests
|
||||||
|
cmd = { "PlenaryBustedDirectory", "PlenaryBustedFile" },
|
||||||
|
},
|
||||||
"MunifTanjim/nui.nvim",
|
"MunifTanjim/nui.nvim",
|
||||||
"nvim-tree/nvim-web-devicons", -- nice looking icons
|
"nvim-tree/nvim-web-devicons", -- nice looking icons
|
||||||
"mateiadrielrafael/scrap.nvim", -- vim-abolish rewrite
|
{
|
||||||
|
"mateiadrielrafael/scrap.nvim",
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
require("my.abbreviations").setup()
|
||||||
|
end,
|
||||||
|
}, -- vim-abolish rewrite
|
||||||
|
|
||||||
{
|
{
|
||||||
"terrortylor/nvim-comment",
|
"terrortylor/nvim-comment",
|
||||||
|
|
|
@ -5,6 +5,7 @@ local M = {
|
||||||
event = "BufReadPre",
|
event = "BufReadPre",
|
||||||
dependencies = "neovim/nvim-lspconfig",
|
dependencies = "neovim/nvim-lspconfig",
|
||||||
cond = env.vscode.not_active(),
|
cond = env.vscode.not_active(),
|
||||||
|
enable = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
function M.config()
|
function M.config()
|
||||||
|
|
31
dotfiles/neovim/lua/my/plugins/obsidian.lua
Normal file
31
dotfiles/neovim/lua/my/plugins/obsidian.lua
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
local env = require("my.helpers.env")
|
||||||
|
local vault = "/home/adrielus/Projects/stellar-sanctum"
|
||||||
|
|
||||||
|
return {
|
||||||
|
"epwalsh/obsidian.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
dir = vault,
|
||||||
|
notes_subdir = "chaos",
|
||||||
|
daily_notes = {
|
||||||
|
folder = "daily",
|
||||||
|
date_format = "%Y-%m-%d",
|
||||||
|
},
|
||||||
|
completion = {
|
||||||
|
nvim_cmp = true,
|
||||||
|
min_chars = 2,
|
||||||
|
new_notes_location = "current_dir",
|
||||||
|
prepend_note_id = true,
|
||||||
|
},
|
||||||
|
mappings = {},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<C-O>", "<cmd>ObsidianQuickSwitch<cr>" },
|
||||||
|
},
|
||||||
|
cond = env.vscode.not_active()
|
||||||
|
and env.firenvim.not_active()
|
||||||
|
and vim.loop.cwd() == vault,
|
||||||
|
}
|
|
@ -13,8 +13,6 @@ local M = {
|
||||||
--{{{Languages
|
--{{{Languages
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"bash",
|
"bash",
|
||||||
"javascript",
|
|
||||||
"typescript",
|
|
||||||
"c",
|
"c",
|
||||||
"cpp",
|
"cpp",
|
||||||
"css",
|
"css",
|
||||||
|
@ -22,18 +20,22 @@ local M = {
|
||||||
"elixir",
|
"elixir",
|
||||||
"fish",
|
"fish",
|
||||||
"html",
|
"html",
|
||||||
|
"javascript",
|
||||||
"json",
|
"json",
|
||||||
"jsonc",
|
"jsonc",
|
||||||
"latex",
|
"latex",
|
||||||
|
"lua",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"nix",
|
||||||
"python",
|
"python",
|
||||||
"rust",
|
"rust",
|
||||||
"scss",
|
"scss",
|
||||||
"toml",
|
"toml",
|
||||||
"tsx",
|
"tsx",
|
||||||
|
"typescript",
|
||||||
"vim",
|
"vim",
|
||||||
"yaml",
|
"yaml",
|
||||||
"nix",
|
|
||||||
"lua",
|
|
||||||
},
|
},
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
--}}}
|
--}}}
|
||||||
|
|
52
dotfiles/neovim/lua/my/plugins/venn.lua
Normal file
52
dotfiles/neovim/lua/my/plugins/venn.lua
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
local M = {
|
||||||
|
"jbyuki/venn.nvim", -- draw ascii diagrams
|
||||||
|
dependencies = {
|
||||||
|
"anuvyklack/hydra.nvim",
|
||||||
|
},
|
||||||
|
keys = { "<leader>V" },
|
||||||
|
}
|
||||||
|
|
||||||
|
local venn_hint = [[
|
||||||
|
^^^Arrow^^^ Select region with <C-v>
|
||||||
|
^ ^ _K_ ^ ^ _f_: surround it with box
|
||||||
|
_H_ ^ ^ _L_
|
||||||
|
^ ^ _J_ ^ ^ _<Esc>_
|
||||||
|
]]
|
||||||
|
|
||||||
|
function M.config()
|
||||||
|
local Hydra = require("hydra")
|
||||||
|
|
||||||
|
Hydra({
|
||||||
|
name = "Draw Diagram",
|
||||||
|
hint = venn_hint,
|
||||||
|
config = {
|
||||||
|
color = "pink",
|
||||||
|
invoke_on_body = true,
|
||||||
|
hint = {
|
||||||
|
border = "single",
|
||||||
|
},
|
||||||
|
on_enter = function()
|
||||||
|
vim.o.virtualedit = "all"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mode = "n",
|
||||||
|
desc = "[V]enn mode",
|
||||||
|
body = "<leader>V",
|
||||||
|
heads = {
|
||||||
|
{ "H", "<C-v>h:VBox<CR>" },
|
||||||
|
{ "J", "<C-v>j:VBox<CR>" },
|
||||||
|
{ "K", "<C-v>k:VBox<CR>" },
|
||||||
|
{ "L", "<C-v>l:VBox<CR>" },
|
||||||
|
{ "f", ":VBox<CR>", { mode = "v" } },
|
||||||
|
{ "<Esc>", nil, { exit = true } },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.init()
|
||||||
|
require("which-key").register({
|
||||||
|
["<leader>V"] = { name = "[V]enn mode" },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
|
@ -1,4 +1,3 @@
|
||||||
local env = require("my.helpers.env")
|
|
||||||
local M = {
|
local M = {
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
|
@ -7,15 +6,11 @@ local M = {
|
||||||
function M.config()
|
function M.config()
|
||||||
local wk = require("which-key")
|
local wk = require("which-key")
|
||||||
|
|
||||||
local winblend = 0
|
|
||||||
|
|
||||||
if env.neovide.active() then
|
|
||||||
winblend = 30
|
|
||||||
end
|
|
||||||
|
|
||||||
wk.setup({
|
wk.setup({
|
||||||
window = {
|
window = {
|
||||||
winblend = winblend,
|
winblend = 0,
|
||||||
|
pumblend = 0,
|
||||||
|
border = "single",
|
||||||
},
|
},
|
||||||
layout = { align = "center" },
|
layout = { align = "center" },
|
||||||
})
|
})
|
||||||
|
@ -28,7 +23,6 @@ function M.config()
|
||||||
l = { name = "[L]ocal" },
|
l = { name = "[L]ocal" },
|
||||||
w = { name = "[W]orkspace" },
|
w = { name = "[W]orkspace" },
|
||||||
y = { name = "[Y]ank" },
|
y = { name = "[Y]ank" },
|
||||||
v = "which_key_ignore",
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue