Edit neovim snippets
This commit is contained in:
parent
9a018c8485
commit
53894a5724
11 changed files with 129 additions and 88 deletions
home/features/neovim
|
@ -24,6 +24,14 @@ local function runLocal(functionName)
|
|||
end
|
||||
end
|
||||
|
||||
-- local tempest = require("my.tempest")
|
||||
-- tempest.set_keymap({
|
||||
-- mapping = "<leader>lf",
|
||||
-- action = "<cmd>source %<cr>",
|
||||
-- buffer = true,
|
||||
-- desc = "Run .[s]etup() in current file"
|
||||
-- })
|
||||
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>lf",
|
||||
|
|
|
@ -8,5 +8,3 @@ local nix = require("nix")
|
|||
tempest.configureMany(nix.pre)
|
||||
require("my.lazy").setup()
|
||||
tempest.configureMany(nix.post)
|
||||
|
||||
require("my.helpers.folding").setup()
|
||||
|
|
|
@ -25,10 +25,11 @@
|
|||
"lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
|
||||
"lean": { "branch": "main", "commit": "202513a398e780dac32d36159181a8299d9cfd12" },
|
||||
"live-command": { "branch": "main", "commit": "d460067d47948725a6f25b20f31ea8bbfdfe4622" },
|
||||
"lspconfig": { "branch": "master", "commit": "b1729954329236f59d075bec79fdee7a6f3ce88b" },
|
||||
"lspconfig": { "branch": "master", "commit": "641e567f975feab3815b47c7d29e6148e07afa77" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
|
||||
"luasnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||
"mini.ai": { "branch": "main", "commit": "ebb04799794a7f94628153991e6334c3304961b8" },
|
||||
"mini.align": { "branch": "main", "commit": "969bdcdf9b88e30bda9cb8ad6f56afed208778ad" },
|
||||
"mini.comment": { "branch": "main", "commit": "a56581c40c19fa26f2b39da72504398de3173c5a" },
|
||||
"mini.files": { "branch": "main", "commit": "84efb81e5207ae8c41f54abdafb79c6212fc0971" },
|
||||
"mini.operators": { "branch": "main", "commit": "7cb4dc66c51a3d736d347bbc517dc73dc7d28888" },
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
local function createFold(name)
|
||||
local commentstring = vim.o.commentstring
|
||||
local start_comment = string.gsub(commentstring, "%%s", "{{{ " .. name)
|
||||
local end_comment = string.gsub(commentstring, "%%s", "}}}")
|
||||
|
||||
-- Leave visual mode
|
||||
local esc = vim.api.nvim_replace_termcodes("<esc>", true, false, true)
|
||||
vim.api.nvim_feedkeys(esc, "x", false)
|
||||
|
||||
vim.cmd(":'>put='" .. end_comment .. "'")
|
||||
vim.cmd(":'<-1put='" .. start_comment .. "'")
|
||||
end
|
||||
|
||||
function M.setup()
|
||||
vim.keymap.set("v", "<C-i>", function()
|
||||
local name = vim.fn.input("Fold name: ")
|
||||
createFold(name)
|
||||
end, { desc = "Create fold markers around area" })
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,43 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
local function swap(key)
|
||||
vim.keymap.set({ "n", "v" }, key, "g" .. key, { buffer = true })
|
||||
vim.keymap.set({ "n", "v" }, "g" .. key, key, { buffer = true })
|
||||
end
|
||||
|
||||
local function unswap(key)
|
||||
vim.keymap.del({ "n", "v" }, key)
|
||||
vim.keymap.del({ "n", "v" }, "g" .. key)
|
||||
end
|
||||
|
||||
function M.enable()
|
||||
vim.opt.wrap = true
|
||||
|
||||
swap("j")
|
||||
swap("k")
|
||||
swap("<up>")
|
||||
swap("<down>")
|
||||
swap("0")
|
||||
swap("$")
|
||||
end
|
||||
|
||||
function M.disable()
|
||||
vim.opt.wrap = false
|
||||
|
||||
unswap("j")
|
||||
unswap("k")
|
||||
unswap("<up>")
|
||||
unswap("<down>")
|
||||
unswap("0")
|
||||
unswap("$")
|
||||
end
|
||||
|
||||
function M.toggle()
|
||||
if vim.opt.wrap == true then
|
||||
M.disable()
|
||||
else
|
||||
M.enable()
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,8 +1,8 @@
|
|||
local M = {}
|
||||
|
||||
local function importFrom(p)
|
||||
return { import = p }
|
||||
end
|
||||
-- local function importFrom(p)
|
||||
-- return { import = p }
|
||||
-- end
|
||||
|
||||
function M.setup()
|
||||
require("lazy").setup({
|
||||
|
|
|
@ -57,7 +57,8 @@ function H.mergeTables(t1, t2)
|
|||
end
|
||||
-- }}}
|
||||
-- }}}
|
||||
-- {{{ API wrappers
|
||||
|
||||
-- API wrappers
|
||||
-- {{{ Keymaps
|
||||
function M.set_keymap(opts, context)
|
||||
if context == nil then
|
||||
|
@ -112,7 +113,64 @@ function M.create_autocmd(opts)
|
|||
})
|
||||
end
|
||||
-- }}}
|
||||
-- {{{ Wrapping
|
||||
local function swapLinewiseKeybinds(key)
|
||||
vim.keymap.set({ "n", "v" }, key, "g" .. key, { buffer = true })
|
||||
vim.keymap.set({ "n", "v" }, "g" .. key, key, { buffer = true })
|
||||
end
|
||||
|
||||
local function unswapLinewiseKeybinds(key)
|
||||
vim.keymap.del({ "n", "v" }, key)
|
||||
vim.keymap.del({ "n", "v" }, "g" .. key)
|
||||
end
|
||||
|
||||
M.wrapping = {}
|
||||
|
||||
function M.wrapping.enable()
|
||||
vim.opt.wrap = true
|
||||
|
||||
swapLinewiseKeybinds("j")
|
||||
swapLinewiseKeybinds("k")
|
||||
swapLinewiseKeybinds("<up>")
|
||||
swapLinewiseKeybinds("<down>")
|
||||
swapLinewiseKeybinds("0")
|
||||
swapLinewiseKeybinds("$")
|
||||
end
|
||||
|
||||
function M.wrapping.disable()
|
||||
vim.opt.wrap = false
|
||||
|
||||
unswapLinewiseKeybinds("j")
|
||||
unswapLinewiseKeybinds("k")
|
||||
unswapLinewiseKeybinds("<up>")
|
||||
unswapLinewiseKeybinds("<down>")
|
||||
unswapLinewiseKeybinds("0")
|
||||
unswapLinewiseKeybinds("$")
|
||||
end
|
||||
|
||||
function M.wrapping.toggle()
|
||||
if vim.opt.wrap == true then
|
||||
M.wrapping.disable()
|
||||
else
|
||||
M.wrapping.enable()
|
||||
end
|
||||
end
|
||||
-- }}}
|
||||
-- {{{ Folding
|
||||
function M.createVisualFold(name)
|
||||
local commentstring = vim.o.commentstring
|
||||
local start_comment = string.gsub(commentstring, "%%s", "{{{ " .. name)
|
||||
local end_comment = string.gsub(commentstring, "%%s", "}}}")
|
||||
|
||||
-- Leave visual mode
|
||||
local esc = vim.api.nvim_replace_termcodes("<esc>", true, false, true)
|
||||
vim.api.nvim_feedkeys(esc, "x", false)
|
||||
|
||||
vim.cmd(":'>put='" .. end_comment .. "'")
|
||||
vim.cmd(":'<-1put='" .. start_comment .. "'")
|
||||
end
|
||||
-- }}}
|
||||
|
||||
-- {{{ Main config runtime
|
||||
local function recursive_assign(source, destination)
|
||||
for key, value in pairs(source) do
|
||||
|
|
|
@ -9,16 +9,18 @@
|
|||
let
|
||||
# Toggles for including tooling related to a given language
|
||||
packedTargets = {
|
||||
csharp = false;
|
||||
elm = false;
|
||||
tooling = true; # Stuff useful for config editing
|
||||
latex = true;
|
||||
lua = true;
|
||||
nix = true;
|
||||
odin = false;
|
||||
purescript = false;
|
||||
python = false;
|
||||
rust = false;
|
||||
typst = true;
|
||||
web = true;
|
||||
csharp = false;
|
||||
};
|
||||
|
||||
korora = inputs.korora.lib;
|
||||
|
@ -32,7 +34,7 @@ let
|
|||
generated =
|
||||
with nlib;
|
||||
generateConfig {
|
||||
# {{{ Pre-plugin config
|
||||
# Pre-plugin config
|
||||
pre = {
|
||||
# {{{ General options
|
||||
"0:general-options" = {
|
||||
|
@ -104,7 +106,6 @@ let
|
|||
action.vim.opt.winblend = 0;
|
||||
};
|
||||
# }}}
|
||||
|
||||
# {{{ Starter page
|
||||
callback =
|
||||
# lua
|
||||
|
@ -191,15 +192,17 @@ let
|
|||
(unmap "<C-^>")
|
||||
(nmap "Q" ":wqa<cr>" "Save all files and [q]uit")
|
||||
(nmap "<leader>rw" ":%s/<C-r><C-w>/" "[R]eplace [w]ord in file")
|
||||
(nmap "<leader>sw" (require "my.helpers.wrap" /toggle) "toggle word [w]rap")
|
||||
(nmap "<leader>ss" (
|
||||
# lua
|
||||
thunk "vim.opt.spell = not vim.o.spell"
|
||||
) "toggle [s]pell checker")
|
||||
(nmap "<leader>sw" (tempest /wrapping/toggle) "toggle word [w]rap")
|
||||
(nmap "<leader>ss" (thunk "vim.opt.spell = not vim.o.spell") "toggle [s]pell checker")
|
||||
(nmap "<leader>yp" "<cmd>!curl --data-binary @% https://paste.rs | wl-copy<cr>"
|
||||
"[y]ank [p]aste.rs link to clipboard"
|
||||
)
|
||||
# }}}
|
||||
{
|
||||
mode = "v";
|
||||
mapping = "<C-i>";
|
||||
action = _: tempest /createVisualFold (vim /fn/input "Fold name: ");
|
||||
}
|
||||
];
|
||||
# }}}
|
||||
# {{{ Autocmds
|
||||
|
@ -221,7 +224,7 @@ let
|
|||
"tex"
|
||||
];
|
||||
group = "EnableWrapMovement";
|
||||
action = require "my.helpers.wrap" /enable;
|
||||
action = tempest /wrapping/enable;
|
||||
}
|
||||
# }}}
|
||||
];
|
||||
|
@ -317,8 +320,8 @@ let
|
|||
};
|
||||
# }}}
|
||||
};
|
||||
# }}}
|
||||
# {{{ Plugins
|
||||
|
||||
# Plugins
|
||||
lazy = {
|
||||
# {{{ libraries
|
||||
# {{{ plenary
|
||||
|
@ -753,6 +756,24 @@ let
|
|||
};
|
||||
};
|
||||
# }}}
|
||||
# {{{ mini.align
|
||||
mini-align = {
|
||||
package = "echasnovski/mini.align";
|
||||
name = "mini.align";
|
||||
|
||||
config = true;
|
||||
keys = [
|
||||
{
|
||||
mode = "nxv";
|
||||
mapping = "ga";
|
||||
}
|
||||
{
|
||||
mode = "nxv";
|
||||
mapping = "gA";
|
||||
}
|
||||
];
|
||||
};
|
||||
# }}}
|
||||
# {{{ mini.comment
|
||||
mini-comment = {
|
||||
package = "echasnovski/mini.comment";
|
||||
|
@ -978,8 +999,15 @@ let
|
|||
pkgs.nodePackages.purs-tidy
|
||||
]
|
||||
++ optionals csharp [ pkgs.csharp-ls ]
|
||||
++ optionals odin [ pkgs.ols ]
|
||||
++ optionals tooling [
|
||||
pkgs.hyprls
|
||||
# REASON: not yet available on stable
|
||||
upkgs.just-lsp
|
||||
]
|
||||
);
|
||||
# }}}
|
||||
|
||||
dependencies.lua = [
|
||||
"neoconf"
|
||||
"neodev"
|
||||
|
@ -1061,6 +1089,13 @@ let
|
|||
elmls = { };
|
||||
csharp_ls = { };
|
||||
ols = { }; # Odin
|
||||
hyprls = { };
|
||||
|
||||
# I have the justfile formatter
|
||||
just.on_attach = client: ''
|
||||
${client}.server_capabilities.documentFormattingProvider = false
|
||||
${client}.server_capabilities.documentRangeFormattingProvider = false
|
||||
'';
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
|
@ -1110,6 +1145,8 @@ let
|
|||
nix = [ "nixfmt" ];
|
||||
css = prettier;
|
||||
markdown = prettier;
|
||||
|
||||
just.lsp_format = "never";
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
|
@ -1589,7 +1626,6 @@ let
|
|||
# }}}
|
||||
# }}}
|
||||
};
|
||||
# }}}
|
||||
};
|
||||
|
||||
# {{{ extraRuntime
|
||||
|
@ -1688,4 +1724,6 @@ in
|
|||
mirosSnippetCache
|
||||
];
|
||||
# }}}
|
||||
|
||||
home.sessionVariables.MANPAGER = "${lib.getExe neovim} +Man!";
|
||||
}
|
||||
|
|
|
@ -9,3 +9,4 @@ block auto
|
|||
abbr sim ∼
|
||||
abbr approx ≃
|
||||
abbr cong ≅
|
||||
abbr fcomp ∘
|
||||
|
|
|
@ -87,9 +87,12 @@ block text
|
|||
string $
|
||||
name inline math
|
||||
snip \$$1\$$0
|
||||
-- }}}
|
||||
|
||||
abbr pause \pause
|
||||
-- }}}
|
||||
string emph
|
||||
desc emphasise some text
|
||||
snip \emph{$1}$0
|
||||
|
||||
string forcecr
|
||||
desc Force the content onto a new line
|
||||
|
@ -271,7 +274,7 @@ block math
|
|||
for noperator <- @⟨ordop,land,lor,equiv,pmod,ldots,cdots,perp,angle,sup⟩
|
||||
abbr @noperator \\@noperator
|
||||
|
||||
for operator <- @⟨cancel,overline,hat,tilde,vec,bar,abs,norm,prob,diprod,sin,cos,sqrt,ln,lrb,zmod,gen,pmob⟩
|
||||
for operator <- @⟨cancel,overline,hat,tilde,vec,bar,abs,norm,prob,diprod,sin,cos,sqrt,lrb,zmod,gen,pmob⟩
|
||||
string @operator
|
||||
snip \\@operator$|1⟨{$1}, $0⟩
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ block auto
|
|||
name limit to @limtarget
|
||||
snip lim_($1 → @limtargetsymbol) $0
|
||||
|
||||
for operator <- @⟨eq,neq,defas,leq,geq,lt,gt,iip,iib,iff⟩
|
||||
for operator <- @⟨eq,neq,defas,leq,geq,llt,ggt,iip,iib,iff⟩
|
||||
for symbol <- @⟨@operator:=,≠,≔,≤,≥,<,>,⟹,⟸,⟺⟩
|
||||
|
||||
abbr @operator @symbol
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue