Compare commits
No commits in common. "3e1c814afe4572d2d5be875425ed04323d15bb86" and "5458b7a99af620ebc2073d09ebff1ae12760eedd" have entirely different histories.
3e1c814afe
...
5458b7a99a
4 changed files with 0 additions and 172 deletions
|
@ -1,14 +0,0 @@
|
||||||
_: {
|
|
||||||
autocmds = rec {
|
|
||||||
## [String] | String -> String -> [String] | String -> String -> String -> AttrSet
|
|
||||||
mk = event: group': pattern: callback: desc: let
|
|
||||||
group = "marleyos_${group'}";
|
|
||||||
in {
|
|
||||||
inherit event group pattern callback desc;
|
|
||||||
};
|
|
||||||
|
|
||||||
## [String] | String -> String -> String -> String -> AttrSet
|
|
||||||
mk' = event: group: callback: desc:
|
|
||||||
mk event group null callback desc;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
_: {
|
|
||||||
## (a -> {name :: String; value :: b}) -> [a] -> AttrSet
|
|
||||||
mapListToAttrs = fn: list: builtins.listToAttrs (builtins.map fn list);
|
|
||||||
}
|
|
|
@ -1,6 +1,5 @@
|
||||||
_: {
|
_: {
|
||||||
keys = rec {
|
keys = rec {
|
||||||
## [String] | String -> String -> String -> String -> AttrSet
|
|
||||||
mk = mode: key: action: desc: {
|
mk = mode: key: action: desc: {
|
||||||
inherit mode key action;
|
inherit mode key action;
|
||||||
options = {
|
options = {
|
||||||
|
@ -9,18 +8,15 @@ _: {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
## [String] | String -> String -> String -> AttrSet
|
|
||||||
mk' = mode: key: action:
|
mk' = mode: key: action:
|
||||||
mk mode key action null;
|
mk mode key action null;
|
||||||
|
|
||||||
## [String] | String -> String -> String -> String -> AttrSet -> AttrSet
|
|
||||||
mkWithOpts = mode: key: action: desc: opts:
|
mkWithOpts = mode: key: action: desc: opts:
|
||||||
(mk mode key action desc)
|
(mk mode key action desc)
|
||||||
// {
|
// {
|
||||||
options = opts;
|
options = opts;
|
||||||
};
|
};
|
||||||
|
|
||||||
## [String] | String -> String -> String -> AttrSet -> AttrSet
|
|
||||||
mkWithOpts' = mode: key: action: opts:
|
mkWithOpts' = mode: key: action: opts:
|
||||||
mkWithOpts mode key action null opts;
|
mkWithOpts mode key action null opts;
|
||||||
};
|
};
|
|
@ -1,150 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
helpers,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.marleyos) mapListToAttrs autocmds;
|
|
||||||
inherit (helpers) mkRaw;
|
|
||||||
in {
|
|
||||||
autoGroups =
|
|
||||||
mapListToAttrs (i: {
|
|
||||||
name = "marleyos_${i}";
|
|
||||||
value = {clear = true;};
|
|
||||||
}) [
|
|
||||||
"checktime"
|
|
||||||
"highlight_yank"
|
|
||||||
"resize_splits"
|
|
||||||
"last_loc"
|
|
||||||
"close_with_q"
|
|
||||||
"man_unlisted"
|
|
||||||
"wrap_spell"
|
|
||||||
"json_conceal"
|
|
||||||
"auto_create_dir"
|
|
||||||
];
|
|
||||||
|
|
||||||
autoCmd = [
|
|
||||||
(autocmds.mk' ["FocusGained" "TermClose" "TermLeave"] "checktime" (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function()
|
|
||||||
if vim.o.buftype ~= "nofile" then
|
|
||||||
vim.cmd("checktime")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'') "Check if file needs to be reloaded when changed")
|
|
||||||
|
|
||||||
(autocmds.mk' ["TextYankPost"] "highlight_yank" (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function()
|
|
||||||
(vim.hl or vim.highlight).on_yank()
|
|
||||||
end
|
|
||||||
'') "Highlight on yank")
|
|
||||||
|
|
||||||
(autocmds.mk' ["VimResized"] "resize_splits" (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function()
|
|
||||||
local current_tab = vim.fn.tabpagenr()
|
|
||||||
vim.cmd("tabdo wincmd =")
|
|
||||||
vim.cmd("tabnext " .. current_tab)
|
|
||||||
end
|
|
||||||
'') "Resize splits on window resize")
|
|
||||||
|
|
||||||
(autocmds.mk' ["BufReadPost"] "last_loc" (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function(event)
|
|
||||||
local exclude = { "gitcommit" }
|
|
||||||
local buf = event.buf
|
|
||||||
if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].marleyvim_last_loc then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
vim.b[buf].marleyvim_last_loc = true
|
|
||||||
local mark = vim.api.nvim_buf_get_mark(buf, '"')
|
|
||||||
local lcount = vim.api.nvim_buf_line_count(buf)
|
|
||||||
if mark[1] > 0 and mark[1] <= lcount then
|
|
||||||
pcall(vim.api.nvim_win_set_cursor, 0, mark)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'') "Go to last location when opening a buffer")
|
|
||||||
|
|
||||||
(autocmds.mk ["FileType"] "close_with_q" [
|
|
||||||
"PlenaryTestPopup"
|
|
||||||
"checkhealth"
|
|
||||||
"dbout"
|
|
||||||
"gitsigns-blame"
|
|
||||||
"grug-far"
|
|
||||||
"help"
|
|
||||||
"lspinfo"
|
|
||||||
"neotest-output"
|
|
||||||
"neotest-output-panel"
|
|
||||||
"neotest-summary"
|
|
||||||
"notify"
|
|
||||||
"qf"
|
|
||||||
"snacks_win"
|
|
||||||
"spectre_panel"
|
|
||||||
"startuptime"
|
|
||||||
"tsplayground"
|
|
||||||
] (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function(event)
|
|
||||||
vim.bo[event.buf].buflisted = false
|
|
||||||
vim.schedule(function()
|
|
||||||
vim.keymap.set("n", "q", function()
|
|
||||||
vim.cmd("close")
|
|
||||||
pcall(vim.api.nvim_buf_delete, event.buf, { force = true })
|
|
||||||
end, {
|
|
||||||
buffer = event.buf,
|
|
||||||
silent = true,
|
|
||||||
desc = "Quit buffer",
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
'') "Close some filetypes with <q>")
|
|
||||||
|
|
||||||
(autocmds.mk ["FileType"] "man_unlisted" ["man"] (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function(event)
|
|
||||||
vim.bo[event.buf].buflisted = false
|
|
||||||
end
|
|
||||||
'') "Easy-close man files")
|
|
||||||
|
|
||||||
(autocmds.mk ["FileType"] "wrap_spell" [
|
|
||||||
"text"
|
|
||||||
"plaintex"
|
|
||||||
"typst"
|
|
||||||
"gitcommit"
|
|
||||||
"markdown"
|
|
||||||
] (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function()
|
|
||||||
vim.opt_local.wrap = true
|
|
||||||
vim.opt_local.spell = true
|
|
||||||
end
|
|
||||||
'') "Wrap & check spelling in text files")
|
|
||||||
|
|
||||||
(autocmds.mk ["FileType"] "json_conceal" ["json" "jsonc" "json5"] (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function()
|
|
||||||
vim.opt_local.conceallevel = 0
|
|
||||||
end
|
|
||||||
'') "Fix conceallevel for json files")
|
|
||||||
|
|
||||||
(autocmds.mk' ["BufWritePre"] "auto_create_dir" (mkRaw
|
|
||||||
# lua
|
|
||||||
''
|
|
||||||
function(event)
|
|
||||||
if event.match:match("^%w%w+:[\\/][\\/]") then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local file = vim.uv.fs_realpath(event.match) or event.match
|
|
||||||
vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p")
|
|
||||||
end
|
|
||||||
'') "Auto create missing parent dirs when saving")
|
|
||||||
];
|
|
||||||
}
|
|
Loading…
Reference in a new issue