aboutsummaryrefslogtreecommitdiff
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/.gitignore4
-rw-r--r--nvim/.config/nvim/after/ftplugin/c.lua14
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/after/ftplugin/dbui.lua0
-rw-r--r--nvim/.config/nvim/after/ftplugin/log.lua3
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/after/ftplugin/sql.lua0
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/init.lua31
-rwxr-xr-xnvim/.config/nvim/lsp/bashls.lua4
-rwxr-xr-xnvim/.config/nvim/lsp/clangd.lua24
-rw-r--r--nvim/.config/nvim/lsp/cmake.lua5
-rwxr-xr-xnvim/.config/nvim/lsp/lua_ls.lua20
-rw-r--r--nvim/.config/nvim/lsp/marksman.lua5
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/lua/autocmds.lua (renamed from nvim/.config/nvim/plugin/autocmds.lua)14
-rwxr-xr-xnvim/.config/nvim/lua/bundles/cmp.lua79
-rw-r--r--nvim/.config/nvim/lua/bundles/colorscheme.lua1
-rwxr-xr-xnvim/.config/nvim/lua/bundles/telescope.lua16
-rw-r--r--nvim/.config/nvim/lua/custom/autopairs.lua5
-rw-r--r--nvim/.config/nvim/lua/custom/cmake.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/cmp.lua69
-rw-r--r--nvim/.config/nvim/lua/custom/gitsigns.lua60
-rw-r--r--nvim/.config/nvim/lua/custom/harpoon.lua25
-rw-r--r--nvim/.config/nvim/lua/custom/init.lua5
-rw-r--r--nvim/.config/nvim/lua/custom/leap.lua3
-rw-r--r--nvim/.config/nvim/lua/custom/lsp.lua113
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/autopairs.lua9
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/bqf.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/celluar.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/cmake.lua17
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/cmp.lua22
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/comment.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/conform.lua36
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/dadbod.lua16
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/gitsigns.lua6
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/harpoon.lua8
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/leap.lua7
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/lsp.lua22
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/lualine.lua5
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/mini.lua8
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/neorg.lua22
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/sort.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/substitude.lua6
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/surround.lua6
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/telescope.lua15
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/themes.lua7
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/todo-comments.lua6
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/toggleterm.lua7
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/treesitter.lua7
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua1
-rw-r--r--nvim/.config/nvim/lua/custom/plugins/which-key.lua24
-rw-r--r--nvim/.config/nvim/lua/custom/substitude.lua6
-rw-r--r--nvim/.config/nvim/lua/custom/telescope.lua82
-rw-r--r--nvim/.config/nvim/lua/custom/toggleterm.lua41
-rw-r--r--nvim/.config/nvim/lua/custom/treesitter.lua51
-rw-r--r--nvim/.config/nvim/lua/globals.lua2
-rwxr-xr-xnvim/.config/nvim/lua/keymaps.lua246
-rwxr-xr-xnvim/.config/nvim/lua/lsp.lua16
-rwxr-xr-xnvim/.config/nvim/lua/options.lua49
-rw-r--r--nvim/.config/nvim/lua/plugins/auto-session.lua3
-rw-r--r--nvim/.config/nvim/lua/plugins/clangd_extensions.lua33
-rwxr-xr-xnvim/.config/nvim/lua/plugins/cmake.lua17
-rwxr-xr-xnvim/.config/nvim/lua/plugins/comment.lua3
-rwxr-xr-xnvim/.config/nvim/lua/plugins/conform.lua17
-rwxr-xr-xnvim/.config/nvim/lua/plugins/gitsigns.lua21
-rwxr-xr-xnvim/.config/nvim/lua/plugins/harpoon.lua25
-rwxr-xr-xnvim/.config/nvim/lua/plugins/lazydev.lua6
-rwxr-xr-xnvim/.config/nvim/lua/plugins/leap.lua7
-rw-r--r--nvim/.config/nvim/lua/plugins/leetcode.lua1
-rwxr-xr-xnvim/.config/nvim/lua/plugins/lualine.lua1
-rwxr-xr-xnvim/.config/nvim/lua/plugins/neorg.lua22
-rw-r--r--nvim/.config/nvim/lua/plugins/oil.lua21
-rw-r--r--nvim/.config/nvim/lua/plugins/rest.lua (renamed from nvim/.config/nvim/lua/custom/mini.lua)0
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/lua/plugins/textcase.lua (renamed from nvim/.config/nvim/lua/custom/plugins/textcase.lua)0
-rwxr-xr-xnvim/.config/nvim/lua/plugins/todo-comments.lua1
-rwxr-xr-xnvim/.config/nvim/lua/plugins/toggleterm.lua21
-rwxr-xr-xnvim/.config/nvim/lua/plugins/treesitter-textobjects.lua11
-rwxr-xr-xnvim/.config/nvim/lua/plugins/treesitter.lua4
-rwxr-xr-xnvim/.config/nvim/lua/plugins/which-key.lua13
-rw-r--r--nvim/.config/nvim/lua/plugins/zen-mode.lua3
-rw-r--r--nvim/.config/nvim/lua/rocks-setup.lua24
-rw-r--r--nvim/.config/nvim/plugin/keymaps.lua60
-rw-r--r--nvim/.config/nvim/plugin/netrw.lua0
-rw-r--r--nvim/.config/nvim/plugin/options.lua41
-rw-r--r--nvim/.config/nvim/plugin/terminal.lua14
-rw-r--r--nvim/.config/nvim/rocks.toml148
-rw-r--r--nvim/.config/nvim/spell/en.utf-8.add28
-rw-r--r--nvim/.config/nvim/spell/en.utf-8.add.splbin0 -> 723 bytes
-rw-r--r--nvim/.config/nvim/spell/ru.utf-8.splbin0 -> 837742 bytes
-rw-r--r--nvim/.config/nvim/spell/ru.utf-8.sugbin0 -> 3568429 bytes
-rwxr-xr-x[-rw-r--r--]nvim/.config/nvim/stylua.toml0
88 files changed, 937 insertions, 863 deletions
diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore
index e033bc6..dc90214 100644..100755
--- a/nvim/.config/nvim/.gitignore
+++ b/nvim/.config/nvim/.gitignore
@@ -1 +1,5 @@
lazy-lock.json
+node_modules/
+package-lock.json
+package.json
+.luarc.json
diff --git a/nvim/.config/nvim/after/ftplugin/c.lua b/nvim/.config/nvim/after/ftplugin/c.lua
new file mode 100644
index 0000000..b9b960b
--- /dev/null
+++ b/nvim/.config/nvim/after/ftplugin/c.lua
@@ -0,0 +1,14 @@
+vim.keymap.set(
+ "n",
+ "<localleader>s",
+ "<cmd>ClangdSwitchSourceHeader<cr>",
+ { desc = "Switch source/header", buffer = 0 }
+)
+
+vim.keymap.set("n", "<localleader>a", "<cmd>ClangdAST<cr>", { desc = "Clang's AST", buffer = 0 })
+
+vim.keymap.set("n", "<localleader>m", "<cmd>ClangdMemoryUsage<cr>", { desc = "Clang's memory usage", buffer = 0 })
+
+vim.keymap.set("n", "<localleader>i", "<cmd>ClangdSymbolInfo<cr>", { desc = "Clang's symbol info", buffer = 0 })
+
+vim.keymap.set("n", "<localleader>a", "<cmd>ClangdTypeHierarchy<cr>", { desc = "Type hierarchy", buffer = 0 })
diff --git a/nvim/.config/nvim/after/ftplugin/dbui.lua b/nvim/.config/nvim/after/ftplugin/dbui.lua
index dccca2f..dccca2f 100644..100755
--- a/nvim/.config/nvim/after/ftplugin/dbui.lua
+++ b/nvim/.config/nvim/after/ftplugin/dbui.lua
diff --git a/nvim/.config/nvim/after/ftplugin/log.lua b/nvim/.config/nvim/after/ftplugin/log.lua
new file mode 100644
index 0000000..9034143
--- /dev/null
+++ b/nvim/.config/nvim/after/ftplugin/log.lua
@@ -0,0 +1,3 @@
+-- vim.opt_local.spell = false
+
+-- fasdf
diff --git a/nvim/.config/nvim/after/ftplugin/sql.lua b/nvim/.config/nvim/after/ftplugin/sql.lua
index cb4775f..cb4775f 100644..100755
--- a/nvim/.config/nvim/after/ftplugin/sql.lua
+++ b/nvim/.config/nvim/after/ftplugin/sql.lua
diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua
index d3ebf8f..afac52a 100644..100755
--- a/nvim/.config/nvim/init.lua
+++ b/nvim/.config/nvim/init.lua
@@ -1,25 +1,6 @@
-vim.g.mapleader = " "
-vim.g.maplocalleader = " "
-
-local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
-if not vim.uv.fs_stat(lazypath) then
- vim.fn.system {
- "git",
- "clone",
- "--filter=blob:none",
- "https://github.com/folke/lazy.nvim.git",
- "--branch=stable",
- lazypath,
- }
-end
-
--- Add lazy to the `runtimepath`, this allows us to `require` it.
----@diagnostic disable-next-line: undefined-field
-vim.opt.rtp:prepend(lazypath)
-
--- Set up lazy, and load my `lua/custom/plugins/` folder
-require("lazy").setup({ import = "custom/plugins" }, {
- change_detection = {
- notify = false,
- },
-})
+require "globals"
+require "keymaps"
+require "options"
+require "autocmds"
+require "lsp"
+require "rocks-setup"
diff --git a/nvim/.config/nvim/lsp/bashls.lua b/nvim/.config/nvim/lsp/bashls.lua
new file mode 100755
index 0000000..ff1e16d
--- /dev/null
+++ b/nvim/.config/nvim/lsp/bashls.lua
@@ -0,0 +1,4 @@
+return {
+ cmd = { 'bash-language-server', 'start' },
+ filetypes = { 'bash', 'sh', 'zsh' }
+}
diff --git a/nvim/.config/nvim/lsp/clangd.lua b/nvim/.config/nvim/lsp/clangd.lua
new file mode 100755
index 0000000..beaf665
--- /dev/null
+++ b/nvim/.config/nvim/lsp/clangd.lua
@@ -0,0 +1,24 @@
+return {
+ cmd = { "clangd", "--background-index", "--experimental-modules-support" },
+ root_markers = {
+ ".clangd",
+ ".clang-tidy",
+ ".clang-format",
+ "compile_commands.json",
+ "compile_flags.txt",
+ "configure.ac",
+ ".git",
+ },
+ filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "proto" },
+ capabilities = {
+ offsetEncoding = { "utf-8", "utf-16" },
+ textDocument = {
+ completion = {
+ editsNearCursor = true,
+ },
+ semanticTokens = {
+ multilineTokenSupport = true,
+ },
+ },
+ },
+}
diff --git a/nvim/.config/nvim/lsp/cmake.lua b/nvim/.config/nvim/lsp/cmake.lua
new file mode 100644
index 0000000..3fc70fc
--- /dev/null
+++ b/nvim/.config/nvim/lsp/cmake.lua
@@ -0,0 +1,5 @@
+return {
+ cmd = { "neocmakelsp", "--stdio" },
+ filetypes = { "cmake" },
+ root_markers = { ".git", "build", "cmake" },
+}
diff --git a/nvim/.config/nvim/lsp/lua_ls.lua b/nvim/.config/nvim/lsp/lua_ls.lua
new file mode 100755
index 0000000..3ea54d9
--- /dev/null
+++ b/nvim/.config/nvim/lsp/lua_ls.lua
@@ -0,0 +1,20 @@
+return {
+ cmd = { 'lua-language-server' },
+ root_makers = {
+ '.luarc.json',
+ '.luarc.jsonc',
+ '.luacheckrc',
+ '.stylua.toml',
+ 'stylua.toml',
+ 'selene.toml',
+ 'selene.yml',
+ },
+ filetypes = { 'lua' },
+ settings = {
+ Lua = {
+ runtime = {
+ version = 'LuaJIT',
+ }
+ }
+ }
+}
diff --git a/nvim/.config/nvim/lsp/marksman.lua b/nvim/.config/nvim/lsp/marksman.lua
new file mode 100644
index 0000000..742b363
--- /dev/null
+++ b/nvim/.config/nvim/lsp/marksman.lua
@@ -0,0 +1,5 @@
+return {
+ cmd = { "marksman" },
+ root_markers = { ".marksman.toml", ".git" },
+ filetypes = { "markdown", "markdown.mdx" },
+}
diff --git a/nvim/.config/nvim/plugin/autocmds.lua b/nvim/.config/nvim/lua/autocmds.lua
index 6349fb8..d3edf52 100644..100755
--- a/nvim/.config/nvim/plugin/autocmds.lua
+++ b/nvim/.config/nvim/lua/autocmds.lua
@@ -1,8 +1,19 @@
local aucmd = vim.api.nvim_create_autocmd
+
local function augroup(name)
- return vim.api.nvim_create_augroup("chell_" .. name, {})
+ return vim.api.nvim_create_augroup(name, {})
end
+-- Set local settings for terminal buffers
+aucmd("TermOpen", {
+ group = vim.api.nvim_create_augroup("custom-term-open", {}),
+ callback = function()
+ vim.opt_local.number = false
+ vim.opt_local.relativenumber = false
+ vim.opt_local.scrolloff = 0
+ end,
+})
+
-- highlight after yank
aucmd("TextYankPost", {
desc = "Highlight when yanking (copying) text",
@@ -43,6 +54,7 @@ vim.api.nvim_create_autocmd({ "InsertLeave", "WinEnter" }, {
end
end,
})
+
vim.api.nvim_create_autocmd({ "InsertEnter", "WinLeave" }, {
group = augroup "auto_cursorline_hide",
callback = function()
diff --git a/nvim/.config/nvim/lua/bundles/cmp.lua b/nvim/.config/nvim/lua/bundles/cmp.lua
new file mode 100755
index 0000000..68cd71b
--- /dev/null
+++ b/nvim/.config/nvim/lua/bundles/cmp.lua
@@ -0,0 +1,79 @@
+local lspkind = require "lspkind"
+lspkind.init {}
+
+-- LuaSnip
+local luasnip = require "luasnip"
+luasnip.config.setup {
+ history = false,
+ updateevents = "TextChanged,TextChangedI",
+}
+for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/custom/snippets/*.lua", true)) do
+ loadfile(ft_path)()
+end
+
+require("luasnip.loaders.from_vscode").lazy_load()
+
+-- Cmp
+local cmp = require "cmp"
+
+cmp.setup {
+ snippet = {
+ expand = function(args)
+ luasnip.lsp_expand(args.body)
+ end,
+ },
+ completion = { completeopt = "menu,menuone,noinsert" },
+ sorting = {
+ comparators = {
+ cmp.config.compare.offset,
+ cmp.config.compare.exact,
+ cmp.config.compare.recently_used,
+ require "clangd_extensions.cmp_scores",
+ cmp.config.compare.kind,
+ cmp.config.compare.sort_text,
+ cmp.config.compare.length,
+ cmp.config.compare.order,
+ },
+ },
+ mapping = cmp.mapping.preset.insert {
+ ["<C-d>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ -- ["<C-n>"] = cmp.mapping.select_next_item,
+ -- ["<C-p>"] = cmp.mapping.select_prev_item,
+ ["<C-y>"] = cmp.mapping(cmp.mapping.confirm { select = true }, { "i", "c" }),
+ -- Will move you to the right of each of the snippet's expansion locations.
+ ["<C-l>"] = cmp.mapping(function()
+ if luasnip.expand_or_locally_jumpable() then
+ luasnip.expand_or_jump()
+ end
+ end, { "i", "s" }),
+ -- Will move you to the left of each of the snippet's expansion locations.
+ ["<C-h>"] = cmp.mapping(function()
+ if luasnip.locally_jumpable(-1) then
+ luasnip.jump(-1)
+ end
+ end, { "i", "s" }),
+ },
+ sources = {
+ { name = "nvim_lsp" },
+ { name = "luasnip" },
+ { name = "path" },
+ { name = "buffer" },
+ },
+}
+
+-- cmp.setup.cmdline(":", {
+-- mapping = cmp.mapping.preset.cmdline(),
+-- sources = cmp.config.sources({
+-- { name = "path" },
+-- }, {
+-- { name = "cmdline" },
+-- }),
+-- matching = { disallow_symbol_nonprefix_matching = false },
+-- })
+
+require("nvim-autopairs").setup {}
+
+-- Automatically add `(` after selecting a function or method
+local cmp_autopairs = require "nvim-autopairs.completion.cmp"
+cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
diff --git a/nvim/.config/nvim/lua/bundles/colorscheme.lua b/nvim/.config/nvim/lua/bundles/colorscheme.lua
new file mode 100644
index 0000000..ce544f8
--- /dev/null
+++ b/nvim/.config/nvim/lua/bundles/colorscheme.lua
@@ -0,0 +1 @@
+vim.cmd "colorscheme kanagawa"
diff --git a/nvim/.config/nvim/lua/bundles/telescope.lua b/nvim/.config/nvim/lua/bundles/telescope.lua
new file mode 100755
index 0000000..b29c18d
--- /dev/null
+++ b/nvim/.config/nvim/lua/bundles/telescope.lua
@@ -0,0 +1,16 @@
+require("telescope").setup {
+ defaults = {
+ mappints = {},
+ },
+ pickers = {},
+ extensions = {
+ ["ui-select"] = {
+ require("telescope.themes").get_dropdown(),
+ },
+ },
+}
+
+pcall(require("telescope").load_extension, "fzf")
+pcall(require("telescope").load_extension, "smart_history")
+pcall(require("telescope").load_extension, "rest")
+pcall(require("telescope").load_extension, "ui-select")
diff --git a/nvim/.config/nvim/lua/custom/autopairs.lua b/nvim/.config/nvim/lua/custom/autopairs.lua
deleted file mode 100644
index 00c7812..0000000
--- a/nvim/.config/nvim/lua/custom/autopairs.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-require("nvim-autopairs").setup {}
--- Automatically add `(` after selecting a function or method
-local cmp_autopairs = require "nvim-autopairs.completion.cmp"
-local cmp = require "cmp"
-cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
diff --git a/nvim/.config/nvim/lua/custom/cmake.lua b/nvim/.config/nvim/lua/custom/cmake.lua
deleted file mode 100644
index bef1fc7..0000000
--- a/nvim/.config/nvim/lua/custom/cmake.lua
+++ /dev/null
@@ -1 +0,0 @@
-require("cmake").setup { cmake = { parallel_jobs = #vim.uv.cpu_info() } }
diff --git a/nvim/.config/nvim/lua/custom/cmp.lua b/nvim/.config/nvim/lua/custom/cmp.lua
deleted file mode 100644
index 5cbb2e8..0000000
--- a/nvim/.config/nvim/lua/custom/cmp.lua
+++ /dev/null
@@ -1,69 +0,0 @@
-vim.opt.completeopt = { "menu", "menuone", "noselect" }
-vim.opt.shortmess:append "c"
-
-local lspkind = require "lspkind"
-lspkind.init {}
-
-local luasnip = require "luasnip"
-luasnip.config.setup {}
-require("luasnip.loaders.from_vscode").lazy_load()
-
-local cmp = require "cmp"
-
-cmp.setup {
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end,
- },
- completion = { completeopt = "menu,menuone,noinsert" },
- mapping = cmp.mapping.preset.insert {
- -- ["<C-n>"] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert },
- -- ["<C-p>"] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert },
- ["<C-y>"] = cmp.mapping(
- cmp.mapping.confirm {
- behavior = cmp.ConfirmBehavior.Insert,
- select = true,
- },
- { "i", "c" }
- ),
- ["<C-b>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- -- ["<C-y>"] = cmp.mapping.confirm { select = true },
- -- -- Will move you to the right of each of the snippet's expansion locations.
- ["<C-l>"] = cmp.mapping(function()
- if luasnip.expand_or_locally_jumpable() then
- luasnip.expand_or_jump()
- end
- end, { "i", "s" }),
- -- Will move you to the left of each of the snippet's expansion locations.
- ["<C-h>"] = cmp.mapping(function()
- if luasnip.locally_jumpable(-1) then
- luasnip.jump(-1)
- end
- end, { "i", "s" }),
- },
- sources = {
- { name = "nvim_lsp" },
- { name = "luasnip" },
- { name = "path" },
- { name = "buffer" },
- },
-}
-
--- Setup up vim-dadbod
-cmp.setup.filetype({ "sql" }, {
- sources = {
- { name = "vim-dadbod-completion" },
- { name = "buffer" },
- },
-})
-
-luasnip.config.set_config {
- history = false,
- updateevents = "TextChanged,TextChangedI",
-}
-
-for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/custom/snippets/*.lua", true)) do
- loadfile(ft_path)()
-end
diff --git a/nvim/.config/nvim/lua/custom/gitsigns.lua b/nvim/.config/nvim/lua/custom/gitsigns.lua
deleted file mode 100644
index 2a12ebb..0000000
--- a/nvim/.config/nvim/lua/custom/gitsigns.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local gitsigns = require "gitsigns"
-
-local on_attach = function(bufnr)
- local function map(mode, l, r, opts)
- opts = opts or {}
- opts.buffer = bufnr
- vim.keymap.set(mode, l, r, opts)
- end
-
- -- Navigation
- map("n", "]c", function()
- if vim.wo.diff then
- vim.cmd.normal { "]c", bang = true }
- else
- gitsigns.nav_hunk "next"
- end
- end)
-
- map("n", "[c", function()
- if vim.wo.diff then
- vim.cmd.normal { "[c", bang = true }
- else
- gitsigns.nav_hunk "prev"
- end
- end)
-
- -- Actions
- map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" })
- map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" })
- map("v", "<leader>gs", function()
- gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
- end, { desc = "Stage hunk" })
- map("v", "<leader>gr", function()
- gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
- end, { desc = "Reset hunk" })
- map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" })
- map("n", "<leader>gu", gitsigns.undo_stage_hunk, { desc = "Undo stage hunk" })
- map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" })
- map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" })
- map("n", "<leader>gb", function()
- gitsigns.blame_line { full = true }
- end, { desc = "Blame line" })
- map("n", "<leader>Tb", gitsigns.toggle_current_line_blame, { desc = "Toggle blame line" })
- map("n", "<leader>Td", gitsigns.toggle_deleted, { desc = "Toggle deleted" })
- map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff this" })
- map("n", "<leader>gD", function()
- gitsigns.diffthis "~"
- end, { desc = "Diff this ~" })
-end
-
-gitsigns.setup {
- signs = {
- add = { text = "+" },
- change = { text = "~" },
- delete = { text = "_" },
- topdelete = { text = "‾" },
- changedelete = { text = "~" },
- },
- on_attach = on_attach,
-}
diff --git a/nvim/.config/nvim/lua/custom/harpoon.lua b/nvim/.config/nvim/lua/custom/harpoon.lua
deleted file mode 100644
index 06a20d7..0000000
--- a/nvim/.config/nvim/lua/custom/harpoon.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local harpoon = require "harpoon"
-harpoon:setup()
-
-vim.keymap.set("n", "<leader>a", function()
- harpoon:list():add()
-end)
-
-vim.keymap.set("n", "<leader><leader>", function()
- harpoon.ui:toggle_quick_menu(harpoon:list())
-end)
-
-vim.keymap.set("n", "<c-n>", function()
- require("harpoon"):list():next()
-end)
-
-vim.keymap.set("n", "<c-p>", function()
- require("harpoon"):list():prev()
-end)
-
--- Set <space>1..<space>5 be my shortcuts to moving to the files
-for _, idx in ipairs { 1, 2, 3, 4, 5 } do
- vim.keymap.set("n", string.format("<leader>%d", idx), function()
- harpoon:list():select(idx)
- end)
-end
diff --git a/nvim/.config/nvim/lua/custom/init.lua b/nvim/.config/nvim/lua/custom/init.lua
deleted file mode 100644
index 9e39d84..0000000
--- a/nvim/.config/nvim/lua/custom/init.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-require("chell.globals")
-require("chell.options")
-require("chell.keymaps")
-require("chell.autocmds")
-require("chell.lazy")
diff --git a/nvim/.config/nvim/lua/custom/leap.lua b/nvim/.config/nvim/lua/custom/leap.lua
deleted file mode 100644
index 5f25e50..0000000
--- a/nvim/.config/nvim/lua/custom/leap.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-vim.keymap.set("n", "s", "<Plug>(leap)", { desc = "Leap" })
-vim.keymap.set("n", "S", "<Plug>(leap-from-window)", { desc = "Leap other window" })
-require("leap").setup { safe_labels = {} }
diff --git a/nvim/.config/nvim/lua/custom/lsp.lua b/nvim/.config/nvim/lua/custom/lsp.lua
deleted file mode 100644
index 47ca1d3..0000000
--- a/nvim/.config/nvim/lua/custom/lsp.lua
+++ /dev/null
@@ -1,113 +0,0 @@
---TODO: make it prettier
-
-require("neodev").setup {
- library = {
- plugins = { "nvim-dap-ui" },
- types = true,
- },
-}
-
-local capabilities = nil
-if pcall(require, "cmp_nvim_lsp") then
- capabilities = require("cmp_nvim_lsp").default_capabilities()
-end
-
-local lspconfig = require "lspconfig"
-
-local servers = {
- bashls = true,
- gopls = true,
- lua_ls = true,
- rust_analyzer = true,
-
- jsonls = {
- settings = {
- json = {
- schemas = require("schemastore").json.schemas(),
- validate = { enable = true },
- },
- },
- },
-
- yamlls = {
- settings = {
- yaml = {
- schemaStore = {
- enable = false,
- url = "",
- },
- schemas = require("schemastore").yaml.schemas(),
- },
- },
- },
-
- clangd = {
- init_options = { clangdFileStatus = true },
- },
-}
-
-for name, config in pairs(servers) do
- if config == true then
- config = {}
- end
- config = vim.tbl_deep_extend("force", {}, {
- capabilities = capabilities,
- }, config)
-
- lspconfig[name].setup(config)
-end
-
-local disable_semantic_tokens = {
- lua = true,
-}
-
-vim.api.nvim_create_autocmd("LspAttach", {
- callback = function(args)
- local bufnr = args.buf
- local client = assert(vim.lsp.get_client_by_id(args.data.client_id), "must have valid client")
- local builtin = require "telescope.builtin"
-
- vim.opt_local.omnifunc = "v:lua.vim.lsp.omnifunc"
- vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = 0 })
- vim.keymap.set("n", "gr", vim.lsp.buf.references, { buffer = 0 })
- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = 0 })
- vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, { buffer = 0 })
- vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename, { buffer = 0 })
- vim.keymap.set("n", "<leader>la", vim.lsp.buf.code_action, { buffer = 0 })
- vim.keymap.set("n", "<leader>ls", builtin.lsp_document_symbols, { desc = "[D]ocument [S]ymbols" })
- vim.keymap.set("n", "<leader>lw", builtin.lsp_dynamic_workspace_symbols, { desc = "[W]orkspace Symbols" })
- -- nmap("gd", builtin.lsp_definitions, { desc = "[G]oto [D]efinition" })
- -- nmap("gr", builtin.lsp_references, { desc = "[G]oto [R]eferences" })
- -- nmap("gI", builtin.lsp_implementations, { desc = "[G]oto [I]mplementation" })
-
- local filetype = vim.bo[bufnr].filetype
- if disable_semantic_tokens[filetype] then
- client.server_capabilities.semanticTokensProvider = nil
- end
-
- if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
- vim.keymap.set("n", "<leader>Th", function()
- vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
- end, { desc = "[T]oggle Inlay [H]ints" })
- end
- end,
-})
-
--- Autoformatting Setup
-require("conform").setup {
- formatters_by_ft = {
- lua = { "stylua" },
- cpp = { "clang-format" },
- c = { "clang-format" },
- },
-}
-
-vim.api.nvim_create_autocmd("BufWritePre", {
- callback = function(args)
- require("conform").format {
- bufnr = args.buf,
- lsp_fallback = true,
- quiet = true,
- }
- end,
-})
diff --git a/nvim/.config/nvim/lua/custom/plugins/autopairs.lua b/nvim/.config/nvim/lua/custom/plugins/autopairs.lua
deleted file mode 100644
index 170b337..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/autopairs.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-return {
- "windwp/nvim-autopairs",
- event = "InsertEnter",
- -- Optional dependency
- dependencies = { "hrsh7th/nvim-cmp" },
- config = function()
- require "custom.autopairs"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/bqf.lua b/nvim/.config/nvim/lua/custom/plugins/bqf.lua
deleted file mode 100644
index 92630a8..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/bqf.lua
+++ /dev/null
@@ -1 +0,0 @@
-return { "kevinhwang91/nvim-bqf", ft = "qf" }
diff --git a/nvim/.config/nvim/lua/custom/plugins/celluar.lua b/nvim/.config/nvim/lua/custom/plugins/celluar.lua
deleted file mode 100644
index f90161e..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/celluar.lua
+++ /dev/null
@@ -1 +0,0 @@
-return { "Eandrju/cellular-automaton.nvim" }
diff --git a/nvim/.config/nvim/lua/custom/plugins/cmake.lua b/nvim/.config/nvim/lua/custom/plugins/cmake.lua
deleted file mode 100644
index 8bd0207..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/cmake.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-if vim.loop.os_uname().sysname ~= "Darwin" then
- return {
- "daniilrozanov/cmake.nvim",
- lazy = false,
- config = function()
- require "custom.cmake"
- end,
- }
-else
- return {
- dir = "~/repositories/cmake.nvim",
- lazy = false,
- config = function()
- require "custom.cmake"
- end,
- }
-end
diff --git a/nvim/.config/nvim/lua/custom/plugins/cmp.lua b/nvim/.config/nvim/lua/custom/plugins/cmp.lua
deleted file mode 100644
index 83fb5a2..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/cmp.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {
- {
- "hrsh7th/nvim-cmp",
- event = "InsertEnter",
- priority = 100,
- dependencies = {
- "onsails/lspkind.nvim",
- "hrsh7th/cmp-nvim-lsp",
- "hrsh7th/cmp-path",
- "hrsh7th/cmp-buffer",
- {
- "L3MON4D3/LuaSnip",
- build = "make install_jsregexp",
- dependencies = { "rafamadriz/friendly-snippets" },
- },
- "saadparwaiz1/cmp_luasnip",
- },
- config = function()
- require "custom.cmp"
- end,
- },
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/comment.lua b/nvim/.config/nvim/lua/custom/plugins/comment.lua
deleted file mode 100644
index 46f5032..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/comment.lua
+++ /dev/null
@@ -1 +0,0 @@
-return { 'numToStr/Comment.nvim' }
diff --git a/nvim/.config/nvim/lua/custom/plugins/conform.lua b/nvim/.config/nvim/lua/custom/plugins/conform.lua
deleted file mode 100644
index 2fcf210..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/conform.lua
+++ /dev/null
@@ -1,36 +0,0 @@
-return { -- Autoformat
- "stevearc/conform.nvim",
- lazy = false,
- keys = {
- {
- "<leader>lf",
- function()
- require("conform").format { async = true, lsp_fallback = true }
- end,
- mode = "",
- desc = "Format buffer",
- },
- },
- opts = {
- notify_on_error = false,
- format_on_save = function(bufnr)
- -- Disable "format_on_save lsp_fallback" for languages that don't
- -- have a well standardized coding style. You can add additional
- -- languages here or re-enable it for the disabled ones.
- local disable_filetypes = { c = true, cpp = true }
- return {
- timeout_ms = 500,
- lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
- }
- end,
- formatters_by_ft = {
- lua = { "stylua" },
- -- Conform can also run multiple formatters sequentially
- -- python = { "isort", "black" },
- --
- -- You can use a sub-list to tell conform to run *until* a formatter
- -- is found.
- -- javascript = { { "prettierd", "prettier" } },
- },
- },
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/dadbod.lua b/nvim/.config/nvim/lua/custom/plugins/dadbod.lua
deleted file mode 100644
index 8411fa5..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/dadbod.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-return {
- "kristijanhusak/vim-dadbod-ui",
- dependencies = {
- { "tpope/vim-dadbod", lazy = true },
- { "kristijanhusak/vim-dadbod-completion", ft = { "sql", "mysql", "plsql" }, lazy = true },
- },
- cmd = {
- "DBUI",
- "DBUIToggle",
- "DBUIAddConnection",
- "DBUIFindBuffer",
- },
- init = function()
- vim.g.db_ui_use_nerd_fonts = 1
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua b/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua
deleted file mode 100644
index 3da8ed4..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/gitsigns.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-return {
- "lewis6991/gitsigns.nvim",
- config = function()
- require "custom.gitsigns"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/harpoon.lua b/nvim/.config/nvim/lua/custom/plugins/harpoon.lua
deleted file mode 100644
index aa8dae8..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/harpoon.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-return {
- "ThePrimeagen/harpoon",
- branch = "harpoon2",
- dependencies = { "nvim-lua/plenary.nvim" },
- config = function()
- require "custom.harpoon"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/leap.lua b/nvim/.config/nvim/lua/custom/plugins/leap.lua
deleted file mode 100644
index 5566ecc..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/leap.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-return {
- "ggandor/leap.nvim",
- lazy = false, --TODO: lazy
- config = function()
- require "custom.leap"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/lsp.lua b/nvim/.config/nvim/lua/custom/plugins/lsp.lua
deleted file mode 100644
index ac87b84..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/lsp.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {
- {
- "neovim/nvim-lspconfig",
- dependencies = {
- "folke/neodev.nvim",
- "williamboman/mason.nvim",
- "williamboman/mason-lspconfig.nvim",
- "WhoIsSethDaniel/mason-tool-installer.nvim",
-
- { "j-hui/fidget.nvim", opts = {} },
-
- -- Autoformatting
- "stevearc/conform.nvim",
-
- -- Schema information
- "b0o/SchemaStore.nvim",
- },
- config = function()
- require "custom.lsp"
- end,
- },
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/lualine.lua b/nvim/.config/nvim/lua/custom/plugins/lualine.lua
deleted file mode 100644
index 661f7fc..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/lualine.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-return {
- "nvim-lualine/lualine.nvim",
- dependencies = { "nvim-tree/nvim-web-devicons" },
- config = true,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/mini.lua b/nvim/.config/nvim/lua/custom/plugins/mini.lua
deleted file mode 100644
index 654222e..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/mini.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-return { -- Collection of various small independent plugins/modules
- "echasnovski/mini.nvim",
- dependencies = "nvim-treesitter/nvim-treesitter",
- config = function()
- -- Better Around/Inside textobjects
- require("mini.ai").setup { n_lines = 500 }
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/neorg.lua b/nvim/.config/nvim/lua/custom/plugins/neorg.lua
deleted file mode 100644
index 455b80d..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/neorg.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {}
--- return {
--- "nvim-neorg/neorg",
--- lazy = false,
--- version = "*",
--- config = function()
--- require("neorg").setup {
--- load = {
--- ["core.defaults"] = {},
--- ["core.concealer"] = {},
--- ["core.dirman"] = {
--- config = {
--- workspaces = {
--- notes = "~/notes"
--- },
--- default_workspace = "notes"
--- }
--- },
--- }
--- }
--- end,
--- }
diff --git a/nvim/.config/nvim/lua/custom/plugins/sort.lua b/nvim/.config/nvim/lua/custom/plugins/sort.lua
deleted file mode 100644
index f5483e6..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/sort.lua
+++ /dev/null
@@ -1 +0,0 @@
-return { "sQVe/sort.nvim" }
diff --git a/nvim/.config/nvim/lua/custom/plugins/substitude.lua b/nvim/.config/nvim/lua/custom/plugins/substitude.lua
deleted file mode 100644
index bb8bd9f..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/substitude.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-return {
- "gbprod/substitute.nvim",
- config = function()
- require "custom.substitude"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/surround.lua b/nvim/.config/nvim/lua/custom/plugins/surround.lua
deleted file mode 100644
index e3c3c6c..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/surround.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-return {
- "kylechui/nvim-surround",
- event = { "BufReadPre", "BufNewFile" },
- version = "*",
- config = true,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/telescope.lua b/nvim/.config/nvim/lua/custom/plugins/telescope.lua
deleted file mode 100644
index 00be4c1..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/telescope.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-return {
- "nvim-telescope/telescope.nvim",
- event = "VimEnter",
- branch = "0.1.x",
- dependencies = {
- "nvim-lua/plenary.nvim",
- { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
- { "nvim-telescope/telescope-smart-history.nvim" },
- { "nvim-telescope/telescope-ui-select.nvim" },
- { "nvim-tree/nvim-web-devicons" },
- },
- config = function()
- require "custom.telescope"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/themes.lua b/nvim/.config/nvim/lua/custom/plugins/themes.lua
deleted file mode 100644
index 0f9ca03..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/themes.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-return {
- { "ellisonleao/gruvbox.nvim", priority = 1000, config = function()
- require("gruvbox").setup({})
- vim.cmd([[colorscheme gruvbox]])
- end
- },
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua b/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua
deleted file mode 100644
index 4b46f89..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/todo-comments.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-return {
- "folke/todo-comments.nvim",
- event = "VimEnter",
- dependencies = { "nvim-lua/plenary.nvim" },
- opts = { signs = false },
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua b/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua
deleted file mode 100644
index 8775389..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/toggleterm.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-return {
- "akinsho/toggleterm.nvim",
- version = "*",
- config = function()
- require "custom.toggleterm"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/treesitter.lua b/nvim/.config/nvim/lua/custom/plugins/treesitter.lua
deleted file mode 100644
index dd37a3a..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/treesitter.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-return {
- "nvim-treesitter/nvim-treesitter",
- build = ":TSUpdate",
- config = function()
- require "custom.treesitter"
- end,
-}
diff --git a/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua b/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua
deleted file mode 100644
index a564707..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/vim-sleuth.lua
+++ /dev/null
@@ -1 +0,0 @@
-return {}
diff --git a/nvim/.config/nvim/lua/custom/plugins/which-key.lua b/nvim/.config/nvim/lua/custom/plugins/which-key.lua
deleted file mode 100644
index 42ebe43..0000000
--- a/nvim/.config/nvim/lua/custom/plugins/which-key.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-return {
- "folke/which-key.nvim",
- event = "VeryLazy",
- opts = {
- -- TODO: move this to where mappings created
- spec = {
- { "<leader>f", desc = "Find" },
- { "<leader>T", desc = "Toggle options" },
- { "<leader>t", desc = "ToggleTerm" },
- { "<leader>g", desc = "Git" },
- { "<leader>l", desc = "LSP" },
- { "<leader><tab>", desc = "Tab pages" },
- }
- },
- keys = {
- {
- "<leader>?",
- function()
- require("which-key").show({ global = false })
- end,
- desc = "Buffer Local Keymaps (which-key)",
- },
- },
-}
diff --git a/nvim/.config/nvim/lua/custom/substitude.lua b/nvim/.config/nvim/lua/custom/substitude.lua
deleted file mode 100644
index e666195..0000000
--- a/nvim/.config/nvim/lua/custom/substitude.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-require("substitute").setup {}
-
-vim.keymap.set("n", ",", require("substitute").operator, { noremap = true })
-vim.keymap.set("n", ",,", require("substitute").line, { noremap = true })
--- vim.keymap.set("n", "", require("substitute").eol, { noremap = true })
-vim.keymap.set("x", ",", require("substitute").visual, { noremap = true })
diff --git a/nvim/.config/nvim/lua/custom/telescope.lua b/nvim/.config/nvim/lua/custom/telescope.lua
deleted file mode 100644
index 219264b..0000000
--- a/nvim/.config/nvim/lua/custom/telescope.lua
+++ /dev/null
@@ -1,82 +0,0 @@
--- local data = assert(vim.fn.stdpath "data") --[[@as string]]
-
-require("telescope").setup {
- extensions = {
- fzf = {},
- wrap_results = true,
- history = {
- -- path = vim.fs.joinpath(data, "telescope_history.sqlite3"),
- limit = 100,
- },
- ["ui-select"] = {
- require("telescope.themes").get_dropdown(),
- },
- },
- defaults = {
- -- configure to use ripgrep
- vimgrep_arguments = {
- "rg",
- "--follow", -- Follow symbolic links
- "--hidden", -- Search for hidden files
- "--no-heading", -- Don't group matches by each file
- "--with-filename", -- Print the file path with the matched lines
- "--line-number", -- Show line numbers
- "--column", -- Show column numbers
- "--smart-case", -- Smart case search
-
- -- Exclude some patterns from search
- "--glob=!**/.git/*",
- "--glob=!**/.idea/*",
- "--glob=!**/.vscode/*",
- "--glob=!**/build/*",
- "--glob=!**/dist/*",
- "--glob=!**/yarn.lock",
- "--glob=!**/package-lock.json",
- },
- },
- pickers = {
- find_files = {
- hidden = true,
- -- needed to exclude some files & dirs from general search
- -- when not included or specified in .gitignore
- find_command = {
- "rg",
- "--files",
- "--hidden",
- "--glob=!**/.git/*",
- "--glob=!**/.idea/*",
- "--glob=!**/.vscode/*",
- "--glob=!**/build/*",
- "--glob=!**/dist/*",
- "--glob=!**/yarn.lock",
- "--glob=!**/package-lock.json",
- },
- },
- },
-}
-
-pcall(require("telescope").load_extension, "fzf")
-pcall(require("telescope").load_extension, "smart_history")
-pcall(require("telescope").load_extension, "rest")
-pcall(require("telescope").load_extension, "ui-select")
-
-local builtin = require "telescope.builtin"
-
-vim.keymap.set("n", "<leader>fh", builtin.help_tags, { desc = "Search [H]elp" })
-vim.keymap.set("n", "<leader>fk", builtin.keymaps, { desc = "Search [K]eymaps" })
-vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Search [F]iles" })
-vim.keymap.set("n", "<leader>fs", builtin.builtin, { desc = "Search [S]elect Telescope" })
-vim.keymap.set("n", "<leader>fw", builtin.grep_string, { desc = "Search current [W]ord" })
-vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Search by [G]rep" })
-vim.keymap.set("n", "<leader>fd", builtin.diagnostics, { desc = "Search [D]iagnostics" })
-vim.keymap.set("n", "<leader>fr", builtin.resume, { desc = "Search [R]esume" })
-vim.keymap.set("n", "<leader>f.", builtin.oldfiles, { desc = 'Search Recent Files ("." for repeat)' })
-vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "[ ] Find existing buffers" })
-vim.keymap.set("n", "<leader>fn", function()
- require("telescope.builtin").find_files { cwd = vim.fn.stdpath "config" }
-end, { desc = "Search [N]eovim files" })
-
-vim.keymap.set("n", "<leader>fa", function()
- ---@diagnostic disable-next-line: param-type-mismatch
- builtin.find_files { cwd = vim.fs.joinpath(vim.fn.stdpath "data", "lazy") }
-end)
diff --git a/nvim/.config/nvim/lua/custom/toggleterm.lua b/nvim/.config/nvim/lua/custom/toggleterm.lua
deleted file mode 100644
index 6aafb2f..0000000
--- a/nvim/.config/nvim/lua/custom/toggleterm.lua
+++ /dev/null
@@ -1,41 +0,0 @@
-require("toggleterm").setup {
- size = function(term)
- if term.direction == "horizontal" then
- return 15
- elseif term.direction == "vertical" then
- return vim.o.columns * 0.33
- end
- end,
-}
-
-local Terminal = require("toggleterm.terminal").Terminal
-local on_open = function(_)
- vim.cmd "startinsert!"
- -- vim.keymap.set("n", "q", "<cmd>close<CR>", { noremap = true, silent = true, buffer = term.bufnr })
-end
-local on_close = function(_)
- vim.cmd "startinsert!"
-end
-if vim.fn.executable "lazygit" then
- local lazygit = Terminal:new {
- cmd = "lazygit",
- dir = "git_dir",
- direction = "float",
- on_open = on_open,
- on_close = on_close,
- count = 999,
- }
- vim.keymap.set("n", "<leader>gg", function()
- lazygit:toggle()
- end, { desc = "ToggleTerm LazyGit" })
-end
-
-vim.keymap.set("n", "<leader>tf", function()
- Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float")
-end)
-vim.keymap.set("n", "<leader>tv", function()
- Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "vertical")
-end)
-vim.keymap.set("n", "<leader>th", function()
- Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "horizontal")
-end)
diff --git a/nvim/.config/nvim/lua/custom/treesitter.lua b/nvim/.config/nvim/lua/custom/treesitter.lua
deleted file mode 100644
index 5f8e8fb..0000000
--- a/nvim/.config/nvim/lua/custom/treesitter.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local M = {}
-
-M.setup = function()
- local group = vim.api.nvim_create_augroup("custom-treesitter", { clear = true })
-
- require("nvim-treesitter.configs").setup {
- ensure_installed = {
- "bash",
- "c",
- "diff",
- "html",
- "lua",
- "luadoc",
- "json",
- "markdown",
- "vim",
- "vimdoc",
- "cpp",
- "cmake",
- "query",
- "http",
- "proto",
- "xml",
- "graphql",
- },
- highlight = { enable = true },
- indent = { enable = true },
- }
-
- local syntax_on = {
- -- elixir = true,
- -- php = true,
- }
-
- vim.api.nvim_create_autocmd("FileType", {
- group = group,
- callback = function(args)
- local bufnr = args.buf
- local ft = vim.bo[bufnr].filetype
- pcall(vim.treesitter.start)
-
- -- if syntax_on[ft] then
- -- vim.bo[bufnr].syntax = "on"
- -- end
- end,
- })
-end
-
-M.setup()
-
-return M
diff --git a/nvim/.config/nvim/lua/globals.lua b/nvim/.config/nvim/lua/globals.lua
new file mode 100644
index 0000000..8e642e9
--- /dev/null
+++ b/nvim/.config/nvim/lua/globals.lua
@@ -0,0 +1,2 @@
+vim.g.maplocalleader = ","
+vim.g.mapleader = " "
diff --git a/nvim/.config/nvim/lua/keymaps.lua b/nvim/.config/nvim/lua/keymaps.lua
new file mode 100755
index 0000000..dc66b77
--- /dev/null
+++ b/nvim/.config/nvim/lua/keymaps.lua
@@ -0,0 +1,246 @@
+-- Keymaps working on Russian layout
+local function escape(str)
+ local escape_chars = [[;,."|\]]
+ return vim.fn.escape(str, escape_chars)
+end
+
+local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]]
+local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]]
+local ru = [[ёйцукенгшщзхъфывапролджэячсмить]]
+local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]]
+vim.opt.langmap = vim.fn.join({
+ escape(ru_shift) .. ";" .. escape(en_shift),
+ escape(ru) .. ";" .. escape(en),
+}, ",")
+
+-- Actions
+vim.keymap.set("n", "<leader>w", "<cmd>w<cr>", { desc = "Write buffer" })
+vim.keymap.set("n", "<leader>W", "<cmd>wall<cr>", { desc = "Write all" })
+vim.keymap.set("n", "<leader>r", '<cmd>!"%:p"<cr>', { desc = "Run file in shell" })
+vim.keymap.set("n", "<leader>q", "<cmd>q<cr>", { desc = "Quit window" })
+vim.keymap.set("n", "<leader>Q", "<cmd>wqall<cr>", { desc = "Quit" })
+vim.keymap.set("v", "x", "gg0oG$", { desc = "Select all" })
+vim.keymap.set("n", "dx", "ggdG", { desc = "Delete all" })
+
+-- UI navigation
+vim.keymap.set("n", "<c-j>", "<c-w><c-j>", { desc = "Move to window down" })
+vim.keymap.set("n", "<c-k>", "<c-w><c-k>", { desc = "Move to window up" })
+vim.keymap.set("n", "<c-l>", "<c-w><c-l>", { desc = "Move to window right" })
+vim.keymap.set("n", "<c-h>", "<c-w><c-h>", { desc = "Move to window left" })
+
+vim.keymap.set("n", "<leader>s", "<cmd>vsplit<cr>", { desc = "Split vert." })
+vim.keymap.set("n", "<leader>S", "<cmd>split<cr>", { desc = "Split hor." })
+
+vim.keymap.set("n", "<m-t>", "<cmd>tabnew<cr>", { desc = "New Tab" })
+vim.keymap.set("n", "<s-m-t>", "<cmd>tabclose<cr>", { desc = "Close Tab" })
+
+vim.keymap.set("n", "<C-c>", "<cmd>bd<CR>", { desc = "closes the current buffer", silent = true })
+vim.keymap.set("n", "<C-n>", "<cmd>bn<CR>", { desc = "cycles to the next buffer", silent = true })
+vim.keymap.set("n", "<C-p>", "<cmd>bp<CR>", { desc = "cycles to the previous buffer", silent = true })
+
+-- Cmdline
+vim.keymap.set("c", "<c-n>", "<Down>")
+vim.keymap.set("c", "<c-p>", "<Up>")
+
+-- Treesitter text objects
+-- select
+vim.keymap.set({ "x", "o" }, "aa", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@parameter.outer", "textobjects")
+end, { desc = "parameter" })
+vim.keymap.set({ "x", "o" }, "ia", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@parameter.inner", "textobjects")
+end, { desc = "parameter" })
+vim.keymap.set({ "x", "o" }, "af", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@function.outer", "textobjects")
+end, { desc = "function" })
+vim.keymap.set({ "x", "o" }, "if", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@function.inner", "textobjects")
+end, { desc = "function" })
+vim.keymap.set({ "x", "o" }, "ac", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@class.outer", "textobjects")
+end, { desc = "class" })
+vim.keymap.set({ "x", "o" }, "ic", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@class.inner", "textobjects")
+end, { desc = "class" })
+vim.keymap.set({ "x", "o" }, "as", function()
+ require("nvim-treesitter-textobjects.select").select_textobject("@local.scope", "locals")
+end, { desc = "scope" })
+-- move (useless since I have leap but anyway this is default behaviour)
+vim.keymap.set({ "n", "x", "o" }, "]m", function()
+ require("nvim-treesitter-textobjects.move").goto_next_start("@function.outer", "textobjects")
+end, { desc = "Next start of method" })
+vim.keymap.set({ "n", "x", "o" }, "]M", function()
+ require("nvim-treesitter-textobjects.move").goto_next_end("@function.outer", "textobjects")
+end, { desc = "Next end of method" })
+vim.keymap.set({ "n", "x", "o" }, "[m", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_start("@function.outer", "textobjects")
+end, { desc = "Next start of method" })
+vim.keymap.set({ "n", "x", "o" }, "[M", function()
+ require("nvim-treesitter-textobjects.move").goto_previous_end("@function.outer", "textobjects")
+end, { desc = "Next end of method" })
+
+-- Terminal
+vim.keymap.set("t", "<C-n>", "<C-\\><C-n>", { desc = "To normal mode" })
+
+-- Leap
+vim.keymap.set({ "n", "x", "o" }, "s", "<Plug>(leap)", { desc = "Leap" })
+vim.keymap.set("n", "S", "<Plug>(leap-from-window)", { desc = "Leap other window" })
+vim.keymap.set({ "n", "x", "o" }, "gs", function()
+ require("leap.remote").action()
+end, { desc = "Leap remote action" })
+
+-- Substitute
+vim.keymap.set("n", ";", function()
+ require("substitute").operator()
+end, { noremap = true })
+vim.keymap.set("x", ";", function()
+ require("substitute").visual()
+end, { noremap = true })
+
+-- Zen
+vim.keymap.set("n", "<leader>tz", "<cmd>ZenMode<cr>", { desc = "Zen mode" })
+
+-- Oil
+vim.keymap.set("n", "<leader>e", "<cmd>Oil<cr>", { desc = "Open file explorer" })
+
+-- Telescope
+vim.keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Files" })
+vim.keymap.set("n", "<leader>fw", "<cmd>Telescope grep_string<cr>", { desc = "Current Word" })
+vim.keymap.set("n", "<leader>fg", "<cmd>Telescope live_grep<cr>", { desc = "Live Grep" })
+vim.keymap.set("n", "<leader>fd", "<cmd>Telescope diagnostics<cr>", { desc = "Diagnostics" })
+-- vim.keymap.set("n", "<leader>fr", "<cmd>Telescope resume<cr>", { desc = "Resume" })
+-- vim.keymap.set("n", "<leader>f.", "<cmd>Telescope oldfiles<cr>", { desc = "Recent Files" })
+-- vim.keymap.set("n", "<leader>fs", "<cmd>Telescope builtin<cr>", { desc = "Select Telescope" })
+-- vim.keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" })
+-- vim.keymap.set("n", "<leader>fk", "<cmd>Telescope keymaps<cr>", { desc = "Keymaps" })
+vim.keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = " Find existing buffers" })
+vim.keymap.set("n", "<leader>ft", "<cmd>TodoTelescope<cr>", { desc = " Find existing buffers" })
+vim.keymap.set("n", "<leader>fn", function()
+ require("telescope.builtin").find_files { cwd = vim.fn.stdpath "config" }
+end, { desc = "Neovim files" })
+
+-- Neogen
+vim.keymap.set("n", "<leader>o", "<cmd>Neogen<cr>", { desc = "Gen current item's doc", silent = true })
+
+-- LSP
+local lsp = function(bufnr)
+ local bufopts = function(desc)
+ return { noremap = true, silent = true, buffer = bufnr, desc = desc }
+ end
+ vim.keymap.set("n", "<leader>lt", vim.lsp.buf.type_definition, bufopts "Go to type definition")
+ vim.keymap.set("n", "<leader>la", vim.lsp.buf.format, bufopts "Format")
+ vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts "Goto declaration")
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts "Goto definition")
+end
+
+-- Neogit
+vim.keymap.set("n", "<leader>gg", "<cmd>Neogit<cr>", { desc = "Neogit" })
+
+-- GitSigns
+local gitsigns = function(bufnr)
+ local gitsigns = require "gitsigns"
+
+ local function map(mode, l, r, opts)
+ opts = opts or {}
+ opts.buffer = bufnr
+ vim.keymap.set(mode, l, r, opts)
+ end
+
+ -- Navigation
+ map("n", "]c", function()
+ if vim.wo.diff then
+ vim.cmd.normal { "]c", bang = true }
+ else
+ gitsigns.nav_hunk "next"
+ end
+ end)
+
+ map("n", "[c", function()
+ if vim.wo.diff then
+ vim.cmd.normal { "[c", bang = true }
+ else
+ gitsigns.nav_hunk "prev"
+ end
+ end)
+
+ -- Actions
+ map("n", "<leader>gs", gitsigns.stage_hunk, { desc = "Stage hunk" })
+ map("n", "<leader>gr", gitsigns.reset_hunk, { desc = "Reset hunk" })
+ map("v", "<leader>gs", function()
+ gitsigns.stage_hunk { vim.fn.line ".", vim.fn.line "v" }
+ end, { desc = "Stage hunk" })
+
+ map("v", "<leader>gr", function()
+ gitsigns.reset_hunk { vim.fn.line ".", vim.fn.line "v" }
+ end, { desc = "Reset hunk" })
+
+ map("n", "<leader>gS", gitsigns.stage_buffer, { desc = "Stage buffer" })
+ map("n", "<leader>gR", gitsigns.reset_buffer, { desc = "Reset buffer" })
+ map("n", "<leader>gp", gitsigns.preview_hunk, { desc = "Preview hunk" })
+ map("n", "<leader>gi", gitsigns.preview_hunk_inline, { desc = "Preview hunk inline" })
+
+ map("n", "<leader>gb", function()
+ gitsigns.blame_line { full = true }
+ end, { desc = "Blame line full" })
+
+ map("n", "<leader>gd", gitsigns.diffthis, { desc = "Diff" })
+
+ map("n", "<leader>gD", function()
+ gitsigns.diffthis "~"
+ end, { desc = "Diff ~" })
+
+ map("n", "<leader>gQ", function()
+ gitsigns.setqflist "all"
+ end, { desc = "Setqflist all" })
+ map("n", "<leader>gq", gitsigns.setqflist, { desc = "Setqflist" })
+
+ -- Toggles
+ map("n", "<leader>tgb", gitsigns.toggle_current_line_blame, { desc = "Toggle current line blame" })
+ map("n", "<leader>tgw", gitsigns.toggle_word_diff, { desc = "Toggle word diff" })
+ map("n", "<leader>tgs", gitsigns.toggle_signs, { desc = "Toggle signs" })
+
+ -- Text object
+ map({ "o", "x" }, "ih", gitsigns.select_hunk, { desc = "Select hunk" })
+end
+
+-- DAP
+vim.keymap.set("n", "<Leader>db", function()
+ require("dap").toggle_breakpoint()
+end, { desc = "Toggle breakpoint", silent = true })
+vim.keymap.set("n", "<Leader>dc", function()
+ require("dap").continue()
+end, { desc = "Continue", silent = true })
+vim.keymap.set("n", "<Leader>du", function()
+ require("dapui").toggle()
+end, { desc = "Toggle DAP UI", silent = true })
+vim.keymap.set("n", "<Leader>dn", function()
+ require("dap").step_into()
+end, { desc = "Step into" })
+vim.keymap.set("n", "<Leader>dN", function()
+ require("dap").step_over()
+end, { desc = "Step over" })
+vim.keymap.set("n", "<Leader>dp", function()
+ require("dap").step_out()
+end, { desc = "Step out" })
+vim.keymap.set("n", "<Leader>dK", function()
+ require("dap.ui.widgets").hover()
+end, { desc = "hover" })
+
+-- Toggle UI
+local toggle = function(obj)
+ return function()
+ obj.enable(not obj.is_enabled())
+ end
+end
+
+vim.keymap.set("n", "<leader>th", toggle(vim.lsp.inlay_hint), { desc = "Inlay hints" })
+vim.keymap.set("n", "<leader>td", toggle(vim.diagnostic), { desc = "Diagnostics" })
+vim.keymap.set("n", "<leader>tn", function()
+ vim.opt.relativenumber = not vim.o.rnu
+ vim.opt.number = not vim.o.nu
+end, { desc = "Number" })
+vim.keymap.set("n", "<leader>ts", function()
+ vim.opt.spell = not vim.o.spell
+end, { desc = "Spelling" })
+
+return { gitsigns = gitsigns, lsp = lsp }
diff --git a/nvim/.config/nvim/lua/lsp.lua b/nvim/.config/nvim/lua/lsp.lua
new file mode 100755
index 0000000..6f32cbd
--- /dev/null
+++ b/nvim/.config/nvim/lua/lsp.lua
@@ -0,0 +1,16 @@
+vim.lsp.config("*", { root_markers = { ".git" } })
+
+vim.lsp.enable { "clangd", "lua_ls", "marksman", "bashls", "cmake" }
+
+-- Probably I don't need this :\
+vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(ev)
+ local client = vim.lsp.get_client_by_id(ev.data.client_id)
+
+ if client and client:supports_method "textDocument/completion" then
+ vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true })
+ end
+
+ require("keymaps").lsp(ev.buf)
+ end,
+})
diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua
new file mode 100755
index 0000000..488e702
--- /dev/null
+++ b/nvim/.config/nvim/lua/options.lua
@@ -0,0 +1,49 @@
+vim.opt.number = true
+vim.opt.relativenumber = true
+
+vim.opt.mouse = "a"
+
+vim.opt.clipboard = "unnamedplus" -- Sync clipboard between OS and Neovim.
+
+vim.opt.breakindent = true -- Enable break indent
+
+vim.opt.undofile = true -- Save undo history
+
+vim.opt.ignorecase = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
+vim.opt.smartcase = true
+
+vim.opt.signcolumn = "yes" -- Keep signcolumn on by default
+
+vim.opt.updatetime = 250 -- Decrease update time
+
+vim.opt.timeoutlen = 300 -- Decrease mapped sequence wait time
+
+vim.opt.splitright = true -- Configure how new splits should be opened
+vim.opt.splitbelow = true
+
+vim.opt.list = true -- Sets how neovim will display certain whitespace characters in the editor.
+vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
+
+-- vim.opt.inccommand = "split" -- Preview substitutions live
+
+vim.opt.cursorline = true -- Show which line your cursor is on
+
+vim.opt.scrolloff = 10 -- Minimal number of screen lines to keep above and below the cursor.
+vim.opt.sidescrolloff = 5
+
+vim.opt.hlsearch = true -- Set highlight on search
+vim.opt.incsearch = true
+
+vim.opt.laststatus = 3
+
+vim.opt.completeopt = { "menu", "menuone", "noselect" }
+vim.opt.shortmess:append "c"
+
+vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
+
+vim.diagnostic.config { virtual_text = true, virtual_line = false }
+
+vim.opt.spell = true
+vim.opt.spelllang = "en,ru_yo"
+
+vim.opt.background = "dark"
diff --git a/nvim/.config/nvim/lua/plugins/auto-session.lua b/nvim/.config/nvim/lua/plugins/auto-session.lua
new file mode 100644
index 0000000..a8074a8
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/auto-session.lua
@@ -0,0 +1,3 @@
+require("auto-session").setup {
+ suppressed_dirs = { "~/", "~/Downloads", "/" },
+}
diff --git a/nvim/.config/nvim/lua/plugins/clangd_extensions.lua b/nvim/.config/nvim/lua/plugins/clangd_extensions.lua
new file mode 100644
index 0000000..8eafd34
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/clangd_extensions.lua
@@ -0,0 +1,33 @@
+require("clangd_extensions").setup {
+ ast = {
+ -- requires vscode fonticons
+ role_icons = {
+ type = "",
+ declaration = "",
+ expression = "",
+ specifier = "",
+ statement = "",
+ ["template argument"] = "",
+ },
+
+ kind_icons = {
+ Compound = "",
+ Recovery = "",
+ TranslationUnit = "",
+ PackExpansion = "",
+ TemplateTypeParm = "",
+ TemplateTemplateParm = "",
+ TemplateParamObject = "",
+ },
+
+ highlights = {
+ detail = "Comment",
+ },
+ },
+ memory_usage = {
+ border = "none",
+ },
+ symbol_info = {
+ border = "none",
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/cmake.lua b/nvim/.config/nvim/lua/plugins/cmake.lua
new file mode 100755
index 0000000..190b729
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/cmake.lua
@@ -0,0 +1,17 @@
+-- if vim.loop.os_uname().sysname ~= "Darwin" then
+-- return {
+-- "daniilrozanov/cmake.nvim",
+-- lazy = false,
+-- config = function()
+-- require "custom.cmake"
+-- end,
+-- }
+-- else
+-- return {
+-- dir = "~/repositories/cmake.nvim",
+-- lazy = false,
+-- config = function()
+-- require "custom.cmake"
+-- end,
+-- }
+-- end
diff --git a/nvim/.config/nvim/lua/plugins/comment.lua b/nvim/.config/nvim/lua/plugins/comment.lua
new file mode 100755
index 0000000..91f5899
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/comment.lua
@@ -0,0 +1,3 @@
+require("Comment").setup {
+ ignore = "^$",
+}
diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua
new file mode 100755
index 0000000..83fd33d
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/conform.lua
@@ -0,0 +1,17 @@
+vim.api.nvim_create_autocmd("BufWritePre", {
+ callback = function(args)
+ require("conform").format {
+ bufnr = args.buf,
+ lsp_fallback = true,
+ quiet = true,
+ }
+ end,
+})
+
+require("conform").setup {
+ formatters_by_ft = {
+ lua = { "stylua" },
+ cpp = { "clang-format" },
+ c = { "clang-format" },
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/gitsigns.lua b/nvim/.config/nvim/lua/plugins/gitsigns.lua
new file mode 100755
index 0000000..7c91dbe
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/gitsigns.lua
@@ -0,0 +1,21 @@
+require("gitsigns").setup {
+ signs = {
+ add = { text = "┃" },
+ change = { text = "┃" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "┆" },
+ },
+ signs_staged = {
+ add = { text = "┃" },
+ change = { text = "┃" },
+ delete = { text = "_" },
+ topdelete = { text = "‾" },
+ changedelete = { text = "~" },
+ untracked = { text = "┆" },
+ },
+ on_attach = function(bufnr)
+ require("keymaps").gitsigns(bufnr)
+ end,
+}
diff --git a/nvim/.config/nvim/lua/plugins/harpoon.lua b/nvim/.config/nvim/lua/plugins/harpoon.lua
new file mode 100755
index 0000000..dcf3ee2
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/harpoon.lua
@@ -0,0 +1,25 @@
+-- local harpoon = require "harpoon"
+-- harpoon:setup()
+--
+-- vim.keymap.set("n", "<leader>a", function()
+-- harpoon:list():add()
+-- end, { desc = "Add buffer to harpoon" })
+--
+-- vim.keymap.set("n", "<leader><leader>", function()
+-- harpoon.ui:toggle_quick_menu(harpoon:list())
+-- end, { desc = "Toggle harpoon menu" })
+--
+-- vim.keymap.set("n", "<c-n>", function()
+-- require("harpoon"):list():next()
+-- end, { desc = "Goto next harpooned" })
+--
+-- vim.keymap.set("n", "<c-p>", function()
+-- require("harpoon"):list():prev()
+-- end, { desc = "Goto prev harpooned" })
+--
+-- -- Set <space>1..<space>5 be my shortcuts to moving to the files
+-- for _, idx in ipairs { 1, 2, 3, 4, 5 } do
+-- vim.keymap.set("n", string.format("<leader>%d", idx), function()
+-- harpoon:list():select(idx)
+-- end, { desc = string.format("Goto %d harpooned", idx) })
+-- end
diff --git a/nvim/.config/nvim/lua/plugins/lazydev.lua b/nvim/.config/nvim/lua/plugins/lazydev.lua
new file mode 100755
index 0000000..0dfa477
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/lazydev.lua
@@ -0,0 +1,6 @@
+require("lazydev").setup {
+ library = {
+ -- Load luvit types when the `vim.uv` word is found
+ { path = "${3rd}/luv/library", words = { "vim%.uv" } },
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/leap.lua b/nvim/.config/nvim/lua/plugins/leap.lua
new file mode 100755
index 0000000..c624d83
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/leap.lua
@@ -0,0 +1,7 @@
+require("leap").setup {}
+
+-- Exclude whitespace and the middle of alphabetic words from preview
+require("leap").opts.preview_filter = function(ch0, ch1, ch2)
+ return not (ch1:match "%s" or ch0:match "%a" and ch1:match "%a" and ch2:match "%a")
+end
+require("leap").opts.equivalence_classes = { " \t\r\n", "([{", ")]}", "'\"`" }
diff --git a/nvim/.config/nvim/lua/plugins/leetcode.lua b/nvim/.config/nvim/lua/plugins/leetcode.lua
new file mode 100644
index 0000000..1c6d550
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/leetcode.lua
@@ -0,0 +1 @@
+require("leetcode").setup {}
diff --git a/nvim/.config/nvim/lua/plugins/lualine.lua b/nvim/.config/nvim/lua/plugins/lualine.lua
new file mode 100755
index 0000000..c200066
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/lualine.lua
@@ -0,0 +1 @@
+require("lualine").setup {}
diff --git a/nvim/.config/nvim/lua/plugins/neorg.lua b/nvim/.config/nvim/lua/plugins/neorg.lua
new file mode 100755
index 0000000..eeede50
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/neorg.lua
@@ -0,0 +1,22 @@
+require("neorg").setup {
+ load = {
+ ["core.defaults"] = {},
+ ["core.ui"] = {},
+ ["core.summary"] = {},
+ ["core.autocommands"] = {},
+ ["core.highlights"] = {},
+ ["core.integrations.treesitter"] = {},
+ ["core.neorgcmd"] = {},
+ ["core.concealer"] = {},
+ ["core.latex.renderer"] = {},
+ ["core.qol.toc"] = {},
+ ["core.dirman"] = {
+ config = {
+ workspaces = {
+ notes = "~/notes",
+ },
+ default_workspace = "notes",
+ },
+ },
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/oil.lua b/nvim/.config/nvim/lua/plugins/oil.lua
new file mode 100644
index 0000000..40bdc44
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/oil.lua
@@ -0,0 +1,21 @@
+require("oil").setup {
+ keymaps = {
+ ["g?"] = { "actions.show_help", mode = "n" },
+ ["<CR>"] = "actions.select",
+ ["<C-v>"] = { "actions.select", opts = { vertical = true } },
+ ["<C-s>"] = { "actions.select", opts = { horizontal = true } },
+ ["<C-t>"] = { "actions.select", opts = { tab = true } },
+ ["<C-p>"] = "actions.preview",
+ ["<C-c>"] = { "actions.close", mode = "n" },
+ ["<C-m>"] = "actions.refresh",
+ ["-"] = { "actions.parent", mode = "n" },
+ ["_"] = { "actions.open_cwd", mode = "n" },
+ ["`"] = { "actions.cd", mode = "n" },
+ ["~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" },
+ ["gs"] = { "actions.change_sort", mode = "n" },
+ ["gx"] = "actions.open_external",
+ ["g."] = { "actions.toggle_hidden", mode = "n" },
+ ["g\\"] = { "actions.toggle_trash", mode = "n" },
+ },
+ use_default_keymaps = false,
+}
diff --git a/nvim/.config/nvim/lua/custom/mini.lua b/nvim/.config/nvim/lua/plugins/rest.lua
index e69de29..e69de29 100644
--- a/nvim/.config/nvim/lua/custom/mini.lua
+++ b/nvim/.config/nvim/lua/plugins/rest.lua
diff --git a/nvim/.config/nvim/lua/custom/plugins/textcase.lua b/nvim/.config/nvim/lua/plugins/textcase.lua
index e335b38..e335b38 100644..100755
--- a/nvim/.config/nvim/lua/custom/plugins/textcase.lua
+++ b/nvim/.config/nvim/lua/plugins/textcase.lua
diff --git a/nvim/.config/nvim/lua/plugins/todo-comments.lua b/nvim/.config/nvim/lua/plugins/todo-comments.lua
new file mode 100755
index 0000000..18dc91c
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/todo-comments.lua
@@ -0,0 +1 @@
+require("todo-comments").setup { signs = false }
diff --git a/nvim/.config/nvim/lua/plugins/toggleterm.lua b/nvim/.config/nvim/lua/plugins/toggleterm.lua
new file mode 100755
index 0000000..08ea37c
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/toggleterm.lua
@@ -0,0 +1,21 @@
+require("toggleterm").setup {
+ size = function(term)
+ if term.direction == "horizontal" then
+ return 15
+ elseif term.direction == "vertical" then
+ return vim.o.columns * 0.33
+ end
+ end,
+}
+
+local Terminal = require("toggleterm.terminal").Terminal
+local on_open = function(_)
+ vim.cmd "startinsert!"
+end
+local on_close = function(_)
+ vim.cmd "startinsert!"
+end
+
+vim.keymap.set("n", "<leader>tt", function()
+ Terminal:new({ count = vim.v.count1, on_open = on_open, on_close = on_close }):toggle(nil, "float")
+end)
diff --git a/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua b/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua
new file mode 100755
index 0000000..6d6b33d
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/treesitter-textobjects.lua
@@ -0,0 +1,11 @@
+require("nvim-treesitter-textobjects").setup {
+ select = {
+ lookahead = true,
+ selection_modes = {
+ ["@parameter.outer"] = "v", -- charwise
+ ["@function.outer"] = "v", -- charwise (V for linevise)
+ ["@class.outer"] = "<c-v>", -- blockwise
+ },
+ include_surrounding_whitespace = true,
+ },
+}
diff --git a/nvim/.config/nvim/lua/plugins/treesitter.lua b/nvim/.config/nvim/lua/plugins/treesitter.lua
new file mode 100755
index 0000000..c0ee7bf
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,4 @@
+require("nvim-treesitter.configs").setup {
+ highlight = { enable = true },
+ indent = { enable = true },
+}
diff --git a/nvim/.config/nvim/lua/plugins/which-key.lua b/nvim/.config/nvim/lua/plugins/which-key.lua
new file mode 100755
index 0000000..df9ca9d
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/which-key.lua
@@ -0,0 +1,13 @@
+local wk = require "which-key"
+
+wk.setup {}
+
+wk.add {
+ { "<leader><tab>", group = "Tab pages" },
+ { "<leader>f", group = "Find" },
+ { "<leader>g", group = "Git" },
+ { "<leader>l", group = "LSP" },
+ { "<leader>t", group = "Toggle" },
+ { "<leader>tg", group = "Gitsigns" },
+ { "<leader>d", group = "DAP" },
+}
diff --git a/nvim/.config/nvim/lua/plugins/zen-mode.lua b/nvim/.config/nvim/lua/plugins/zen-mode.lua
new file mode 100644
index 0000000..1fee333
--- /dev/null
+++ b/nvim/.config/nvim/lua/plugins/zen-mode.lua
@@ -0,0 +1,3 @@
+zen = require "zen-mode"
+
+zen.setup {}
diff --git a/nvim/.config/nvim/lua/rocks-setup.lua b/nvim/.config/nvim/lua/rocks-setup.lua
new file mode 100644
index 0000000..84a0adf
--- /dev/null
+++ b/nvim/.config/nvim/lua/rocks-setup.lua
@@ -0,0 +1,24 @@
+local rocks_config = {
+ rocks_path = vim.env.HOME .. "/.local/share/nvim/rocks",
+}
+
+vim.g.rocks_nvim = rocks_config
+
+local luarocks_path = {
+ vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?.lua"),
+ vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?", "init.lua"),
+}
+package.path = package.path .. ";" .. table.concat(luarocks_path, ";")
+
+local luarocks_cpath = {
+ vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.so"),
+ vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.so"),
+ -- Remove the dylib and dll paths if you do not need macos or windows support
+ vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.dylib"),
+ vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.dylib"),
+ vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.dll"),
+ vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.dll"),
+}
+package.cpath = package.cpath .. ";" .. table.concat(luarocks_cpath, ";")
+
+vim.opt.runtimepath:append(vim.fs.joinpath(rocks_config.rocks_path, "lib", "luarocks", "rocks-5.1", "*", "*"))
diff --git a/nvim/.config/nvim/plugin/keymaps.lua b/nvim/.config/nvim/plugin/keymaps.lua
deleted file mode 100644
index 48fff51..0000000
--- a/nvim/.config/nvim/plugin/keymaps.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local set = vim.keymap.set
-
-set("n", "<leader>w", "<cmd>w<cr>", { desc = "Write buffer" })
-
-set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
-
--- execute current file. TODO: think this can be smarter
-set("n", "<leader>r", '<cmd>!"%:p"<cr>')
-
--- ui navigation
-set("n", "<m-j>", "<c-w><c-j>")
-set("n", "<m-k>", "<c-w><c-k>")
-set("n", "<m-l>", "<c-w><c-l>")
-set("n", "<m-h>", "<c-w><c-h>")
-
-set("n", "<m-<>", "<c-w>5<")
-set("n", "<m->>", "<c-w>5>")
-set("n", "<m-+>", "<c-w>4+")
-set("n", "<m-->", "<c-w>4-")
-
-set("n", "<m-v>", "<cmd>vsplit<cr>")
-set("n", "<m-s>", "<cmd>split<cr>")
-
-set("n", "<m-q>", "<cmd>q<cr>", { desc = "Quit window" })
-
-set("n", "<m-t>", "<cmd>tabnew<cr>", { desc = "New Tab" })
-set("n", "<s-m-t>", "<cmd>tabclose<cr>", { desc = "Close Tab" })
-set("n", "<m-n>", "<cmd>tabnext<cr>", { desc = "Next Tab" })
-set("n", "<m-p>", "<cmd>tabprevious<cr>", { desc = "Previous Tab" })
-
--- Toggle hlsearch if it's on, otherwise just do "enter"
-set("n", "<cr>", function()
- ---@diagnostic disable-next-line: undefined-field
- if vim.opt.hlsearch:get() then
- vim.cmd.nohl()
- return ""
- else
- return "<cr>"
- end
-end, { expr = true })
-
--- useful for indent text
-set("v", ">", ">gv")
-set("v", "<", "<gv")
-
---swap lines
-set("n", "<c-j>", function()
- if vim.opt.diff:get() then
- vim.cmd [[normal! ]c]]
- else
- vim.cmd [[m .+1<CR>==]]
- end
-end)
-set("n", "<c-k>", function()
- if vim.opt.diff:get() then
- vim.cmd [[normal! [c]]
- else
- vim.cmd [[m .-2<cr>==]]
- end
-end)
diff --git a/nvim/.config/nvim/plugin/netrw.lua b/nvim/.config/nvim/plugin/netrw.lua
deleted file mode 100644
index e69de29..0000000
--- a/nvim/.config/nvim/plugin/netrw.lua
+++ /dev/null
diff --git a/nvim/.config/nvim/plugin/options.lua b/nvim/.config/nvim/plugin/options.lua
deleted file mode 100644
index cc3016c..0000000
--- a/nvim/.config/nvim/plugin/options.lua
+++ /dev/null
@@ -1,41 +0,0 @@
-local opt = vim.opt
-
-opt.number = true
-opt.relativenumber = true
-
-opt.mouse = "a"
-
-opt.clipboard = "unnamedplus" -- Sync clipboard between OS and Neovim.
-
-opt.breakindent = true -- Enable break indent
-
-opt.undofile = true -- Save undo history
-
-opt.ignorecase = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
-opt.smartcase = true
-
-opt.signcolumn = "yes" -- Keep signcolumn on by default
-
-opt.updatetime = 250 -- Decrease update time
-
-opt.timeoutlen = 300 -- Decrease mapped sequence wait time
-
-opt.splitright = true -- Configure how new splits should be opened
-opt.splitbelow = true
-
-opt.list = true -- Sets how neovim will display certain whitespace characters in the editor.
-opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
-
--- opt.inccommand = "split" -- Preview substitutions live
-
-opt.cursorline = true -- Show which line your cursor is on
-
-opt.scrolloff = 10 -- Minimal number of screen lines to keep above and below the cursor.
-opt.sidescrolloff = 5
-
-opt.hlsearch = true -- Set highlight on search
-opt.incsearch = true
-
-opt.background = "dark"
-
-opt.laststatus = 3
diff --git a/nvim/.config/nvim/plugin/terminal.lua b/nvim/.config/nvim/plugin/terminal.lua
deleted file mode 100644
index 0249feb..0000000
--- a/nvim/.config/nvim/plugin/terminal.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local opt = vim.opt_local
-
--- Set local settings for terminal buffers
-vim.api.nvim_create_autocmd("TermOpen", {
- group = vim.api.nvim_create_augroup("custom-term-open", {}),
- callback = function()
- opt.number = false
- opt.relativenumber = false
- opt.scrolloff = 0
- end,
-})
-
--- Easily hit escape in terminal mode.
-vim.keymap.set("t", "<esc><esc>", "<c-\\><c-n>")
diff --git a/nvim/.config/nvim/rocks.toml b/nvim/.config/nvim/rocks.toml
new file mode 100644
index 0000000..2c4a529
--- /dev/null
+++ b/nvim/.config/nvim/rocks.toml
@@ -0,0 +1,148 @@
+[rocks]
+
+[config]
+auto_setup = true
+
+[plugins]
+"rocks.nvim" = "2.45.0"
+"rocks-git.nvim" = "2.5.3"
+"rocks-config.nvim" = "3.1.1"
+"rocks-lazy.nvim" = "1.2.0"
+"rocks-dev.nvim" = "1.8.0"
+"nightfox.nvim" = "3.10.0"
+"gruvbox.nvim" = "2.0.0"
+"kanagawa.nvim" = "scm"
+"2048.nvim" = "2.8.2"
+"auto-hlsearch.nvim" = { version = "1.1.0", event = "CmdlineEnter" }
+"better-escape.nvim" = "2.3.3"
+"cellular-automaton.nvim" = "scm"
+"clangd_extensions.nvim" = "scm"
+"comment.nvim" = "0.8.0"
+"conform.nvim" = "9.0.0"
+"diffview.nvim" = "scm"
+"gitsigns.nvim" = "1.0.2"
+"lazydev.nvim" = { version = "1.9.0", ft = "lua" }
+"leap.nvim" = "scm"
+"lspkind.nvim" = "scm"
+"lualine.nvim" = "scm"
+"lush.nvim" = "scm"
+"oil.nvim" = "2.15.0"
+"repeat.vim" = "1.2"
+"rest.nvim" = "3.13.0"
+"substitute.nvim" = "2.0.0"
+"telescope-ui-select.nvim" = "scm"
+"telescope.nvim" = "scm"
+"todo-comments.nvim" = "1.4.0"
+"toggleterm.nvim" = "2.13.1"
+"which-key.nvim" = "3.17.0"
+"zen-mode.nvim" = "1.4.0"
+auto-session = "2.5.1"
+cmp-buffer = "scm"
+cmp-cmdline = "scm"
+cmp-git = "scm"
+cmp-nvim-lsp = "scm"
+cmp-path = "scm"
+cmp_luasnip = "scm"
+friendly-snippets = "scm"
+harpoon = "scm"
+luasnip = "2.4.0"
+neogen = "2.20.0"
+neogit = "2.0.0"
+neorg = "9.3.0"
+neorg-conceal-wrap = "1.0.1"
+nvim-autopairs = "scm"
+nvim-bqf = { version = "1.1.1", ft = "qf" }
+nvim-cmp = "scm"
+nvim-dap = "0.10.0"
+nvim-dap-ui = "4.0.0"
+nvim-dap-virtual-text = "scm"
+nvim-treesitter-textobjects = "scm"
+nvim-web-devicons = "0.100"
+vim-startuptime = "4.5.0"
+# "markview.nvim"= "25.9.0" # fancy preview
+
+# Treesitter parsers
+tree-sitter-bash = "scm"
+tree-sitter-c = "scm"
+tree-sitter-cmake = "scm"
+tree-sitter-comment = "0.0.31"
+tree-sitter-cpp = "scm"
+tree-sitter-css = "0.0.38"
+tree-sitter-diff = "scm"
+tree-sitter-ecma = "0.0.30"
+tree-sitter-gnuplot = "0.0.30"
+tree-sitter-html = "0.0.36"
+tree-sitter-http = "scm"
+tree-sitter-jsdoc = "0.0.35"
+tree-sitter-json = "0.0.36"
+tree-sitter-latex = "0.0.35"
+tree-sitter-lua = "0.0.35"
+tree-sitter-luadoc = "0.0.29"
+tree-sitter-make = "0.0.30"
+tree-sitter-markdown_inline = "0.0.42"
+tree-sitter-nix = "0.0.59"
+tree-sitter-query = "scm"
+tree-sitter-scheme = "0.0.35"
+tree-sitter-sql = "0.0.41"
+tree-sitter-toml = "0.0.31"
+tree-sitter-vim = "0.0.34"
+tree-sitter-vimdoc = "0.0.34"
+tree-sitter-xml = "scm"
+tree-sitter-yaml = "0.0.36"
+
+[plugins.vim-cool]
+git = "romainl/vim-cool"
+rev = "9ea940c0d537e55de0de4c0298c04b976960fb12"
+
+[plugins.nvim-treesitter]
+git = "nvim-treesitter/nvim-treesitter"
+rev = "v0.10.0"
+branch = "main"
+
+[plugins."poimandres.nvim"]
+git = "olivercederborg/poimandres.nvim"
+rev = "v0.6.0"
+
+[plugins."nvim-surround"]
+git = "kylechui/nvim-surround"
+rev = "v3.1.2"
+
+[plugins."sort.nvim"]
+git = "sQVe/sort.nvim"
+rev = "c789da6968337d2a61104a929880b5f144e02855"
+
+[plugins."zenbones.nvim"]
+git = "zenbones-theme/zenbones.nvim"
+rev = "v4.8.0"
+
+[plugins."image.nvim"]
+git = "3rd/image.nvim"
+
+[bundles.telescope]
+items = [
+ "telescope.nvim",
+ "telescope-ui-select.nvim"
+]
+config = "bundles.telescope"
+
+[bundles.cmp]
+items = [
+ "lspkind.nvim",
+ "nvim-cmp",
+ "cmp-buffer",
+ "cmp-cmdline",
+ "cmp-nvim-lsp",
+ "cmp-path",
+ "cmp_luasnip",
+ "friendly-snippets",
+ "luasnip",
+ ]
+ config = "bundles.cmp"
+
+[bundles.colorscheme]
+items = [
+"nightfox.nvim",
+"gruvbox.nvim",
+"kanagawa.nvim",
+]
+config = "bundles.colorscheme"
diff --git a/nvim/.config/nvim/spell/en.utf-8.add b/nvim/.config/nvim/spell/en.utf-8.add
new file mode 100644
index 0000000..063d3ce
--- /dev/null
+++ b/nvim/.config/nvim/spell/en.utf-8.add
@@ -0,0 +1,28 @@
+Treesitter
+DAP
+LSP
+Neogen
+Neogit
+GitSigns
+деструктора
+отнаследоваться
+имплементацию
+деструктор
+STL
+multimap
+hashmap
+Многопоточность
+многопоточности
+мьютексом
+mutex
+сокет
+сокетом
+OSI
+подсети
+Метапрограммирование
+инстанцирование
+имплементации
+LLVM
+контрвариантные
+treesitter
+CMake
diff --git a/nvim/.config/nvim/spell/en.utf-8.add.spl b/nvim/.config/nvim/spell/en.utf-8.add.spl
new file mode 100644
index 0000000..7eef4d5
--- /dev/null
+++ b/nvim/.config/nvim/spell/en.utf-8.add.spl
Binary files differ
diff --git a/nvim/.config/nvim/spell/ru.utf-8.spl b/nvim/.config/nvim/spell/ru.utf-8.spl
new file mode 100644
index 0000000..43d0e4b
--- /dev/null
+++ b/nvim/.config/nvim/spell/ru.utf-8.spl
Binary files differ
diff --git a/nvim/.config/nvim/spell/ru.utf-8.sug b/nvim/.config/nvim/spell/ru.utf-8.sug
new file mode 100644
index 0000000..b418a0d
--- /dev/null
+++ b/nvim/.config/nvim/spell/ru.utf-8.sug
Binary files differ
diff --git a/nvim/.config/nvim/stylua.toml b/nvim/.config/nvim/stylua.toml
index 364ef9c..364ef9c 100644..100755
--- a/nvim/.config/nvim/stylua.toml
+++ b/nvim/.config/nvim/stylua.toml