Add .config/nvim/colors/colibri.lua
Add .config/nvim/.luarc.json Add .config/nvim/init.lua Add .config/nvim/lazy-lock.json Add .config/nvim/lua/config/00_lazy.lua Add .config/nvim/lua/config/10_opts.lua Add .config/nvim/lua/config/20_keymaps.lua Add .config/nvim/lua/config/30_autocmds.lua Add .config/nvim/lua/config/40_statusline.lua Add .config/nvim/lua/plugin/00_treesitter.lua Add .config/nvim/lua/plugin/01_lsp.lua Add .config/nvim/lua/plugin/02_completion.lua Add .config/nvim/lua/plugin/03_tmux.lua Add .config/nvim/lua/plugin/04_fzflua.lua Add .config/nvim/lua/plugin/05_whichkey.lua Add .config/nvim/lua/plugin/06_leap.lua Add .config/nvim/lua/plugin/07_oil.lua Add .config/nvim/lua/plugin/08_ai.lua Add .config/nvim/lua/plugin/09_gitsigns.lua Add .config/nvim/lua/plugin/10_conform.lua Add .config/nvim/lua/plugin/11_yanky.lua Add .config/nvim/lua/plugin/12_neoscroll.lua Add .config/nvim/lua/plugin/13_easyalign.lua Add .config/nvim/lua/plugin/14_obsidian.lua Add .config/nvim/snippets/global.json Add .config/nvim/snippets/lua.json Add .config/nvim/snippets/package.json Add .config/nvim/stylua.toml
This commit is contained in:
parent
cf0d36c81a
commit
1f236c5459
28 changed files with 967 additions and 0 deletions
197
private_dot_config/nvim/colors/colibri.lua
Normal file
197
private_dot_config/nvim/colors/colibri.lua
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
-- stylua: ignore start
|
||||
local p = {
|
||||
none = "NONE",
|
||||
fg = "#a4a0e8",
|
||||
bg = "#3b224c",
|
||||
|
||||
bg_l = "#452859",
|
||||
accent = "#dbbfef",
|
||||
|
||||
white = "#ffffff",
|
||||
gray_l = "#cccccc",
|
||||
gray = "#697C81",
|
||||
gray_d = "#5a5977",
|
||||
black = "#281733",
|
||||
|
||||
pink = "#f22c86",
|
||||
red = "#f47868",
|
||||
orange = "#efba5d",
|
||||
green = "#9ff28f",
|
||||
green_d = "#35bf86",
|
||||
yellow = "#ffcd1c",
|
||||
chamois = "#E8DCA0",
|
||||
almond = "#eccdba",
|
||||
blue = "#61afef",
|
||||
delta = "#6F44F0",
|
||||
selection = "#540099",
|
||||
}
|
||||
|
||||
local function l(name) return { link = name } end
|
||||
|
||||
local highlights = {
|
||||
-- Core UI
|
||||
Normal = { fg = p.fg, bg = p.bg },
|
||||
NormalNC = l("Normal"),
|
||||
NormalFloat = { fg = p.fg, bg = p.black },
|
||||
Visual = { fg = p.none, bg = p.selection },
|
||||
VisualNOS = { fg = p.fg, bg = p.none },
|
||||
FloatBorder = l("NormalFloat"),
|
||||
WinSeparator = { fg = p.bg_l },
|
||||
|
||||
-- Cursor / lines
|
||||
Cursor = { fg = p.bg, bg = p.white },
|
||||
CursorIM = l("Cursor"),
|
||||
lCursor = l("Cursor"),
|
||||
CursorLine = { bg = p.bg_l },
|
||||
ColorColumn = l("CursorLine"),
|
||||
CursorColumn = l("CursorLine"),
|
||||
CursorLineNr = { fg = p.white },
|
||||
|
||||
-- Gutter
|
||||
Folded = { fg = p.gray, bg = p.none },
|
||||
LineNr = { fg = p.gray, bg = p.none },
|
||||
NonText = l("LineNr"),
|
||||
SpecialKey = l("LineNr"),
|
||||
|
||||
-- Menus / popups
|
||||
Pmenu = { fg = p.white, bg = p.black },
|
||||
PmenuSel = { fg = p.none, bg = p.bg_l },
|
||||
PmenuSbar = { fg = p.none, bg = p.black },
|
||||
PmenuThumb = { fg = p.none, bg = p.white },
|
||||
WildMenu = { fg = p.black, bg = p.blue },
|
||||
Terminal = l("Pmenu"),
|
||||
|
||||
-- Tabs
|
||||
TabLine = l("LineNr"),
|
||||
TabLineSel = { fg = p.white, bg = p.none },
|
||||
TabLineFill = { fg = p.none, bg = p.black },
|
||||
|
||||
-- Bars
|
||||
WinBar = { fg = p.fg, bg = p.bg },
|
||||
WinBarNC = { fg = p.gray, bg = p.bg },
|
||||
|
||||
-- Status
|
||||
StatusLine = { fg = p.white, bg = p.bg_l },
|
||||
StatusLineNC = { fg = p.gray, bg = p.none },
|
||||
|
||||
-- Search / match
|
||||
IncSearch = { fg = p.yellow, bg = p.gray },
|
||||
CurSearch = l("IncSearch"),
|
||||
Search = { fg = p.black, bg = p.yellow },
|
||||
QuickFixLine = { fg = p.black, bg = p.yellow },
|
||||
MatchParen = { fg = p.none, bg = p.gray_d },
|
||||
|
||||
-- Diff
|
||||
DiffAdd = { fg = p.black, bg = p.green },
|
||||
DiffChange = { fg = p.yellow, bg = p.none },
|
||||
DiffDelete = { fg = p.bg_l, bg = p.red },
|
||||
DiffText = { fg = p.black, bg = p.yellow },
|
||||
DiffAdded = { fg = p.green },
|
||||
DiffNewFile = l("DiffAdded"),
|
||||
DiffRemoved = { fg = p.red },
|
||||
DiffChanged = { fg = p.blue },
|
||||
DiffFile = l("DiffChanged"),
|
||||
DiffOldFile = { fg = p.yellow },
|
||||
DiffLine = { fg = p.bg_l },
|
||||
DiffIndexLine = { fg = p.green_d },
|
||||
|
||||
-- Messages
|
||||
Title = { fg = p.white },
|
||||
ErrorMsg = { fg = p.red, bg = p.none },
|
||||
WarningMsg = { fg = p.yellow, bg = p.none },
|
||||
Question = { fg = p.delta, bg = p.none },
|
||||
|
||||
-- Spell
|
||||
SpellBad = { undercurl = true },
|
||||
SpellCap = l("SpellBad"),
|
||||
SpellLocal = l("SpellBad"),
|
||||
SpellRare = l("SpellBad"),
|
||||
|
||||
-- Syntax
|
||||
Comment = { fg = p.gray, bg = p.none },
|
||||
SpecialComment = l("Comment"),
|
||||
Ignore = l("Comment"),
|
||||
Todo = l("Comment"),
|
||||
Constant = { fg = p.blue, bg = p.none },
|
||||
String = { fg = p.gray_l, bg = p.none },
|
||||
Character = { fg = p.orange, bg = p.none },
|
||||
Number = { fg = p.chamois, bg = p.none },
|
||||
Float = l("Number"),
|
||||
Boolean = { fg = p.almond, bg = p.none },
|
||||
Identifier = { fg = p.fg, bg = p.none },
|
||||
Delimiter = l("Identifier"),
|
||||
Function = { fg = p.accent, bg = p.none, bold = true },
|
||||
Statement = { fg = p.almond, bg = p.none },
|
||||
Conditional = l("Statement"),
|
||||
Repeat = l("Statement"),
|
||||
Label = l("Statement"),
|
||||
Exception = l("Statement"),
|
||||
Include = l("Statement"),
|
||||
Define = l("Statement"),
|
||||
Tag = l("Statement"),
|
||||
Operator = { fg = p.white, bg = p.none },
|
||||
Keyword = { fg = p.almond, bg = p.none },
|
||||
PreProc = { fg = p.accent, bg = p.none },
|
||||
Macro = l("PreProc"),
|
||||
PreCondit = l("PreProc"),
|
||||
Type = { fg = p.white, bg = p.none },
|
||||
StorageClass = l("Type"),
|
||||
Structure = l("Type"),
|
||||
Typedef = l("Type"),
|
||||
Special = { fg = p.accent, bg = p.none },
|
||||
SpecialChar = l("Special"),
|
||||
Underlined = { fg = p.white, bg = p.none },
|
||||
Debug = { fg = "#634450", bg = p.none },
|
||||
Conceal = { fg = p.gray, bg = p.none },
|
||||
Directory = { fg = p.blue, bg = p.none },
|
||||
|
||||
-- Diagnostics
|
||||
DiagnosticError = { fg = p.red },
|
||||
DiagnosticHint = { fg = p.gray_l },
|
||||
DiagnosticInfo = { fg = p.delta },
|
||||
DiagnosticWarn = { fg = p.yellow },
|
||||
DiagnosticUnderlineError = { sp = p.red, undercurl = true },
|
||||
DiagnosticUnderlineHint = l("DiagnosticUnderlineError"),
|
||||
DiagnosticUnderlineInfo = l("DiagnosticUnderlineError"),
|
||||
DiagnosticUnderlineWarn = l("DiagnosticUnderlineError"),
|
||||
|
||||
-- Lsp UI
|
||||
LspInlayHint = l("Comment"),
|
||||
LspCodeLens = { fg = p.gray_d },
|
||||
LspCodeLensSeparator = l("LspCodeLens"),
|
||||
LspReferenceText = { fg = p.none, bg = p.bg },
|
||||
LspReferenceRead = l("LspReferenceText"),
|
||||
LspReferenceWrite = l("LspReferenceText"),
|
||||
|
||||
-- Lsp captures
|
||||
["@lsp.typemod.selfKeyword.defaultLibrary"] = { fg = p.green, bg = p.none },
|
||||
["@lsp.type.parameter"] = l("Identifier"),
|
||||
["@lsp.type.variable"] = l("Identifier"),
|
||||
["@lsp.typemod.variable.defaultLibrary"] = l("Identifier"),
|
||||
["@lsp.typemod.enumMember.defaultLibrary"] = l("Constant"),
|
||||
["@lsp.typemod.variable.readonly"] = l("Constant"),
|
||||
["@lsp.type.operator"] = l("Operator"),
|
||||
["@lsp.type.property"] = l("Operator"),
|
||||
["@lsp.type.keyword"] = l("Keyword"),
|
||||
["@lsp.type.macro"] = l("PreProc"),
|
||||
["@lsp.type.builtinType"] = l("Type"),
|
||||
["@lsp.typemod.function.defaultLibrary"] = l("Function"),
|
||||
["@lsp.typemod.function.global"] = l("Function"),
|
||||
["@lsp.typemod.method.defaultLibrary"] = l("Function"),
|
||||
["@lsp.typemod.method.reference"] = l("Function"),
|
||||
["@lsp.typemod.method.trait"] = l("Function"),
|
||||
}
|
||||
-- stylua: ignore end
|
||||
|
||||
if vim.fn.exists("syntax_on") == 1 then
|
||||
vim.cmd("hi clear")
|
||||
vim.cmd.syntax("reset")
|
||||
end
|
||||
|
||||
vim.o.background = "dark"
|
||||
vim.o.termguicolors = true
|
||||
vim.g.colors_name = "colibri"
|
||||
|
||||
for name, value in pairs(highlights) do
|
||||
vim.api.nvim_set_hl(0, name, value)
|
||||
end
|
||||
8
private_dot_config/nvim/dot_luarc.json
Normal file
8
private_dot_config/nvim/dot_luarc.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"diagnostics.globals": [
|
||||
"vim"
|
||||
],
|
||||
"diagnostics.disable": [
|
||||
"param-type-mismatch"
|
||||
]
|
||||
}
|
||||
42
private_dot_config/nvim/init.lua
Normal file
42
private_dot_config/nvim/init.lua
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
-- init.lua
|
||||
--
|
||||
-- Configuration Structure:
|
||||
-- ├ init.lua -- Bootstraps config (you are here)
|
||||
-- ├ lua/
|
||||
-- │ ├ colors/ -- colorscheme definitions
|
||||
-- │ │ ├ colibri.lua -- the Helix theme
|
||||
-- │ ├ config/ -- Startup configuration files
|
||||
-- │ │ ├ 00_lazy.lua -- Bootstraps lazy.nvim
|
||||
-- │ │ ├ 10_opts.lua -- Built-in Neovim options
|
||||
-- │ │ ├ 20_keymaps.lua -- Custom keymaps
|
||||
-- │ │ ├ 30_autocmds.lua -- Custom autocommands
|
||||
-- │ │ └ 40_statusline.lua -- Minimal statusline
|
||||
-- │ └ plugin/ -- Plugin configurations for lazy.nvim
|
||||
-- │ ├ 00_treesitter.lua -- Treesitter configuration
|
||||
-- │ ├ 01_lsp.lua -- Mason and LSP configurations
|
||||
-- │ ├ 02_completion.lua -- Autocompletion (blink.cmp, mini.snippets)
|
||||
-- │ ├ 03_tmux.lua -- Tmux integrations
|
||||
-- │ ├ 04_fzflua.lua -- Fuzzy pickers with fzf-lua
|
||||
-- │ ├ 05_whichkey.lua -- Displays keymaps on input
|
||||
-- │ ├ 06_leap.lua -- Enables word hopping in buffer
|
||||
-- │ ├ 07_oil.lua -- Treat filesystem as a buffer
|
||||
-- │ ├ 08_ai.lua -- AI integrations
|
||||
-- │ ├ 09_gitsigns.lua -- Git integration (Gitsigns)
|
||||
-- │ ├ 10_conform.lua -- Formatting (vim-sleuth, conform)
|
||||
-- │ ├ 11_yanky.lua -- Yank and put enhancements
|
||||
-- │ ├ 12_neoscroll.lua -- Animations
|
||||
-- │ ├ 13_easyalign.lua -- Visual mode: align around "=" with ga=
|
||||
-- │ └ 14_obsidian.lua -- Obsidian vault integration
|
||||
-- └ snippets/ -- Snippet definitions
|
||||
-- ├ package.json -- Snippet repository metadata
|
||||
-- ├ global.json -- Global text snippets
|
||||
-- ├ lua.json -- Lua-specific snippets
|
||||
-- └ etc. -- Other language-specific snippets
|
||||
|
||||
require("config.00_lazy")
|
||||
require("config.10_opts")
|
||||
require("config.20_keymaps")
|
||||
require("config.30_autocmds")
|
||||
require("config.40_statusline")
|
||||
|
||||
vim.cmd.colorscheme("colibri")
|
||||
34
private_dot_config/nvim/lazy-lock.json
Normal file
34
private_dot_config/nvim/lazy-lock.json
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"blink-copilot": { "branch": "main", "commit": "7ad8209b2f880a2840c94cdcd80ab4dc511d4f39" },
|
||||
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
|
||||
"codecompanion.nvim": { "branch": "main", "commit": "68fcda022fce25ee380e267d4b0fe98113b3957d" },
|
||||
"conform.nvim": { "branch": "master", "commit": "1bf8b5b9caee51507aa51eaed3da5b0f2595c6b9" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf-lua": { "branch": "main", "commit": "123cc546c4618f5fd90d5db2da5643e76979162c" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "cdafc320f03f2572c40ab93a4eecb733d4016d07" },
|
||||
"img-clip.nvim": { "branch": "main", "commit": "e7e29f0d07110405adecd576b602306a7edd507a" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||
"leap.nvim": { "branch": "main", "commit": "1fc7f38b69cc4644505e3ff74ba69b1682a85dd9" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" },
|
||||
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
|
||||
"mini.diff": { "branch": "main", "commit": "fbb93ea1728e7c9d0944df8bd022a68402bd2e7e" },
|
||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||
"mini.pairs": { "branch": "main", "commit": "b316e68f2d242d5bd010deaab645daa27ed86297" },
|
||||
"mini.snippets": { "branch": "main", "commit": "b4065ca6b33e4df2897672d3bb760cfc93f4390a" },
|
||||
"neoscroll.nvim": { "branch": "master", "commit": "f957373912e88579e26fdaea4735450ff2ef5c9c" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "b7c48a7111534b66bee077da8035ac7208a294ff" },
|
||||
"nvim-scissors": { "branch": "main", "commit": "659627e50af4d26ccbde6cf891a849814a919337" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "660861b1849256398f70450afdf93908d28dc945" },
|
||||
"obsidian.nvim": { "branch": "main", "commit": "2cd08b58cd651aadc07aba126d0b2025d9217957" },
|
||||
"oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "6e0e8902dac70fecbdd8ce557d142062a621ec38" },
|
||||
"roslyn.nvim": { "branch": "main", "commit": "e2901d86d7c1702b88c02b9616802845dc6d49f8" },
|
||||
"tmux.nvim": { "branch": "main", "commit": "2c1c3be0ef287073cef963f2aefa31a15c8b9cd8" },
|
||||
"vim-easy-align": { "branch": "master", "commit": "9815a55dbcd817784458df7a18acacc6f82b1241" },
|
||||
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
|
||||
"yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" }
|
||||
}
|
||||
28
private_dot_config/nvim/lua/config/00_lazy.lua
Normal file
28
private_dot_config/nvim/lua/config/00_lazy.lua
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-- 00_lazy.lua
|
||||
-- Bootstraps lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = "\\"
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
{ import = "plugin" },
|
||||
},
|
||||
install = { colorscheme = { "habamax" } },
|
||||
checker = { enabled = true, notify = false },
|
||||
})
|
||||
44
private_dot_config/nvim/lua/config/10_opts.lua
Normal file
44
private_dot_config/nvim/lua/config/10_opts.lua
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
-- 10_opts.lua
|
||||
-- stylua: ignore start
|
||||
-- General ===================================
|
||||
vim.g.mapleader = " "
|
||||
vim.o.mouse = ""
|
||||
vim.o.mousescroll = "ver:25,hor:6"
|
||||
vim.o.switchbuf = "usetab"
|
||||
vim.o.undofile = true
|
||||
-- UI ========================================
|
||||
vim.o.breakindent = true
|
||||
vim.o.breakindentopt = "list:-1"
|
||||
vim.o.colorcolumn = "+1"
|
||||
vim.o.cursorline = true
|
||||
vim.o.linebreak = true
|
||||
vim.o.list = true
|
||||
vim.o.number = true
|
||||
vim.o.relativenumber = true
|
||||
vim.o.pumheight = 10
|
||||
vim.o.ruler = false
|
||||
vim.o.signcolumn = "yes"
|
||||
vim.o.splitbelow = true
|
||||
vim.o.splitright = true
|
||||
vim.o.winborder = "single"
|
||||
vim.o.wrap = false
|
||||
vim.o.cursorlineopt = "screenline,number"
|
||||
-- Folds =====================================
|
||||
vim.o.foldlevel = 10
|
||||
vim.o.foldmethod = "indent"
|
||||
vim.o.foldnestmax = 10
|
||||
vim.o.foldtext = ""
|
||||
-- Editing ===================================
|
||||
vim.o.autoindent = true
|
||||
vim.o.expandtab = true
|
||||
vim.o.ignorecase = true
|
||||
vim.o.incsearch = true
|
||||
vim.o.infercase = true
|
||||
vim.o.smartcase = true
|
||||
vim.o.smartindent = true
|
||||
vim.o.virtualedit = "block"
|
||||
vim.o.iskeyword = "@,48-57,_,192-255,-"
|
||||
vim.o.tabstop = 2
|
||||
vim.o.shiftwidth = 2
|
||||
-- Diagnostic ================================
|
||||
vim.diagnostic.config({ virtual_text = true })
|
||||
38
private_dot_config/nvim/lua/config/20_keymaps.lua
Normal file
38
private_dot_config/nvim/lua/config/20_keymaps.lua
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
-- 20_keymaps.lua
|
||||
---@diagnostic disable: unused-local, unused-function
|
||||
-- stylua: ignore start
|
||||
|
||||
local map = function(mode, lhs, rhs, desc)
|
||||
vim.keymap.set(mode, lhs, rhs, { noremap = true, desc = desc })
|
||||
end
|
||||
|
||||
local nop = function(lhs) map({ "n", "v" }, lhs, "<nop>", "") end
|
||||
local nmap = function(lhs, rhs, desc) map("n", lhs, rhs, desc) end
|
||||
local xmap = function(lhs, rhs, desc) map("x", lhs, rhs, desc) end
|
||||
|
||||
local nmap_leader = function(lhs, rhs, desc) nmap("<Leader>" .. lhs, rhs, desc) end
|
||||
|
||||
nop('<C-w>s')
|
||||
nop('<C-w>v')
|
||||
|
||||
nmap_leader(';', '<Cmd>vsplit<CR>', 'vsplit')
|
||||
nmap_leader('-', '<Cmd>split<CR>', 'hsplit')
|
||||
|
||||
nmap_leader('ca', '<Cmd>lua vim.lsp.buf.code_action()<CR>', 'lsp code action')
|
||||
nmap_leader('ci', '<Cmd>lua vim.lsp.buf.implementation()<CR>', 'lsp find implementation')
|
||||
nmap_leader('cr', '<Cmd>lua vim.lsp.buf.references()<CR>', 'lsp find references')
|
||||
nmap_leader('cR', '<Cmd>lua vim.lsp.buf.rename()<CR>', 'lsp rename')
|
||||
|
||||
local c = function(rhs)
|
||||
return function()
|
||||
local count = vim.v.count1
|
||||
for _ = 1, count do
|
||||
vim.cmd(rhs)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
nmap(">", c("normal! >>"), "indent")
|
||||
nmap("<", c("normal! <<"), "dedent")
|
||||
xmap(">", ">gv", "indent and reselect")
|
||||
xmap("<", "<gv", "dedent and reselect")
|
||||
8
private_dot_config/nvim/lua/config/30_autocmds.lua
Normal file
8
private_dot_config/nvim/lua/config/30_autocmds.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
-- 30_autocmds.lua
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
desc = 'Highlight when yanking text',
|
||||
group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
19
private_dot_config/nvim/lua/config/40_statusline.lua
Normal file
19
private_dot_config/nvim/lua/config/40_statusline.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
-- 40_statusline.lua
|
||||
|
||||
local cmp = {}
|
||||
|
||||
function _G._statusline_component(name)
|
||||
return cmp[name]()
|
||||
end
|
||||
|
||||
function cmp.window()
|
||||
return vim.api.nvim_win_get_number(0)
|
||||
end
|
||||
|
||||
local statusline = {
|
||||
"%r",
|
||||
"%m",
|
||||
"%=",
|
||||
}
|
||||
|
||||
vim.o.statusline = table.concat(statusline, "")
|
||||
15
private_dot_config/nvim/lua/plugin/00_treesitter.lua
Normal file
15
private_dot_config/nvim/lua/plugin/00_treesitter.lua
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
branch = "master",
|
||||
lazy = false,
|
||||
build = ":TSUpdate",
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter-context",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
config = function()
|
||||
require("treesitter-context").setup()
|
||||
end,
|
||||
},
|
||||
}
|
||||
49
private_dot_config/nvim/lua/plugin/01_lsp.lua
Normal file
49
private_dot_config/nvim/lua/plugin/01_lsp.lua
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
return {
|
||||
{
|
||||
"mason-org/mason-lspconfig.nvim",
|
||||
opts = {
|
||||
ensure_installed = { "copilot" },
|
||||
},
|
||||
dependencies = {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {
|
||||
registries = {
|
||||
"github:mason-org/mason-registry",
|
||||
"github:Crashdummyy/mason-registry",
|
||||
},
|
||||
},
|
||||
},
|
||||
{ "neovim/nvim-lspconfig" },
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
ft = "lua",
|
||||
opts = {
|
||||
library = {
|
||||
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"seblyng/roslyn.nvim",
|
||||
config = function()
|
||||
vim.lsp.config("roslyn", {
|
||||
on_attach = function()
|
||||
print("Roslyn attached.")
|
||||
end,
|
||||
settings = {
|
||||
["csharp|inlay_hints"] = {
|
||||
csharp_enable_inlay_hints_for_implicit_object_creation = true,
|
||||
csharp_enable_inlay_hints_for_implicit_variable_types = true,
|
||||
},
|
||||
["csharp|code_lens"] = {
|
||||
dotnet_enable_references_code_lens = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
require("roslyn").setup()
|
||||
end,
|
||||
},
|
||||
}
|
||||
67
private_dot_config/nvim/lua/plugin/02_completion.lua
Normal file
67
private_dot_config/nvim/lua/plugin/02_completion.lua
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
return {
|
||||
{ "nvim-mini/mini.pairs", opts = {} },
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
dependencies = {
|
||||
"rafamadriz/friendly-snippets",
|
||||
"fang2hou/blink-copilot",
|
||||
},
|
||||
version = "1.*",
|
||||
opts = {
|
||||
keymap = { preset = "super-tab" },
|
||||
appearance = { nerd_font_variant = "mono" },
|
||||
completion = {
|
||||
documentation = { auto_show = true, auto_show_delay_ms = 0 },
|
||||
},
|
||||
sources = {
|
||||
default = { "lsp", "path", "snippets", "buffer", "copilot" },
|
||||
providers = {
|
||||
copilot = {
|
||||
name = "copilot",
|
||||
module = "blink-copilot",
|
||||
score_offset = 100,
|
||||
async = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
fuzzy = { implementation = "prefer_rust_with_warning" },
|
||||
cmdline = {
|
||||
keymap = { preset = "inherit" },
|
||||
completion = { menu = { auto_show = true } },
|
||||
},
|
||||
},
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
{
|
||||
"nvim-mini/mini.snippets",
|
||||
opts = function()
|
||||
local gen_loader = require("mini.snippets").gen_loader
|
||||
return {
|
||||
snippets = {
|
||||
gen_loader.from_file(
|
||||
vim.fn.stdpath("config") .. "/snippets/global.json"
|
||||
),
|
||||
gen_loader.from_lang(),
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
{
|
||||
"chrisgrieser/nvim-scissors",
|
||||
opts = { snippetDir = vim.fn.stdpath("config") .. "/snippets" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>sa",
|
||||
"<cmd>ScissorsAddNewSnippet<CR>",
|
||||
mode = { "n", "x" },
|
||||
desc = "Save selection as snippet",
|
||||
},
|
||||
{
|
||||
"<leader>se",
|
||||
"<cmd>ScissorsEditSnippet<CR>",
|
||||
mode = { "n", "x" },
|
||||
desc = "Edit existing snippet",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
48
private_dot_config/nvim/lua/plugin/03_tmux.lua
Normal file
48
private_dot_config/nvim/lua/plugin/03_tmux.lua
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
return {
|
||||
{
|
||||
"aserowy/tmux.nvim",
|
||||
opts = {
|
||||
copy_sync = {
|
||||
enable = true,
|
||||
ignore_buffers = { empty = false },
|
||||
redirect_to_clipboard = false,
|
||||
register_offset = 0,
|
||||
sync_clipboard = false,
|
||||
sync_registers = true,
|
||||
sync_registers_keymap_put = true,
|
||||
sync_registers_keymap_reg = true,
|
||||
sync_deletes = true,
|
||||
sync_unnamed = true,
|
||||
},
|
||||
navigation = {
|
||||
cycle_navigation = true,
|
||||
enable_default_keybindings = false,
|
||||
persist_zoom = false,
|
||||
},
|
||||
resize = {
|
||||
enable_default_keybindings = false,
|
||||
resize_step_x = 5,
|
||||
resize_step_y = 3,
|
||||
},
|
||||
swap = {
|
||||
cycle_navigation = false,
|
||||
enable_default_kebindings = false,
|
||||
},
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "<M-Left>", function() require("tmux").move_left() end, },
|
||||
{ "<M-Right>", function() require("tmux").move_right() end, },
|
||||
{ "<M-Up>", function() require("tmux").move_top() end, },
|
||||
{ "<M-Down>", function() require("tmux").move_bottom() end, },
|
||||
{ "<M-C-Left>", function() require("tmux").resize_left() end, },
|
||||
{ "<M-C-Right>", function() require("tmux").resize_right() end, },
|
||||
{ "<M-C-Up>", function() require("tmux").resize_top() end, },
|
||||
{ "<M-C-Down>", function() require("tmux").resize_bottom() end, },
|
||||
{ "<M-S-Left>", function() require("tmux").swap_left() end, },
|
||||
{ "<M-S-Right>", function() require("tmux").swap_right() end, },
|
||||
{ "<M-S-Up>", function() require("tmux").swap_top() end, },
|
||||
{ "<M-S-Down>", function() require("tmux").swap_bottom() end, },
|
||||
},
|
||||
},
|
||||
}
|
||||
28
private_dot_config/nvim/lua/plugin/04_fzflua.lua
Normal file
28
private_dot_config/nvim/lua/plugin/04_fzflua.lua
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
return {
|
||||
{
|
||||
"ibhagwan/fzf-lua",
|
||||
dependencies = { { "nvim-mini/mini.icons" } },
|
||||
opts = {
|
||||
winopts = {
|
||||
preview = {
|
||||
vertical = "down:65%",
|
||||
flip_columns = 120,
|
||||
},
|
||||
},
|
||||
files = { git_icons = true },
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ '<leader>f"', "<cmd>FzfLua registers<CR>", mode = { "n" }, desc = "fzf registers" },
|
||||
{ "<leader>fb", "<cmd>FzfLua buffers<CR>", mode = { "n" }, desc = "fzf buffers" },
|
||||
{ "<leader>fc", "<cmd>FzfLua commands<CR>", mode = { "n" }, desc = "fzf commands" },
|
||||
{ "<leader>fe", "<cmd>FzfLua changes<CR>", mode = { "n" }, desc = "fzf edits" },
|
||||
{ "<leader>ff", "<cmd>FzfLua files<CR>", mode = { "n" }, desc = "fzf files" },
|
||||
{ "<leader>fg", "<cmd>FzfLua live_grep<CR>", mode = { "n" }, desc = "fzf grep" },
|
||||
{ "<leader>fh", "<cmd>FzfLua command_history<CR>", mode = { "n" }, desc = "fzf cmd history" },
|
||||
{ "<leader>fk", "<cmd>FzfLua keymaps<CR>", mode = { "n" }, desc = "fzf keymaps" },
|
||||
{ "<leader>fr", "<cmd>FzfLua oldfiles<CR>", mode = { "n" }, desc = "fzf oldfiles" },
|
||||
{ "<leader>fs", "<cmd>FzfLua<CR>", mode = { "n" }, desc = "fzf something else" },
|
||||
},
|
||||
},
|
||||
}
|
||||
34
private_dot_config/nvim/lua/plugin/05_whichkey.lua
Normal file
34
private_dot_config/nvim/lua/plugin/05_whichkey.lua
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
return {
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = { "echasnovski/mini.icons" },
|
||||
opts = function()
|
||||
local i = require("mini.icons")
|
||||
|
||||
return {
|
||||
preset = "helix",
|
||||
delay = function(ctx)
|
||||
return ctx.plugin and 0 or 20
|
||||
end,
|
||||
-- stylua: ignore
|
||||
spec = {
|
||||
{ "<leader>f", group = "find" },
|
||||
{ "<leader>a", group = "ai" },
|
||||
{ "<leader>g", group = "git" },
|
||||
{ "<leader>c", group = "lsp actions", icon = i.get("lsp", "class") },
|
||||
{ "<leader>s", group = "snippets", icon = i.get("directory", "snippets") },
|
||||
},
|
||||
}
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>?",
|
||||
function()
|
||||
require("which-key").show({ global = true })
|
||||
end,
|
||||
desc = "show local keymaps",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
45
private_dot_config/nvim/lua/plugin/06_leap.lua
Normal file
45
private_dot_config/nvim/lua/plugin/06_leap.lua
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
return {
|
||||
{
|
||||
"ggandor/leap.nvim",
|
||||
config = function()
|
||||
require("leap").opts.preview = function(ch0, ch1, ch2)
|
||||
return not (
|
||||
ch1:match("%s")
|
||||
or (ch0:match("%a") and ch1:match("%a") and ch2:match("%a"))
|
||||
)
|
||||
end
|
||||
|
||||
-- hop label at start of word, rather than the end
|
||||
require("leap").opts.on_beacons = function(targets, _, _)
|
||||
for _, t in ipairs(targets) do
|
||||
if t.label and t.beacon then
|
||||
t.beacon[1] = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- gray out backdrop when selecting
|
||||
vim.api.nvim_set_hl(0, "LeapBackdrop", { link = "Comment" })
|
||||
|
||||
require("leap").opts.equivalence_classes = {
|
||||
" \t\r\n",
|
||||
"([{",
|
||||
")]}",
|
||||
"'\"`",
|
||||
}
|
||||
|
||||
vim.keymap.set({ "n", "x", "o" }, "s", function()
|
||||
require("leap").leap({ target_windows = vim.api.nvim_list_wins() })
|
||||
if vim.fn.mode() == "v" then
|
||||
vim.cmd("normal! iw")
|
||||
end
|
||||
end)
|
||||
|
||||
vim.keymap.set({ "n", "o" }, "gs", function()
|
||||
require("leap.remote").action({
|
||||
input = vim.fn.mode(true):match("o") and "" or "v",
|
||||
})
|
||||
end)
|
||||
end,
|
||||
},
|
||||
}
|
||||
32
private_dot_config/nvim/lua/plugin/07_oil.lua
Normal file
32
private_dot_config/nvim/lua/plugin/07_oil.lua
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
return {
|
||||
{
|
||||
"stevearc/oil.nvim",
|
||||
dependencies = { { "nvim-mini/mini.icons" } },
|
||||
opts = {
|
||||
use_default_keymaps = false,
|
||||
keymaps = {
|
||||
["g?"] = { "actions.show_help", mode = "n" },
|
||||
["<CR>"] = "actions.select",
|
||||
["<leader><leader>"] = "actions.preview",
|
||||
["-"] = { "actions.parent", mode = "n" },
|
||||
["="] = { "actions.open_cwd", mode = "n" },
|
||||
["+"] = { "actions.cd", mode = "n" },
|
||||
["<leader>;"] = { "actions.select", opts = { vertical = true } },
|
||||
["<leader>-"] = { "actions.select", opts = { horizontal = true } },
|
||||
["<leader>x"] = "actions.open_external",
|
||||
["g."] = { "actions.toggle_hidden", mode = "n" },
|
||||
},
|
||||
float = {
|
||||
padding = 2,
|
||||
max_width = 0,
|
||||
max_height = 0,
|
||||
border = nil,
|
||||
preview_split = "auto",
|
||||
},
|
||||
},
|
||||
lazy = false,
|
||||
keys = {
|
||||
{ "<leader>o", mode = "n", "<Cmd>Oil<CR>", desc = "oil" },
|
||||
},
|
||||
},
|
||||
}
|
||||
77
private_dot_config/nvim/lua/plugin/08_ai.lua
Normal file
77
private_dot_config/nvim/lua/plugin/08_ai.lua
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
return {
|
||||
{
|
||||
"olimorris/codecompanion.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
ft = { "markdown", "codecompanion" },
|
||||
},
|
||||
{
|
||||
"nvim-mini/mini.diff",
|
||||
config = function()
|
||||
require("mini.diff").setup({
|
||||
source = require("mini.diff").gen_source.none(),
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"HakonHarnes/img-clip.nvim",
|
||||
opts = {
|
||||
filetypes = {
|
||||
codecompanion = {
|
||||
prompt_for_file_name = false,
|
||||
template = "[Image]($FILE_PATH)",
|
||||
use_absolute_path = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
-- stylua: ignore start
|
||||
keys = {
|
||||
{ "<leader>ac", mode = { "n", "v" }, "<cmd>CodeCompanionChat Toggle<cr>", desc = "toggle chat" },
|
||||
{ "<leader>aa", mode = { "n", "v" }, "<cmd>CodeCompanionActions<cr>", desc = "actions picker" },
|
||||
{ "<leader>ap", mode = { "v" }, "<cmd>CodeCompanionChat Add<cr>", desc = "put in chat", },
|
||||
{ "<leader>ai", mode = { "n", "v" }, "<cmd>CodeCompanion<cr>", desc = "in-line prompt", },
|
||||
},
|
||||
-- stylua: ignore end
|
||||
opts = {
|
||||
strategies = {
|
||||
chat = {
|
||||
variables = {
|
||||
["buffer"] = {
|
||||
opts = {
|
||||
default_params = "watch",
|
||||
},
|
||||
},
|
||||
},
|
||||
slash_commands = {
|
||||
["buffer"] = {
|
||||
keymaps = {
|
||||
modes = {
|
||||
i = "<c-b>",
|
||||
n = "<leader>b",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
display = {
|
||||
action_palette = {
|
||||
width = 85,
|
||||
height = 10,
|
||||
prompt = "prompt:",
|
||||
provider = "fzf_lua",
|
||||
opts = {
|
||||
show_default_actions = true,
|
||||
show_default_prompt_library = true,
|
||||
title = "action:",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
36
private_dot_config/nvim/lua/plugin/09_gitsigns.lua
Normal file
36
private_dot_config/nvim/lua/plugin/09_gitsigns.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
return {
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {},
|
||||
keys = {
|
||||
{
|
||||
"<leader>gb",
|
||||
function()
|
||||
require("gitsigns").blame_line()
|
||||
end,
|
||||
desc = "git blame current line",
|
||||
},
|
||||
{
|
||||
"<leader>g]",
|
||||
function()
|
||||
require("gitsigns").nav_hunk("next")
|
||||
end,
|
||||
desc = "git next hunk",
|
||||
},
|
||||
{
|
||||
"<leader>g[",
|
||||
function()
|
||||
require("gitsigns").nav_hunk("prev")
|
||||
end,
|
||||
desc = "git prev hunk",
|
||||
},
|
||||
{
|
||||
"<leader>gp",
|
||||
function()
|
||||
require("gitsigns").preview_hunk_inline()
|
||||
end,
|
||||
desc = "git preview hunk",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
39
private_dot_config/nvim/lua/plugin/10_conform.lua
Normal file
39
private_dot_config/nvim/lua/plugin/10_conform.lua
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
return {
|
||||
{
|
||||
"tpope/vim-sleuth",
|
||||
},
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre" },
|
||||
cmd = { "ConformInfo" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>af",
|
||||
function()
|
||||
require("conform").format({ async = true })
|
||||
end,
|
||||
mode = "",
|
||||
desc = "format buffer",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
python = { "isort", "black" },
|
||||
javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||
},
|
||||
default_format_opts = {
|
||||
lsp_format = "fallback",
|
||||
},
|
||||
format_on_save = { timeout_ms = 500 },
|
||||
formatters = {
|
||||
shfmt = {
|
||||
append_args = { "-i", "2" },
|
||||
},
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
|
||||
end,
|
||||
},
|
||||
}
|
||||
19
private_dot_config/nvim/lua/plugin/11_yanky.lua
Normal file
19
private_dot_config/nvim/lua/plugin/11_yanky.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
return {
|
||||
{
|
||||
"gbprod/yanky.nvim",
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
{ "y", "<Plug>(YankyYank)", desc = "yank" },
|
||||
{ "p", "<Plug>(YankyPutAfter)", mode = { "n", "x" }, desc = "put after" },
|
||||
{ "P", "<Plug>(YankyPutBefore)", mode = { "n", "x" }, desc = "put before" },
|
||||
{ "[p", "<Plug>(YankyPutIndentBeforeLinewise)", mode = { "n", "x" }, desc = "put after line" },
|
||||
{ "]p", "<Plug>(YankyPutIndentAfterLinewise)", mode = { "n", "x" }, desc = "put before line" },
|
||||
{ "<c-p>", "<Plug>(YankyPreviousEntry)", mode = "n", desc = "previous yank" },
|
||||
{ "<c-n>", "<Plug>(YankyNextEntry)", mode = "n", desc = "next yank" },
|
||||
{ "<leader>fy", "<Cmd>YankyRingHistory<CR>", mode = { "n", "x" }, desc = "yank history" },
|
||||
},
|
||||
opts = {
|
||||
preserve_cursor_position = { enabled = true },
|
||||
},
|
||||
},
|
||||
}
|
||||
8
private_dot_config/nvim/lua/plugin/12_neoscroll.lua
Normal file
8
private_dot_config/nvim/lua/plugin/12_neoscroll.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
opts = {
|
||||
duration_multiplier = 0.3,
|
||||
},
|
||||
},
|
||||
}
|
||||
8
private_dot_config/nvim/lua/plugin/13_easyalign.lua
Normal file
8
private_dot_config/nvim/lua/plugin/13_easyalign.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
{
|
||||
"junegunn/vim-easy-align",
|
||||
keys = {
|
||||
{ "ga", mode = "v", "<Plug>(EasyAlign)", desc = "easy-align" },
|
||||
},
|
||||
},
|
||||
}
|
||||
21
private_dot_config/nvim/lua/plugin/14_obsidian.lua
Normal file
21
private_dot_config/nvim/lua/plugin/14_obsidian.lua
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
return {
|
||||
{
|
||||
"obsidian-nvim/obsidian.nvim",
|
||||
dependencies = {
|
||||
"saghen/blink.cmp",
|
||||
"ibhagwan/fzf-lua",
|
||||
},
|
||||
version = "*",
|
||||
ft = "markdown",
|
||||
---@module 'obsidian'
|
||||
---@type obsidian.config
|
||||
opts = {
|
||||
workspaces = {
|
||||
{
|
||||
name = "vault",
|
||||
path = "~/Documents/vault",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
17
private_dot_config/nvim/snippets/global.json
Normal file
17
private_dot_config/nvim/snippets/global.json
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"Current datetime": {
|
||||
"prefix": "cdtm",
|
||||
"body": "$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
|
||||
"description": "Insert current datetime (YYYY-mm-dd HH:MM:SS)"
|
||||
},
|
||||
"Current date": {
|
||||
"prefix": "cdate",
|
||||
"body": "$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE",
|
||||
"description": "Insert current date (YYYY-mm-dd)"
|
||||
},
|
||||
"Current time": {
|
||||
"prefix": "ctime",
|
||||
"body": "$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
|
||||
"description": "Insert current time (HH:MM:SS)"
|
||||
}
|
||||
}
|
||||
1
private_dot_config/nvim/snippets/lua.json
Normal file
1
private_dot_config/nvim/snippets/lua.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"newplugin":{"body":["return {"," {"," '${1:plugin}',"," },","}"],"prefix":"newplugin"}}
|
||||
1
private_dot_config/nvim/snippets/package.json
Normal file
1
private_dot_config/nvim/snippets/package.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"description":"This package.json has been generated by nvim-scissors.","name":"my-snippets","contributes":{"snippets":[{"language":["lua"],"path":"./lua.json"}]}}
|
||||
4
private_dot_config/nvim/stylua.toml
Normal file
4
private_dot_config/nvim/stylua.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
column_width = 80
|
||||
indent_type = "Spaces"
|
||||
quote_style = "AutoPreferDouble"
|
||||
indent_width = 2
|
||||
Loading…
Add table
Add a link
Reference in a new issue