Update 2025-10-31

update 2025-10-08

chore: update readme

Update 2025-10-09

Update 2025-10-15

Update 2025-10-22

Update 2025-10-31
This commit is contained in:
2025-10-08 19:54:46 +03:00
parent f7194a919e
commit f5c52bcc9d
65 changed files with 1052 additions and 1721 deletions

View File

@@ -48,13 +48,6 @@ vim.api.nvim_create_autocmd({ "InsertEnter" }, {
end,
})
vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
pattern = "**/Codnity/**",
callback = function()
vim.opt.colorcolumn = "92"
end,
})
vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
pattern = "requirements*.txt",
callback = function()
@@ -62,13 +55,6 @@ vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
end,
})
--[[ vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
pattern = "**/Codnity/**/*.html",
callback = function()
vim.cmd("setf htmldjango")
end,
}) ]]
-- Autocommand that sources neovim files on save
--[[ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
group = vim.api.nvim_create_augroup("AutoReloadConfig", { clear = true }),

View File

@@ -39,20 +39,12 @@ nmap("<C-Right>", "<cmd>vertical resize +2<cr>", "Resize window right")
nmap("<A-k>", "<cmd>m .-2<cr>==", "Move line up")
nmap("<A-j>", "<cmd>m .+1<cr>==", "Move line down")
-- nmap("<S-s>", ":%s/<C-r><C-w>/<C-r><C-w>/gI<Left><Left><Left>", "[S]ubstitute word")
nmap("<S-s>", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], "[S]ubstitute word")
nmap("Q", "@qj", "Run macro")
nmap("<leader>oo", "<cmd>update<cr><cmd>source<cr>", "Source current file")
-- vim.keymap.set({ "n", "v", "x" }, "<leader>y", '"+y', { desc = "Yank to system clipboard" })
-- vim.keymap.set("n", "<leader>Y", '"+yy', { desc = "Yank line to system clipboard" })
-- vim.keymap.set({ "n", "v", "x" }, "<leader>p", '"+p', { desc = "Paste from system clipboard" })
-- vim.keymap.set("n", "<leader>P", '"+P', { desc = "Paste before cursor from system clipboard" })
vim.keymap.set("n", "<leader>cf", function()
local file_path = vim.fn.expand("%:p")
vim.cmd([[call setreg("+", "]] .. vim.fn.escape(file_path, '\\ "') .. '")')
@@ -60,8 +52,8 @@ vim.keymap.set("n", "<leader>cf", function()
end, { desc = "Copy file path to clipboard" })
xmap("Q", ":norm @q<CR>", "Run macro")
xmap("p", '"_dP')
vim.keymap.set(
"c",
"<C-j>",
@@ -80,11 +72,6 @@ vmap("<", "<gv", "Left Indent")
vmap("<A-k>", ":m '<-2<cr>gv=gv", "Move lines up")
vmap("<A-j>", ":m '>+1<cr>gv=gv", "Move lines down")
-- tmap("t", "<C-h>", "<C-\\><C-N><C-w>h")
-- tmap("t", "<C-j>", "<C-\\><C-N><C-w>j")
-- tmap("t", "<C-k>", "<C-\\><C-N><C-w>k")
-- tmap("t", "<C-l>", "<C-\\><C-N><C-w>l")
local function fzf_sesh_connect()
-- build the fzf-tmux command exactly as in your zsh widget
local fzf_cmd = [[

View File

@@ -28,9 +28,6 @@ require("lazy").setup({
ui = { border = "rounded" },
change_detection = { enabled = false },
rocks = {
hererocks = nil,
},
dev = {
path = "~/repos/nvim/plugins",
hererocks = true,
},
})

View File

@@ -1,57 +1,57 @@
vim.opt.backup = false -- creates a backup file
vim.opt.breakindent = true -- Enable break indent
vim.opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
vim.opt.cmdheight = 1 -- more space in the neovim command line for displaying messages
vim.opt.backup = false -- creates a backup file
vim.opt.breakindent = true -- Enable break indent
vim.opt.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
vim.opt.cmdheight = 1 -- more space in the neovim command line for displaying messages
vim.opt.colorcolumn = "120"
vim.opt.completeopt = { "menuone", "noselect" } -- mostly just for cmp
vim.opt.conceallevel = 2 -- so that `` is visible in markdown files
vim.opt.cursorcolumn = true -- highlight the current column
vim.opt.cursorline = true -- highlight the current line
vim.opt.expandtab = true -- convert tabs to spaces
vim.opt.fileencoding = "utf-8" -- the encoding written to a file
vim.opt.conceallevel = 2 -- so that `` is visible in markdown files
vim.opt.cursorcolumn = true -- highlight the current column
vim.opt.cursorline = true -- highlight the current line
vim.opt.expandtab = true -- convert tabs to spaces
vim.opt.fileencoding = "utf-8" -- the encoding written to a file
vim.opt.fillchars.eob = " "
vim.opt.foldmethod = "manual"
vim.opt.foldenable = true
vim.opt.foldlevelstart = 99
vim.opt.foldcolumn = "1" -- '0' is not bad
vim.opt.foldcolumn = "1" -- '0' is not bad
vim.opt.guifont = "JetBrainsMono NF:h11" -- the font used in graphical neovim applications
vim.opt.hlsearch = false -- highlight all matches on previous search pattern
vim.opt.ignorecase = true -- ignore case in search patterns
vim.opt.hlsearch = false -- highlight all matches on previous search pattern
vim.opt.ignorecase = true -- ignore case in search patterns
vim.opt.incsearch = true
vim.opt.isfname:append("@-@")
vim.opt.iskeyword:append("-")
vim.opt.laststatus = 3
vim.opt.mouse = "a" -- allow the mouse to be used in neovim
vim.opt.number = true -- set numbered lines
vim.opt.numberwidth = 4 -- set number column width to 4 {default 4}
vim.opt.pumheight = 10 -- pop up menu height
vim.opt.mouse = "a" -- allow the mouse to be used in neovim
vim.opt.number = true -- set numbered lines
vim.opt.numberwidth = 4 -- set number column width to 4 {default 4}
vim.opt.pumheight = 10 -- pop up menu height
vim.opt.relativenumber = true -- set relative numbered lines
vim.opt.ruler = false
vim.opt.scrolloff = 8 -- is one of my fav
vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
vim.opt.scrolloff = 8 -- is one of my fav
vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
vim.opt.shortmess:append("c")
vim.opt.showcmd = false
vim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
vim.opt.showtabline = 0 -- disable tabs
vim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
vim.opt.showtabline = 0 -- disable tabs
vim.opt.sidescrolloff = 8
vim.opt.signcolumn = "yes" -- always show the sign column otherwise it would shift the text each time
vim.opt.smartcase = true -- smart case
vim.opt.signcolumn = "auto" -- always show the sign column otherwise it would shift the text each time
vim.opt.smartcase = true -- smart case
vim.opt.smartindent = true -- make indenting smarter again
vim.opt.softtabstop = 4
vim.opt.spell = false
vim.opt.spelloptions:append("camel")
vim.opt.splitbelow = true -- force all horizontal splits to go below current window
vim.opt.splitright = true -- force all vertical splits to go to the right of current window
vim.opt.swapfile = false -- creates a swapfile
vim.opt.tabstop = 4 -- insert 4 spaces for a tab
vim.opt.splitbelow = true -- force all horizontal splits to go below current window
vim.opt.splitright = true -- force all vertical splits to go to the right of current window
vim.opt.swapfile = false -- creates a swapfile
vim.opt.tabstop = 4 -- insert 4 spaces for a tab
vim.opt.termguicolors = true -- set term gui colors (most terminals support this)
vim.opt.timeoutlen = 250 -- time to wait for a mapped sequence to complete (in milliseconds)
vim.opt.timeoutlen = 250 -- time to wait for a mapped sequence to complete (in milliseconds)
vim.opt.undodir = vim.fn.stdpath("data") .. "/nvim/undodir"
vim.opt.undofile = true -- enable persistent undo
vim.opt.updatetime = 50 -- faster completion (4000ms default)
vim.opt.undofile = true -- enable persistent undo
vim.opt.updatetime = 50 -- faster completion (4000ms default)
vim.opt.whichwrap:append("<,>,[,],h,l")
vim.opt.wrap = false -- display lines as one long line
vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program) it is not allowed to be edit
vim.opt.wrap = false -- display lines as one long line
vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program) it is not allowed to be edit
vim.opt_local.path:prepend(vim.fn.stdpath("config") .. "/lua")
vim.opt_local.suffixesadd:prepend(".lua")
vim.opt_local.suffixesadd:prepend("init.lua")

View File

@@ -1,78 +0,0 @@
if not pcall(require, "luasnip") then
return
end
local ls = require("luasnip")
local f = ls.function_node
local s = ls.snippet
local t = ls.text_node
local i = ls.insert_node
--[[
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local events = require("luasnip.util.events")
local ai = require("luasnip.nodes.absolute_indexer")
local extras = require("luasnip.extras")
local l = extras.lambda
local rep = extras.rep
local p = extras.partial
local m = extras.match
local n = extras.nonempty
local dl = extras.dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
local postfix = require("luasnip.extras.postfix").postfix
local types = require("luasnip.util.types")
local parse = require("luasnip.util.parser").parse_snippet
local ms = ls.multi_snippet
]]
local shortcut = function(val)
if type(val) == "string" then
return { t({ val }), i(0) }
end
if type(val) == "table" then
for k, v in ipairs(val) do
if type(v) == "string" then
val[k] = t({ v })
end
end
end
return val
end
local M = {}
M.same = function(index)
return f(function(args)
return args[1]
end, { index })
end
M.year = function()
return os.date("%Y")
end
M.date = function()
return os.date("%d.%m.%Y")
end
M.make = function(tbl)
local result = {}
for k, v in pairs(tbl) do
table.insert(result, (s({ trig = k, desc = v.desc }, shortcut(v))))
end
return result
end
return M

30
lua/plugins/aerial.lua Normal file
View File

@@ -0,0 +1,30 @@
return {
"stevearc/aerial.nvim",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons",
},
cmd = {
"AerialToggle",
"AerialOpen",
"AerialOpenAll",
"AerialClose",
"AerialCloseAll",
"AerialNext",
"AerialPrev",
"AerialGo",
"AerialInfo",
"AerialNavToggle",
"AerialNavOpen",
"AerialNavClose",
},
keys = {
{ "<leader>b", vim.cmd.AerialToggle, desc = "Toggle Tagbar" },
},
opts = {
layout = {
default_direction = "right",
min_width = { 30, 0.1 },
},
},
}

View File

@@ -29,10 +29,6 @@ return {
"epwalsh/obsidian.nvim",
event = "BufReadPre " .. vim.fn.expand("~") .. "/Obsidian/**/*.md",
},
{
"kiyoon/jupynium.nvim",
event = "BufReadPre *.ju.py",
},
},
version = "*",
opts = {
@@ -75,7 +71,6 @@ return {
"buffer",
"snippets",
"ripgrep",
"jupynium",
"css_vars",
},
per_filetype = {
@@ -140,11 +135,6 @@ return {
score_offset = 15,
opts = { insert = true },
},
jupynium = {
name = "jupynium",
module = "jupynium.blink_cmp",
score_offset = 100,
},
git = {
score_offset = 100,
module = "blink-cmp-git",

View File

@@ -1,30 +1,4 @@
return {
"laytan/cloak.nvim",
opts = {
enabled = true,
cloak_character = "*",
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
highlight_group = "Comment",
-- Applies the length of the replacement characters for all matched
-- patterns, defaults to the length of the matched pattern.
cloak_length = nil, -- Provide a number if you want to hide the true length of the value.
-- Wether it should try every pattern to find the best fit or stop after the first.
try_all_patterns = true,
patterns = {
{
-- Match any file starting with '.env'.
-- This can be a table to match multiple file patterns.
file_pattern = { ".env*" },
-- Match an equals sign and any character after it.
-- This can also be a table of patterns to cloak,
-- example: cloak_pattern = { ':.+', '-.+' } for yaml files.
cloak_pattern = "=.+",
-- A function, table or string to generate the replacement.
-- The actual replacement will contain the 'cloak_character'
-- where it doesn't cover the original text.
-- If left empty the legacy behavior of keeping the first character is retained.
replace = nil,
},
},
},
opts = {},
}

View File

@@ -3,67 +3,14 @@ return {
ft = { "cpp", "c", "cmake" },
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
cmake_command = "cmake", -- this is used to specify cmake command path
cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt
cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" }, -- this will be passed when invoke `CMakeGenerate`
cmake_build_options = {}, -- this will be passed when invoke `CMakeBuild`
cmake_build_directory = "target/build/", -- this is used to specify generate directory for cmake
cmake_build_directory_prefix = "cmake_build_", -- when cmake_build_directory is set to "", this option will be activated
cmake_soft_link_compile_commands = true, -- this will automatically make a soft link from compile commands file to project root dir
cmake_compile_commands_from_lsp = false, -- this will automatically set compile commands file location using lsp, to use it, please set `cmake_soft_link_compile_commands` to false
cmake_kits_path = nil, -- this is used to specify global cmake kits path, see CMakeKits for detailed usage
cmake_variants_message = {
short = { show = true }, -- whether to show short message
long = { show = true, max_length = 40 }, -- whether to show long message
},
cmake_dap_configuration = { -- debug settings for cmake
name = "cpp",
type = "codelldb",
request = "launch",
stopOnEntry = false,
runInTerminal = true,
console = "integratedTerminal",
},
cmake_executor = { -- executor to use
name = "quickfix", -- name of the executor
opts = {}, -- the options the executor will get, possible values depend on the executor type. See `default_opts` for possible values.
default_opts = { -- a list of default and possible values for executors
cmake_build_directory = "target/build/",
cmake_executor = {
default_opts = {
quickfix = {
show = "only_on_error", -- "always", "only_on_error"
position = "belowright", -- "bottom", "top"
show = "only_on_error",
size = 15,
},
overseer = {
new_task_opts = {}, -- options to pass into the `overseer.new_task` command
on_new_task = function(task) end, -- a function that gets overseer.Task when it is created, before calling `task:start`
},
terminal = {}, -- terminal executor uses the values in cmake_terminal
},
},
cmake_terminal = {
name = "terminal",
opts = {
name = "Main Terminal",
prefix_name = "[CMakeTools]: ", -- This must be included and must be unique, otherwise the terminals will not work. Do not use a simple spacebar " ", or any generic name
split_direction = "vertical", -- "horizontal", "vertical"
split_size = 50,
-- Window handling
single_terminal_per_instance = true, -- Single viewport, multiple windows
single_terminal_per_tab = true, -- Single viewport per tab
keep_terminal_static_location = true, -- Static location of the viewport if avialable
-- Running Tasks
start_insert_in_launch_task = false, -- If you want to enter terminal with :startinsert upon using :CMakeRun
start_insert_in_other_tasks = false, -- If you want to enter terminal with :startinsert upon launching all other cmake tasks in the terminal. Generally set as false
focus_on_main_terminal = false, -- Focus on cmake terminal when cmake task is launched. Only used if executor is terminal.
focus_on_launch_terminal = false, -- Focus on cmake launch terminal when executable target in launched.
},
},
cmake_notifications = {
enabled = true, -- show cmake execution progress in nvim-notify
spinner = { "", "", "", "", "", "", "", "", "", "" }, -- icons used for progress display
refresh_rate_ms = 100, -- how often to iterate icons
},
},
}

View File

@@ -1,49 +1,16 @@
return {
"NvChad/nvim-colorizer.lua",
"catgoose/nvim-colorizer.lua",
event = "BufReadPre",
opts = {
filetypes = {
"html",
"javascriptreact",
"css",
"javascript",
"lua",
"yaml",
"conf",
"toml",
"scss",
"python",
"typst",
"htmldjango",
"conf",
"rust",
"kdl",
"ini",
},
user_default_options = {
RGB = true, -- #RGB hex codes
RRGGBB = true, -- #RRGGBB hex codes
names = false, -- "Name" codes like Blue or blue
RRGGBBAA = true, -- #RRGGBBAA hex codes
AARRGGBB = true, -- 0xAARRGGBB hex codes
rgb_fn = true, -- CSS rgb() and rgba() functions
hsl_fn = true, -- CSS hsl() and hsla() functions
css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
-- Available modes for `mode`: foreground, background, virtualtext
mode = "background", -- Set the display mode.
-- Available methods are false / true / "normal" / "lsp" / "both"
-- True is same as normal
tailwind = true, -- Enable tailwind colors
-- parsers can contain values used in |user_default_options|
sass = {
enable = true,
parsers = { "css" },
}, -- Enable sass colors
virtualtext = "",
names = false,
css = true,
css_fn = true,
tailwind = true,
tailwind_opts = {
update_names = true,
},
sass = { enable = true, parsers = { "css" } },
},
-- all the sub-options of filetypes apply to buftypes
buftypes = {},
html = { names = true },
css = { names = true },
},
}

View File

@@ -1,61 +1,5 @@
return {
"numToStr/Comment.nvim",
event = { "BufReadPre", "BufNewFile" },
opts = {
---Add a space b/w comment and the line
padding = true,
---Whether the cursor should stay at its position
sticky = true,
---Lines to be ignored while (un)comment
ignore = nil,
---LHS of toggle mappings in NORMAL mode
toggler = {
---Line-comment toggle keymap
line = "gcc",
---Block-comment toggle keymap
block = "gbb",
},
-- -LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
---Line-comment keymap
line = "gc",
---Block-comment keymap
block = "gb",
},
---LHS of extra mappings
extra = {
---Add comment on the line above
above = "gcO",
---Add comment on the line below
below = "gco",
---Add comment at the end of line
eol = "gcA",
},
--- Enable keybindings
--- NOTE: If given `false` then the plugin won't create any mappings
mappings = {
---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}`
basic = true,
---Extra mapping; `gco`, `gcO`, `gcA`
extra = true,
---Extended mapping; `g>` `g<` `g>[count]{motion}` `g<[count]{motion}`
extended = true,
},
---Function to call before (un)comment
-- pre_hook = function(ctx)
-- local U = require("Comment.utils")
--
-- local location = nil
-- if ctx.ctype == U.ctype.block then
-- location = require("ts_context_commentstring.utils").get_cursor_location()
-- elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then
-- location = require("ts_context_commentstring.utils").get_visual_start_location()
-- end
--
-- return require("ts_context_commentstring.internal").calculate_commentstring({
-- key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
-- location = location,
-- })
-- end,
},
opts = {},
}

View File

@@ -12,7 +12,7 @@ return {
function()
require("conform").format({ async = true, lsp_fallback = "fallback" })
end,
mode = "",
mode = { "n", "v", "x" },
desc = "Format buffer",
},
},
@@ -27,13 +27,20 @@ return {
cpp = { "clang-format" },
css = { "prettier" },
go = { "goimports", "gofmt" },
haskell = { "fourmolu" },
html = html,
htmldjango = html,
http = { "kulala-fmt" },
javascript = js,
javascriptreact = js,
json = { "jq" },
lua = { "stylua" },
lua = function()
local config_file = vim.fn.getcwd() .. "/*stylua.toml"
if vim.fn.exists(config_file) then
return { "stylua" }
end
return {}
end,
markdown = makrdown,
python = { "ruff_format", "ruff_fix", "ruff_organize_imports", "docformatter" },
rest = { "kulala" },

View File

@@ -1,160 +1,22 @@
return {
{
"Saecki/crates.nvim",
tag = "stable",
event = { "BufRead Cargo.toml" },
keys = {
{
"<leader>ru",
require("crates").upgrade_all_crates,
desc = "Upgrade all crates",
ft = { "rust", "toml" },
},
},
opts = {
completion = {
cmp = {
enabled = true,
},
},
smart_insert = true,
insert_closing_quote = true,
autoload = true,
autoupdate = true,
loading_indicator = true,
date_format = "%d-%m-%Y",
thousands_separator = ".",
notification_title = "Crates",
-- disable_invalid_feature_diagnostic = false,
text = {
loading = "  Loading",
version = "  %s",
prerelease = "  %s",
yanked = "  %s",
nomatch = "  No match",
upgrade = "  %s",
error = "  Error fetching crate",
},
highlight = {
loading = "CratesNvimLoading",
version = "CratesNvimVersion",
prerelease = "CratesNvimPreRelease",
yanked = "CratesNvimYanked",
nomatch = "CratesNvimNoMatch",
upgrade = "CratesNvimUpgrade",
error = "CratesNvimError",
},
popup = {
autofocus = false,
copy_register = '"',
style = "minimal",
border = "none",
show_version_date = false,
show_dependency_version = true,
max_height = 30,
min_width = 20,
padding = 1,
text = {
title = " %s",
pill_left = "",
pill_right = "",
description = "%s",
created_label = " created ",
created = "%s",
updated_label = " updated ",
updated = "%s",
downloads_label = " downloads ",
downloads = "%s",
homepage_label = " homepage ",
homepage = "%s",
repository_label = " repository ",
repository = "%s",
documentation_label = " documentation ",
documentation = "%s",
crates_io_label = " crates.io ",
crates_io = "%s",
categories_label = " categories ",
keywords_label = " keywords ",
version = " %s",
prerelease = " %s",
yanked = " %s",
version_date = " %s",
feature = " %s",
enabled = " %s",
transitive = " %s",
normal_dependencies_title = " Dependencies",
build_dependencies_title = " Build dependencies",
dev_dependencies_title = " Dev dependencies",
dependency = " %s",
optional = " %s",
dependency_version = " %s",
loading = "",
},
highlight = {
title = "CratesNvimPopupTitle",
pill_text = "CratesNvimPopupPillText",
pill_border = "CratesNvimPopupPillBorder",
description = "CratesNvimPopupDescription",
created_label = "CratesNvimPopupLabel",
created = "CratesNvimPopupValue",
updated_label = "CratesNvimPopupLabel",
updated = "CratesNvimPopupValue",
downloads_label = "CratesNvimPopupLabel",
downloads = "CratesNvimPopupValue",
homepage_label = "CratesNvimPopupLabel",
homepage = "CratesNvimPopupUrl",
repository_label = "CratesNvimPopupLabel",
repository = "CratesNvimPopupUrl",
documentation_label = "CratesNvimPopupLabel",
documentation = "CratesNvimPopupUrl",
crates_io_label = "CratesNvimPopupLabel",
crates_io = "CratesNvimPopupUrl",
categories_label = "CratesNvimPopupLabel",
keywords_label = "CratesNvimPopupLabel",
version = "CratesNvimPopupVersion",
prerelease = "CratesNvimPopupPreRelease",
yanked = "CratesNvimPopupYanked",
version_date = "CratesNvimPopupVersionDate",
feature = "CratesNvimPopupFeature",
enabled = "CratesNvimPopupEnabled",
transitive = "CratesNvimPopupTransitive",
normal_dependencies_title = "CratesNvimPopupNormalDependenciesTitle",
build_dependencies_title = "CratesNvimPopupBuildDependenciesTitle",
dev_dependencies_title = "CratesNvimPopupDevDependenciesTitle",
dependency = "CratesNvimPopupDependency",
optional = "CratesNvimPopupOptional",
dependency_version = "CratesNvimPopupDependencyVersion",
loading = "CratesNvimPopupLoading",
},
keys = {
hide = { "q", "<esc>" },
open_url = { "<cr>" },
select = { "<cr>" },
select_alt = { "s" },
toggle_feature = { "<cr>" },
copy_value = { "yy" },
goto_item = { "gd", "K", "<C-LeftMouse>" },
jump_forward = { "<c-i>" },
jump_back = { "<c-o>", "<C-RightMouse>" },
},
},
--[[ src = {
insert_closing_quote = true,
text = {
prerelease = "  pre-release ",
yanked = "  yanked ",
},
}, ]]
"Saecki/crates.nvim",
tag = "stable",
event = { "BufRead Cargo.toml" },
keys = {
{
"<leader>ru",
require("crates").upgrade_all_crates,
desc = "Upgrade all crates",
ft = { "rust", "toml" },
},
},
{
"Aityz/cratesearch.nvim",
event = { "BufRead Cargo.toml" },
ft = { "rust" },
cmd = { "CrateSearch" },
config = function()
require("cratesearch").setup()
end,
opts = {
completion = {
cmp = {
enabled = true,
},
},
date_format = "%d-%m-%Y",
thousands_separator = " ",
},
}

View File

@@ -1,6 +1,5 @@
return {
"wintermute-cell/gitignore.nvim",
dependencies = {},
cmd = { "Gitignore" },
keys = {
{
@@ -11,7 +10,4 @@ return {
desc = "Git Ignore",
},
},
config = function()
require("gitignore")
end,
}

View File

@@ -1,61 +0,0 @@
return {
"lewis6991/gitsigns.nvim",
enabled = false,
event = "BufReadPre",
cmd = "Gitsigns",
keys = {
{
"<leader>gb",
function()
vim.cmd.Gitsigns("blame_line")
end,
desc = "Git Blame",
},
},
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true,
},
auto_attach = true,
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 100,
ignore_whitespace = false,
virt_text_priority = 100,
},
current_line_blame_formatter = "<author>, <author_time:%R> - <summary>",
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 10000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = "single",
style = "minimal",
relative = "cursor",
row = 0,
col = 1,
},
on_attach = function(bufnr)
if vim.api.nvim_buf_get_name(bufnr):match("%.ipynb$") then
-- Do not attach for .ipynb file, since these are converted with jupytext.nvim
return false
end
end,
},
}

View File

@@ -0,0 +1,7 @@
return {
enabled = false,
"mrcjkb/haskell-tools.nvim",
version = "^6",
lazy = false,
ft = { "haskell", "lhaskell", "cabal" },
}

View File

@@ -1,7 +1,10 @@
return {
"barrett-ruth/http-codes.nvim",
dependencies = { "folke/snacks.nvim" },
"kristoferssolo/http-codes.nvim",
branch = "feature/snacks",
dependencies = "folke/snacks.nvim",
cmd = "HTTPCodes",
keys = { { "<leader>pdh", vim.cmd.HTTPCodes, desc = "HTTP" } },
config = true,
keys = { { "<leader>pH", vim.cmd.HTTPCodes, desc = "HTTP" } },
opts = {
use = "snacks",
},
}

View File

@@ -9,7 +9,6 @@ return {
end,
},
{
"<A-p>",
function()
require("illuminate").goto_prev_reference()

View File

@@ -2,52 +2,85 @@ local function is_typst()
return vim.bo.filetype == "typst"
end
return {
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
keys = {
{ "<leader>v", vim.cmd.PasteImage, desc = "Paste image from system clipboard" },
},
opts = {
default = {
dir_path = "assets/img",
extension = function()
if is_typst() then
return "png"
else
return "webp"
end
end,
process_cmd = function()
if is_typst() then
return ""
else
return "convert - -quality 75 webp:-"
end
end,
file_name = "%Y-%m-%d_%H-%M-%S",
relative_to_current_file = false,
prompt_for_file_name = function()
return is_typst()
end,
embed_image_as_base64 = false,
drag_and_drop = {
insert_mode = true,
{
"3rd/image.nvim",
opts = {
backend = "ueberzug",
processor = "magick_rock",
scale_factor = 0.5,
integrations = {
neorg = {
clear_in_insert_mode = true,
only_render_image_at_cursor = true,
only_render_image_at_cursor_mode = "popup",
},
typst = {
enabled = false,
clear_in_insert_mode = true,
only_render_image_at_cursor = true,
only_render_image_at_cursor_mode = "popup",
},
markdown = {
clear_in_insert_mode = true,
only_render_image_at_cursor = true,
only_render_image_at_cursor_mode = "popup",
resolve_image_path = function(document_path, image_path, fallback)
local working_dir = vim.fn.getcwd()
if working_dir:find("Obsidian") then
return working_dir .. "/assets/img/" .. image_path
end
return fallback(document_path, image_path)
end,
},
},
},
filetypes = {
markdown = {
template = "![[$FILE_PATH]]",
},
{
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
keys = {
{ "<leader>v", vim.cmd.PasteImage, desc = "Paste image from system clipboard" },
},
opts = {
default = {
dir_path = "assets/img",
extension = function()
if is_typst() then
return "png"
else
return "webp"
end
end,
process_cmd = function()
if is_typst() then
return ""
else
return "convert - -quality 75 webp:-"
end
end,
file_name = "%Y-%m-%d_%H-%M-%S",
relative_to_current_file = false,
prompt_for_file_name = is_typst,
embed_image_as_base64 = false,
drag_and_drop = {
insert_mode = true,
},
},
vimwiki = {
template = "![[$FILE_PATH]]",
},
typst = {
template = [[
filetypes = {
markdown = {
template = "![[$FILE_PATH]]",
},
vimwiki = {
template = "![[$FILE_PATH]]",
},
typst = {
template = [[
#figure(
image("$FILE_PATH", width: 80%),
caption: [$CURSOR],
) <$LABEL>
]],
},
},
},
},

View File

@@ -3,9 +3,6 @@ return {
"MysticalDevil/inlay-hints.nvim",
event = "LspAttach",
dependencies = { "neovim/nvim-lspconfig" },
keys = {
{ "<leader>oi", vim.cmd.InlayHintsToggle, desc = "Toggle InlayHints" },
},
opts = {
commands = { enable = true }, -- Enable InlayHints commands, include `InlayHintsToggle`, `InlayHintsEnable` and `InlayHintsDisable`
autocmd = { enable = true }, -- Enable the inlay hints on `LspAttach` event

View File

@@ -3,8 +3,6 @@ return {
ft = "lua",
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},

View File

@@ -6,6 +6,7 @@ return {
linters_by_ft = {
["*"] = { "codespell", "typos" },
cmake = { "cmakelint" },
haskell = { "hlint" },
htmldjango = { "djlint" },
javascript = js,
javascriptreact = js,

View File

@@ -9,11 +9,9 @@ return {
"folke/neoconf.nvim",
"mrcjkb/rustaceanvim",
"pmizio/typescript-tools.nvim",
{ "nvim-java/nvim-java", enabled = false },
},
config = function(_, opts)
require("mason").setup()
local lspconfig = require("lspconfig")
local function extend_capabilities(capabilities)
return vim.tbl_deep_extend("keep", capabilities, {
@@ -43,7 +41,7 @@ return {
}
end
lspconfig[server].setup(final_config)
vim.lsp.config(server, final_config)
end
vim.api.nvim_create_autocmd("LspAttach", {
@@ -66,7 +64,7 @@ return {
vim.lsp.buf.hover({ border = "rounded" })
end, "Hover Documentation")
nmap("gi", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
vim.keymap.set("i", "<C-h>", function()
vim.keymap.set("i", "<C-H>", function()
vim.lsp.buf.signature_help({ border = "rounded" })
end, { buffer = event.buf, desc = "LSP: Signature Documentation" })
nmap("<leader>wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder")
@@ -85,13 +83,13 @@ return {
vim.diagnostic.jump({ count = -1, float = true })
end, "Diagnostic Prev")
nmap("]d", function()
trouble:next({ mode = "diagnostics", skip_groups = true, jump = true })
trouble.next({ mode = "diagnostics", skip_groups = true, jump = true })
end, "LSP: Trouble Next")
nmap("[d", function()
trouble.prev({ mode = "diagnostics", skip_groups = true, jump = true })
end, "Trouble Prev")
vim.keymap.set(
{ "n", "v" },
{ "n", "v", "x" },
"<leader>la",
vim.lsp.buf.code_action,
{ buffer = event.buf, desc = "LSP: Code [A]ction" }
@@ -99,7 +97,9 @@ return {
nmap("gr", function()
trouble.toggle("lsp_references")
end, "[G]oto [R]eferences")
nmap("gR", function() Snacks.picker.lsp_references() end, "[G]oto [R]eferences")
nmap("gR", function()
Snacks.picker.lsp_references()
end, "[G]oto [R]eferences")
end,
})
@@ -140,7 +140,6 @@ return {
"gopls",
"html",
"hyprls",
"jdtls",
"jinja_lsp",
"jsonls",
"lua_ls",
@@ -149,16 +148,12 @@ return {
"ruff",
"somesass_ls",
"tailwindcss",
"texlab",
"tinymist",
"ts_ls",
},
handlers = {
default_setup,
ts_ls = function() end,
jdtls = function()
require("java").setup({})
end,
},
})
@@ -194,38 +189,42 @@ return {
lua_ls = {
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
diagnostics = {
-- Get the language server to recognize the `vim` global
globals = { "vim", "awesome", "client", "ya" },
},
-- workspace = {
-- Make the server aware of Neovim runtime files
-- library = vim.api.nvim_get_runtime_file("", true),
-- },
-- Do not send telemetry data containing a randomized but unique identifier
telemetry = {
enable = false,
},
root_pattern = {
".stylua.toml",
".luarc.json",
".luarc.jsonc",
".luacheckrc",
"stylua.toml",
"selene.toml",
"selene.yml",
".git",
},
format = {
enable = false,
},
hint = {
enable = true,
globals = {
"vim",
"awesome",
"client",
"s",
"sn",
"isn",
"t",
"i",
"f",
"c",
"d",
"r",
"events",
"k",
"ai",
"extras",
"l",
"rep",
"p",
"m",
"n",
"dl",
"fmt",
"fmta",
"conds",
"postfix",
"types",
"parse",
"ms",
},
},
telemetry = { enable = false },
format = { enable = true },
hint = { enable = true },
},
},
},
@@ -252,6 +251,59 @@ return {
"zsh",
},
},
tailwindcss = {
filetypes = {
"aspnetcorerazor",
"astro",
"astro-markdown",
"blade",
"clojure",
"django-html",
"htmldjango",
"edge",
"eelixir",
"elixir",
"ejs",
"erb",
"eruby",
"gohtml",
"gohtmltmpl",
"haml",
"handlebars",
"hbs",
"html",
"htmlangular",
"html-eex",
"heex",
"jade",
"leaf",
"liquid",
"mdx",
"mustache",
"njk",
"nunjucks",
"php",
"razor",
"slim",
"twig",
"css",
"less",
"postcss",
"sass",
"scss",
"stylus",
"sugarss",
"javascript",
"javascriptreact",
"reason",
"rescript",
"typescript",
"typescriptreact",
"vue",
"svelte",
"templ",
},
},
texlab = {
texlab = {
auxDirectory = ".",
@@ -280,16 +332,6 @@ return {
-- htmx = {
-- filetypes = { "html", "htmldjango", "templ" },
-- },
--[[ pylyzer = {
settings = {
python = {
diagnostics = true,
inlayHints = true,
smartCompletion = true,
checkOnType = true,
},
},
}, ]]
basedpyright = {
typeCheckingMode = "off",
analysis = {
@@ -303,28 +345,6 @@ return {
},
},
},
--[[ pylsp = {
settings = {
pylsp = {
plugins = {
autopep8 = { enabled = false },
flake8 = { enabled = false },
pylint = { enabled = false },
yapf = { enabled = false },
pydocstyle = { enabled = false },
mccabe = { enabled = false },
rope_autoimport = { enabled = true },
rope_completion = {
enabled = true,
eager = true,
},
pycodestyle = {
maxLineLength = nil,
},
},
},
},
}, ]]
jinja_lsp = {
filetypes = { "html", "htmldjango", "templ" },
},
@@ -347,7 +367,6 @@ return {
semanticTokens = "disable",
},
},
-- jdtls = {},
markdown_oxide = {
capabilities = {
workspace = {

View File

@@ -2,21 +2,10 @@
---@param str string
---@param ctx table
---@return string
local function wrap_string(str, ctx)
local function wrap_string(str, _ctx)
return "[" .. str:gsub("%s+", "") .. "]"
end
local function diff_source()
local gitsigns = vim.b.gitsigns_status_dict
if gitsigns then
return {
added = gitsigns.added,
modified = gitsigns.changed,
removed = gitsigns.removed,
}
end
end
return {
"nvim-lualine/lualine.nvim",
event = "VimEnter",
@@ -28,10 +17,8 @@ return {
require("lsp-progress").setup()
end,
},
"lewis6991/gitsigns.nvim",
{
"kristoferssolo/lualine-harpoon.nvim",
-- dir = "~/repos/lualine-harpoon.nvim/",
dependencies = {
{
"ThePrimeagen/harpoon",
@@ -69,7 +56,7 @@ return {
lualine_a = {},
lualine_b = {
{ "mode", fmt = wrap_string },
{ "b:gitsigns_head", icon = "" },
{ "branch" },
},
lualine_c = {
{
@@ -81,7 +68,7 @@ return {
"filename",
padding = { right = 1, left = 0 },
},
{ "diff", source = diff_source },
"diff",
"harpoon",
},
lualine_x = {

View File

@@ -3,20 +3,13 @@ return {
"L3MON4D3/LuaSnip",
build = "make install_jsregexp",
version = "v2.*",
dependencies = {
"rafamadriz/friendly-snippets", -- a bunch of snippets to use
},
dependencies = { "rafamadriz/friendly-snippets" },
opts = function()
local types = require("luasnip.util.types")
return {
-- This tells LuaSnip to remember to keep around the last snippet.
-- You can jump back into it even if you move outside of the selection
history = true,
-- This one is cool cause if you have dynamic snippets, it updates as you type!
updateevents = "TextChanged,TextChangedI",
-- Autosnippets:
enable_autosnippets = true,
-- Crazy highlights!!
ext_opts = {
[types.choiceNode] = {
active = {
@@ -29,32 +22,6 @@ return {
config = function(_, opts)
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local events = require("luasnip.util.events")
local ai = require("luasnip.nodes.absolute_indexer")
local extras = require("luasnip.extras")
local l = extras.lambda
local rep = extras.rep
local p = extras.partial
local m = extras.match
local n = extras.nonempty
local dl = extras.dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
local postfix = require("luasnip.extras.postfix").postfix
local types = require("luasnip.util.types")
local parse = require("luasnip.util.parser").parse_snippet
local ms = ls.multi_snippet
vim.keymap.set({ "i", "s" }, "<C-j>", function()
if ls.expand_or_jumpable() then
ls.expand_or_jump()
@@ -81,31 +48,24 @@ return {
ls.config.setup(opts)
require("luasnip.loaders.from_vscode").load({
exclude = {
"rust",
rust = {
"modtest",
},
},
})
vim.tbl_map(function(type)
require("luasnip.loaders.from_" .. type).lazy_load()
end, { "vscode", "snipmate", "lua" })
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_lua").load({ paths = vim.fn.stdpath("config") .. "/snippets/" })
ls.filetype_extend("typescript", { "tsdoc" })
ls.filetype_extend("javascript", { "jsdoc" })
ls.filetype_extend("lua", { "luadoc" })
ls.filetype_extend("python", { "pydoc" })
ls.filetype_extend("rust", { "rustdoc" })
ls.filetype_extend("cs", { "csharpdoc" })
ls.filetype_extend("java", { "javadoc" })
ls.filetype_extend("c", { "cdoc" })
ls.filetype_extend("cpp", { "cppdoc" })
ls.filetype_extend("php", { "phpdoc" })
ls.filetype_extend("cs", { "csharpdoc" })
ls.filetype_extend("html", { "djangohtml" })
ls.filetype_extend("java", { "javadoc" })
ls.filetype_extend("javascript", { "jsdoc" })
ls.filetype_extend("kotlin", { "kdoc" })
ls.filetype_extend("lua", { "luadoc" })
ls.filetype_extend("php", { "phpdoc" })
ls.filetype_extend("python", { "pydoc", "django" })
ls.filetype_extend("ruby", { "rdoc" })
-- ls.filetype_extend("rust", { "rustdoc" })
ls.filetype_extend("sh", { "shelldoc" })
ls.filetype_extend("typescript", { "tsdoc" })
end,
},
}

View File

@@ -1,77 +1,37 @@
return {
{
"tadmccorkle/markdown.nvim",
ft = { "markdown", "Avante" },
opts = {
-- Disable all keymaps by setting mappings field to 'false'.
-- Selectively disable keymaps by setting corresponding field to 'false'.
mappings = {
inline_surround_toggle = "gs", -- (string|boolean) toggle inline style
inline_surround_toggle_line = "gss", -- (string|boolean) line-wise toggle inline style
inline_surround_delete = "ds", -- (string|boolean) delete emphasis surrounding cursor
inline_surround_change = "cs", -- (string|boolean) change emphasis surrounding cursor
link_add = "gl", -- (string|boolean) add link
link_follow = "gx", -- (string|boolean) follow link
go_curr_heading = "]c", -- (string|boolean) set cursor to current section heading
go_parent_heading = "]p", -- (string|boolean) set cursor to parent section heading
go_next_heading = "]]", -- (string|boolean) set cursor to next section heading
go_prev_heading = "[[", -- (string|boolean) set cursor to previous section heading
},
inline_surround = {
-- For the emphasis, strong, strikethrough, and code fields:
-- * 'key': used to specify an inline style in toggle, delete, and change operations
-- * 'txt': text inserted when toggling or changing to the corresponding inline style
emphasis = {
key = "i",
txt = "*",
},
strong = {
key = "b",
txt = "**",
},
strikethrough = {
key = "s",
txt = "~~",
},
code = {
key = "c",
txt = "`",
},
},
link = {
paste = {
enable = true, -- whether to convert URLs to links on paste
},
},
toc = {
-- Comment text to flag headings/sections for omission in table of contents.
omit_heading = "toc omit heading",
omit_section = "toc omit section",
-- Cycling list markers to use in table of contents.
-- Use '.' and ')' for ordered lists.
markers = { "-" },
},
-- Hook functions allow for overriding or extending default behavior.
-- Called with a table of options and a fallback function with default behavior.
-- Signature: fun(opts: table, fallback: fun())
hooks = {
-- Called when following links. Provided the following options:
-- * 'dest' (string): the link destination
-- * 'use_default_app' (boolean|nil): whether to open the destination with default application
-- (refer to documentation on <Plug> mappings for explanation of when this option is used)
follow_link = nil,
},
on_attach = nil, -- (fun(bufnr: integer)) callback when plugin attaches to a buffer
},
ft = { "markdown" },
opts = {},
},
{
"OXY2DEV/markview.nvim",
dependencies = {
"saghen/blink.cmp",
{ "echasnovski/mini.icons", version = "*" },
},
ft = { "markdown", "Avante" },
ft = { "markdown" },
lazy = false,
priority = 49,
keys = {
{
"<C-Space>",
function()
vim.cmd("Checkbox toggle")
end,
},
{
">>",
function()
vim.cmd("HeadingIncrease")
end,
},
{
"<<",
function()
vim.cmd("HeadingDecrease")
end,
},
},
opts = {
preview = {
icon_provider = "mini",

View File

@@ -1,18 +1,44 @@
return {
"echasnovski/mini.nvim",
version = "*",
opts = {
enabled = {
"ai",
-- "pairs",
"splitjoin",
"surround",
"diff",
{
"nvim-mini/mini.diff",
version = "*",
event = "VeryLazy",
keys = {
{
"<leader>gd",
function()
MiniDiff.toggle_overlay(0)
end,
desc = "Git Diff",
},
},
opts = {
view = {
style = "sign",
signs = {
add = "",
change = "",
delete = "_",
},
},
},
},
config = function(_, opts)
for _, value in ipairs(opts.enabled) do
require("mini." .. value).setup()
end
end,
{
"nvim-mini/mini.ai",
version = "*",
event = "VeryLazy",
opts = {},
},
{
"nvim-mini/mini.splitjoin",
version = "*",
event = "VeryLazy",
opts = {},
},
{
"nvim-mini/mini.surround",
version = "*",
event = "VeryLazy",
opts = {},
},
}

View File

@@ -1,43 +0,0 @@
return {
"folke/neoconf.nvim",
cmd = { "Neoconf" },
opts = {
-- name of the local settings files
local_settings = ".neoconf.json",
-- name of the global settings file in your Neovim config directory
global_settings = "neoconf.json",
-- import existing settings from other plugins
import = {
vscode = true, -- local .vscode/settings.json
coc = true, -- global/local coc-settings.json
nlsp = true, -- global/local nlsp-settings.nvim json settings
},
-- send new configuration to lsp clients when changing json settings
live_reload = true,
-- set the filetype to jsonc for settings files, so you can use comments
-- make sure you have the jsonc treesitter parser installed!
filetype_jsonc = true,
plugins = {
-- configures lsp clients with settings in the following order:
-- - lua settings passed in lspconfig setup
-- - global json settings
-- - local json settings
lspconfig = {
enabled = true,
},
-- configures jsonls to get completion in .nvim.settings.json files
jsonls = {
enabled = true,
-- only show completion in json settings for configured lsp servers
configured_servers_only = true,
},
-- configures lua_ls to get completion of lspconfig server settings
lua_ls = {
-- by default, lua_ls annotations are only enabled in your neovim config directory
enabled_for_neovim_config = true,
-- explicitly enable adding annotations. Mostly relevant to put in your local .nvim.settings.json file
enabled = false,
},
},
},
}

View File

@@ -3,7 +3,6 @@ return {
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
"folke/snacks.nvim",
},
cmd = { "Neogit" },
@@ -15,7 +14,6 @@ return {
end,
desc = "Git",
},
{ "<leader>gd", vim.cmd.DiffviewOpen, desc = "Git Diff" },
},
opts = {
filewatcher = { interval = 500 },

View File

@@ -31,7 +31,6 @@ return {
desc = "Extract the visually selected text into a new note and link to it.",
},
{ "<leader>Ow", vim.cmd.ObsidianWorkspace, desc = "Switch to another workspace." },
-- { "<leader>Op", vim.cmd.ObsidianPasteImg, desc = "Paste an image from the clipboard into the note." },
{
"<leader>Or",
vim.cmd.ObsidianRename,

11
lua/plugins/octo.lua Normal file
View File

@@ -0,0 +1,11 @@
return {
"pwntester/octo.nvim",
requires = {
"nvim-lua/plenary.nvim",
"folke/snacks.nvim",
"nvim-tree/nvim-web-devicons",
},
opts = {
picker = "snacks",
},
}

View File

@@ -16,20 +16,9 @@ return {
opts = {
columns = {
"icon",
-- "permissions",
"size",
-- "mtime",
},
-- Restore window options to previous values when leaving an oil buffer
restore_win_options = true,
-- Skip the confirmation popup for simple operations
delete_to_trash = true,
-- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap
-- options with a `callback` (e.g. { callback = function() ... end, desc = "", nowait = true })
-- Additionally, if it is a string that matches "actions.<name>",
-- it will use the mapping at require("oil.actions").<name>
-- Set to `false` to remove a keymap
-- See :help oil-actions for a list of all available actions
keymaps = {
["<C-v>"] = { "actions.select", opts = { vertical = true } },
["<C-s>"] = { "actions.select", opts = { horizontal = true } },
@@ -44,10 +33,8 @@ return {
-- Set to false to disable all of the above keymaps
use_default_keymaps = true,
view_options = {
-- Show files and directories that start with "."
show_hidden = true,
},
-- Configuration for the floating window in oil.open_float
float = {
win_options = {
winblend = 10,

View File

@@ -1,8 +0,0 @@
return {
"jmbuhr/otter.nvim",
dependencies = {
"nvim-treesitter/nvim-treesitter",
},
enabled = false,
opts = {},
}

View File

@@ -3,12 +3,19 @@ return {
event = "BufReadPre",
keys = {
{
"<leader>qs",
"<leader>qq",
function()
require("persistence").load()
end,
desc = "Restore the session for the current directory",
},
{
"<leader>qs",
function()
require("persistence").select()
end,
desc = "Select a session to load",
},
{
"<leader>ql",
function()

View File

@@ -4,21 +4,22 @@ return {
{ "echasnovski/mini.icons", version = "*" },
"stevearc/oil.nvim",
"folke/trouble.nvim",
"folke/todo-comments.nvim",
},
priority = 1000,
lazy = false,
opts = function()
-- Toggle the profiler
Snacks.toggle.profiler():map("<leader>sp")
Snacks.toggle.profiler():map("<leader>Sp")
-- Toggle the profiler highlights
Snacks.toggle.profiler_highlights():map("<leader>sh")
Snacks.toggle.profiler_highlights():map("<leader>Sh")
return {
animate = { enabled = false },
bigfile = { enabled = true },
bufdelete = { enabled = true },
dashboard = { enabled = false },
debug = { enabled = true },
dim = { enabled = true },
dim = { enabled = false },
explorer = { enabled = false },
git = { enabled = true },
gitbrowse = { enabled = true },
@@ -44,11 +45,10 @@ return {
enabled = true,
format = "file",
layout = {
preset = "telescope"
preset = "telescope",
},
matcher = {
frecency = true,
sort_empty = true,
cwd_bonus = true,
},
actions = require("trouble.sources.snacks").actions,
@@ -57,10 +57,10 @@ return {
keys = {
["<C-t>"] = {
"trouble_open",
mode = { "n", "i" }
}
}
}
mode = { "n", "i" },
},
},
},
},
},
profiler = { enabled = false },
@@ -94,7 +94,7 @@ return {
desc = "History",
},
{
"<leader>ss",
"<leader>Ss",
function()
Snacks.profiler.scratch()
end,
@@ -116,20 +116,111 @@ return {
desc = "Git Blame",
},
{
"<C-n>", function() Snacks.picker.files() end, desc = "Find Files" },
{ "<leader>pf", function() Snacks.picker.files() end, desc = "Find Files" },
{ "<leader>ps", function() Snacks.picker.grep() end, desc = "Grep" },
{ "<leader>pb", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>pw", function() Snacks.picker.grep_word() end, desc = "Visual selection of word", mode = { "n", "x" } },
{ "<leader>pi", function() Snacks.picker.icons() end, desc = "Icons", },
{ "<leader>ph", function() Snacks.picker.help() end, desc = "Help Pages", },
{ "<leader>pr", function() Snacks.picker.recent() end, desc = "Recent", },
{ "<leader>pR", function() Snacks.picker.registers() end, desc = "Registers", },
{ "<leader>pg", function() Snacks.picker.git_files() end, desc = "Find Git Fiels", },
{ "<leader>pk", function() Snacks.picker.keymaps() end, desc = "Keymaps" },
{ "<leader>pt", function() Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" },
{ "<leader>pc", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },
{ "<leader>pl", function() Snacks.picker.lazy() end, desc = "Search for Plugin Spec" },
"<C-n>",
function()
Snacks.picker.files()
end,
desc = "Find Files",
},
{
"<leader>pf",
function()
Snacks.picker.files()
end,
desc = "Find Files",
},
{
"<leader>ps",
function()
Snacks.picker.grep()
end,
desc = "Grep",
},
{
"<leader>pb",
function()
Snacks.picker.buffers()
end,
desc = "Buffers",
},
{
"<leader>pw",
function()
Snacks.picker.grep_word()
end,
desc = "Visual selection of word",
mode = { "n", "x" },
},
{
"<leader>pi",
function()
Snacks.picker.icons()
end,
desc = "Icons",
},
{
"<leader>ph",
function()
Snacks.picker.help()
end,
desc = "Help Pages",
},
{
"<leader>pr",
function()
Snacks.picker.recent()
end,
desc = "Recent",
},
{
"<leader>pR",
function()
Snacks.picker.registers()
end,
desc = "Registers",
},
{
"<leader>pg",
function()
Snacks.picker.git_files()
end,
desc = "Find Git Fiels",
},
{
"<leader>pk",
function()
Snacks.picker.keymaps()
end,
desc = "Keymaps",
},
{
"<leader>pt",
function()
Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } })
end,
desc = "Todo/Fix/Fixme",
},
{
"<leader>pc",
function()
Snacks.picker.colorschemes()
end,
desc = "Colorschemes",
},
{
"<leader>pl",
function()
Snacks.picker.lazy()
end,
desc = "Search for Plugin Spec",
},
{
"<leader>pD",
function()
Snacks.picker.diagnostics()
end,
desc = "Diagnostics",
},
},
init = function()
vim.api.nvim_create_autocmd("User", {

View File

@@ -1,42 +0,0 @@
return {
"ravibrock/spellwarn.nvim",
event = "VeryLazy",
cmd = { "Spellwarn" },
keys = {
{
"<leader>os",
function()
vim.cmd.Spellwarn("toggle")
end,
desc = "Spellwarn toggle",
},
},
opts = {
event = { -- event(s) to refresh diagnostics on
"CursorHold",
"InsertLeave",
"TextChanged",
"TextChangedI",
"TextChangedP",
"TextChangedT",
},
ft_config = { -- spellcheck method: "cursor", "iter", or boolean
alpha = false,
help = false,
lazy = false,
lspinfo = false,
mason = false,
},
ft_default = true, -- default option for unspecified filetypes
max_file_size = nil, -- maximum file size to check in lines (nil for no limit)
severity = { -- severity for each spelling error type (false to disable diagnostics for that type)
spellbad = "WARN",
spellcap = "HINT",
spelllocal = "HINT",
spellrare = "INFO",
},
prefix = "possible misspelling(s): ", -- prefix for each diagnostic message
},
}

View File

@@ -1,6 +0,0 @@
return {
"preservim/tagbar",
keys = {
{ "<leader>b", vim.cmd.TagbarToggle, desc = "Toggle Tagbar" },
},
}

View File

@@ -1,43 +1,7 @@
return {
{
"razak17/tailwind-fold.nvim",
opts = {},
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = { "TailwindFoldEnable", "TailwindFoldDisable", "TailwindFoldToggle" },
ft = { "html", "htmldjango", "svelte", "astro", "vue", "javascriptreact", "typescriptreact", "php", "blade" },
},
{
"luckasRanarison/tailwind-tools.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
enabled = false,
ft = { "html", "htmldjango", "svelte", "astro", "vue", "javascriptreact", "typescriptreact", "php", "blade" },
cmd = {
"TailwindConcealEnable",
"TailwindConcealDisable",
"TailwindConcealToggle",
"TailwindColorEnable",
"TailwindColorDisable",
"TailwindColorToggle",
"TailwindSort",
"TailwindSortSelection",
"TailwindNextClass",
"TailwindPrevClass",
},
opts = {
document_color = {
enabled = true, -- can be toggled by commands
kind = "background", -- "inline" | "foreground" | "background"
inline_symbol = "󰝤 ", -- only used in inline mode
debounce = 200, -- in milliseconds, only applied in insert mode
},
conceal = {
enabled = false, -- can be toggled by commands
symbol = "󱏿", -- only a single character is allowed
highlight = { -- extmark highlight options, see :h 'highlight'
fg = "#38BDF8",
},
},
custom_filetypes = {}, -- see the extension section to learn how it works
},
},
"razak17/tailwind-fold.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = { "TailwindFoldEnable", "TailwindFoldDisable", "TailwindFoldToggle" },
ft = { "html", "htmldjango", "svelte", "astro", "vue", "javascriptreact", "typescriptreact", "php", "blade" },
opts = {},
}

View File

@@ -1,69 +1,8 @@
return {
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
signs = true, -- show icons in the signs column
sign_priority = 8, -- sign priority
-- keywords recognized as todo comments
keywords = {
FIX = {
icon = "", -- icon used for the sign, and in search results
color = "error", -- can be a hex color, or a named color (see below)
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
-- signs = false, -- configure signs for some keywords individually
},
TODO = { icon = "", color = "info" },
HACK = { icon = "", color = "warning" },
WARN = { icon = "", color = "warning", alt = { "WARNING", "XXX" } },
PERF = { icon = "", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
NOTE = { icon = "", color = "hint", alt = { "INFO", "HINT" } },
TEST = { icon = "", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
},
gui_style = {
fg = "NONE", -- The gui style to use for the fg highlight group.
bg = "BOLD", -- The gui style to use for the bg highlight group.
},
merge_keywords = true, -- when true, custom keywords will be merged with the defaults
-- highlighting of the line containing the todo comment
-- * before: highlights before the keyword (typically comment characters)
-- * keyword: highlights of the keyword
-- * after: highlights after the keyword (todo text)
highlight = {
multiline = true, -- enable multine todo comments
multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword
multiline_context = 10, -- extra lines that will be re-evaluated when changing a line
before = "", -- "fg" or "bg" or empty
keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg)
after = "fg", -- "fg" or "bg" or empty
pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex)
comments_only = true, -- uses treesitter to match keywords in comments only
max_line_len = 400, -- ignore lines longer than this
exclude = {}, -- list of file types to exclude highlighting
},
-- list of named colors where we try to extract the guifg from the
-- list of highlight groups or use the hex color if hl not found as a fallback
colors = {
error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
info = { "DiagnosticInfo", "#2563EB" },
hint = { "DiagnosticHint", "#10B981" },
default = { "Identifier", "#7C3AED" },
test = { "Identifier", "#FF00FF" },
},
search = {
command = "rg",
args = {
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
},
-- regex that will be used to match keywords.
-- don't replace the (KEYWORDS) placeholder
pattern = [[\b(KEYWORDS):]], -- ripgrep regex
-- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives
},
dependencies = {
"nvim-lua/plenary.nvim",
"folke/trouble.nvim",
},
opts = {},
}

View File

@@ -1,16 +1,5 @@
return {
"windwp/nvim-ts-autotag",
events = { "BufReadPre", "BufNewFile" },
opts = {
opts = {
-- Defaults
enable_close = true, -- Auto close tags
enable_rename = true, -- Auto rename pairs of tags
enable_close_on_slash = true, -- Auto close on trailing </
},
-- Also override individual filetype configs, these take priority.
-- Empty by default, useful if one of the "opts" global settings
-- doesn't work well in a specific filetype
per_filetype = {},
},
opts = {},
}

View File

@@ -1,3 +1,4 @@
local ft = { "javascriptreact", "typescriptreact", "javascript", "typescript" }
return {
{
"pmizio/typescript-tools.nvim",
@@ -5,36 +6,15 @@ return {
"nvim-lua/plenary.nvim",
"neovim/nvim-lspconfig",
},
ft = { "javascriptreact", "typescriptreact", "javascript", "typescript" },
ft = ft,
opts = {
on_attach = function(client)
client.server_capabilities.documentFormattingProvider = false
client.server_capabilities.documentRangeFormattingProvider = false
end,
settings = {
-- spawn additional tsserver instance to calculate diagnostics on it
separate_diagnostic_server = true,
-- "change"|"insert_leave" determine when the client asks the server about diagnostic
publish_diagnostic_on = "insert_leave",
-- array of strings("fix_all"|"add_missing_imports"|"remove_unused"|
-- "remove_unused_imports"|"organize_imports") -- or string "all"
-- to include all supported code actions
-- specify commands exposed as code_actions
expose_as_code_action = "all",
-- string|nil - specify a custom path to `tsserver.js` file, if this is nil or file under path
-- not exists then standard path resolution strategy is applied
tsserver_path = "tsserver",
-- specify a list of plugins to load by tsserver, e.g., for support `styled-components`
-- (see 💅 `styled-components` support section)
tsserver_plugins = {
"@styled/typescript-styled-plugin",
},
-- this value is passed to: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes
-- memory limit in megabytes or "auto"(basically no limit)
tsserver_max_memory = "auto",
-- described below
tsserver_format_options = function(ft)
-- Return empty table to disable formatting
tsserver_format_options = function(_)
return {}
end,
tsserver_file_preferences = {
@@ -47,38 +27,20 @@ return {
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
-- locale of all tsserver messages, supported locales you can find here:
-- https://github.com/microsoft/TypeScript/blob/3c221fc086be52b19801f6e8d82596d04607ede6/src/compiler/utilitiesPublic.ts#L620
tsserver_locale = "en",
-- mirror of VSCode's `typescript.suggest.completeFunctionCalls`
complete_function_calls = true,
include_completions_with_insert_text = true,
-- CodeLens
-- WARNING: Experimental feature also in VSCode, because it might hit performance of server.
-- possible values: ("off"|"all"|"implementations_only"|"references_only")
code_lens = "all",
-- by default code lenses are displayed on all referencable values and for some of you it can
-- be too much this option reduce count of them by removing member references from lenses
disable_member_code_lens = true,
-- JSXCloseTag
-- WARNING: it is disabled by default (maybe you configuration or distro already uses nvim-ts-autotag,
-- that maybe have a conflict if enable this feature. )
jsx_close_tag = {
enable = false,
filetypes = { "javascriptreact", "typescriptreact" },
},
},
},
},
{
"dmmulroy/ts-error-translator.nvim",
ft = { "javascriptreact", "typescriptreact", "javascript", "typescript" },
ft = ft,
},
{
"folke/ts-comments.nvim",
opts = {},
event = "VeryLazy",
enabled = vim.fn.has("nvim-0.10.0") == 1,
ft = { "javascriptreact", "typescriptreact", "javascript", "typescript" },
ft = ft,
},
}

View File

@@ -18,43 +18,5 @@ return {
build = function()
require("typst-preview").update()
end,
opts = {
-- Setting this true will enable printing debug information with print()
debug = false,
-- Custom format string to open the output link provided with %s
-- Example: open_cmd = 'firefox %s -P typst-preview --class typst-preview'
open_cmd = "xdg-open %s",
-- open_cmd = "floorp %s -P typst-preview --class typst-preview",
-- Setting this to 'always' will invert black and white in the preview
-- Setting this to 'auto' will invert depending if the browser has enable
-- dark mode
invert_colors = nil,
-- Whether the preview will follow the cursor in the source file
follow_cursor = true,
-- Provide the path to binaries for dependencies.
-- Setting this will skip the download of the binary by the plugin.
-- Warning: Be aware that your version might be older than the one
-- required.
dependencies_bin = {
-- if you are using tinymist, just set ['typst-preview'] = "tinymist".
["typst-preview"] = nil,
["websocat"] = nil,
},
-- A list of extra arguments (or nil) to be passed to previewer.
-- For example, extra_args = { "--input=ver=draft", "--ignore-system-fonts" }
extra_args = nil,
-- This function will be called to determine the root of the typst project
get_root = function(path_of_main_file)
return vim.fn.fnamemodify(path_of_main_file, ":p:h")
end,
-- This function will be called to determine the main file of the typst
-- project.
get_main_file = function(path_of_buffer)
return path_of_buffer
end,
},
opts = {},
}

View File

@@ -31,7 +31,6 @@ return {
desc = "substitute word",
},
{
{ "<leader>c", vim.cmd.bdelete, desc = "Close Buffer" },
{
"<leader>X",
function()
@@ -44,7 +43,7 @@ return {
{ "<leader>q", group = "Persistence" },
{ "<leader>l", group = "LSP" },
{ "<leader>w", group = "Workspace" },
{ "<leader>f", group = "Picker", { "<leader>pd", group = "Development" } },
{ "<leader>p", group = "Picker" },
{ "<leader>z", group = "Zen" },
{ "<leader>o", group = "Action" },
{ "<leader>r", group = "Rust" },
@@ -67,84 +66,14 @@ return {
{
"<leader>L",
group = "Languate settings",
{ "<leader>Lc", "<cmd>setlocal formatoptions-=cro<cr>", desc = "Disable autocomment" },
{ "<leader>LC", "<cmd>setlocal formatoptions=cro<cr>", desc = "Enable autocomment" },
{ "<leader>Ls", "<cmd>setlocal spell!<cr>", desc = "Toggle spellchecker" },
{ "<leader>Lc", "<cmd>setlocal formatoptions-=cro<cr>", desc = "Disable autocomment" },
{ "<leader>LC", "<cmd>setlocal formatoptions=cro<cr>", desc = "Enable autocomment" },
{ "<leader>Ls", "<cmd>setlocal spell!<cr>", desc = "Toggle spellchecker" },
{ "<leader>Le", "<cmd>setlocal spell spelllang=en_us<cr>", desc = "Enable English spellchecker" },
{ "<leader>Ll", "<cmd>setlocal spell spelllang=lv_LV<cr>", desc = "Enable Latvian spellchecker" },
{ "<leader>LI", "<cmd>setlocal autoindent<cr>", desc = "Enable autoindent" },
{ "<leader>Li", "<cmd>setlocal noautoindent<cr>", desc = "Disable autoindent" },
{ "<leader>LI", "<cmd>setlocal autoindent<cr>", desc = "Enable autoindent" },
{ "<leader>Li", "<cmd>setlocal noautoindent<cr>", desc = "Disable autoindent" },
},
--[[ {
"<leader>P",
group = "Templates",
{
{
"<leader>Pl",
group = "Latex",
cond = function()
return vim.bo.filetype == "lua"
end,
{
"<leader>Plp",
function()
vim.cmd.read("~/Templates/LaTeX/PhilPaper.tex")
end,
desc = "PhilPaper.tex",
},
{
"<leader>Pll",
function()
vim.cmd.read("~/Templates/LaTeX/Letter.tex")
end,
desc = "Letter.tex",
},
{
"<leader>Plg",
function()
vim.cmd.read("~/Templates/LaTeX/Glossary.tex")
end,
desc = "Glossary.tex",
},
{
"<leader>Plh",
function()
vim.cmd.read("~/Templates/LaTeX/HandOut.tex")
end,
desc = "HandOut.tex",
},
{
"<leader>Plb",
function()
vim.cmd.read("~/Templates/LaTeX/PhilBeamer.tex")
end,
desc = "PhilBeamer.tex",
},
{
"<leader>Pls",
function()
vim.cmd.read("~/Templates/LaTeX/SubFile.tex")
end,
desc = "SubFile.tex",
},
{
"<leader>Plr",
function()
vim.cmd.read("~/Templates/LaTeX/Root.tex")
end,
desc = "Root.tex",
},
{
"<leader>Plm",
function()
vim.cmd.read("~/Templates/LaTeX/MultipleAnswer.tex")
end,
desc = "MultipleAnswer.tex",
},
},
},
}, ]]
},
},
},