Compare commits

...

No commits in common. "new" and "main" have entirely different histories.
new ... main

100 changed files with 8163 additions and 535 deletions

View file

@ -0,0 +1,14 @@
local npairs = require("nvim-autopairs")
local Rule = require("nvim-autopairs.rule")
npairs.setup({
check_ts = true,
ts_config = {
lua = {"string"},
javascript = {"template_string"},
},
enable_check_bracket_line = false,
ignored_next_char = "[%w%.]",
})
local ts_conds = require("nvim-autopairs.ts-conds")

30
.backup/after/plugin/dash.lua Executable file
View file

@ -0,0 +1,30 @@
local home = os.getenv('HOME')
local db = require('dashboard')
db.custom_header = {"",
" /$$$$$$ /$$ /$$ ",
" /$$__ $$ | $$ | $$ ",
" /$$$$$$$ /$$$$$$ /$$$$$$ | $$ \\__//$$$$$$ /$$$$$$ /$$$$$$$| $$$$$$$ ",
"| $$__ $$ /$$__ $$ /$$__ $$| $$$$ /$$__ $$|_ $$_/ /$$_____/| $$__ $$",
"| $$ \\ $$| $$$$$$$$| $$ \\ $$| $$_/ | $$$$$$$$ | $$ | $$ | $$ \\ $$",
"| $$ | $$| $$_____/| $$ | $$| $$ | $$_____/ | $$ /$$| $$ | $$ | $$",
"| $$ | $$| $$$$$$$| $$$$$$/| $$ | $$$$$$$ | $$$$/| $$$$$$$| $$ | $$",
"|__/ |__/ \\_______/ \\______/ |__/ \\_______/ \\___/ \\_______/|__/ |__/",
"",
"",
"",
"",
"",
"",
"",
}
db.custom_center = {
{
icon = '',
desc ='File Browser ',
action = 'Telescope file_browser',
shortcut = 'SPC e e'
},
}

9
.backup/after/plugin/git.lua Executable file
View file

@ -0,0 +1,9 @@
require('gitsigns').setup {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
}

214
.backup/after/plugin/lsp.lua Executable file
View file

@ -0,0 +1,214 @@
require('neodev').setup()
-- vim.lsp.ensure_installed({
-- "clangd",
-- "gopls",
-- "jdtls",
-- "eslint",
-- "tailwindcss",
-- "tsserver",
-- "cssmodules_ls",
-- "rome",
-- "jsonls",
-- "sumneko_lua",
-- "pylsp",
-- "rust_analyzer",
-- "stylelint_lsp",
-- })
local navic = require("nvim-navic")
navic.setup {
icons = {
File = "",
Module = "",
Namespace = "",
Package = "",
Class = "",
Method = "",
Property = "",
Field = "",
Constructor = "",
Enum = "",
Interface = "",
Function = "",
Variable = "",
Constant = "",
String = "",
Number = "",
Boolean = "",
Array = "",
Object = "",
Key = "",
Null = "",
EnumMember = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
},
highlight = false,
separator = " > ",
depth_limit = 0,
depth_limit_indicator = "..",
safe_output = true
}
local on_attach = function(client, bufnr)
local nmap = function(keys, func, desc)
if desc then
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
end
if client.server_capabilities.documentSymbolProvider then
navic.attach(client, bufnr)
end
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
nmap('<leader>vt', vim.lsp.buf.type_definition, 'Type [D]efinition')
nmap('<leader>vs', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
nmap('<leader>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, '[W]orkspace [L]ist Folders')
-- Create a command `:Format` local to the LSP buffer
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, { desc = 'Format current buffer with LSP' })
end
local servers = {
clangd = {},
gopls = {},
pyright = {},
rust_analyzer = {},
tsserver = {},
sumneko_lua = {
Lua = {
workspace = { checkThirdParty = false },
telemetry = { enable = false },
},
},
}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
require('mason').setup()
local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers),
}
mason_lspconfig.setup_handlers {
function(server_name)
require('lspconfig')[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
}
end,
}
-- lspinfo
require('fidget').setup()
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require 'cmp'
local luasnip = require 'luasnip'
-- local tabnine = require('cmp_tabnine.config')
--
-- tabnine:setup({
-- max_lines = 1000,
-- max_num_results = 20,
-- sort = true,
-- run_on_every_keystroke = true,
-- snippet_placeholder = '..',
-- ignored_file_types = {
-- -- default is not to ignore
-- -- uncomment to ignore in lua:
-- -- lua = true
-- },
-- show_prediction_strength = false
-- })
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
["<C-y>"] = cmp.mapping.confirm({ slelect = true}),
["<C-Space>"] = cmp.mapping.complete(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = "crates" },
-- { name = "cmp_tabnine" },
},
}
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
vim.diagnostic.config({
signs = true,
underline = true,
update_in_insert = true,
virtual_text = true,
})
require("cmp").config.formatting = {
format = require("tailwindcss-colorizer-cmp").formatter,
behavior = cmp.SelectBehavior.Select,
}
-- require('tabnine').setup({
-- disable_auto_comment=true,
-- accept_keymap="<Tab>",
-- dismiss_keymap = "<C-]>",
-- debounce_ms = 300,
-- suggestion_color = {gui = "#808080", cterm = 244},
-- execlude_filetypes = {"TelescopePrompt"}
-- })

View file

@ -0,0 +1,22 @@
require("presence"):setup({
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The best PDE, Personalized Development Enviroment", -- Text displayed when hovered over the Neovim image
main_image = "neovim", -- Main image display (either "neovim" or "file")
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout = 15, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
show_time = true, -- Show the timer
-- Rich Presence text options
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
})

166
.backup/after/plugin/rust.lua Executable file
View file

@ -0,0 +1,166 @@
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<leader>rh", function ()
rt.hover_actions.hover_actions()
end, { buffer = bufnr , desc = "Hover actions rust"})
-- Code action groups
vim.keymap.set("n", "<leader>ra", function ()
rt.code_action_group.code_action_group()
end, { buffer = bufnr , desc = "code actions group"})
end,
},
})
rt.inlay_hints.enable()
rt.runnables.runnables()
rt.hover_actions.hover_actions()
rt.hover_range.hover_range()
rt.open_cargo_toml.open_cargo_toml()
rt.parent_module.parent_module()
rt.join_lines.join_lines()
rt.crate_graph.view_crate_graph(backend, output)
require("crates").setup {
smart_insert = true,
insert_closing_quote = true,
avoid_prerelease = true,
autoload = true,
autoupdate = true,
loading_indicator = true,
date_format = "%Y-%m-%d",
thousands_separator = ".",
notification_title = "Crates",
--curl_args = { "-sL", "--retry", "1" },
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 ",
},
coq = {
enabled = false,
name = "Crates",
},
},
null_ls = {
enabled = false,
name = "Crates",
},
}

View file

@ -0,0 +1,41 @@
require("lualine").setup {
options = {
icons_enabled = true,
theme = "auto",
component_separators = { left = "", right = ""},
section_separators = { left = "", right = ""},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
}
},
sections = {
lualine_a = {"mode"},
lualine_b = {"diff"},
lualine_c = {"branch"},
lualine_x = {"location"},
lualine_y = {"progress"},
lualine_z = {"filename"}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {"filename"},
lualine_x = {"location"},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}

View file

@ -0,0 +1,34 @@
require("bufferline").setup {
animation = true,
auto_hide = true,
tabpages = true,
closable = true,
clickable = true,
icon_separator_active = "",
icon_separator_inactive = "",
icon_close_tab = "",
icon_close_tab_modified = "",
icon_pinned = "",
separator_style = "slant",
numbers = "buffer_id",
}
-- file sidebars
local nvim_tree_events = require("nvim-tree.events")
local bufferline_api = require("bufferline.api")
local function get_tree_size()
return require"nvim-tree.view".View.width
end
nvim_tree_events.subscribe("TreeOpen", function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe("Resize", function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe("TreeClose", function()
bufferline_api.set_offset(0)
end)

View file

@ -0,0 +1,32 @@
require "telescope".setup {
pickers = {
colorscheme = {
enable_preview = true
}
}
}
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>f/", function ()
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
vim.keymap.set("n", "<leader>fc", builtin.colorscheme, {desc = "Find Colorscheme"})
vim.keymap.set('n', '<leader>fd', require('telescope.builtin').diagnostics, { desc = 'Find Diagnostics' })
vim.keymap.set('n', '<leader>fw', require('telescope.builtin').grep_string, { desc = 'Find current Word' })
vim.keymap.set("n", "<leader>ff", builtin.find_files, {desc = "telescope find files"})
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
vim.keymap.set("n", "<leader>fb", builtin.buffers, {desc = "buffers"})
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
vim.keymap.set("n", "<leader>fs", function()
builtin.grep_string({ search = vim.fn.input("Grep > ")});
vim.keymap.set("n", "<leader>fp", "<cmd>:Telescope projects<cr>")
end, {desc = "grep search through files"})
pcall(require("telescope").load_extension, "fzf")
require("telescope").load_extension("projects")
require("telescope").load_extension("dap")

View file

@ -0,0 +1,11 @@
require"nvim-treesitter.configs".setup {
ensure_installed = { "bash", "cmake", "cpp", "dockerfile", "gitignore", "glsl", "go", "graphql", "html", "java", "javascript", "json5", "kotlin", "markdown", "python", "rasi", "regex", "c", "lua", "rust", "scss", "sql", "sxhkdrc", "toml", "tsx", "typescript", "yaml" },
sync_install = false,
auto_install = true,
indent = { enable = true, disable = { 'python' } },
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
}

1
.backup/init.lua Executable file
View file

@ -0,0 +1 @@
require("config")

3
.backup/lua/config/init.lua Executable file
View file

@ -0,0 +1,3 @@
require("config.packer")
require("config.set")
require("config.map")

140
.backup/lua/config/map.lua Executable file
View file

@ -0,0 +1,140 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " "
local wk = require("which-key")
wk.register({
e = {
name = "file explorers",
e = {vim.cmd.NvimTreeOpen, "NvimTree"},
r = {vim.cmd.NERDTreeTabsOpen, "NERDTree"},
w = {vim.cmd.Ex, "netrw"},
},
t = {
name = "Tabs",
n = {vim.cmd.tabedit, "New"},
c = {vim.cmd.tabclose, "Close"},
l = {vim.cmd.tabnext, "Next"},
h = {vim.cmd.tabprevious, "Previous"},
t = {"<cmd>tabedit ", "Open File"},
},
w = {
name = "workspace",
w = {"<cmd>w<cr>", "Write"}
},
v = {
name = "LSP"
},
q = {
name = "Quit",
q = {"<cmd>q!<cr>", "Confirm"},
},
u = {"vim.cmd.UndotreeToggle", "UndoTree"},
b = {
name = "Buffer",
h = {"<Cmd>BufferPrevious<CR>", "Previous"},
l = {"<Cmd>BufferNext<CR>", "Next"},
H = {"<Cmd>BufferFirst<CR>", "First"},
L = {"<Cmd>BufferLast<CR>", "Last"},
p = {"<Cmd>BufferPin<CR>", "Pin"},
b = {"<cmd>BufferPick<cr>", "Picker"},
s = {
name = "Sort",
n = {"<Cmd>BufferOrderByBufferNumber<CR>", "By BufferNumber"},
d = {"<Cmd>BufferOrderByDirectory<CR>", "By Directory"},
l = {"<Cmd>BufferOrderByLanguage<CR>", "By Language"},
w = {"<Cmd>BufferOrderByWindowNumber<CR>", "By WindowNumber"},
},
C = {"<Cmd>BufferClose<CR>", "Close"},
c = {
c = {"<Cmd>BufferClose<CR>", "Close"},
w = {"<cmd>BufferWipeout<cr>", "Wipe"},
a = {"<cmd>BufferCloseAllButCurrent<cr>", "Close but Current"},
p = {"<cmd>BufferCloseAllButPinned<cr>", "Close but Pinned"},
},
},
f = {
name = "Telescope & fzf",
},
s = {
name = "Settings",
c = {function ()
vim.opt.scrolloff = 100
end, "Always center cursor"},
x = {function ()
vim.opt.scrolloff = 8
end, "Disable Cursor center"}
},
h = {
name = "Hop",
w = {"<cmd>HopWord<cr>", "Word"},
a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
l = {"<cmd>HopLine<cr>", "Line"},
p = {"<cmd>HopPattern<cr>", "Pattern"},
c = {"<cmd>HopChar1<cr>", "Char1"},
x = {"<cmd>HopChar2<cr>", "Char2"},
},
d = {
name = "Debug"
},
r = {
name = "Rust",
},
}, {prefix = "<leader>"})
-- Buffers
vim.keymap.set("n", "<leader>b<", "<Cmd>BufferMovePrevious<CR>", { desc = "move previous" })
vim.keymap.set("n", "<leader>b>", "<Cmd>BufferMoveNext<CR>", { desc = "move next" })
vim.keymap.set("n", "<leader>bH", "<Cmd>BufferFirst<CR>", { desc = "first" })
vim.keymap.set("n", "<leader>bs1", "<Cmd>BufferGoto 1<CR>", { desc = "1" })
vim.keymap.set("n", "<leader>bs2", "<Cmd>BufferGoto 2<CR>", { desc = "2" })
vim.keymap.set("n", "<leader>bs3", "<Cmd>BufferGoto 3<CR>", { desc = "3" })
vim.keymap.set("n", "<leader>bs4", "<Cmd>BufferGoto 4<CR>", { desc = "4" })
vim.keymap.set("n", "<leader>bs5", "<Cmd>BufferGoto 5<CR>", { desc = "5" })
vim.keymap.set("n", "<leader>bs6", "<Cmd>BufferGoto 6<CR>", { desc = "6" })
vim.keymap.set("n", "<leader>bs7", "<Cmd>BufferGoto 7<CR>", { desc = "7" })
vim.keymap.set("n", "<leader>bs8", "<Cmd>BufferGoto 8<CR>", { desc = "8" })
vim.keymap.set("n", "<leader>bs9", "<Cmd>BufferGoto 9<CR>", { desc = "9" })
-- LSP
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"})
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"})
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"})
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"})
vim.keymap.set("n", "<leader>va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"})
vim.keymap.set("n", "<leader>vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"})
vim.keymap.set("n", "<leader>vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"})
-- vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"})
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {buffer=bufnr})
-- debug
vim.keymap.set("n", "<leader>db", function() require"dap".toggle_breakpoint() end, {desc = "toggle breapoint"})
vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end, {desc = "launch or continue execution"})
vim.keymap.set("n", "<leader>dsi", function() require("dap").step_into() end, {desc = "step into"})
vim.keymap.set("n", "<leader>dso", function() require("dap").step_over() end, {desc = "step over"})
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end, {desc = "open repl"})
-- debug UI
vim.keymap.set("n", "<leader>dwb", function() require("dapui").float_element("breakpoints", {}) end, {desc = "open breakpoints window"})
vim.keymap.set("n", "<leader>dwc", function() require("dapui").float_element("console", {}) end, {desc = "open integrated console"})
vim.keymap.set("n", "<leader>dwr", function() require("dapui").float_element("repl", {}) end, {desc = "open repl"})
-- term
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
-- magic
vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>", {desc = "find and replace"})
-- center
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- random
vim.keymap.set("v", "J", ':m ">+1<CR>gv=gv')
vim.keymap.set("v", "K", ':m "<-2<CR>gv=gv')
vim.keymap.set("i", "<C-c>", "<Esc>")

318
.backup/lua/config/packer.lua Executable file
View file

@ -0,0 +1,318 @@
vim.cmd [[packadd packer.nvim]]
return require("packer").startup(function(use)
use "wbthomason/packer.nvim"
-- lsp
use {
"neovim/nvim-lspconfig",
requires = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim",
"folke/neodev.nvim",
},
}
use {
"SmiteshP/nvim-navic",
requires = "neovim/nvim-lspconfig"
}
use {
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require"lsp_signature".on_attach() end,
}
-- cmp && snippets
use {
"hrsh7th/nvim-cmp",
requires = {
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"rafamadriz/friendly-snippets"
},
}
use "github/copilot.vim"
use {"mattn/emmet-vim"}
-- use {'tzachar/cmp-tabnine', run='./install.sh', requires = 'hrsh7th/nvim-cmp'}
use({
"roobert/tailwindcss-colorizer-cmp.nvim",
config = function()
require("tailwindcss-colorizer-cmp").setup({
color_square_width = 2,
})
end
})
-- syntax highlighting
use {
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate"
}
use {
"nvim-treesitter/nvim-treesitter-textobjects",
after = "nvim-treesitter",
}
use "nvim-treesitter/playground"
-- fzf Telescope
use {
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
requires = {
"nvim-lua/plenary.nvim"
}
}
use {
"nvim-telescope/telescope-fzf-native.nvim",
run = "make",
cond = vim.fn.executable "make" == 1
}
use "nvim-lua/popup.nvim"
use {
"ahmedkhalf/project.nvim",
config = function()
require("project_nvim").setup {}
end,
}
-- debugging
use "mfussenegger/nvim-dap"
use {
"rcarriga/nvim-dap-ui",
requires = {
"mfussenegger/nvim-dap"
},
config = function()
require("dapui").setup()
end,
}
use "nvim-telescope/telescope-dap.nvim"
-- git
use "tpope/vim-fugitive"
use "tpope/vim-rhubarb"
use "lewis6991/gitsigns.nvim"
-- misc
use "editorconfig/editorconfig-vim"
use "andweeb/presence.nvim"
use {
"nacro90/numb.nvim",
config = function ()
require("numb").setup()
end
}
use {"ellisonleao/glow.nvim",
config = function ()
require("glow").setup()
end
}
use {"tpope/vim-surround"}
use {
"phaazon/hop.nvim",
event = "BufRead",
config = function()
require("hop").setup()
vim.api.nvim_set_keymap("n", "s", ":HopChar2<cr>", { silent = true })
vim.api.nvim_set_keymap("n", "S", ":HopWord<cr>", { silent = true })
end,
}
use {
"nvim-tree/nvim-tree.lua",
requires = {
"nvim-tree/nvim-web-devicons",
},
config = function()
require("nvim-tree").setup({
filters = {
dotfiles = true,
},
})
end,
}
-- misc editing
use {
'phaazon/hop.nvim',
branch = 'v2',
config = function()
require'hop'.setup {
}
end
}
use {
"numToStr/Comment.nvim",
config = function()
require("Comment").setup()
end
}
use "tpope/vim-sleuth"
use "mbbill/undotree"
use {
"windwp/nvim-autopairs",
--config = function() require("nvim-autopairs").setup {} end
}
use {"windwp/nvim-ts-autotag",
config = function ()
require("nvim-ts-autotag").setup()
end
}
use {"mg979/vim-visual-multi"}
-- mics visuals
use 'glepnir/dashboard-nvim'
use {'romgrk/barbar.nvim', wants = 'nvim-web-devicons'}
--use {"akinsho/bufferline.nvim", tag = "v3.*",}
use {"jistr/vim-nerdtree-tabs"}
use {
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
config = function()
require("bqf").setup({
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
})
end,
}
use {"kyazdani42/nvim-web-devicons"}
use {"ap/vim-css-color"}
use {
"lukas-reineke/indent-blankline.nvim",
config = function()
require('indent_blankline').setup {
char = '',
show_trailing_blankline_indent = false,
filetype_exclude = {"dashboard"},
}
end,
}
use {
"folke/which-key.nvim",
config = function()
local wk = require("which-key")
wk.setup {
popup_mappings = {
scroll_down = "<C-j>",
scroll_up = "<C-k>",
},
window = {
border = "single",
},
}
end
}
use "nvim-lualine/lualine.nvim"
use {
"akinsho/toggleterm.nvim",
tag = "*",
config = function()
require("toggleterm").setup{
direction = "float",
float_opts = {
border = "curved"
},
}
end,
}
use {
"karb94/neoscroll.nvim",
event = "WinScrolled",
config = function()
require("neoscroll").setup({
mappings = {"<C-u>", "<C-d>", "<C-b>", "<C-f>", "<C-y>", "<C-e>", "zt", "zz", "zb"},
hide_cursor = true,
stop_eof = true,
use_local_scrolloff = false,
respect_scrolloff = false,
cursor_scrolls_alone = true,
easing_function = nil,
pre_hook = nil,
post_hook = nil,
})
end
}
use {
"folke/todo-comments.nvim",
event = "BufRead",
config = function()
require("todo-comments").setup{}
end,
}
use {
"felipec/vim-sanegx",
event = "BufRead",
}
use {
"gelguy/wilder.nvim",
config = function()
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
end,
}
-- lenguage specific
-- rust
use {"racer-rust/vim-racer",
config = function ()
vim.cmd [[ let g:racer_cmd = "/usr/bin/racer"]]
end
}
use "simrat39/rust-tools.nvim"
use {
"saecki/crates.nvim",
tag = "v0.3.0",
requires = {
"nvim-lua/plenary.nvim"
},
config = function()
require("crates").setup()
end,
}
-- zig
use "ziglang/zig.vim"
-- java
use "mfussenegger/nvim-jdtls"
-- c && c++ && cmake
use "cdelledonne/vim-cmake"
-- themes
use "sainnhe/gruvbox-material"
use "shaunsingh/nord.nvim"
use "projekt0n/github-nvim-theme"
use "EdenEast/nightfox.nvim"
use "Everblush/nvim"
use "olimorris/onedarkpro.nvim"
use "rmehri01/onenord.nvim"
use "luisiacc/gruvbox-baby"
use "tiagovla/tokyodark.nvim"
use "cpea2506/one_monokai.nvim"
use "yazeed1s/minimal.nvim"
use "Mofiqul/adwaita.nvim"
use "kvrohit/mellow.nvim"
use "yazeed1s/oh-lucy.nvim"
use "marko-cerovac/material.nvim"
use "sainnhe/sonokai"
end)

41
.backup/lua/config/set.lua Executable file
View file

@ -0,0 +1,41 @@
-- numbers
vim.opt.nu = true
vim.opt.relativenumber = true
-- tab && indent
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.o.breakindent = true
-- lines
vim.opt.wrap = true
vim.opt.smarttab = true
-- undo
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
-- search
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.o.ignorecase = true
vim.o.smartcase = true
-- colors
vim.opt.termguicolors = true
vim.cmd [[colorscheme gruvbox-material]]
-- misc
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.scrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.o.mouse = "a"
vim.o.completeopt = "menuone,noselect"

View file

@ -0,0 +1,615 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["Comment.nvim"] = {
config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/Comment.nvim",
url = "https://github.com/numToStr/Comment.nvim"
},
LuaSnip = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["adwaita.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/adwaita.nvim",
url = "https://github.com/Mofiqul/adwaita.nvim"
},
["barbar.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/barbar.nvim",
url = "https://github.com/romgrk/barbar.nvim",
wants = { "nvim-web-devicons" }
},
["cmp-buffer"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-path"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
["cmp-tabnine"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-tabnine",
url = "https://github.com/tzachar/cmp-tabnine"
},
cmp_luasnip = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip"
},
["copilot.vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/copilot.vim",
url = "https://github.com/github/copilot.vim"
},
["crates.nvim"] = {
config = { "\27LJ\2\n4\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\vcrates\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/crates.nvim",
url = "https://github.com/saecki/crates.nvim"
},
["dashboard-nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/dashboard-nvim",
url = "https://github.com/glepnir/dashboard-nvim"
},
["editorconfig-vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/editorconfig-vim",
url = "https://github.com/editorconfig/editorconfig-vim"
},
["emmet-vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/emmet-vim",
url = "https://github.com/mattn/emmet-vim"
},
["fidget.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/fidget.nvim",
url = "https://github.com/j-hui/fidget.nvim"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
["github-nvim-theme"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/github-nvim-theme",
url = "https://github.com/projekt0n/github-nvim-theme"
},
["gitsigns.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
url = "https://github.com/lewis6991/gitsigns.nvim"
},
["glow.nvim"] = {
config = { "\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tglow\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/glow.nvim",
url = "https://github.com/ellisonleao/glow.nvim"
},
["gruvbox-baby"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-baby",
url = "https://github.com/luisiacc/gruvbox-baby"
},
["gruvbox-material"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-material",
url = "https://github.com/sainnhe/gruvbox-material"
},
["hop.nvim"] = {
config = { "\27LJ\2\nÀ\1\0\0\6\0\r\0\0226\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\n\0'\4\v\0005\5\f\0B\0\5\1K\0\1\0\1\0\1\vsilent\2\17:HopWord<cr>\6S\1\0\1\vsilent\2\18:HopChar2<cr>\6s\6n\20nvim_set_keymap\bapi\bvim\nsetup\bhop\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/hop.nvim",
url = "https://github.com/phaazon/hop.nvim"
},
["indent-blankline.nvim"] = {
config = { "\27LJ\2\n\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\21filetype_exclude\1\2\0\0\14dashboard\1\0\2\tchar\b┊#show_trailing_blankline_indent\1\nsetup\21indent_blankline\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
},
["lsp_signature.nvim"] = {
config = { "\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14on_attach\18lsp_signature\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/lsp_signature.nvim",
url = "https://github.com/ray-x/lsp_signature.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["material.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/material.nvim",
url = "https://github.com/marko-cerovac/material.nvim"
},
["mellow.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mellow.nvim",
url = "https://github.com/kvrohit/mellow.nvim"
},
["minimal.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/minimal.nvim",
url = "https://github.com/yazeed1s/minimal.nvim"
},
["neodev.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/neodev.nvim",
url = "https://github.com/folke/neodev.nvim"
},
["neoscroll.nvim"] = {
config = { "\27LJ\2\nÕ\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\rmappings\1\0\5\16hide_cursor\2\25cursor_scrolls_alone\2\22respect_scrolloff\1\24use_local_scrolloff\1\rstop_eof\2\1\n\0\0\n<C-u>\n<C-d>\n<C-b>\n<C-f>\n<C-y>\n<C-e>\azt\azz\azb\nsetup\14neoscroll\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/neoscroll.nvim",
url = "https://github.com/karb94/neoscroll.nvim"
},
["nightfox.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nightfox.nvim",
url = "https://github.com/EdenEast/nightfox.nvim"
},
["nord.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nord.nvim",
url = "https://github.com/shaunsingh/nord.nvim"
},
["numb.nvim"] = {
config = { "\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tnumb\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/numb.nvim",
url = "https://github.com/nacro90/numb.nvim"
},
nvim = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim",
url = "https://github.com/Everblush/nvim"
},
["nvim-autopairs"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
url = "https://github.com/windwp/nvim-autopairs"
},
["nvim-bqf"] = {
config = { "\27LJ\2\nõ\2\0\0\6\0\18\0\0216\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0005\4\5\0=\4\6\3=\3\a\0025\3\b\0=\3\t\0025\3\15\0005\4\v\0005\5\n\0=\5\f\0045\5\r\0=\5\14\4=\4\16\3=\3\17\2B\0\2\1K\0\1\0\vfilter\bfzf\1\0\0\15extra_opts\1\5\0\0\v--bind\22ctrl-o:toggle-all\r--prompt\a> \15action_for\1\0\0\1\0\1\vctrl-s\nsplit\rfunc_map\1\0\3\vvsplit\5\14stoggleup\5\16ptogglemode\az,\fpreview\17border_chars\1\n\0\0\b┃\b┃\bâ”<EFBFBD>\bâ”<EFBFBD>\bâ”<EFBFBD>\b┓\bâ”—\bâ”›\bâ–ˆ\1\0\3\15win_height\3\f\17delay_syntax\3P\16win_vheight\3\f\1\0\1\16auto_enable\2\nsetup\bbqf\frequire\0" },
loaded = false,
needs_bufread = true,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/nvim-bqf",
url = "https://github.com/kevinhwang91/nvim-bqf"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-dap"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap",
url = "https://github.com/mfussenegger/nvim-dap"
},
["nvim-dap-ui"] = {
config = { "\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ndapui\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap-ui",
url = "https://github.com/rcarriga/nvim-dap-ui"
},
["nvim-jdtls"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-jdtls",
url = "https://github.com/mfussenegger/nvim-jdtls"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-navic"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-navic",
url = "https://github.com/SmiteshP/nvim-navic"
},
["nvim-tree.lua"] = {
config = { "\27LJ\2\n[\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\ffilters\1\0\0\1\0\1\rdotfiles\2\nsetup\14nvim-tree\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/nvim-tree/nvim-tree.lua"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-treesitter-textobjects"] = {
load_after = {},
loaded = true,
needs_bufread = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects",
url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects"
},
["nvim-ts-autotag"] = {
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag",
url = "https://github.com/windwp/nvim-ts-autotag"
},
["nvim-web-devicons"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
url = "https://github.com/kyazdani42/nvim-web-devicons"
},
["oh-lucy.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/oh-lucy.nvim",
url = "https://github.com/yazeed1s/oh-lucy.nvim"
},
["one_monokai.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/one_monokai.nvim",
url = "https://github.com/cpea2506/one_monokai.nvim"
},
["onedarkpro.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/onedarkpro.nvim",
url = "https://github.com/olimorris/onedarkpro.nvim"
},
["onenord.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/onenord.nvim",
url = "https://github.com/rmehri01/onenord.nvim"
},
["packer.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
playground = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/playground",
url = "https://github.com/nvim-treesitter/playground"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["popup.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/popup.nvim",
url = "https://github.com/nvim-lua/popup.nvim"
},
["presence.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/presence.nvim",
url = "https://github.com/andweeb/presence.nvim"
},
["project.nvim"] = {
config = { "\27LJ\2\n>\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\17project_nvim\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/project.nvim",
url = "https://github.com/ahmedkhalf/project.nvim"
},
["rust-tools.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/rust-tools.nvim",
url = "https://github.com/simrat39/rust-tools.nvim"
},
sonokai = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/sonokai",
url = "https://github.com/sainnhe/sonokai"
},
["tailwindcss-colorizer-cmp.nvim"] = {
config = { "\27LJ\2\nc\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\23color_square_width\3\2\nsetup\30tailwindcss-colorizer-cmp\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/tailwindcss-colorizer-cmp.nvim",
url = "https://github.com/roobert/tailwindcss-colorizer-cmp.nvim"
},
["telescope-dap.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/telescope-dap.nvim",
url = "https://github.com/nvim-telescope/telescope-dap.nvim"
},
["telescope-fzf-native.nvim"] = {
cond = { true },
loaded = false,
needs_bufread = false,
only_cond = true,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/telescope-fzf-native.nvim",
url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["todo-comments.nvim"] = {
config = { "\27LJ\2\n?\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18todo-comments\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim",
url = "https://github.com/folke/todo-comments.nvim"
},
["toggleterm.nvim"] = {
config = { "\27LJ\2\ns\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\15float_opts\1\0\1\vborder\vcurved\1\0\1\14direction\nfloat\nsetup\15toggleterm\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
url = "https://github.com/akinsho/toggleterm.nvim"
},
["tokyodark.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/tokyodark.nvim",
url = "https://github.com/tiagovla/tokyodark.nvim"
},
undotree = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/undotree",
url = "https://github.com/mbbill/undotree"
},
["vim-cmake"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-cmake",
url = "https://github.com/cdelledonne/vim-cmake"
},
["vim-css-color"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-css-color",
url = "https://github.com/ap/vim-css-color"
},
["vim-fugitive"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-fugitive",
url = "https://github.com/tpope/vim-fugitive"
},
["vim-nerdtree-tabs"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-nerdtree-tabs",
url = "https://github.com/jistr/vim-nerdtree-tabs"
},
["vim-racer"] = {
config = { "\27LJ\2\nG\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0( let g:racer_cmd = \"/usr/bin/racer\"\bcmd\bvim\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-racer",
url = "https://github.com/racer-rust/vim-racer"
},
["vim-rhubarb"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-rhubarb",
url = "https://github.com/tpope/vim-rhubarb"
},
["vim-sanegx"] = {
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/vim-sanegx",
url = "https://github.com/felipec/vim-sanegx"
},
["vim-sleuth"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-sleuth",
url = "https://github.com/tpope/vim-sleuth"
},
["vim-surround"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-surround",
url = "https://github.com/tpope/vim-surround"
},
["vim-visual-multi"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-visual-multi",
url = "https://github.com/mg979/vim-visual-multi"
},
["which-key.nvim"] = {
config = { "\27LJ\2\nš\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\3B\1\2\1K\0\1\0\vwindow\1\0\1\vborder\vsingle\19popup_mappings\1\0\0\1\0\2\14scroll_up\n<C-k>\16scroll_down\n<C-j>\nsetup\14which-key\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/which-key.nvim",
url = "https://github.com/folke/which-key.nvim"
},
["wilder.nvim"] = {
config = { "\27LJ\2\nÉ\4\0\0\3\0\5\0\r6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\0016\0\0\0009\0\1\0'\2\4\0B\0\2\1K\0\1\0ÿ\1call wilder#set_option(\"renderer\", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({\"highlighter\": wilder#basic_highlighter(), \"min_width\": \"100%\", \"min_height\": \"50%\", \"reverse\": 0, \"highlights\": {\"border\": \"Normal\",},\"border\": \"rounded\"})))ß\1call wilder#set_option(\"renderer\", wilder#popupmenu_renderer({\"highlighter\": wilder#basic_highlighter(), \"left\": [ \" \", wilder#popupmenu_devicons(), ], \"right\": [ \" \", wilder#popupmenu_scrollbar(), ], \"pumblend\": 20}))2call wilder#setup({\"modes\": [\":\", \"/\", \"?\"]})\bcmd\bvim\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/wilder.nvim",
url = "https://github.com/gelguy/wilder.nvim"
},
["zig.vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/zig.vim",
url = "https://github.com/ziglang/zig.vim"
}
}
time([[Defining packer_plugins]], false)
-- Config for: which-key.nvim
time([[Config for which-key.nvim]], true)
try_loadstring("\27LJ\2\nš\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\3B\1\2\1K\0\1\0\vwindow\1\0\1\vborder\vsingle\19popup_mappings\1\0\0\1\0\2\14scroll_up\n<C-k>\16scroll_down\n<C-j>\nsetup\14which-key\frequire\0", "config", "which-key.nvim")
time([[Config for which-key.nvim]], false)
-- Config for: numb.nvim
time([[Config for numb.nvim]], true)
try_loadstring("\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tnumb\frequire\0", "config", "numb.nvim")
time([[Config for numb.nvim]], false)
-- Config for: nvim-tree.lua
time([[Config for nvim-tree.lua]], true)
try_loadstring("\27LJ\2\n[\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\ffilters\1\0\0\1\0\1\rdotfiles\2\nsetup\14nvim-tree\frequire\0", "config", "nvim-tree.lua")
time([[Config for nvim-tree.lua]], false)
-- Config for: tailwindcss-colorizer-cmp.nvim
time([[Config for tailwindcss-colorizer-cmp.nvim]], true)
try_loadstring("\27LJ\2\nc\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\23color_square_width\3\2\nsetup\30tailwindcss-colorizer-cmp\frequire\0", "config", "tailwindcss-colorizer-cmp.nvim")
time([[Config for tailwindcss-colorizer-cmp.nvim]], false)
-- Config for: wilder.nvim
time([[Config for wilder.nvim]], true)
try_loadstring("\27LJ\2\nÉ\4\0\0\3\0\5\0\r6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\0016\0\0\0009\0\1\0'\2\4\0B\0\2\1K\0\1\0ÿ\1call wilder#set_option(\"renderer\", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({\"highlighter\": wilder#basic_highlighter(), \"min_width\": \"100%\", \"min_height\": \"50%\", \"reverse\": 0, \"highlights\": {\"border\": \"Normal\",},\"border\": \"rounded\"})))ß\1call wilder#set_option(\"renderer\", wilder#popupmenu_renderer({\"highlighter\": wilder#basic_highlighter(), \"left\": [ \" \", wilder#popupmenu_devicons(), ], \"right\": [ \" \", wilder#popupmenu_scrollbar(), ], \"pumblend\": 20}))2call wilder#setup({\"modes\": [\":\", \"/\", \"?\"]})\bcmd\bvim\0", "config", "wilder.nvim")
time([[Config for wilder.nvim]], false)
-- Config for: Comment.nvim
time([[Config for Comment.nvim]], true)
try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0", "config", "Comment.nvim")
time([[Config for Comment.nvim]], false)
-- Config for: toggleterm.nvim
time([[Config for toggleterm.nvim]], true)
try_loadstring("\27LJ\2\ns\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\15float_opts\1\0\1\vborder\vcurved\1\0\1\14direction\nfloat\nsetup\15toggleterm\frequire\0", "config", "toggleterm.nvim")
time([[Config for toggleterm.nvim]], false)
-- Config for: indent-blankline.nvim
time([[Config for indent-blankline.nvim]], true)
try_loadstring("\27LJ\2\n\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\21filetype_exclude\1\2\0\0\14dashboard\1\0\2\tchar\b┊#show_trailing_blankline_indent\1\nsetup\21indent_blankline\frequire\0", "config", "indent-blankline.nvim")
time([[Config for indent-blankline.nvim]], false)
-- Config for: project.nvim
time([[Config for project.nvim]], true)
try_loadstring("\27LJ\2\n>\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\17project_nvim\frequire\0", "config", "project.nvim")
time([[Config for project.nvim]], false)
-- Config for: crates.nvim
time([[Config for crates.nvim]], true)
try_loadstring("\27LJ\2\n4\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\vcrates\frequire\0", "config", "crates.nvim")
time([[Config for crates.nvim]], false)
-- Config for: glow.nvim
time([[Config for glow.nvim]], true)
try_loadstring("\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tglow\frequire\0", "config", "glow.nvim")
time([[Config for glow.nvim]], false)
-- Config for: nvim-dap-ui
time([[Config for nvim-dap-ui]], true)
try_loadstring("\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ndapui\frequire\0", "config", "nvim-dap-ui")
time([[Config for nvim-dap-ui]], false)
-- Config for: vim-racer
time([[Config for vim-racer]], true)
try_loadstring("\27LJ\2\nG\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0( let g:racer_cmd = \"/usr/bin/racer\"\bcmd\bvim\0", "config", "vim-racer")
time([[Config for vim-racer]], false)
-- Config for: nvim-ts-autotag
time([[Config for nvim-ts-autotag]], true)
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0", "config", "nvim-ts-autotag")
time([[Config for nvim-ts-autotag]], false)
-- Conditional loads
time([[Conditional loading of telescope-fzf-native.nvim]], true)
require("packer.load")({"telescope-fzf-native.nvim"}, {}, _G.packer_plugins)
time([[Conditional loading of telescope-fzf-native.nvim]], false)
-- Load plugins in order defined by `after`
time([[Sequenced loading]], true)
vim.cmd [[ packadd nvim-treesitter ]]
vim.cmd [[ packadd nvim-treesitter-textobjects ]]
time([[Sequenced loading]], false)
vim.cmd [[augroup packer_load_aucmds]]
vim.cmd [[au!]]
-- Event lazy-loads
time([[Defining lazy-load event autocommands]], true)
vim.cmd [[au BufRead * ++once lua require("packer.load")({'vim-sanegx', 'nvim-bqf', 'hop.nvim', 'lsp_signature.nvim', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]]
vim.cmd [[au BufNew * ++once lua require("packer.load")({'nvim-bqf'}, { event = "BufNew *" }, _G.packer_plugins)]]
vim.cmd [[au WinScrolled * ++once lua require("packer.load")({'neoscroll.nvim'}, { event = "WinScrolled *" }, _G.packer_plugins)]]
time([[Defining lazy-load event autocommands]], false)
vim.cmd("augroup END")
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

1
.bckpold/after/init.lua Executable file
View file

@ -0,0 +1 @@
vim.cmd.Alpha

View file

@ -0,0 +1,24 @@
local npairs = require("nvim-autopairs")
local Rule = require('nvim-autopairs.rule')
npairs.setup({
check_ts = true,
ts_config = {
lua = {'string'},-- it will not add a pair on that treesitter node
javascript = {'template_string'},
java = false,-- don't check treesitter on java
},
enable_check_bracket_line = false,
ignored_next_char = "[%w%.]",
})
local ts_conds = require('nvim-autopairs.ts-conds')
-- press % => %% only while inside a comment or string
-- npairs.add_rules({
-- Rule("%", "%", "lua")
-- :with_pair(ts_conds.is_ts_node({'string','comment'})),
-- Rule("$", "$", "lua")
-- :with_pair(ts_conds.is_not_ts_node({'function'}))
-- })

View file

@ -0,0 +1,73 @@
require("bufferline").setup {
animation = true,
auto_hide = true,
tabpages = true,
closable = true,
clickable = true,
icon_separator_active = '',
icon_separator_inactive = '',
icon_close_tab = '',
icon_close_tab_modified = '',
icon_pinned = '',
--separator_style = "slant",
--numbers = "buffer_id",
}
vim.keymap.set('n', '<leader>bh', '<Cmd>BufferPrevious<CR>', {desc = "buffer previous"})
vim.keymap.set('n', '<leader>bl', '<Cmd>BufferNext<CR>', {desc = "buffer next"})
-- Re-order to previous/next
vim.keymap.set('n', '<leader>b<', '<Cmd>BufferMovePrevious<CR>', { desc = "move previous" })
vim.keymap.set('n', '<leader>b>', '<Cmd>BufferMoveNext<CR>', { desc = "move next" })
-- Goto buffer in position...
vim.keymap.set("n", "<leader>bH", "<Cmd>BufferFirst<CR>", { desc = "first" })
vim.keymap.set('n', '<leader>bs1', '<Cmd>BufferGoto 1<CR>', { desc = "1" })
vim.keymap.set('n', '<leader>bs2', '<Cmd>BufferGoto 2<CR>', { desc = "2" })
vim.keymap.set('n', '<leader>bs3', '<Cmd>BufferGoto 3<CR>', { desc = "3" })
vim.keymap.set('n', '<leader>bs4', '<Cmd>BufferGoto 4<CR>', { desc = "4" })
vim.keymap.set('n', '<leader>bs5', '<Cmd>BufferGoto 5<CR>', { desc = "5" })
vim.keymap.set('n', '<leader>bs6', '<Cmd>BufferGoto 6<CR>', { desc = "6" })
vim.keymap.set('n', '<leader>bs7', '<Cmd>BufferGoto 7<CR>', { desc = "7" })
vim.keymap.set('n', '<leader>bs8', '<Cmd>BufferGoto 8<CR>', { desc = "8" })
vim.keymap.set('n', '<leader>bs9', '<Cmd>BufferGoto 9<CR>', { desc = "9" })
vim.keymap.set('n', '<leader>bL', '<Cmd>BufferLast<CR>', { desc = "last" })
-- Pin/unpin buffer
vim.keymap.set('n', '<leadder>bp', '<Cmd>BufferPin<CR>', { desc = "pin" })
-- Close buffer
vim.keymap.set('n', '<leader>bc', '<Cmd>BufferClose<CR>', { desc = "close" })
-- Wipeout buffer
-- :BufferWipeout
-- Close commands
-- :BufferCloseAllButCurrent
-- :BufferCloseAllButPinned
-- :BufferCloseAllButCurrentOrPinned
-- :BufferCloseBuffersLeft
-- :BufferCloseBuffersRight
-- Magic buffer-picking mode
vim.keymap.set('n', '<leader>bb', '<Cmd>BufferPick<CR>', { desc = "buffer picker" })
-- Sort automatically by...
--vim.keymap.set('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', { desc = "" })
--vim.keymap.set('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', { desc = "" })
--vim.keymap.set('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', { desc = "" })
--vim.keymap.set('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', { desc = "" })
local nvim_tree_events = require('nvim-tree.events')
local bufferline_api = require('bufferline.api')
local function get_tree_size()
return require'nvim-tree.view'.View.width
end
nvim_tree_events.subscribe('TreeOpen', function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe('Resize', function()
bufferline_api.set_offset(get_tree_size())
end)
nvim_tree_events.subscribe('TreeClose', function()
bufferline_api.set_offset(0)
end)

2
.bckpold/after/plugin/java.lua Executable file
View file

@ -0,0 +1,2 @@
require("dapui").setup()

97
.bckpold/after/plugin/lsp.lua Executable file
View file

@ -0,0 +1,97 @@
local lsp = require('lsp-zero')
local navic = require("nvim-navic")
local tabnine = require('cmp_tabnine.config')
tabnine:setup({
max_lines = 1000,
max_num_results = 20,
sort = true,
run_on_every_keystroke = true,
snippet_placeholder = '..',
ignored_file_types = {
-- default is not to ignore
-- uncomment to ignore in lua:
-- lua = true
},
show_prediction_strength = false
})
lsp.preset('recommended')
lsp.ensure_installed({
"clangd",
"gopls",
"jdtls",
"eslint",
"tailwindcss",
"tsserver",
"cssmodules_ls",
"rome",
"jsonls",
"sumneko_lua",
"pylsp",
"rust_analyzer",
"stylelint_lsp",
})
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require("cmp")
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
local cmp_select = {behavior = cmp.SelectBehavior.Select}
local Cmp_mappings = lsp.defaults.cmp_mappings({
["<C-y>"] = cmp.mapping.confirm({ slelect = true}),
["<C-Space>"] = cmp.mapping.complete(),
})
local cmp_sources = lsp.defaults.cmp_sources({
{name="crates"},
{name="cmp_tabnine"},
})
lsp.setup_nvim_cmp({
mapping = Cmp_mappings,
sources = cmp_sources
})
lsp.on_attach(function(client, bufnr)
--if client.name == "eslint" then
-- vim.cmd [[ LspStop eslint ]]
-- return
--end
navic.attach(client, bufnr)
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"})
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"})
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"})
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"})
vim.keymap.set("n", "<leader>va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"})
vim.keymap.set("n", "<leader>vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"})
vim.keymap.set("n", "<leader>vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"})
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"})
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {buffer=bufnr})
end)
lsp.setup()
-- vim.diagnostic.config({
-- signs = true,
-- underline = true,
-- update_in_insert = true,
-- virtual_text = true,
-- })
vim.diagnostic.config({
signs = true,
underline = true,
update_in_insert = true,
virtual_text = true,
})

View file

@ -0,0 +1,40 @@
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'diff'},
lualine_c = {'branch'},
lualine_x = {"location"},
lualine_y = {'progress'},
lualine_z = {'filename'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}

View file

@ -0,0 +1,5 @@
require("nvim-tree").setup({
filters = {
dotfiles = true,
},
})

View file

@ -0,0 +1,22 @@
require("presence"):setup({
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The best PDE, Personalized Development Enviroment", -- Text displayed when hovered over the Neovim image
main_image = "neovim", -- Main image display (either "neovim" or "file")
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
show_time = true, -- Show the timer
-- Rich Presence text options
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
})

View file

@ -0,0 +1,162 @@
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>ra", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
},
})
rt.inlay_hints.enable()
rt.runnables.runnables()
rt.hover_actions.hover_actions()
rt.hover_range.hover_range()
rt.open_cargo_toml.open_cargo_toml()
rt.parent_module.parent_module()
rt.join_lines.join_lines()
rt.crate_graph.view_crate_graph(backend, output)
require('crates').setup {
smart_insert = true,
insert_closing_quote = true,
avoid_prerelease = true,
autoload = true,
autoupdate = true,
loading_indicator = true,
date_format = "%Y-%m-%d",
thousands_separator = ".",
notification_title = "Crates",
--curl_args = { "-sL", "--retry", "1" },
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 ",
},
coq = {
enabled = false,
name = "Crates",
},
},
null_ls = {
enabled = false,
name = "Crates",
},
}

View file

@ -0,0 +1,27 @@
require "telescope".setup {
pickers = {
colorscheme = {
enable_preview = true
}
}
}
local builtin = require('telescope.builtin')
vim.keymap.set("n", "<leader>fn", function ()
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('n', '<leader>ff', builtin.find_files, {desc = "telescope find files"})
--vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {desc = "buffers"})
--vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
vim.keymap.set("n", "<leader>fs", function()
builtin.grep_string({ search = vim.fn.input("Grep > ")});
vim.keymap.set("n", "<leader>fp", "<cmd>:Telescope projects<cr>")
end, {desc = "grep search through files"})
pcall(require('telescope').load_extension, 'fzf')
require('telescope').load_extension('projects')
require('telescope').load_extension('dap')

View file

@ -0,0 +1,6 @@
require("toggleterm").setup{
direction = "float",
float_opts = {
border = "curved"
},
}

View file

@ -0,0 +1,33 @@
require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
ensure_installed = { "bash", "cmake", "cpp", "dockerfile", "gitignore", "glsl", "go", "graphql", "html", "java", "javascript", "json5", "kotlin", "markdown", "python", "rasi", "regex", "c", "lua", "rust", "scss", "sql", "sxhkdrc", "toml", "tsx", "typescript", "yaml" },
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
-- Automatically install missing parsers when entering buffer
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
auto_install = true,
-- List of parsers to ignore installing (for "all")
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
highlight = {
-- `false` will disable the whole extension
enable = true,
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
-- the name of the parser)
-- list of language that will be disabled
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
-- Using this option may slow down your editor, and you may see some duplicate highlights.
-- Instead of true it can also be a list of languages
additional_vim_regex_highlighting = false,
},
}

View file

@ -0,0 +1 @@
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)

1
.bckpold/init.lua Executable file
View file

@ -0,0 +1 @@
require("davidontop")

View file

@ -0,0 +1,4 @@
require("davidontop.packer")
require("davidontop.remap")
require("davidontop.set")
require("davidontop.neovide")

View file

@ -0,0 +1,13 @@
vim.cmd [[
if exists("g:neovide")
set guifont=JetBrainsMono\ Nerd\ Font:14
let g:neovide_scroll_animation_length = 0.3
let g:neovide_scale_factor = 0.5
let g:neovide_refresh_rate = 60
let g:neovide_refresh_rate_idle = 5
let g:neovide_cursor_animation_length=0.13
let g:neovide_cursor_animation_length=0.13
let g:neovide_cursor_antialiasing = v:true
let g:neovide_cursor_vfx_mode = "pixiedust"
endif
]]

View file

@ -0,0 +1,307 @@
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
use {
'nvim-telescope/telescope.nvim', tag = '0.1.0',
-- or , branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
-- theme
-- syntax highlights
use( 'nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
use('nvim-treesitter/playground')
--undos
use("mbbill/undotree")
--lsp
use {
'VonHeikemen/lsp-zero.nvim',
requires = {
-- LSP Support
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
-- Snippets
{'L3MON4D3/LuaSnip'},
{'rafamadriz/friendly-snippets'},
}
}
-- debugging
use 'mfussenegger/nvim-dap'
--rust
use 'simrat39/rust-tools.nvim'
use {
'saecki/crates.nvim',
tag = 'v0.3.0',
requires = { 'nvim-lua/plenary.nvim' },
config = function()
require('crates').setup()
end,
}
--zig/useless
use 'ziglang/zig.vim'
--keybind help
use {
"folke/which-key.nvim",
config = function()
local wk = require("which-key")
wk.setup {
popup_mappings = {
scroll_down = "<C-j>",
scroll_up = "<C-k>",
},
window = {
border = "single",
},
}
end
}
-- () {} []...
use {
"windwp/nvim-autopairs",
--config = function() require("nvim-autopairs").setup {} end
}
-- <div></div>
use {"windwp/nvim-ts-autotag",
config = function ()
require('nvim-ts-autotag').setup()
end
}
--files
use {
'nvim-tree/nvim-tree.lua',
requires = {
'nvim-tree/nvim-web-devicons', -- optional, for file icons
},
}
--projects
use {
"ahmedkhalf/project.nvim",
config = function()
require("project_nvim").setup {}
end
}
-- idfk
use {
"SmiteshP/nvim-navic",
requires = "neovim/nvim-lspconfig"
}
--fzf
use {"akinsho/toggleterm.nvim", tag = '*'}
--idk
use {
'nacro90/numb.nvim',
config = function ()
require("numb").setup()
end
}
--idk
use 'nvim-lua/popup.nvim'
-- gc11j
use {
'numToStr/Comment.nvim',
config = function()
require('Comment').setup()
end
}
-- literaly the bottom of the screen
use {
'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true }
}
--broken
use {
"kevinhwang91/rnvimr",
cmd = "RnvimrToggle",
config = function()
vim.g.rnvimr_draw_border = 1
vim.g.rnvimr_pick_enable = 1
vim.g.rnvimr_bw_enable = 1
end,
}
--broken
use {'tzachar/cmp-tabnine', run='./install.sh', requires = 'hrsh7th/nvim-cmp'}
--idk
use {"ellisonleao/glow.nvim",
config = function ()
require("glow").setup()
end
}
--useless
use {
"karb94/neoscroll.nvim",
event = "WinScrolled",
config = function()
require('neoscroll').setup({
mappings = {'<C-u>', '<C-d>', '<C-b>', '<C-f>', '<C-y>', '<C-e>', 'zt', 'zz', 'zb'},
hide_cursor = true,
stop_eof = true,
use_local_scrolloff = false,
respect_scrolloff = false,
cursor_scrolls_alone = true,
easing_function = nil,
pre_hook = nil,
post_hook = nil,
})
end
}
--broken i think TODO somethink
use {
"folke/todo-comments.nvim",
event = "BufRead",
config = function()
require("todo-comments").setup{}
end,
}
--regex i think
use {
"felipec/vim-sanegx",
event = "BufRead",
}
-- command mode help
use {
'gelguy/wilder.nvim',
config = function()
vim.cmd("call wilder#setup({'modes': [':', '/', '?']})")
vim.cmd("call wilder#set_option('renderer', wilder#popupmenu_renderer({'pumblend': 20}))")
vim.cmd("call wilder#set_option('renderer', wilder#popupmenu_renderer(wilder#popupmenu_border_theme({'highlights': {'border': 'Normal',},'border': 'rounded'})))")
end,
}
-- idk
use {"preservim/tagbar"}
-- emmet snippets
use {"mattn/emmet-vim"}
--use {"terryma/vim-multiple-cursors"}
-- must be (multicursor)
use {"mg979/vim-visual-multi"}
-- broken in scss and sass
use {"ap/vim-css-color"}
--idk
use {"tpope/vim-surround"}
--idk
use {'kyazdani42/nvim-web-devicons'}
--not used
use {
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require"lsp_signature".on_attach() end,
}
-- idk
use {
"phaazon/hop.nvim",
event = "BufRead",
config = function()
require("hop").setup()
vim.api.nvim_set_keymap("n", "s", ":HopChar2<cr>", { silent = true })
vim.api.nvim_set_keymap("n", "S", ":HopWord<cr>", { silent = true })
end,
}
-- idk
use {
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
config = function()
require("bqf").setup({
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
})
end,
}
--dashboard
use {
'goolord/alpha-nvim',
config = function ()
require'alpha'.setup(require'alpha.themes.dashboard'.config)
end
}
use {'romgrk/barbar.nvim'}
--use {'akinsho/bufferline.nvim', tag = "v3.*",}
use {"jistr/vim-nerdtree-tabs"}
-- native fzf
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make', cond = vim.fn.executable 'make' == 1 }
--idk
use 'andweeb/presence.nvim'
-- debugging
use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} }
use "nvim-telescope/telescope-dap.nvim"
--java
use 'mfussenegger/nvim-jdtls'
--cmake
use "cdelledonne/vim-cmake"
--themes
use {
"sainnhe/gruvbox-material",
as = "gruvbox-material",
config = function ()
vim.cmd("colorscheme gruvbox-material")
end
}
use {"shaunsingh/nord.nvim"}
use ({ 'projekt0n/github-nvim-theme' })
use 'EdenEast/nightfox.nvim'
use 'Everblush/nvim'
use 'olimorris/onedarkpro.nvim'
use 'rmehri01/onenord.nvim'
use 'luisiacc/gruvbox-baby'
use 'tiagovla/tokyodark.nvim'
use 'cpea2506/one_monokai.nvim'
use 'ramojus/mellifluous.nvim'
use 'yazeed1s/minimal.nvim'
use 'Mofiqul/adwaita.nvim'
use 'kvrohit/mellow.nvim'
use 'yazeed1s/oh-lucy.nvim'
use 'marko-cerovac/material.nvim'
use 'sainnhe/sonokai'
end)

View file

@ -0,0 +1,61 @@
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>en", vim.cmd.Ex, {desc = "netrw"})
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
vim.keymap.set("i", "<C-c>", "<Esc>")
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>", {desc = "find and replace"})
vim.keymap.set("n", "<leader>ee", vim.cmd.NvimTreeOpen, {desc = "nvimtree"})
vim.keymap.set("n", "<leader>ew", vim.cmd.NERDTreeTabsOpen, {desc = "NERDTree"})
vim.keymap.set("n", "<leader>er", vim.cmd.RnvimrToggle, {desc = "ranger"})
vim.keymap.set("n", "<C-S-\\>", vim.cmd.RnvimrToggle)
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("n", "<leader>tn", vim.cmd.tabedit, {desc = "new tab"})
vim.keymap.set("n", "<leader>tc", vim.cmd.tabclose, {desc = "close tab"})
vim.keymap.set("n", "<leader>tl", vim.cmd.tabnext, {desc = "next tab"})
vim.keymap.set("n", "<leader>th", vim.cmd.tabprevious, {desc = "previous tab"})
vim.keymap.set("n", "<leader>tt", "<cmd>tabedit ", {desc = "open file in a new tab"})
vim.keymap.set("n", "<leader>w", "<cmd>w<cr>", {desc = "Save File"})
vim.keymap.set("n", "<leader>qq", "<cmd>q!<cr>", {desc = "force quit"})
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"})
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"})
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"})
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"})
vim.keymap.set("n", "<leader>va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"})
vim.keymap.set("n", "<leader>vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"})
vim.keymap.set("n", "<leader>vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"})
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, {buffer = bufnr})
vim.keymap.set("n", "<leader>vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"})
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {buffer=bufnr})
-- java/debuging
vim.keymap.set("n", "<leader>db", function() require"dap".toggle_breakpoint() end, {desc = "toggle breapoint"})
vim.keymap.set("n", "<leader>dc", function() require("dap").continue() end, {desc = "launch or continue execution"})
vim.keymap.set("n", "<leader>dsi", function() require("dap").step_into() end, {desc = "step into"})
vim.keymap.set("n", "<leader>dso", function() require("dap").step_over() end, {desc = "step over"})
vim.keymap.set("n", "<leader>dr", function() require("dap").repl.open() end, {desc = "open repl"})
vim.keymap.set("n", "<leader>dwb", function() require("dapui").float_element("breakpoints", {}) end, {desc = "open breakpoints window"})
vim.keymap.set("n", "<leader>dwc", function() require("dapui").float_element("console", {}) end, {desc = "open integrated console"})
vim.keymap.set("n", "<leader>dwr", function() require("dapui").float_element("repl", {}) end, {desc = "open repl"})

39
.bckpold/lua/davidontop/set.lua Executable file
View file

@ -0,0 +1,39 @@
--vim.opt.guicursor = ""
vim.opt.nu = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.wrap = true
vim.opt.smarttab = true
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
--vim.opt.colorcolumn = "80"
vim.g.mapleader = " "
vim.o.mouse = 'a'
vim.o.ignorecase = true
vim.o.smartcase = true

View file

@ -0,0 +1,569 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/d/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["Comment.nvim"] = {
config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/Comment.nvim",
url = "https://github.com/numToStr/Comment.nvim"
},
LuaSnip = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["adwaita.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/adwaita.nvim",
url = "https://github.com/Mofiqul/adwaita.nvim"
},
["alpha-nvim"] = {
config = { "\27LJ\2\na\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\27alpha.themes.dashboard\nsetup\nalpha\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/alpha-nvim",
url = "https://github.com/goolord/alpha-nvim"
},
["barbar.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/barbar.nvim",
url = "https://github.com/romgrk/barbar.nvim"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-nvim-lua"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
url = "https://github.com/hrsh7th/cmp-nvim-lua"
},
["cmp-path"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
["cmp-tabnine"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp-tabnine",
url = "https://github.com/tzachar/cmp-tabnine"
},
cmp_luasnip = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip"
},
["crates.nvim"] = {
config = { "\27LJ\2\n4\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\vcrates\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/crates.nvim",
url = "https://github.com/saecki/crates.nvim"
},
["emmet-vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/emmet-vim",
url = "https://github.com/mattn/emmet-vim"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
["github-nvim-theme"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/github-nvim-theme",
url = "https://github.com/projekt0n/github-nvim-theme"
},
["glow.nvim"] = {
config = { "\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tglow\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/glow.nvim",
url = "https://github.com/ellisonleao/glow.nvim"
},
["gruvbox-baby"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-baby",
url = "https://github.com/luisiacc/gruvbox-baby"
},
["gruvbox-material"] = {
config = { "\27LJ\2\n@\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0!colorscheme gruvbox-material\bcmd\bvim\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-material",
url = "https://github.com/sainnhe/gruvbox-material"
},
["hop.nvim"] = {
config = { "\27LJ\2\nÀ\1\0\0\6\0\r\0\0226\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\0016\0\3\0009\0\4\0009\0\5\0'\2\6\0'\3\n\0'\4\v\0005\5\f\0B\0\5\1K\0\1\0\1\0\1\vsilent\2\17:HopWord<cr>\6S\1\0\1\vsilent\2\18:HopChar2<cr>\6s\6n\20nvim_set_keymap\bapi\bvim\nsetup\bhop\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/hop.nvim",
url = "https://github.com/phaazon/hop.nvim"
},
["lsp-zero.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
},
["lsp_signature.nvim"] = {
config = { "\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14on_attach\18lsp_signature\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/lsp_signature.nvim",
url = "https://github.com/ray-x/lsp_signature.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["material.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/material.nvim",
url = "https://github.com/marko-cerovac/material.nvim"
},
["mellifluous.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mellifluous.nvim",
url = "https://github.com/ramojus/mellifluous.nvim"
},
["mellow.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/mellow.nvim",
url = "https://github.com/kvrohit/mellow.nvim"
},
["minimal.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/minimal.nvim",
url = "https://github.com/yazeed1s/minimal.nvim"
},
["neoscroll.nvim"] = {
config = { "\27LJ\2\nÕ\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\rmappings\1\0\5\25cursor_scrolls_alone\2\22respect_scrolloff\1\24use_local_scrolloff\1\rstop_eof\2\16hide_cursor\2\1\n\0\0\n<C-u>\n<C-d>\n<C-b>\n<C-f>\n<C-y>\n<C-e>\azt\azz\azb\nsetup\14neoscroll\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/neoscroll.nvim",
url = "https://github.com/karb94/neoscroll.nvim"
},
["nightfox.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nightfox.nvim",
url = "https://github.com/EdenEast/nightfox.nvim"
},
["nord.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nord.nvim",
url = "https://github.com/shaunsingh/nord.nvim"
},
["numb.nvim"] = {
config = { "\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tnumb\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/numb.nvim",
url = "https://github.com/nacro90/numb.nvim"
},
nvim = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim",
url = "https://github.com/Everblush/nvim"
},
["nvim-autopairs"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-autopairs",
url = "https://github.com/windwp/nvim-autopairs"
},
["nvim-bqf"] = {
config = { "\27LJ\2\nõ\2\0\0\6\0\18\0\0216\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0005\4\5\0=\4\6\3=\3\a\0025\3\b\0=\3\t\0025\3\15\0005\4\v\0005\5\n\0=\5\f\0045\5\r\0=\5\14\4=\4\16\3=\3\17\2B\0\2\1K\0\1\0\vfilter\bfzf\1\0\0\15extra_opts\1\5\0\0\v--bind\22ctrl-o:toggle-all\r--prompt\a> \15action_for\1\0\0\1\0\1\vctrl-s\nsplit\rfunc_map\1\0\3\16ptogglemode\az,\vvsplit\5\14stoggleup\5\fpreview\17border_chars\1\n\0\0\b┃\b┃\bâ”<EFBFBD>\bâ”<EFBFBD>\bâ”<EFBFBD>\b┓\bâ”—\bâ”›\bâ–ˆ\1\0\3\16win_vheight\3\f\15win_height\3\f\17delay_syntax\3P\1\0\1\16auto_enable\2\nsetup\bbqf\frequire\0" },
loaded = false,
needs_bufread = true,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/nvim-bqf",
url = "https://github.com/kevinhwang91/nvim-bqf"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-dap"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap",
url = "https://github.com/mfussenegger/nvim-dap"
},
["nvim-dap-ui"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap-ui",
url = "https://github.com/rcarriga/nvim-dap-ui"
},
["nvim-jdtls"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-jdtls",
url = "https://github.com/mfussenegger/nvim-jdtls"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-navic"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-navic",
url = "https://github.com/SmiteshP/nvim-navic"
},
["nvim-tree.lua"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-tree.lua",
url = "https://github.com/nvim-tree/nvim-tree.lua"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-ts-autotag"] = {
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag",
url = "https://github.com/windwp/nvim-ts-autotag"
},
["nvim-web-devicons"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
url = "https://github.com/kyazdani42/nvim-web-devicons"
},
["oh-lucy.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/oh-lucy.nvim",
url = "https://github.com/yazeed1s/oh-lucy.nvim"
},
["one_monokai.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/one_monokai.nvim",
url = "https://github.com/cpea2506/one_monokai.nvim"
},
["onedarkpro.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/onedarkpro.nvim",
url = "https://github.com/olimorris/onedarkpro.nvim"
},
["onenord.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/onenord.nvim",
url = "https://github.com/rmehri01/onenord.nvim"
},
["packer.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
playground = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/playground",
url = "https://github.com/nvim-treesitter/playground"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["popup.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/popup.nvim",
url = "https://github.com/nvim-lua/popup.nvim"
},
["presence.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/presence.nvim",
url = "https://github.com/andweeb/presence.nvim"
},
["project.nvim"] = {
config = { "\27LJ\2\n>\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\17project_nvim\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/project.nvim",
url = "https://github.com/ahmedkhalf/project.nvim"
},
rnvimr = {
after_files = { "/home/d/.local/share/nvim/site/pack/packer/opt/rnvimr/after/plugin/rnvimr.vim" },
commands = { "RnvimrToggle" },
config = { "\27LJ\2\nx\0\0\2\0\5\0\r6\0\0\0009\0\1\0)\1\1\0=\1\2\0006\0\0\0009\0\1\0)\1\1\0=\1\3\0006\0\0\0009\0\1\0)\1\1\0=\1\4\0K\0\1\0\21rnvimr_bw_enable\23rnvimr_pick_enable\23rnvimr_draw_border\6g\bvim\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/rnvimr",
url = "https://github.com/kevinhwang91/rnvimr"
},
["rust-tools.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/rust-tools.nvim",
url = "https://github.com/simrat39/rust-tools.nvim"
},
sonokai = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/sonokai",
url = "https://github.com/sainnhe/sonokai"
},
tagbar = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/tagbar",
url = "https://github.com/preservim/tagbar"
},
["telescope-dap.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/telescope-dap.nvim",
url = "https://github.com/nvim-telescope/telescope-dap.nvim"
},
["telescope-fzf-native.nvim"] = {
cond = { true },
loaded = false,
needs_bufread = false,
only_cond = true,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/telescope-fzf-native.nvim",
url = "https://github.com/nvim-telescope/telescope-fzf-native.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["todo-comments.nvim"] = {
config = { "\27LJ\2\n?\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18todo-comments\frequire\0" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim",
url = "https://github.com/folke/todo-comments.nvim"
},
["toggleterm.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/toggleterm.nvim",
url = "https://github.com/akinsho/toggleterm.nvim"
},
["tokyodark.nvim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/tokyodark.nvim",
url = "https://github.com/tiagovla/tokyodark.nvim"
},
undotree = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/undotree",
url = "https://github.com/mbbill/undotree"
},
["vim-cmake"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-cmake",
url = "https://github.com/cdelledonne/vim-cmake"
},
["vim-css-color"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-css-color",
url = "https://github.com/ap/vim-css-color"
},
["vim-nerdtree-tabs"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-nerdtree-tabs",
url = "https://github.com/jistr/vim-nerdtree-tabs"
},
["vim-sanegx"] = {
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/d/.local/share/nvim/site/pack/packer/opt/vim-sanegx",
url = "https://github.com/felipec/vim-sanegx"
},
["vim-surround"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-surround",
url = "https://github.com/tpope/vim-surround"
},
["vim-visual-multi"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/vim-visual-multi",
url = "https://github.com/mg979/vim-visual-multi"
},
["which-key.nvim"] = {
config = { "\27LJ\2\nš\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\3B\1\2\1K\0\1\0\vwindow\1\0\1\vborder\vsingle\19popup_mappings\1\0\0\1\0\2\14scroll_up\n<C-k>\16scroll_down\n<C-j>\nsetup\14which-key\frequire\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/which-key.nvim",
url = "https://github.com/folke/which-key.nvim"
},
["wilder.nvim"] = {
config = { "\27LJ\2\nÚ\2\0\0\3\0\5\0\r6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\0016\0\0\0009\0\1\0'\2\4\0B\0\2\1K\0\1\0œ\1call wilder#set_option('renderer', wilder#popupmenu_renderer(wilder#popupmenu_border_theme({'highlights': {'border': 'Normal',},'border': 'rounded'})))Tcall wilder#set_option('renderer', wilder#popupmenu_renderer({'pumblend': 20}))2call wilder#setup({'modes': [':', '/', '?']})\bcmd\bvim\0" },
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/wilder.nvim",
url = "https://github.com/gelguy/wilder.nvim"
},
["zig.vim"] = {
loaded = true,
path = "/home/d/.local/share/nvim/site/pack/packer/start/zig.vim",
url = "https://github.com/ziglang/zig.vim"
}
}
time([[Defining packer_plugins]], false)
-- Config for: glow.nvim
time([[Config for glow.nvim]], true)
try_loadstring("\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tglow\frequire\0", "config", "glow.nvim")
time([[Config for glow.nvim]], false)
-- Config for: project.nvim
time([[Config for project.nvim]], true)
try_loadstring("\27LJ\2\n>\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\17project_nvim\frequire\0", "config", "project.nvim")
time([[Config for project.nvim]], false)
-- Config for: gruvbox-material
time([[Config for gruvbox-material]], true)
try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0!colorscheme gruvbox-material\bcmd\bvim\0", "config", "gruvbox-material")
time([[Config for gruvbox-material]], false)
-- Config for: alpha-nvim
time([[Config for alpha-nvim]], true)
try_loadstring("\27LJ\2\na\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\27alpha.themes.dashboard\nsetup\nalpha\frequire\0", "config", "alpha-nvim")
time([[Config for alpha-nvim]], false)
-- Config for: Comment.nvim
time([[Config for Comment.nvim]], true)
try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0", "config", "Comment.nvim")
time([[Config for Comment.nvim]], false)
-- Config for: which-key.nvim
time([[Config for which-key.nvim]], true)
try_loadstring("\27LJ\2\nš\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\1\2\0005\3\4\0005\4\3\0=\4\5\0035\4\6\0=\4\a\3B\1\2\1K\0\1\0\vwindow\1\0\1\vborder\vsingle\19popup_mappings\1\0\0\1\0\2\14scroll_up\n<C-k>\16scroll_down\n<C-j>\nsetup\14which-key\frequire\0", "config", "which-key.nvim")
time([[Config for which-key.nvim]], false)
-- Config for: crates.nvim
time([[Config for crates.nvim]], true)
try_loadstring("\27LJ\2\n4\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\vcrates\frequire\0", "config", "crates.nvim")
time([[Config for crates.nvim]], false)
-- Config for: numb.nvim
time([[Config for numb.nvim]], true)
try_loadstring("\27LJ\2\n2\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\tnumb\frequire\0", "config", "numb.nvim")
time([[Config for numb.nvim]], false)
-- Config for: nvim-ts-autotag
time([[Config for nvim-ts-autotag]], true)
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0", "config", "nvim-ts-autotag")
time([[Config for nvim-ts-autotag]], false)
-- Config for: wilder.nvim
time([[Config for wilder.nvim]], true)
try_loadstring("\27LJ\2\nÚ\2\0\0\3\0\5\0\r6\0\0\0009\0\1\0'\2\2\0B\0\2\0016\0\0\0009\0\1\0'\2\3\0B\0\2\0016\0\0\0009\0\1\0'\2\4\0B\0\2\1K\0\1\0œ\1call wilder#set_option('renderer', wilder#popupmenu_renderer(wilder#popupmenu_border_theme({'highlights': {'border': 'Normal',},'border': 'rounded'})))Tcall wilder#set_option('renderer', wilder#popupmenu_renderer({'pumblend': 20}))2call wilder#setup({'modes': [':', '/', '?']})\bcmd\bvim\0", "config", "wilder.nvim")
time([[Config for wilder.nvim]], false)
-- Conditional loads
time([[Conditional loading of telescope-fzf-native.nvim]], true)
require("packer.load")({"telescope-fzf-native.nvim"}, {}, _G.packer_plugins)
time([[Conditional loading of telescope-fzf-native.nvim]], false)
-- Command lazy-loads
time([[Defining lazy-load commands]], true)
pcall(vim.api.nvim_create_user_command, 'RnvimrToggle', function(cmdargs)
require('packer.load')({'rnvimr'}, { cmd = 'RnvimrToggle', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'rnvimr'}, { cmd = 'RnvimrToggle' }, _G.packer_plugins)
return vim.fn.getcompletion('RnvimrToggle ', 'cmdline')
end})
time([[Defining lazy-load commands]], false)
vim.cmd [[augroup packer_load_aucmds]]
vim.cmd [[au!]]
-- Event lazy-loads
time([[Defining lazy-load event autocommands]], true)
vim.cmd [[au BufRead * ++once lua require("packer.load")({'vim-sanegx', 'hop.nvim', 'lsp_signature.nvim', 'nvim-bqf', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]]
vim.cmd [[au BufNew * ++once lua require("packer.load")({'nvim-bqf'}, { event = "BufNew *" }, _G.packer_plugins)]]
vim.cmd [[au WinScrolled * ++once lua require("packer.load")({'neoscroll.nvim'}, { event = "WinScrolled *" }, _G.packer_plugins)]]
time([[Defining lazy-load event autocommands]], false)
vim.cmd("augroup END")
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

11
.latestBackup/after/init.lua Executable file
View file

@ -0,0 +1,11 @@
vim.opt.nu = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.cursorcolumn = true
vim.cmd[[
highlight CursorColumn guibg=none ctermbg=none
highlight link CursorColumn CursorLine
]]

View file

@ -0,0 +1,44 @@
-- local db = require('dashboard')
--
local header = {"",
" /$$ /$$ /$$ /$$ /$$ ",
"| $$$ | $$ | $$ | $$|__/ ",
"| $$$$| $$ /$$$$$$ /$$$$$$ | $$ | $$ /$$ /$$$$$$/$$$$ ",
"| $$ $$ $$ /$$__ $$ /$$__ $$| $$ / $$/| $$| $$_ $$_ $$",
"| $$ $$$$| $$$$$$$$| $$ \\ $$ \\ $$ $$/ | $$| $$ \\ $$ \\ $$",
"| $$\\ $$$| $$_____/| $$ | $$ \\ $$$/ | $$| $$ | $$ | $$",
"| $$ \\ $$| $$$$$$$| $$$$$$/ \\ $/ | $$| $$ | $$ | $$",
"|__/ \\__/ \\_______/ \\______/ \\_/ |__/|__/ |__/ |__/",
"",
"",
"",
"",
"",
"",
"",
}
-- db.custom_header = header
-- db.custom_center = {
-- {
-- icon = ' ',
-- desc ='File Browser ',
-- action = 'Telescope file_browser',
-- shortcut = 'SPC e e'
-- },
-- }
local dashboard = require("alpha.themes.dashboard")
dashboard.section.header.val = header
dashboard.section.buttons.val = {
dashboard.button("SPC e e", " File Tree", ":NeoTreeFloatToggle<cr>"),
dashboard.button("op", "Open Project", ":OP<cr>"),
dashboard.button("oc", "Open Config", ":Config<cr>"),
}
-- dashboard.section.footer.opts.hl = "Constant"
-- dashboard.section.header.opts.hl = "Include"
-- dashboard.section.buttons.opts.hl = "Function"
-- dashboard.section.buttons.opts.hl_shortcut = "Type"
dashboard.opts.opts.noautocmd = true
require("alpha").setup(dashboard.opts)

View file

@ -0,0 +1,9 @@
vim.cmd[[
map <Space>m\ <nop>
map <Space>m/ <nop>
map <Space>mA <nop>
map <Space>mgS <nop>
map <Space>tt <nop>
map <Space>tm <nop>
]]

View file

@ -0,0 +1,9 @@
require('gitsigns').setup {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
}

View file

@ -0,0 +1,219 @@
-- local ih = require("inlay-hints")
require('neodev').setup()
-- vim.lsp.ensure_installed({
-- "clangd",
-- "gopls",
-- "jdtls",
-- "eslint",
-- "tailwindcss",
-- "tsserver",
-- "cssmodules_ls",
-- "rome",
-- "jsonls",
-- "sumneko_lua",
-- "pylsp",
-- "rust_analyzer",
-- "stylelint_lsp",
-- })
local navic = require("nvim-navic")
navic.setup {
icons = {
File = "",
Module = "",
Namespace = "",
Package = "",
Class = "",
Method = "",
Property = "",
Field = "",
Constructor = "",
Enum = "",
Interface = "",
Function = "",
Variable = "",
Constant = "",
String = "",
Number = "",
Boolean = "",
Array = "",
Object = "",
Key = "",
Null = "",
EnumMember = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
},
highlight = false,
separator = " > ",
depth_limit = 0,
depth_limit_indicator = "..",
safe_output = true
}
local on_attach = function(client, bufnr)
local nmap = function(keys, func, desc)
if desc then
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
end
-- ih.on_attach(client, bufnr)
require("lsp-inlayhints").on_attach(client, bufnr)
if client.server_capabilities.documentSymbolProvider then
navic.attach(client, bufnr)
require("nvim-navbuddy").attach(client, bufnr)
end
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Create a command `:Format` local to the LSP buffer
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, { desc = 'Format current buffer with LSP' })
end
local servers = {
clangd = {},
pyright = {},
rust_analyzer = {},
tsserver = {},
-- sumneko_lua = {
-- Lua = {
-- workspace = { checkThirdParty = false },
-- telemetry = { enable = false },
-- },
-- },
}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
require('mason').setup()
require("mason-nvim-dap").setup({automatic_installation = true, handlers = {
function (config)
require("mason-nvim-dap").default_setup(config)
end
}})
local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers),
}
mason_lspconfig.setup_handlers {
function(server_name)
require('lspconfig')[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
}
end,
}
require("lspconfig").nimls.setup{
cmd = {"nimlsp", "--log", "/tmp/nimlsp.log"},
on_attach = on_attach,
}
require("lspconfig").zls.setup{
cmd = {"zls"},
on_attach = on_attach,
}
-- lspinfo
require('fidget').setup()
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require 'cmp'
local luasnip = require 'luasnip'
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
-- ["<C-y>"] = cmp.mapping.confirm({ slelect = true}),
["<C-Space><C-Space>"] = cmp.mapping.complete({}),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- elseif luasnip.expand_or_jumpable() then
-- luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = "crates" },
},
}
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
vim.diagnostic.config({
signs = true,
underline = true,
update_in_insert = true,
virtual_text = true,
})
require("cmp").config.formatting = {
format = require("tailwindcss-colorizer-cmp").formatter,
behavior = cmp.SelectBehavior.Select,
}
-- require('tabnine').setup({
-- disable_auto_comment=true,
-- accept_keymap="<Tab>",
-- dismiss_keymap = "<C-]>",
-- debounce_ms = 300,
-- suggestion_color = {gui = "#808080", cterm = 244},
-- execlude_filetypes = {"TelescopePrompt"}
-- })
require("aerial").setup({})
require("dap")
local sign = vim.fn.sign_define
sign("DapBreakpoint", { text = "", texthl = "DapBreakpoint", linehl = "", numhl = ""})
sign("DapBreakpointCondition", { text = "", texthl = "DapBreakpointCondition", linehl = "", numhl = ""})
sign("DapLogPoint", { text = "", texthl = "DapLogPoint", linehl = "", numhl = ""})

View file

@ -0,0 +1,8 @@
require("mini.ai").setup({
custom_textobjects = {
[','] = require("mini.ai").gen_spec.pair(',', ',', {})
}
})
require("mini.jump").setup({})
require("mini.sessions").setup({autowrite = false, directory = '~/projects/sessions'})

View file

@ -0,0 +1,10 @@
require("neo-tree").setup({
source_selector = {
winbar = true,
statusline = false,
},
})
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)

View file

@ -0,0 +1,22 @@
require("presence"):setup({
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The best PDE, Personalized Development Enviroment", -- Text displayed when hovered over the Neovim image
main_image = "neovim", -- Main image display (either "neovim" or "file")
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout = 15, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
show_time = true, -- Show the timer
-- Rich Presence text options
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
})

View file

@ -0,0 +1,158 @@
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
end,
},
})
rt.inlay_hints.enable()
rt.runnables.runnables()
rt.hover_actions.hover_actions()
rt.hover_range.hover_range()
rt.open_cargo_toml.open_cargo_toml()
rt.parent_module.parent_module()
rt.join_lines.join_lines()
rt.crate_graph.view_crate_graph(backend, output)
require("crates").setup {
smart_insert = true,
insert_closing_quote = true,
avoid_prerelease = true,
autoload = true,
autoupdate = true,
loading_indicator = true,
date_format = "%Y-%m-%d",
thousands_separator = ".",
notification_title = "Crates",
--curl_args = { "-sL", "--retry", "1" },
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 ",
},
coq = {
enabled = false,
name = "Crates",
},
},
null_ls = {
enabled = false,
name = "Crates",
},
}

View file

@ -0,0 +1,762 @@
local conditions = require("heirline.conditions")
local utils = require("heirline.utils")
local colors = {
bright_bg = utils.get_highlight("Folded").bg,
bright_fg = utils.get_highlight("Folded").fg,
red = utils.get_highlight("DiagnosticError").fg,
dark_red = utils.get_highlight("diffDelete").bg,
green = utils.get_highlight("String").fg,
blue = utils.get_highlight("Function").fg,
gray = utils.get_highlight("NonText").fg,
orange = utils.get_highlight("Constant").fg,
purple = utils.get_highlight("Statement").fg,
cyan = utils.get_highlight("Special").fg,
diag_warn = utils.get_highlight("DiagnosticWarn").fg,
diag_error = utils.get_highlight("DiagnosticError").fg,
diag_hint = utils.get_highlight("DiagnosticHint").fg,
diag_info = utils.get_highlight("DiagnosticInfo").fg,
git_del = utils.get_highlight("diffRemoved").fg,
git_add = utils.get_highlight("diffAdded").fg,
git_change = utils.get_highlight("diffChanged").fg,
}
require("heirline").load_colors(colors)
local ViMode = {
-- get vim current mode, this information will be required by the provider
-- and the highlight functions, so we compute it only once per component
-- evaluation and store it as a component attribute
init = function(self)
self.mode = vim.fn.mode(1) -- :h mode()
end,
-- Now we define some dictionaries to map the output of mode() to the
-- corresponding string and color. We can put these into `static` to compute
-- them at initialisation time.
static = {
mode_names = { -- change the strings if you like it vvvvverbose!
n = "N",
no = "N?",
nov = "N?",
noV = "N?",
["no\22"] = "N?",
niI = "Ni",
niR = "Nr",
niV = "Nv",
nt = "Nt",
v = "V",
vs = "Vs",
V = "V_",
Vs = "Vs",
["\22"] = "^V",
["\22s"] = "^V",
s = "S",
S = "S_",
["\19"] = "^S",
i = "I",
ic = "Ic",
ix = "Ix",
R = "R",
Rc = "Rc",
Rx = "Rx",
Rv = "Rv",
Rvc = "Rv",
Rvx = "Rv",
c = "C",
cv = "Ex",
r = "...",
rm = "M",
["r?"] = "?",
["!"] = "!",
t = "T",
},
mode_colors = {
n = "red" ,
i = "green",
v = "cyan",
V = "cyan",
["\22"] = "cyan",
c = "orange",
s = "purple",
S = "purple",
["\19"] = "purple",
R = "orange",
r = "orange",
["!"] = "red",
t = "red",
}
},
-- We can now access the value of mode() that, by now, would have been
-- computed by `init()` and use it to index our strings dictionary.
-- note how `static` fields become just regular attributes once the
-- component is instantiated.
-- To be extra meticulous, we can also add some vim statusline syntax to
-- control the padding and make sure our string is always at least 2
-- characters long. Plus a nice Icon.
provider = function(self)
return "  %2("..self.mode_names[self.mode].."%)"
end,
-- Same goes for the highlight. Now the foreground will change according to the current mode.
hl = function(self)
local mode = self.mode:sub(1, 1) -- get only the first mode character
return { fg = self.mode_colors[mode], bold = true, }
end,
-- Re-evaluate the component only on ModeChanged event!
-- Also allorws the statusline to be re-evaluated when entering operator-pending mode
update = {
"ModeChanged",
pattern = "*:*",
callback = vim.schedule_wrap(function()
vim.cmd("redrawstatus")
end),
},
}
ViMode = utils.surround({ "", "" }, "bright_bg", { ViMode})
local FileNameBlock = {
-- let's first set up some attributes needed by this component and it's children
init = function(self)
self.filename = vim.api.nvim_buf_get_name(0)
end,
}
-- We can now define some children separately and add them later
local FileIcon = {
init = function(self)
local filename = self.filename
local extension = vim.fn.fnamemodify(filename, ":e")
self.icon, self.icon_color = require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
end,
provider = function(self)
return self.icon and (self.icon .. " ")
end,
hl = function(self)
return { fg = self.icon_color }
end
}
local FileName = {
provider = function(self)
-- first, trim the pattern relative to the current directory. For other
-- options, see :h filename-modifers
local filename = vim.fn.fnamemodify(self.filename, ":.")
if filename == "" then return "[No Name]" end
-- now, if the filename would occupy more than 1/4th of the available
-- space, we trim the file path to its initials
-- See Flexible Components section below for dynamic truncation
if not conditions.width_percent_below(#filename, 0.25) then
filename = vim.fn.pathshorten(filename)
end
return filename
end,
hl = { fg = utils.get_highlight("Directory").fg },
}
local FileFlags = {
{
condition = function()
return vim.bo.modified
end,
provider = "[+]",
hl = { fg = "green" },
},
{
condition = function()
return not vim.bo.modifiable or vim.bo.readonly
end,
provider = "",
hl = { fg = "orange" },
},
}
-- Now, let's say that we want the filename color to change if the buffer is
-- modified. Of course, we could do that directly using the FileName.hl field,
-- but we'll see how easy it is to alter existing components using a "modifier"
-- component
local FileNameModifer = {
hl = function()
if vim.bo.modified then
-- use `force` because we need to override the child's hl foreground
return { fg = "cyan", bold = true, force=true }
end
end,
}
-- let's add the children to our FileNameBlock component
FileNameBlock = utils.insert(FileNameBlock,
FileIcon,
utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
FileFlags,
{ provider = '%<'} -- this means that the statusline is cut here when there's not enough space
)
local FileSize = {
provider = function()
-- stackoverflow, compute human readable file size
local suffix = { 'b', 'k', 'M', 'G', 'T', 'P', 'E' }
local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
fsize = (fsize < 0 and 0) or fsize
if fsize < 1024 then
return fsize..suffix[1]
end
local i = math.floor((math.log(fsize) / math.log(1024)))
return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
end
}
local FileLastModified = {
-- did you know? Vim is full of functions!
provider = function()
local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
return (ftime > 0) and os.date("%c", ftime)
end
}
FileNameBlock = utils.surround({ "", "" }, "bright_bg", FileNameBlock)
-- We're getting minimalists here!
local Ruler = {
-- %l = current line number
-- %L = number of lines in the buffer
-- %c = column number
-- %P = percentage through file of displayed window
provider = "%7(%l/%3L%):%2c %P",
}
Ruler = utils.surround({ "", "" }, "bright_bg", Ruler)
-- I take no credits for this! :lion:
local ScrollBar ={
static = {
sbar = { '', '', '', '', '', '', '', '' }
-- Another variant, because the more choice the better.
-- sbar = { '🭶', '🭷', '🭸', '🭹', '🭺', '🭻' }
},
provider = function(self)
local curr_line = vim.api.nvim_win_get_cursor(0)[1]
local lines = vim.api.nvim_buf_line_count(0)
local i = math.floor((curr_line - 1) / lines * #self.sbar) + 1
return string.rep(self.sbar[i], 2)
end,
hl = { fg = "blue", bg = "bright_bg" },
}
local LSPActive = {
condition = conditions.lsp_attached,
update = {'LspAttach', 'LspDetach'},
-- You can keep it simple,
-- provider = " [LSP]",
-- Or complicate things a bit and get the servers names
provider = function()
local names = {}
for i, server in pairs(vim.lsp.get_active_clients({ bufnr = 0 })) do
table.insert(names, server.name)
end
return " [" .. table.concat(names, " ") .. "]"
end,
hl = { fg = "green", bold = true },
}
LSPActive = utils.surround({ "", "" }, "bright_bg", LSPActive)
-- Full nerd (with icon colors and clickable elements)!
-- works in multi window, but does not support flexible components (yet ...)
local Navic = {
condition = function() return require("nvim-navic").is_available() end,
static = {
-- create a type highlight map
type_hl = {
File = "Directory",
Module = "@include",
Namespace = "@namespace",
Package = "@include",
Class = "@structure",
Method = "@method",
Property = "@property",
Field = "@field",
Constructor = "@constructor",
Enum = "@field",
Interface = "@type",
Function = "@function",
Variable = "@variable",
Constant = "@constant",
String = "@string",
Number = "@number",
Boolean = "@boolean",
Array = "@field",
Object = "@type",
Key = "@keyword",
Null = "@comment",
EnumMember = "@field",
Struct = "@structure",
Event = "@keyword",
Operator = "@operator",
TypeParameter = "@type",
},
-- bit operation dark magic, see below...
enc = function(line, col, winnr)
return bit.bor(bit.lshift(line, 16), bit.lshift(col, 6), winnr)
end,
-- line: 16 bit (65535); col: 10 bit (1023); winnr: 6 bit (63)
dec = function(c)
local line = bit.rshift(c, 16)
local col = bit.band(bit.rshift(c, 6), 1023)
local winnr = bit.band(c, 63)
return line, col, winnr
end
},
init = function(self)
local data = require("nvim-navic").get_data() or {}
local children = {}
-- create a child for each level
for i, d in ipairs(data) do
-- encode line and column numbers into a single integer
local pos = self.enc(d.scope.start.line, d.scope.start.character, self.winnr)
local child = {
{
provider = d.icon,
hl = self.type_hl[d.type],
},
{
-- escape `%`s (elixir) and buggy default separators
provider = d.name:gsub("%%", "%%%%"):gsub("%s*->%s*", ''),
-- highlight icon only or location name as well
-- hl = self.type_hl[d.type],
on_click = {
-- pass the encoded position through minwid
minwid = pos,
callback = function(_, minwid)
-- decode
local line, col, winnr = self.dec(minwid)
vim.api.nvim_win_set_cursor(vim.fn.win_getid(winnr), {line, col})
end,
name = "heirline_navic",
},
},
}
-- add a separator only if needed
if #data > 1 and i < #data then
table.insert(child, {
provider = " > ",
hl = { fg = 'bright_fg' },
})
end
table.insert(children, child)
end
-- instantiate the new child, overwriting the previous one
self.child = self:new(children, 1)
end,
-- evaluate the children containing navic components
provider = function(self)
return self.child:eval()
end,
hl = { fg = "gray" },
update = 'CursorMoved'
}
-- local Diagnostics = {
--
-- condition = conditions.has_diagnostics,
--
-- static = {
-- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
-- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
-- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
-- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
-- },
--
-- init = function(self)
-- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
-- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
-- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
-- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
-- end,
--
-- update = { "DiagnosticChanged", "BufEnter" },
--
-- {
-- provider = function(self)
-- -- 0 is just another output, we can decide to print it or not!
-- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
-- end,
-- hl = { fg = "diag_error" },
-- },
-- {
-- provider = function(self)
-- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
-- end,
-- hl = { fg = "diag_warn" },
-- },
-- {
-- provider = function(self)
-- return self.info > 0 and (self.info_icon .. self.info .. " ")
-- end,
-- hl = { fg = "diag_info" },
-- },
-- {
-- provider = function(self)
-- return self.hints > 0 and (self.hint_icon .. self.hints)
-- end,
-- hl = { fg = "diag_hint" },
-- },
-- }
local Git = {
condition = conditions.is_git_repo,
init = function(self)
self.status_dict = vim.b.gitsigns_status_dict
self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
end,
hl = { fg = "orange" },
{ -- git branch name
provider = function(self)
return "" .. self.status_dict.head
end,
hl = { bold = true }
},
-- You could handle delimiters, icons and counts similar to Diagnostics
{
condition = function(self)
return self.has_changes
end,
provider = "("
},
{
provider = function(self)
local count = self.status_dict.added or 0
return count > 0 and ("+" .. count)
end,
hl = { fg = "git_add" },
},
{
provider = function(self)
local count = self.status_dict.removed or 0
return count > 0 and ("-" .. count)
end,
hl = { fg = "git_del" },
},
{
provider = function(self)
local count = self.status_dict.changed or 0
return count > 0 and ("~" .. count)
end,
hl = { fg = "git_change" },
},
{
condition = function(self)
return self.has_changes
end,
provider = ")",
},
}
local DAPMessages = {
condition = function()
local session = require("dap").session()
return session ~= nil
end,
provider = function()
return "" .. require("dap").status()
end,
hl = "Debug"
-- see Click-it! section for clickable actions
}
local WorkDir = {
provider = function()
local icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. ""
local cwd = vim.fn.getcwd(0)
cwd = vim.fn.fnamemodify(cwd, ":~")
if not conditions.width_percent_below(#cwd, 0.25) then
cwd = vim.fn.pathshorten(cwd)
end
local trail = cwd:sub(-1) == '/' and '' or "/"
return icon .. cwd .. trail
end,
hl = { fg = "blue", bold = true },
}
local TerminalName = {
-- we could add a condition to check that buftype == 'terminal'
-- or we could do that later (see #conditional-statuslines below)
provider = function()
local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
return "" .. tname
end,
hl = { fg = "blue", bold = true },
}
-------------------------------------------------------------------------------------
local TablineBufnr = {
provider = function(self)
return tostring(self.bufnr) .. ". "
end,
hl = "Comment",
}
-- we redefine the filename component, as we probably only want the tail and not the relative path
local TablineFileName = {
provider = function(self)
-- self.filename will be defined later, just keep looking at the example!
local filename = self.filename
filename = filename == "" and "[No Name]" or vim.fn.fnamemodify(filename, ":t")
return filename
end,
hl = function(self)
return { bold = self.is_active or self.is_visible, italic = true }
end,
}
-- this looks exactly like the FileFlags component that we saw in
-- #crash-course-part-ii-filename-and-friends, but we are indexing the bufnr explicitly
-- also, we are adding a nice icon for terminal buffers.
local TablineFileFlags = {
{
condition = function(self)
return vim.api.nvim_buf_get_option(self.bufnr, "modified")
end,
provider = "[+]",
hl = { fg = "green" },
},
{
condition = function(self)
return not vim.api.nvim_buf_get_option(self.bufnr, "modifiable")
or vim.api.nvim_buf_get_option(self.bufnr, "readonly")
end,
provider = function(self)
if vim.api.nvim_buf_get_option(self.bufnr, "buftype") == "terminal" then
return ""
else
return ""
end
end,
hl = { fg = "orange" },
},
}
-- Here the filename block finally comes together
local TablineFileNameBlock = {
init = function(self)
self.filename = vim.api.nvim_buf_get_name(self.bufnr)
end,
hl = function(self)
if self.is_active then
return "TabLineSel"
-- why not?
-- elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
-- return { fg = "gray" }
else
return "TabLine"
end
end,
on_click = {
callback = function(_, minwid, _, button)
if (button == "m") then -- close on mouse middle click
vim.schedule(function()
vim.api.nvim_buf_delete(minwid, { force = false })
end)
else
vim.api.nvim_win_set_buf(0, minwid)
end
end,
minwid = function(self)
return self.bufnr
end,
name = "heirline_tabline_buffer_callback",
},
TablineBufnr,
FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
TablineFileName,
TablineFileFlags,
}
-- a nice "x" button to close the buffer
local TablineCloseButton = {
condition = function(self)
return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
end,
{ provider = " " },
{
provider = "",
hl = { fg = "gray" },
on_click = {
callback = function(_, minwid)
vim.schedule(function()
vim.api.nvim_buf_delete(minwid, { force = false })
end)
vim.cmd.redrawtabline()
end,
minwid = function(self)
return self.bufnr
end,
name = "heirline_tabline_close_buffer_callback",
},
},
}
-- The final touch!
local TablineBufferBlock = utils.surround({ "", "" }, function(self)
if self.is_active then
return utils.get_highlight("TabLineSel").bg
else
return utils.get_highlight("TabLine").bg
end
end, { TablineFileNameBlock, TablineCloseButton })
-- and here we go
local BufferLine = utils.make_buflist(
TablineBufferBlock,
{ provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
{ provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
-- by the way, open a lot of buffers and try clicking them ;)
)
local Tabpage = {
provider = function(self)
return "%" .. self.tabnr .. "T " .. self.tabpage .. " %T"
end,
hl = function(self)
if not self.is_active then
return "TabLine"
else
return "TabLineSel"
end
end,
}
local TabpageClose = {
provider = "%999X  %X",
hl = "TabLine",
}
local TabPages = {
-- only show this component if there's 2 or more tabpages
condition = function()
return #vim.api.nvim_list_tabpages() >= 2
end,
{ provider = "%=" },
utils.make_tablist(Tabpage),
TabpageClose,
}
local TabLineOffset = {
condition = function(self)
local win = vim.api.nvim_tabpage_list_wins(0)[1]
local bufnr = vim.api.nvim_win_get_buf(win)
self.winid = win
if vim.bo[bufnr].filetype == "NvimTree" then
self.title = "NvimTree"
return true
elseif vim.bo[bufnr].filetype == "neo-tree" then
self.title = "NeoTree"
return true
elseif vim.bo[bufnr].filetype == "nerdtree" then
self.title = "NerdTree"
return true
end
-- elseif vim.bo[bufnr].filetype == "TagBar" then
-- ...
end,
provider = function(self)
local title = self.title
local width = vim.api.nvim_win_get_width(self.winid)
local pad = math.ceil((width - #title) / 2)
return string.rep(" ", pad) .. title .. string.rep(" ", pad)
end,
hl = function(self)
if vim.api.nvim_get_current_win() == self.winid then
return "TablineSel"
else
return "Tabline"
end
end,
}
local Align = { provider = "%=" }
local Space = { provider = " " }
local StatusLine = {
ViMode, Space, FileNameBlock, Space, Git, Space, Align,
DAPMessages, Align,
LSPActive, Space, Ruler
}
local WinBar = {
utils.surround({"", ""}, "#000000", Navic)
}
local TabBar = {
TabLineOffset, BufferLine, TabPages,
}
require("heirline").setup({
statusline = StatusLine,
tabline = TabBar,
winbar = WinBar,
opts = {
disable_winbar_cb = function(args)
local buf = args.buf
local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
local filetype = vim.tbl_contains({ "gitcommit", "fugitive", "Trouble", "packer", "neo-tree", "nerdtree", "NvimTree" }, vim.bo[buf].filetype)
return buftype or filetype
end,
}
})
vim.o.showtabline = 2
vim.o.laststatus = 3
-- require("lualine").setup {
-- options = {
-- icons_enabled = true,
-- theme = "auto",
-- component_separators = { left = "", right = ""},
-- section_separators = { left = "", right = ""},
-- disabled_filetypes = {
-- statusline = {},
-- winbar = {},
-- },
-- ignore_focus = {},
-- always_divide_middle = true,
-- globalstatus = false,
-- refresh = {
-- statusline = 1000,
-- tabline = 1000,
-- winbar = 1000,
-- }
-- },
-- sections = {
-- lualine_a = {"mode"},
-- lualine_b = {"diff"},
-- lualine_c = {"branch"},
-- lualine_x = {"location"},
-- lualine_y = {"progress"},
-- lualine_z = {"filename"}
-- },
-- inactive_sections = {
-- lualine_a = {},
-- lualine_b = {},
-- lualine_c = {"filename"},
-- lualine_x = {"location"},
-- lualine_y = {},
-- lualine_z = {}
-- },
-- tabline = {},
-- winbar = {},
-- inactive_winbar = {},
-- extensions = {}
-- }

View file

@ -0,0 +1,29 @@
-- require("bufferline").setup {
-- animation = true,
-- auto_hide = true,
-- tabpages = true,
-- closable = true,
-- clickable = true,
-- separator_style = "slant",
-- numbers = "buffer_id",
-- }
--
-- -- file sidebars
-- local nvim_tree_events = require("nvim-tree.events")
-- local bufferline_api = require("bufferline.api")
--
-- local function get_tree_size()
-- return require"nvim-tree.view".View.width
-- end
--
-- nvim_tree_events.subscribe("TreeOpen", function()
-- bufferline_api.set_offset(get_tree_size())
-- end)
--
-- nvim_tree_events.subscribe("Resize", function()
-- bufferline_api.set_offset(get_tree_size())
-- end)
--
-- nvim_tree_events.subscribe("TreeClose", function()
-- bufferline_api.set_offset(0)
-- end)

View file

@ -0,0 +1,12 @@
require "telescope".setup {
pickers = {
colorscheme = {
enable_preview = true
}
}
}
pcall(require("telescope").load_extension, "fzf")
require("telescope").load_extension("dap")
require('telescope').load_extension('projects')

View file

@ -0,0 +1,24 @@
vim.filetype.add({extension = {wgsl = "wgsl"}})
require"nvim-treesitter.configs".setup {
ensure_installed = { "wgsl", "bash", "cmake", "cpp", "dockerfile", "gitignore", "glsl", "go", "graphql", "html", "java", "javascript", "json5", "kotlin", "markdown", "python", "rasi", "regex", "c", "lua", "rust", "scss", "sql", "sxhkdrc", "toml", "tsx", "typescript", "yaml" },
sync_install = false,
auto_install = true,
indent = { enable = true, disable = { 'python' } },
highlight = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
}
vim.wo.foldmethod = "expr"
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
vim.o.foldlevelstart = 99 -- do not close folds when a buffer is opened

1
.latestBackup/init.lua Executable file
View file

@ -0,0 +1 @@
require("config")

82
.latestBackup/lua/.luarc.json Executable file
View file

@ -0,0 +1,82 @@
{
"workspace.library": [
"/home/d/.local/share/nvim/site/pack/packer/start/neodev.nvim/types/stable",
"/usr/share/nvim/runtime/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/hop.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/lsp_signature.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/neoscroll.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/nvim-bqf/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/telescope-fzf-native.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/Comment.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/LuaSnip/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/adwaita.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/barbar.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/cmp-buffer/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/cmp-path/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/cmp_luasnip/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/copilot.vim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/crates.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/dashboard-nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/fidget.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/github-nvim-theme/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/gitsigns.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/glow.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-baby/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/gruvbox-material/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/lualine.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/mason.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/material.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/mellow.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/minimal.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/neodev.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/neorg/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/neorg-telescope/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nightfox.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nord.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/numb.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-autopairs/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-cmp/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-dap-ui/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-jdtls/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-navic/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-tree.lua/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-treesitter/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/nvim-web-devicons/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/oh-lucy.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/one_monokai.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/onedarkpro.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/onenord.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/org-bullets.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/orgmode/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/packer.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/playground/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/plenary.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/popup.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/presence.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/project.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/rust-tools.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/sonokai/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/tailwindcss-colorizer-cmp.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/telescope-dap.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/telescope.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/toggleterm.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/tokyodark.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/which-key.nvim/lua",
"/home/d/.local/share/nvim/site/pack/packer/start/wilder.nvim/lua",
"/home/d/.config/nvim/lua",
"${3rd}/luv/library",
"${3rd}/luv/library",
"/home/d/.local/share/nvim/mason/packages/lua-language-server/libexec/meta/0d6b62fe",
"/home/d/.local/share/nvim/mason/packages/lua-language-server/libexec/meta/306b5cb1"
]
}

View file

@ -0,0 +1,62 @@
local pickers = require "telescope.pickers"
local finders = require "telescope.finders"
local conf = require("telescope.config").values
local actions = require "telescope.actions"
local action_state = require "telescope.actions.state"
vim.api.nvim_create_user_command("OP", function ()
local folders = vim.fn.systemlist("\\ls -d $HOME/projects/*/")
for i, folder in ipairs(folders) do
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
end
pickers.new({}, {
prompt_title = "Open project",
finder = finders.new_table {
results = folders
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd("cd $HOME/projects/" .. selection)
vim.cmd("Alpha")
vim.cmd("BWipeout other")
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_user_command("OD", function ()
local folders = vim.fn.systemlist("\\ls -d */")
for i, folder in ipairs(folders) do
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
end
pickers.new({}, {
prompt_title = "Open directory",
finder = finders.new_table {
results = folders
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd("cd " .. selection)
vim.cmd("Alpha")
vim.cmd("BWipeout other")
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_user_command("Config", function ()
vim.cmd("cd $HOME/.config/nvim")
vim.cmd("Alpha")
vim.cmd("BWipeout other")
vim.cmd("NeoTreeFloatToggle")
end, {})

View file

@ -0,0 +1,4 @@
require("config.packer")
require("config.set")
require("config.map")
require("config.commands")

187
.latestBackup/lua/config/map.lua Executable file
View file

@ -0,0 +1,187 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " "
local wk = require("which-key")
local keys = {
a = {"<cmd>Copilot suggestion accept<cr>", "Copilot"},
e = {
name = "Toggle",
e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
w = {vim.cmd.Ex, "netrw"},
l = {
name = "LSP",
k = {"<cmd>LspStop<cr>", "Stop"},
s = {"<cmd>LspStart<cr>", "Start"},
},
g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
c = {"<cmd>NeoTreeClose<CR>" , "Close"},
s = {"<cmd>Navbuddy<CR>" , "Symbols"},
o = {function () require("oil").open_float(vim.fn.getcwd()) end, "Oil"},
},
c = {
name = "LSP",
S = {"<cmd>AerialToggle<cr>", "Symbol sidebar"},
w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
d = {function () vim.diagnostic.open_float() end, "diagnostic"},
a = {function () vim.lsp.buf.code_action() end, "code actions"},
r = {function () vim.lsp.buf.references() end, "references"},
n = {function () vim.lsp.buf.rename() end, "rename"},
h = {function () vim.lsp.buf.hover() end, "Hover"},
t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
-- s = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
o = {
name = "Copilot",
a = {"<cmd>Copilot suggestion accept<cr>", "Accept"},
w = {"<cmd>Copilot suggestion accept_word<cr>", "Word"},
l = {"<cmd>Copilot suggestion accept_line<cr>", "Line"},
d = {"<cmd>Copilot suggestion dismiss<cr>", "Decline"},
n = {"<cmd>Copilot suggestion next<cr>", "Next"},
p = {"<cmd>Copilot suggestion prev<cr>", "Previous"},
t = {"<cmd>Copilot suggestion toggle_auto_trigger", "toggle"},
P = {
name = "Panel",
t = {"<cmd>Copilot panel open<cr>", "Open"},
r = {"<cmd>Copilot panel refresg<cr>", "Refresh"},
n = {"<cmd>Copilot panel jump_next<cr>", "Next"},
p = {"<cmd>Copilot panel jump_prev<cr>", "Previous"},
a = {"<cmd>Copilot panel accept<cr>", "Accept"},
},
},
g = {
name = "Goto Preview",
d = {function () require('goto-preview').goto_preview_definition() end, "Definition"},
r = {function () require('goto-preview').goto_preview_references() end, "References"},
t = {function () require("goto-preview").goto_preview_type_definitions() end, "Type"},
i = {function () require("goto-preview").goto_preview_implementation() end, "Implementation"},
c = {function () require("goto-preview").close_all_win() end, "Close"},
},
},
q = {
name = "Nvim",
q = {"<cmd>q<cr>", "Quit"},
W = {"<cmd>wq<cr>", "Save and Quit"},
w = {"<cmd>w<cr>", "Save"},
},
u = {"vim.cmd.UndotreeToggle", "UndoTree"},
b = {
name = "Buffer",
h = {vim.cmd.bprevious, "Previous"},
l = {vim.cmd.bnext, "Next"},
H = {vim.cmd.bfirst, "First"},
L = {vim.cmd.blast, "Last"},
b = {require("telescope.builtin").buffers, "Picker"},
c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
},
f = {
name = "Telescope & fzf",
c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
w = {require("telescope.builtin").grep_string, "Find current Word"},
f = {require("telescope.builtin").find_files, "telescope find files"},
g = {require("telescope.builtin").live_grep, "live grep"},
b = {require("telescope.builtin").buffers, "buffers"},
h = {require("telescope.builtin").help_tags, "help tags"},
s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
p = {"<cmd>Telescope projects<cr>", "Projects"},
},
s = {
name = "Settings",
c = {function ()
vim.opt.scrolloff = 100
end, "Always center cursor"},
x = {function ()
vim.opt.scrolloff = 8
end, "Disable Cursor center"},
f = {function ()
vim.opt.nu = true
vim.opt.relativenumber = true
end, "Fix number and relative numbers"},
m = {function ()
vim.cmd[[
highlight CursorColumn guibg=none ctermbg=none
highlight link CursorColumn CursorLine
]]
end, "Fix cursor highlight"},
},
h = {
name = "Hop",
w = {"<cmd>HopWord<cr>", "Word"},
a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
l = {"<cmd>HopLine<cr>", "Line"},
p = {"<cmd>HopPattern<cr>", "Pattern"},
c = {"<cmd>HopChar1<cr>", "Char1"},
x = {"<cmd>HopChar2<cr>", "Char2"},
h = {vim.cmd.HopChar2, "Hop"},
},
d = {
name = "Debug",
b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
c = {function () require("dap").continue() end, "launch or continue execution"},
s = {function () require("dap").step_into() end, "step into"},
o = {function () require("dap").step_over() end, "step over"},
r = {function () require("dap").repl.open() end, "open repl"},
w = {
name = "Debug UI",
b = {function () require("dapui").float_element("breakpoints", {}) end, "open breakpoints window"},
c = {function () require("dapui").float_element("console", {}) end, "open integrated console"},
r = {function () require("dapui").float_element("repl", {}) end, "open repl"},
}
},
w = {
name = "workspace",
a = {vim.lsp.buf.add_workspace_folder, "add folder"},
r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
},
}
wk.register(keys, {prefix = "<leader>"})
wk.register(keys, {prefix = "<C-Space>"})
wk.register(keys, {prefix = "<C-Space>", mode = "i"})
wk.register(keys, {prefix = "<C-Space>", mode = "v"})
-- LSP
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {desc = "goto next"})
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {desc = "goto prev"})
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end)
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {})
-- term
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
-- center
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- visual move
vim.keymap.set("x", "K", ":move '<-2<CR>gv=gv")
vim.keymap.set("x", "J", ":move '>+1<CR>gv=gv")
-- me lazy
vim.keymap.set("i", "<C-c>", "<Esc>")
-- non char keybinds
vim.keymap.set("n", "<leader>f/", function ()
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
vim.keymap.set("i", "<C-Space>f/", function ()
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('i', '<C-Space>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })

View file

@ -0,0 +1,566 @@
vim.cmd [[packadd packer.nvim]]
return require("packer").startup(function(use)
use "wbthomason/packer.nvim"
-- lsp
use {
"neovim/nvim-lspconfig",
requires = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim",
"folke/neodev.nvim",
},
}
use {
"jose-elias-alvarez/null-ls.nvim",
"jay-babu/mason-null-ls.nvim",
}
use {
"SmiteshP/nvim-navic",
requires = "neovim/nvim-lspconfig",
config = function()
require("nvim-navic").setup({
highlight = true,
})
end,
}
use {
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require"lsp_signature".on_attach() end,
}
use {
'stevearc/aerial.nvim',
config = function() require('aerial').setup() end
}
-- cmp && snippets
use {
"hrsh7th/nvim-cmp",
requires = {
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"rafamadriz/friendly-snippets"
},
}
use { "zbirenbaum/copilot.lua",
cmd = "Copilot",
event = "InsertEnter",
config = function ()
require("copilot").setup({
suggestion = {
auto_trigger = true,
keymap = {
accept = "<M-l>",
accept_word = "<M-K>",
}
}
})
end
}
-- use {"mattn/emmet-vim"}
use({
"roobert/tailwindcss-colorizer-cmp.nvim",
config = function()
require("tailwindcss-colorizer-cmp").setup({
color_square_width = 2,
})
end
})
-- syntax highlighting
use {
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate"
}
use 'nvim-treesitter/nvim-treesitter-context'
use {
"nvim-treesitter/nvim-treesitter-textobjects",
after = "nvim-treesitter",
}
use "nvim-treesitter/playground"
-- fzf Telescope
use {
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
requires = {
"nvim-lua/plenary.nvim"
}
}
use {
"nvim-telescope/telescope-fzf-native.nvim",
run = "make",
cond = vim.fn.executable "make" == 1
}
use "nvim-lua/popup.nvim"
-- debugging
use "mfussenegger/nvim-dap"
use "jay-babu/mason-nvim-dap.nvim"
use {
"rcarriga/nvim-dap-ui",
requires = {
"mfussenegger/nvim-dap"
},
config = function()
require("dapui").setup()
end,
}
use "nvim-telescope/telescope-dap.nvim"
-- git
use "tpope/vim-fugitive"
use "tpope/vim-rhubarb"
use "lewis6991/gitsigns.nvim"
-- misc
-- use {"simrat39/inlay-hints.nvim",
-- config = {
-- require("inlay-hints").setup({
-- renderer = "eol"
-- })
-- },
-- }
use {"lvimuser/lsp-inlayhints.nvim",
config = {
require("lsp-inlayhints").setup()
}
}
use {"s1n7ax/nvim-window-picker"}
use {"echasnovski/mini.nvim"}
use {
'stevearc/oil.nvim',
config = function() require('oil').setup({
columns = {
"icon",
"permissions",
"size",
},
keymap = {
["<Esc>"] = "actions.close",
},
view_options = {
show_hidden = true,
},
}) end
}
use {"ThePrimeagen/vim-be-good"}
use 'kazhala/close-buffers.nvim'
use {"VonHeikemen/fine-cmdline.nvim",
requires = {{"MunifTanjim/nui.nvim"}},
config = function()
require("fine-cmdline").setup({
cmdline = {
prompt = ">",
}
})
vim.api.nvim_set_keymap('n', ':', '<cmd>FineCmdline<CR>', {noremap = true})
end
}
use {'stevearc/dressing.nvim',
config = function()
require('dressing').setup()
end
}
use {
'stevearc/overseer.nvim',
config = function()
require('overseer').setup({
strategy = "toggleterm",
})
end
}
use "itchyny/screensaver.vim"
use "christoomey/vim-tmux-navigator"
use { 'anuvyklack/pretty-fold.nvim',
config = function()
require('pretty-fold').setup()
end
}
use 'eandrju/cellular-automaton.nvim'
use {
"ahmedkhalf/project.nvim",
config = function()
require("project_nvim").setup {
}
end
}
use "dhruvasagar/vim-table-mode"
use "editorconfig/editorconfig-vim"
use "andweeb/presence.nvim"
use {
"nacro90/numb.nvim",
config = function ()
require("numb").setup()
end
}
use {"ellisonleao/glow.nvim",
config = function ()
require("glow").setup()
end
}
use {"kylechui/nvim-surround",
config = function ()
require("nvim-surround").setup({})
end
}
-- use {"tpope/vim-surround"}
use {
"phaazon/hop.nvim",
event = "BufRead",
config = function()
require("hop").setup()
-- vim.api.nvim_set_keymap("n", "s", ":HopChar2<cr>", { silent = true })
-- vim.api.nvim_set_keymap("n", "S", ":HopWord<cr>", { silent = true })
end,
}
use {
"nvim-tree/nvim-tree.lua",
requires = {
"nvim-tree/nvim-web-devicons",
},
config = function()
require("nvim-tree").setup({
filters = {
dotfiles = true,
},
})
end,
}
-- misc editing
use "tpope/vim-sleuth"
use "mbbill/undotree"
use {
"windwp/nvim-autopairs",
--config = function() require("nvim-autopairs").setup {} end
}
use {"windwp/nvim-ts-autotag",
config = function ()
require("nvim-ts-autotag").setup()
end
}
use {"mg979/vim-visual-multi",
config = function ()
vim.cmd("let g:VM_leader='<Space>m'")
end
}
-- mics visuals
use { 'bennypowers/nvim-regexplainer',
config = function() require'regexplainer'.setup() end,
requires = {
'nvim-treesitter/nvim-treesitter',
'MunifTanjim/nui.nvim',
} }
use {"rcarriga/nvim-notify",
config = function ()
vim.notify = require("notify")
end
}
use {
'nmac427/guess-indent.nvim',
config = function() require('guess-indent').setup {} end,
}
use('mrjones2014/smart-splits.nvim')
-- use 'glepnir/dashboard-nvim'
use {"goolord/alpha-nvim", config = function () end}
-- use {'romgrk/barbar.nvim', wants = 'nvim-web-devicons'}
--use {"akinsho/bufferline.nvim", tag = "v3.*",}
use "preservim/nerdtree"
use {"nvim-neo-tree/neo-tree.nvim",
branch = "v2.x",
requires = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
}
use {"jistr/vim-nerdtree-tabs"}
use {
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
config = function()
require("bqf").setup({
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
})
end,
}
use {"kyazdani42/nvim-web-devicons"}
use {"ap/vim-css-color"}
use {
"lukas-reineke/indent-blankline.nvim",
config = function()
require('indent_blankline').setup {
char = '',
show_trailing_blankline_indent = false,
filetype_exclude = {"dashboard"},
}
end,
}
use {
"folke/which-key.nvim",
config = function()
local wk = require("which-key")
wk.setup {
popup_mappings = {
scroll_down = "<C-j>",
scroll_up = "<C-k>",
},
window = {
border = "single",
},
}
end
}
use {"rebelot/heirline.nvim",
}
-- use "nvim-lualine/lualine.nvim"
use {
"akinsho/toggleterm.nvim",
tag = "*",
config = function()
require("toggleterm").setup{
direction = "float",
float_opts = {
border = "curved"
},
}
end,
}
use {
"karb94/neoscroll.nvim",
event = "WinScrolled",
config = function()
require("neoscroll").setup({
mappings = {"<C-u>", "<C-d>", "<C-b>", "<C-f>", "<C-y>", "<C-e>", "zt", "zz", "zb"},
hide_cursor = true,
stop_eof = true,
use_local_scrolloff = false,
respect_scrolloff = false,
cursor_scrolls_alone = true,
easing_function = nil,
pre_hook = nil,
post_hook = nil,
})
end
}
use {
"folke/todo-comments.nvim",
event = "BufRead",
config = function()
require("todo-comments").setup{}
end,
}
use {
'numToStr/Comment.nvim',
config = function()
require('Comment').setup()
end
}
use {
"SmiteshP/nvim-navbuddy",
requires = {"neovim/nvim-lspconfig",
"SmiteshP/nvim-navic",
"MunifTanjim/nui.nvim",
"numToStr/Comment.nvim",
"nvim-telescope/telescope.nvim"},
config = function ()
require("nvim-navbuddy").setup({
window = {border="rounded",},
})
end,
}
use {
'rmagatti/goto-preview',
config = function()
require('goto-preview').setup {}
end
}
use {
"felipec/vim-sanegx",
event = "BufRead",
}
use {
"gelguy/wilder.nvim",
config = function()
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
end,
}
-- lenguage specific
-- nim
use {"alaviss/nim.nvim"}
-- use {"zah/nim.vim"}
-- csv
use {
'cameron-wags/rainbow_csv.nvim',
config = function()
require 'rainbow_csv'.setup()
end,
-- optional lazy-loading below
-- module = {
-- 'rainbow_csv',
-- 'rainbow_csv.fns'
-- },
-- ft = {
-- 'csv',
-- 'tsv',
-- 'csv_semicolon',
-- 'csv_whitespace',
-- 'csv_pipe',
-- 'rfc_csv',
-- 'rfc_semicolon'
-- }
}
-- rust
use {"racer-rust/vim-racer",
config = function ()
vim.cmd [[ let g:racer_cmd = "/usr/bin/racer"]]
end
}
use "simrat39/rust-tools.nvim"
use {
"saecki/crates.nvim",
tag = "v0.3.0",
requires = {
"nvim-lua/plenary.nvim"
},
config = function()
require("crates").setup()
end,
}
-- zig
use "ziglang/zig.vim"
use({
"NTBBloodbath/zig-tools.nvim",
-- Load zig-tools.nvim only in Zig buffers
ft = "zig",
config = function()
-- Initialize with default config
require("zig-tools").setup({
integrations = {
zls = {
hints = true,
}
}
})
end,
})
-- glsl
use {"tikhomirov/vim-glsl"}
-- java
use "mfussenegger/nvim-jdtls"
-- c && c++ && cmake
use { "igankevich/mesonic",
config = function()
vim.cmd[[
let b:meson_command = 'meson'
let b:meson_ninja_command = 'ninja'
autocmd FileType c call ConsiderMesonForLinting()
function ConsiderMesonForLinting()
if filereadable('meson.build')
let g:syntastic_c_checkers = ['meson']
endif
endfunction
]]
end
}
use "cdelledonne/vim-cmake"
-- web
use { "evanleck/vim-svelte" }
use { "posva/vim-vue" }
-- yuck
use "elkowar/yuck.vim"
-- themes
use "xiyaowong/transparent.nvim"
-- f#
use {"adelarsq/neofsharp.vim"}
use {"autozimu/LanguageClient-neovim", branch = "next", run = "bash install.sh"}
use {"ionide/Ionide-vim"}
use "sainnhe/gruvbox-material"
use "shaunsingh/nord.nvim"
use "projekt0n/github-nvim-theme"
use "EdenEast/nightfox.nvim"
use "Everblush/nvim"
use "olimorris/onedarkpro.nvim"
use "rmehri01/onenord.nvim"
use "luisiacc/gruvbox-baby"
use "tiagovla/tokyodark.nvim"
use "cpea2506/one_monokai.nvim"
use "yazeed1s/minimal.nvim"
use "Mofiqul/adwaita.nvim"
use "kvrohit/mellow.nvim"
use "yazeed1s/oh-lucy.nvim"
use "marko-cerovac/material.nvim"
use "sainnhe/sonokai"
use "rebelot/kanagawa.nvim"
use { "catppuccin/nvim", as = "catppuccin", config = function ()
require("catppuccin").setup({
flavor = "macchiato",
navic = {
enabled = true,
custom_bg = "NONE",
},
indent_blankline = {
enabled = true,
colored_indent_levels = true,
},
dap = {
enabled = true,
enable_ui = true,
},
integrations = {
hop = true,
cmp = true,
telescope = true,
which_key = true,
},
-- color_overrides = {
-- macchiato = {
-- base = "#000000",
-- mantle = "#000000",
-- crust = "#000000"
-- }
-- }
})
vim.cmd("colorscheme catppuccin")
end }
end)

View file

@ -0,0 +1,58 @@
-- set leader
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- numbers
vim.opt.nu = true
vim.opt.number = true
vim.opt.relativenumber = true
-- tab && indent
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.o.breakindent = true
-- lines
vim.opt.wrap = true
vim.opt.smarttab = true
-- undo
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
-- search
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.o.ignorecase = true
vim.o.smartcase = true
-- colors
vim.opt.termguicolors = true
vim.cmd("colorscheme catppuccin")
vim.opt.cursorline = true
vim.opt.cursorcolumn = true
vim.cmd[[
highlight CursorColumn guibg=none ctermbg=none
highlight link CursorColumn CursorLine
]]
-- misc
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.scrolloff = 8
vim.opt.sidescrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.o.mouse = "a"
vim.opt.showmode = false
vim.o.completeopt = "menuone,noselect"
-- idfk pls fix nim
vim.opt.path = vim.opt.path + "/home/d/.nimble/bin/**"

View file

@ -24,3 +24,4 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
Good luck and Godspeed. Good luck and Godspeed.

View file

@ -26,6 +26,3 @@ vim.opt.relativenumber = true
vim.opt.cursorline = true vim.opt.cursorline = true
require("plugins")

15
after/plugin/autopairs.lua Executable file
View file

@ -0,0 +1,15 @@
local npairs = require("nvim-autopairs")
local Rule = require("nvim-autopairs.rule")
npairs.setup({
check_ts = true,
ts_config = {
lua = {"string"},
javascript = {"template_string"},
},
enable_check_bracket_line = false,
ignored_next_char = "[%w%.]",
})
local ts_conds = require("nvim-autopairs.ts-conds")

24
after/plugin/dap.lua Normal file
View file

@ -0,0 +1,24 @@
local dap = require("dap")
local dapui = require("dapui")
dapui.setup()
local sign = vim.fn.sign_define
sign("DapBreakpoint", { text = "", texthl = "DapBreakpoint", linehl = "", numhl = ""})
sign("DapBreakpointCondition", { text = "", texthl = "DapBreakpointCondition", linehl = "", numhl = ""})
sign("DapLogPoint", { text = "", texthl = "DapLogPoint", linehl = "", numhl = ""})
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
vim.api.nvim_create_user_command("DapUIFloat", function (at)
dapui.float_element(at.args)
end, {})

9
after/plugin/git.lua Executable file
View file

@ -0,0 +1,9 @@
require('gitsigns').setup {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
}

244
after/plugin/lsp.lua Executable file
View file

@ -0,0 +1,244 @@
-- local ih = require("inlay-hints")
require('neodev').setup()
-- vim.lsp.ensure_installed({
-- "clangd",
-- "gopls",
-- "jdtls",
-- "eslint",
-- "tailwindcss",
-- "tsserver",
-- "cssmodules_ls",
-- "rome",
-- "jsonls",
-- "sumneko_lua",
-- "pylsp",
-- "rust_analyzer",
-- "stylelint_lsp",
-- })
local navic = require("nvim-navic")
navic.setup {
icons = {
File = "",
Module = "",
Namespace = "",
Package = "",
Class = "",
Method = "",
Property = "",
Field = "",
Constructor = "",
Enum = "",
Interface = "",
Function = "",
Variable = "",
Constant = "",
String = "",
Number = "",
Boolean = "",
Array = "",
Object = "",
Key = "",
Null = "",
EnumMember = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
},
highlight = false,
separator = " > ",
depth_limit = 0,
depth_limit_indicator = "..",
safe_output = true
}
local on_attach = function(client, bufnr)
local nmap = function(keys, func, desc)
if desc then
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
end
-- ih.on_attach(client, bufnr)
require("lsp-inlayhints").on_attach(client, bufnr)
if client.server_capabilities.documentSymbolProvider then
navic.attach(client, bufnr)
require("nvim-navbuddy").attach(client, bufnr)
end
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Create a command `:Format` local to the LSP buffer
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, { desc = 'Format current buffer with LSP' })
end
local servers = {
-- sumneko_lua = {
-- Lua = {
-- workspace = { checkThirdParty = false },
-- telemetry = { enable = false },
-- },
-- },
}
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
capabilities.offsetEncoding = { "utf-16" } -- fix copilot
require('mason').setup()
require("mason-nvim-dap").setup({automatic_installation = true, handlers = {
function (config)
require("mason-nvim-dap").default_setup(config)
end
}})
local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers),
}
mason_lspconfig.setup_handlers {
function(server_name)
require('lspconfig')[server_name].setup {
capabilities = capabilities,
on_attach = on_attach,
settings = servers[server_name],
}
end,
}
require("lspconfig").rust_analyzer.setup{
capabilities = capabilities,
on_attach = on_attach,
settings = {
-- ["rust-analyzer"] = {
cargo = {
features = "all"
},
inlayHints = {
closyreCaptureHints = {
enable = true,
},
},
check = {
command = "clippy",
features = "all",
},
imports = {
preferPrelude = true,
}
-- },
},
}
require("lspconfig").zls.setup{
cmd = {"zls"},
on_attach = on_attach,
}
require("lspconfig").tailwindcss.setup {
filetypes = {
"astro", "astro-markdown", "clojure", "django-html", "htmldjango", "edge", "eelixir", "elixir", "ejs", "erb", "eruby", "gohtml", "haml", "handlebars", "hbs", "html", "html-eex", "heex", "jade", "leaf", "liquid", "markdown", "mdx", "mustache", "njk", "nunjucks", "php", "razor", "slim", "twig", "css", "less", "postcss", "sass", "scss", "stylus", "sugarss", "javascript", "javascriptreact", "reason", "rescript", "typescript", "typescriptreact", "vue", "svelte",
"rust", "fsharp",
},
init_options = {
userLanguages = {
rust = "html",
fsharp = "html",
},
},
root_dir = require("lspconfig").util.root_pattern("tailwind.config.cjs", "tailwind.config.mjs", "tailwind.config.js", "tailwind.config.ts"),
settings = {
tailwindCSS = {
--files = {exclude = ""},
classAttributes = { "class", "className", "class:list", "classList", "ngClass", "classes" },
lint = {
cssConflict = "warning",
invalidApply = "error",
invalidConfigPath = "error",
invalidScreen = "error",
invalidTailwindDirective = "error",
invalidVariant = "error",
recommendedVariantOrder = "warning"
},
validate = true
}
}
}
-- lspinfo
require('fidget').setup()
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require 'cmp'
local luasnip = require 'luasnip'
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
-- ["<C-y>"] = cmp.mapping.confirm({ slelect = true}),
["<C-Space><C-Space>"] = cmp.mapping.complete({}),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- elseif luasnip.expand_or_jumpable() then
-- luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = "crates" },
},
}
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
vim.diagnostic.config({
signs = true,
underline = true,
update_in_insert = true,
virtual_text = true,
})
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_snipmate").lazy_load()

10
after/plugin/mini.lua Executable file
View file

@ -0,0 +1,10 @@
require("mini.ai").setup({
custom_textobjects = {
[','] = require("mini.ai").gen_spec.pair(',', ',', {}),
['9'] = require("mini.ai").gen_spec.pair('(', ',', {}),
['0'] = require("mini.ai").gen_spec.pair(',', ')', {})
}
})
require("mini.jump").setup({})
require("mini.sessions").setup({autowrite = false, directory = '~/.local/share/nvimsessions'})

6
after/plugin/neotree.lua Executable file
View file

@ -0,0 +1,6 @@
require("neo-tree").setup({
source_selector = {
winbar = true,
statusline = false,
},
})

14
after/plugin/none-ls.lua Normal file
View file

@ -0,0 +1,14 @@
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.shfmt,
null_ls.builtins.formatting.prettier,
null_ls.builtins.code_actions.gitsigns,
--null_ls.builtins.completion.luasnip,
null_ls.builtins.diagnostics.buf,
null_ls.builtins.formatting.biome,
null_ls.builtins.formatting.buf,
null_ls.builtins.formatting.fantomas,
}
})

764
after/plugin/statusline.lua Executable file
View file

@ -0,0 +1,764 @@
local conditions = require("heirline.conditions")
local utils = require("heirline.utils")
local colors = {
bright_bg = utils.get_highlight("Folded").bg,
bright_fg = utils.get_highlight("Folded").fg,
dark_bg = "#0c0c0c",
red = utils.get_highlight("DiagnosticError").fg,
dark_red = utils.get_highlight("DiffDelete").bg,
green = utils.get_highlight("String").fg,
blue = utils.get_highlight("Function").fg,
gray = utils.get_highlight("NonText").fg,
orange = utils.get_highlight("Constant").fg,
purple = utils.get_highlight("Statement").fg,
cyan = utils.get_highlight("Special").fg,
diag_warn = utils.get_highlight("DiagnosticWarn").fg,
diag_error = utils.get_highlight("DiagnosticError").fg,
diag_hint = utils.get_highlight("DiagnosticHint").fg,
diag_info = utils.get_highlight("DiagnosticInfo").fg,
git_del = utils.get_highlight("DiffRemoved").fg,
git_add = utils.get_highlight("DiffAdd").fg,
git_change = utils.get_highlight("DiffChanged").fg,
}
require("heirline").load_colors(colors)
local ViMode = {
-- get vim current mode, this information will be required by the provider
-- and the highlight functions, so we compute it only once per component
-- evaluation and store it as a component attribute
init = function(self)
self.mode = vim.fn.mode(1) -- :h mode()
end,
-- Now we define some dictionaries to map the output of mode() to the
-- corresponding string and color. We can put these into `static` to compute
-- them at initialisation time.
static = {
mode_names = { -- change the strings if you like it vvvvverbose!
n = "N",
no = "N?",
nov = "N?",
noV = "N?",
["no\22"] = "N?",
niI = "Ni",
niR = "Nr",
niV = "Nv",
nt = "Nt",
v = "V",
vs = "Vs",
V = "V_",
Vs = "Vs",
["\22"] = "^V",
["\22s"] = "^V",
s = "S",
S = "S_",
["\19"] = "^S",
i = "I",
ic = "Ic",
ix = "Ix",
R = "R",
Rc = "Rc",
Rx = "Rx",
Rv = "Rv",
Rvc = "Rv",
Rvx = "Rv",
c = "C",
cv = "Ex",
r = "...",
rm = "M",
["r?"] = "?",
["!"] = "!",
t = "T",
},
mode_colors = {
n = "red" ,
i = "green",
v = "cyan",
V = "cyan",
["\22"] = "cyan",
c = "orange",
s = "purple",
S = "purple",
["\19"] = "purple",
R = "orange",
r = "orange",
["!"] = "red",
t = "red",
}
},
-- We can now access the value of mode() that, by now, would have been
-- computed by `init()` and use it to index our strings dictionary.
-- note how `static` fields become just regular attributes once the
-- component is instantiated.
-- To be extra meticulous, we can also add some vim statusline syntax to
-- control the padding and make sure our string is always at least 2
-- characters long. Plus a nice Icon.
provider = function(self)
--return "  %2("..self.mode_names[self.mode].."%)"
return "%2("..self.mode_names[self.mode].."%)"
end,
-- Same goes for the highlight. Now the foreground will change according to the current mode.
hl = function(self)
local mode = self.mode:sub(1, 1) -- get only the first mode character
return { fg = self.mode_colors[mode], bold = true, }
end,
-- Re-evaluate the component only on ModeChanged event!
-- Also allorws the statusline to be re-evaluated when entering operator-pending mode
update = {
"ModeChanged",
pattern = "*:*",
callback = vim.schedule_wrap(function()
vim.cmd("redrawstatus")
end),
},
}
ViMode = utils.surround({ "", "" }, "dark_bg", { ViMode})
local FileNameBlock = {
-- let's first set up some attributes needed by this component and it's children
init = function(self)
self.filename = vim.api.nvim_buf_get_name(0)
end,
}
-- We can now define some children separately and add them later
local FileIcon = {
init = function(self)
local filename = self.filename
local extension = vim.fn.fnamemodify(filename, ":e")
self.icon, self.icon_color = require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
end,
provider = function(self)
return self.icon and (self.icon .. " ")
end,
hl = function(self)
return { fg = self.icon_color }
end
}
local FileName = {
provider = function(self)
-- first, trim the pattern relative to the current directory. For other
-- options, see :h filename-modifers
local filename = vim.fn.fnamemodify(self.filename, ":.")
if filename == "" then return "[No Name]" end
-- now, if the filename would occupy more than 1/4th of the available
-- space, we trim the file path to its initials
-- See Flexible Components section below for dynamic truncation
if not conditions.width_percent_below(#filename, 0.25) then
filename = vim.fn.pathshorten(filename)
end
return filename
end,
hl = { fg = utils.get_highlight("Directory").fg },
}
local FileFlags = {
{
condition = function()
return vim.bo.modified
end,
provider = "[+]",
hl = { fg = "green" },
},
{
condition = function()
return not vim.bo.modifiable or vim.bo.readonly
end,
provider = "",
hl = { fg = "orange" },
},
}
-- Now, let's say that we want the filename color to change if the buffer is
-- modified. Of course, we could do that directly using the FileName.hl field,
-- but we'll see how easy it is to alter existing components using a "modifier"
-- component
local FileNameModifer = {
hl = function()
if vim.bo.modified then
-- use `force` because we need to override the child's hl foreground
return { fg = "cyan", bold = true, force=true }
end
end,
}
-- let's add the children to our FileNameBlock component
FileNameBlock = utils.insert(FileNameBlock,
FileIcon,
utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
FileFlags,
{ provider = '%<'} -- this means that the statusline is cut here when there's not enough space
)
local FileSize = {
provider = function()
-- stackoverflow, compute human readable file size
local suffix = { 'b', 'k', 'M', 'G', 'T', 'P', 'E' }
local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
fsize = (fsize < 0 and 0) or fsize
if fsize < 1024 then
return fsize..suffix[1]
end
local i = math.floor((math.log(fsize) / math.log(1024)))
return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
end
}
local FileLastModified = {
-- did you know? Vim is full of functions!
provider = function()
local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
return (ftime > 0) and os.date("%c", ftime)
end
}
FileNameBlock = utils.surround({ "", "" }, "dark_bg", FileNameBlock)
-- We're getting minimalists here!
local Ruler = {
-- %l = current line number
-- %L = number of lines in the buffer
-- %c = column number
-- %P = percentage through file of displayed window
provider = "%7(%l/%3L%):%2c %P",
}
Ruler = utils.surround({ "", "" }, "dark_bg", Ruler)
-- I take no credits for this! :lion:
local ScrollBar ={
static = {
sbar = { '', '', '', '', '', '', '', '' }
-- Another variant, because the more choice the better.
-- sbar = { '🭶', '🭷', '🭸', '🭹', '🭺', '🭻' }
},
provider = function(self)
local curr_line = vim.api.nvim_win_get_cursor(0)[1]
local lines = vim.api.nvim_buf_line_count(0)
local i = math.floor((curr_line - 1) / lines * #self.sbar) + 1
return string.rep(self.sbar[i], 2)
end,
hl = { fg = "blue", bg = "dark_bg" },
}
local LSPActive = {
condition = conditions.lsp_attached,
update = {'LspAttach', 'LspDetach'},
-- You can keep it simple,
-- provider = " [LSP]",
-- Or complicate things a bit and get the servers names
provider = function()
local names = {}
for i, server in pairs(vim.lsp.get_active_clients({ bufnr = 0 })) do
table.insert(names, server.name)
end
return " [" .. table.concat(names, " ") .. "]"
end,
hl = { fg = "green", bold = true },
}
LSPActive = utils.surround({ "", "" }, "dark_bg", LSPActive)
-- Full nerd (with icon colors and clickable elements)!
-- works in multi window, but does not support flexible components (yet ...)
local Navic = {
condition = function() return require("nvim-navic").is_available() end,
static = {
-- create a type highlight map
type_hl = {
File = "Directory",
Module = "@include",
Namespace = "@namespace",
Package = "@include",
Class = "@structure",
Method = "@method",
Property = "@property",
Field = "@field",
Constructor = "@constructor",
Enum = "@field",
Interface = "@type",
Function = "@function",
Variable = "@variable",
Constant = "@constant",
String = "@string",
Number = "@number",
Boolean = "@boolean",
Array = "@field",
Object = "@type",
Key = "@keyword",
Null = "@comment",
EnumMember = "@field",
Struct = "@structure",
Event = "@keyword",
Operator = "@operator",
TypeParameter = "@type",
},
-- bit operation dark magic, see below...
enc = function(line, col, winnr)
return bit.bor(bit.lshift(line, 16), bit.lshift(col, 6), winnr)
end,
-- line: 16 bit (65535); col: 10 bit (1023); winnr: 6 bit (63)
dec = function(c)
local line = bit.rshift(c, 16)
local col = bit.band(bit.rshift(c, 6), 1023)
local winnr = bit.band(c, 63)
return line, col, winnr
end
},
init = function(self)
local data = require("nvim-navic").get_data() or {}
local children = {}
-- create a child for each level
for i, d in ipairs(data) do
-- encode line and column numbers into a single integer
local pos = self.enc(d.scope.start.line, d.scope.start.character, self.winnr)
local child = {
{
provider = d.icon,
hl = self.type_hl[d.type],
},
{
-- escape `%`s (elixir) and buggy default separators
provider = d.name:gsub("%%", "%%%%"):gsub("%s*->%s*", ''),
-- highlight icon only or location name as well
-- hl = self.type_hl[d.type],
on_click = {
-- pass the encoded position through minwid
minwid = pos,
callback = function(_, minwid)
-- decode
local line, col, winnr = self.dec(minwid)
vim.api.nvim_win_set_cursor(vim.fn.win_getid(winnr), {line, col})
end,
name = "heirline_navic",
},
},
}
-- add a separator only if needed
if #data > 1 and i < #data then
table.insert(child, {
provider = " > ",
hl = { fg = 'bright_fg' },
})
end
table.insert(children, child)
end
-- instantiate the new child, overwriting the previous one
self.child = self:new(children, 1)
end,
-- evaluate the children containing navic components
provider = function(self)
return self.child:eval()
end,
hl = { fg = "gray" },
update = 'CursorMoved'
}
-- local Diagnostics = {
--
-- condition = conditions.has_diagnostics,
--
-- static = {
-- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
-- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
-- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
-- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
-- },
--
-- init = function(self)
-- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
-- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
-- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
-- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
-- end,
--
-- update = { "DiagnosticChanged", "BufEnter" },
--
-- {
-- provider = function(self)
-- -- 0 is just another output, we can decide to print it or not!
-- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
-- end,
-- hl = { fg = "diag_error" },
-- },
-- {
-- provider = function(self)
-- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
-- end,
-- hl = { fg = "diag_warn" },
-- },
-- {
-- provider = function(self)
-- return self.info > 0 and (self.info_icon .. self.info .. " ")
-- end,
-- hl = { fg = "diag_info" },
-- },
-- {
-- provider = function(self)
-- return self.hints > 0 and (self.hint_icon .. self.hints)
-- end,
-- hl = { fg = "diag_hint" },
-- },
-- }
local Git = {
condition = conditions.is_git_repo,
init = function(self)
self.status_dict = vim.b.gitsigns_status_dict
self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
end,
hl = { fg = "orange" },
{ -- git branch name
provider = function(self)
return "" .. self.status_dict.head
end,
hl = { bold = true }
},
-- You could handle delimiters, icons and counts similar to Diagnostics
{
condition = function(self)
return self.has_changes
end,
provider = "("
},
{
provider = function(self)
local count = self.status_dict.added or 0
return count > 0 and ("+" .. count)
end,
hl = { fg = "green" },
},
{
provider = function(self)
local count = self.status_dict.removed or 0
return count > 0 and ("-" .. count)
end,
hl = { fg = "red" },
},
{
provider = function(self)
local count = self.status_dict.changed or 0
return count > 0 and ("~" .. count)
end,
hl = { fg = "blue" },
},
{
condition = function(self)
return self.has_changes
end,
provider = ")",
},
}
local DAPMessages = {
condition = function()
local session = require("dap").session()
return session ~= nil
end,
provider = function()
return "" .. require("dap").status()
end,
hl = "Debug"
-- see Click-it! section for clickable actions
}
local WorkDir = {
provider = function()
local icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. ""
local cwd = vim.fn.getcwd(0)
cwd = vim.fn.fnamemodify(cwd, ":~")
if not conditions.width_percent_below(#cwd, 0.25) then
cwd = vim.fn.pathshorten(cwd)
end
local trail = cwd:sub(-1) == '/' and '' or "/"
return icon .. cwd .. trail
end,
hl = { fg = "blue", bold = true },
}
local TerminalName = {
-- we could add a condition to check that buftype == 'terminal'
-- or we could do that later (see #conditional-statuslines below)
provider = function()
local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
return "" .. tname
end,
hl = { fg = "blue", bold = true },
}
-------------------------------------------------------------------------------------
local TablineBufnr = {
provider = function(self)
return tostring(self.bufnr) .. ". "
end,
hl = "Comment",
}
-- we redefine the filename component, as we probably only want the tail and not the relative path
local TablineFileName = {
provider = function(self)
-- self.filename will be defined later, just keep looking at the example!
local filename = self.filename
filename = filename == "" and "[No Name]" or vim.fn.fnamemodify(filename, ":t")
return filename
end,
hl = function(self)
return { bold = self.is_active or self.is_visible, italic = true }
end,
}
-- this looks exactly like the FileFlags component that we saw in
-- #crash-course-part-ii-filename-and-friends, but we are indexing the bufnr explicitly
-- also, we are adding a nice icon for terminal buffers.
local TablineFileFlags = {
{
condition = function(self)
return vim.api.nvim_buf_get_option(self.bufnr, "modified")
end,
provider = "[+]",
hl = { fg = "green" },
},
{
condition = function(self)
return not vim.api.nvim_buf_get_option(self.bufnr, "modifiable")
or vim.api.nvim_buf_get_option(self.bufnr, "readonly")
end,
provider = function(self)
if vim.api.nvim_buf_get_option(self.bufnr, "buftype") == "terminal" then
return ""
else
return ""
end
end,
hl = { fg = "orange" },
},
}
-- Here the filename block finally comes together
local TablineFileNameBlock = {
init = function(self)
self.filename = vim.api.nvim_buf_get_name(self.bufnr)
end,
hl = function(self)
if self.is_active then
return "TabLineSel"
-- why not?
-- elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
-- return { fg = "gray" }
else
return "TabLine"
end
end,
on_click = {
callback = function(_, minwid, _, button)
if (button == "m") then -- close on mouse middle click
vim.schedule(function()
vim.api.nvim_buf_delete(minwid, { force = false })
end)
else
vim.api.nvim_win_set_buf(0, minwid)
end
end,
minwid = function(self)
return self.bufnr
end,
name = "heirline_tabline_buffer_callback",
},
TablineBufnr,
FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
TablineFileName,
TablineFileFlags,
}
-- a nice "x" button to close the buffer
local TablineCloseButton = {
condition = function(self)
return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
end,
{ provider = " " },
{
provider = "",
hl = { fg = "gray" },
on_click = {
callback = function(_, minwid)
vim.schedule(function()
vim.api.nvim_buf_delete(minwid, { force = false })
end)
vim.cmd.redrawtabline()
end,
minwid = function(self)
return self.bufnr
end,
name = "heirline_tabline_close_buffer_callback",
},
},
}
-- The final touch!
local TablineBufferBlock = utils.surround({ "", "" }, function(self)
if self.is_active then
return utils.get_highlight("TabLineSel").bg
else
return utils.get_highlight("TabLine").bg
end
end, { TablineFileNameBlock, TablineCloseButton })
-- and here we go
local BufferLine = utils.make_buflist(
TablineBufferBlock,
{ provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
{ provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
-- by the way, open a lot of buffers and try clicking them ;)
)
local Tabpage = {
provider = function(self)
return "%" .. self.tabnr .. "T " .. self.tabpage .. " %T"
end,
hl = function(self)
if not self.is_active then
return "TabLine"
else
return "TabLineSel"
end
end,
}
local TabpageClose = {
provider = "%999X  %X",
hl = "TabLine",
}
local TabPages = {
-- only show this component if there's 2 or more tabpages
condition = function()
return #vim.api.nvim_list_tabpages() >= 2
end,
{ provider = "%=" },
utils.make_tablist(Tabpage),
TabpageClose,
}
local TabLineOffset = {
condition = function(self)
local win = vim.api.nvim_tabpage_list_wins(0)[1]
local bufnr = vim.api.nvim_win_get_buf(win)
self.winid = win
if vim.bo[bufnr].filetype == "NvimTree" then
self.title = "NvimTree"
return true
elseif vim.bo[bufnr].filetype == "neo-tree" then
self.title = "NeoTree"
return true
elseif vim.bo[bufnr].filetype == "nerdtree" then
self.title = "NerdTree"
return true
end
-- elseif vim.bo[bufnr].filetype == "TagBar" then
-- ...
end,
provider = function(self)
local title = self.title
local width = vim.api.nvim_win_get_width(self.winid)
local pad = math.ceil((width - #title) / 2)
return string.rep(" ", pad) .. title .. string.rep(" ", pad)
end,
hl = function(self)
if vim.api.nvim_get_current_win() == self.winid then
return "TablineSel"
else
return "Tabline"
end
end,
}
local Align = { provider = "%=" }
local Space = { provider = " " }
local StatusLine = {
ViMode, Space, FileNameBlock, Space, Git, Space, Align,
DAPMessages, Align,
LSPActive, Space, Ruler
}
local WinBar = {
utils.surround({"", ""}, "#000000", Navic)
}
local TabBar = {
TabLineOffset, BufferLine, TabPages,
}
require("heirline").setup({
statusline = StatusLine,
tabline = TabBar,
winbar = WinBar,
opts = {
disable_winbar_cb = function(args)
local buf = args.buf
local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
local filetype = vim.tbl_contains({ "gitcommit", "fugitive", "Trouble", "packer", "neo-tree", "nerdtree", "NvimTree" }, vim.bo[buf].filetype)
return buftype or filetype
end,
}
})
vim.o.showtabline = 2
vim.o.laststatus = 3
-- require("lualine").setup {
-- options = {
-- icons_enabled = true,
-- theme = "auto",
-- component_separators = { left = "", right = ""},
-- section_separators = { left = "", right = ""},
-- disabled_filetypes = {
-- statusline = {},
-- winbar = {},
-- },
-- ignore_focus = {},
-- always_divide_middle = true,
-- globalstatus = false,
-- refresh = {
-- statusline = 1000,
-- tabline = 1000,
-- winbar = 1000,
-- }
-- },
-- sections = {
-- lualine_a = {"mode"},
-- lualine_b = {"diff"},
-- lualine_c = {"branch"},
-- lualine_x = {"location"},
-- lualine_y = {"progress"},
-- lualine_z = {"filename"}
-- },
-- inactive_sections = {
-- lualine_a = {},
-- lualine_b = {},
-- lualine_c = {"filename"},
-- lualine_x = {"location"},
-- lualine_y = {},
-- lualine_z = {}
-- },
-- tabline = {},
-- winbar = {},
-- inactive_winbar = {},
-- extensions = {}
-- }

16
after/plugin/telescope.lua Executable file
View file

@ -0,0 +1,16 @@
require "telescope".setup {
extensions = {
workspaces = {
keep_insert = true,
}
},
pickers = {
colorscheme = {
enable_preview = true
}
}
}
pcall(require("telescope").load_extension, "fzf")
require("telescope").load_extension("dap")
require("telescope").load_extension("harpoon")

54
after/plugin/treesitter.lua Executable file
View file

@ -0,0 +1,54 @@
vim.filetype.add({extension = {wgsl = "wgsl"}})
require"nvim-treesitter.configs".setup {
ensure_installed = { "wgsl", "bash", "cmake", "cpp", "dockerfile", "gitignore", "glsl", "go", "graphql", "html", "java", "javascript", "json5", "kotlin", "markdown", "python", "rasi", "regex", "c", "lua", "rust", "scss", "sql", "sxhkdrc", "toml", "typescript", "yaml" },
sync_install = false,
auto_install = true,
indent = { enable = true, disable = { 'python' } },
highlight = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
-- rainbow = {
-- enable = true,
-- -- list of languages you want to disable the plugin for
-- disable = {},
-- -- Which query to use for finding delimiters
-- query = 'rainbow-parens',
-- -- Highlight the entire buffer all at once
-- strategy = require('ts-rainbow').strategy.global,
-- },
}
local treesitter_parser_config = require "nvim-treesitter.parsers".get_parser_configs()
treesitter_parser_config.templ = {
install_info = {
url = "https://github.com/vrischmann/tree-sitter-templ.git",
files = {"src/parser.c", "src/scanner.c"},
branch = "master",
},
}
treesitter_parser_config.just = {
install_info = {
url = "https://github.com/IndianBoy42/tree-sitter-just", -- local path or git repo
files = { "src/parser.c", "src/scanner.cc" },
branch = "main",
-- use_makefile = true -- this may be necessary on MacOS (try if you see compiler errors)
},
maintainers = { "@IndianBoy42" },
}
vim.treesitter.language.register('templ', 'templ')
vim.wo.foldmethod = "manual"
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
vim.o.foldlevelstart = 99 -- do not close folds when a buffer is opened

View file

@ -1,2 +1 @@
require("config") require("config")
require("plugins")

View file

@ -1,79 +1,76 @@
{ {
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"Ionide-vim": { "branch": "master", "commit": "c7e8973426431839e9d888a4aa8d6a41251ba16f" }, "Ionide-vim": { "branch": "master", "commit": "d94dd8f0e34fe230bd84d930f63732619163ab6e" },
"LuaSnip": { "branch": "master", "commit": "7351d673f430e89f11962dc45b7360d6a0a26d2d" }, "LuaSnip": { "branch": "master", "commit": "b152822e1a4bafb6bdf11a16cc26525cbd95ee00" },
"close-buffers.nvim": { "branch": "master", "commit": "3acbcad1211572342632a6c0151f839e7dead27f" }, "close-buffers.nvim": { "branch": "master", "commit": "3acbcad1211572342632a6c0151f839e7dead27f" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"crates.nvim": { "branch": "main", "commit": "1dffccc0a95f656ebe00cacb4de282473430c5a1" }, "crates.nvim": { "branch": "main", "commit": "1dffccc0a95f656ebe00cacb4de282473430c5a1" },
"editorconfig-vim": { "branch": "master", "commit": "6a58b7c11f79c0e1d0f20533b3f42f2a11490cf8" }, "editorconfig-vim": { "branch": "master", "commit": "8b7da79e9daee7a3f3a8d4fe29886b9756305aff" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "fidget.nvim": { "branch": "main", "commit": "1ba38e4cbb24683973e00c2e36f53ae64da38ef5" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "friendly-snippets": { "branch": "main", "commit": "fa36367422da5a38560892e3db6d090a635d9d41" },
"gitsigns.nvim": { "branch": "main", "commit": "1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb" }, "gitsigns.nvim": { "branch": "main", "commit": "bc933d24a669608968ff4791b14d2d9554813a65" },
"go.nvim": { "branch": "master", "commit": "37ec4d9be3edef64b725bfe29684e1fe019873bc" }, "go.nvim": { "branch": "master", "commit": "d5e2b8cdd84afdb0c49c42a6e8972acc645e0283" },
"guihua.lua": { "branch": "master", "commit": "0cc9631914ffcbe3e474e809c610d12a75b660cf" }, "guihua.lua": { "branch": "master", "commit": "5204646be15997ed101631d75df02512ecd6c2bb" },
"harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, "harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
"heirline.nvim": { "branch": "master", "commit": "74529ce6a47f3f8dc7546c221c187a2dd025ffee" }, "heirline.nvim": { "branch": "master", "commit": "03cff30d7e7d3ba6fdc00925f015822f79cef908" },
"hop.nvim": { "branch": "master", "commit": "1a1eceafe54b5081eae4cb91c723abd1d450f34b" }, "hop.nvim": { "branch": "master", "commit": "1a1eceafe54b5081eae4cb91c723abd1d450f34b" },
"hunk.nvim": { "branch": "master", "commit": "b475ba0011e4b8ef7d7ddecd9764ee1a5f41366d" }, "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "d3974346b6cef2116c8e7b08423256a834cb7cbc" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" },
"lsp_signature.nvim": { "branch": "master", "commit": "a793d02b6a5e639fa9d3f2a89a839fa688ab2d0a" }, "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" },
"markview.nvim": { "branch": "main", "commit": "6bbbbf5790cdea622b53fe94b49b9801037e2db9" }, "lsp_signature.nvim": { "branch": "master", "commit": "c6aeb2f1d2538bbdfdaab1664d9d4c3c75aa9db8" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "05744f0f1967b5757bd05c08df4271ab8ec990aa" },
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" }, "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, "melange-nvim": { "branch": "master", "commit": "5feb4a08876b81ccb61cae1adaffa2e737124922" },
"melange-nvim": { "branch": "master", "commit": "2db5407f2f6d6d6286f50f2f7365728d66f6f3ae" }, "mini.nvim": { "branch": "main", "commit": "fb4df45edec418443e4801719f1cb98e89697724" },
"mini.nvim": { "branch": "main", "commit": "90ab64f944a5a63a9efebe6735e1f2c6d4db3613" },
"neo-tree.nvim": { "branch": "v2.x", "commit": "80dc74d081823649809f78370fa5b204aa9a853a" }, "neo-tree.nvim": { "branch": "v2.x", "commit": "80dc74d081823649809f78370fa5b204aa9a853a" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" }, "neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" },
"neoscroll.nvim": { "branch": "master", "commit": "f957373912e88579e26fdaea4735450ff2ef5c9c" }, "neoscroll.nvim": { "branch": "master", "commit": "e78657719485c5663b88e5d96ffcfb6a2fe3eec0" },
"none-ls.nvim": { "branch": "main", "commit": "7c493a266a6b1ed419f8a2e431651bc15b10df27" }, "none-ls.nvim": { "branch": "main", "commit": "f5632db2491fbe02b54f1a321a98548a8ba2bd15" },
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, "nui.nvim": { "branch": "main", "commit": "274fa89a9b4bed746647c2917091902f882509ec" },
"numb.nvim": { "branch": "master", "commit": "7f564e638d3ba367abf1ec91181965b9882dd509" }, "numb.nvim": { "branch": "master", "commit": "3f7d4a74bd456e747a1278ea1672b26116e0824d" },
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-autopairs": { "branch": "master", "commit": "14e97371b2aab6ee70054c1070a123dfaa3e217e" },
"nvim-bqf": { "branch": "main", "commit": "e20417d5e589e03eaaaadc4687904528500608be" }, "nvim-bqf": { "branch": "main", "commit": "52703d7adc3be3f7c09eea9a80c5b8caa615fb25" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, "nvim-cmp": { "branch": "main", "commit": "8f3c541407e691af6163e2447f3af1bd6e17f9a3" },
"nvim-dap": { "branch": "master", "commit": "8df427aeba0a06c6577dc3ab82de3076964e3b8d" }, "nvim-dap": { "branch": "master", "commit": "6ae8a14828b0f3bff1721a35a1dfd604b6a933bb" },
"nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" }, "nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "df66808cd78b5a97576bbaeee95ed5ca385a9750" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "3e8e207513e6ef520894950acd76b79902714103" },
"nvim-jdtls": { "branch": "master", "commit": "c23f200fee469a415c77265ca55b496feb646992" }, "nvim-jdtls": { "branch": "master", "commit": "8eb5f0dbe6e126b392ddcaf45893358619893e45" },
"nvim-lspconfig": { "branch": "master", "commit": "46434074f188e6bfccf9d9153dd8be6b1381498b" }, "nvim-lspconfig": { "branch": "master", "commit": "ee450e6a9364fc740236166dd57aaca1ec7cdb48" },
"nvim-metals": { "branch": "main", "commit": "04d8ce24638412a2c93dd79fecca4b2c7b9c07f9" }, "nvim-navbuddy": { "branch": "master", "commit": "f34237e8a41ebc6e2716af2ebf49854d8c5289c8" },
"nvim-navbuddy": { "branch": "master", "commit": "a34786c77a528519f6b8a142db7609f6e387842d" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-navic": { "branch": "master", "commit": "d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74" }, "nvim-nio": { "branch": "master", "commit": "8765cbc4d0c629c8158a5341e1b4305fd93c3a90" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-surround": { "branch": "main", "commit": "6d0dc3dbb557bcc6a024969da461df4ba803fc48" },
"nvim-surround": { "branch": "main", "commit": "0e62500b98f4513feaaf7425c135472457ea5b7d" }, "nvim-treesitter": { "branch": "master", "commit": "73fdd31377d76aa1eea63e66581a8c6b7a71da94" },
"nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" }, "nvim-treesitter-context": { "branch": "master", "commit": "2650e6431f7daba5d9c2c64134fa5eb2312eb3d7" },
"nvim-treesitter-context": { "branch": "master", "commit": "6daca3ad780f045550b820f262002f35175a6c04" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "23b820146956b3b681c19e10d3a8bc0cbd9a1d4c" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ed373482db797bbf71bdff37a15c7555a84dce47" }, "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, "nvim-web-devicons": { "branch": "master", "commit": "475fbcfcb6ee7c35aa33a6b6207ebd4032791d87" },
"nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" }, "oh-lucy.nvim": { "branch": "main", "commit": "b53f8c8735ca7e788994147bfa10eb04331eaf7c" },
"org-bullets.nvim": { "branch": "main", "commit": "21437cfa99c70f2c18977bffd423f912a7b832ea" }, "one_monokai.nvim": { "branch": "main", "commit": "bafc4e9ed069e47439cce077592aefb126da2bfa" },
"orgmode": { "branch": "master", "commit": "15d66ead1285d99f8a21c4ef4874ac62e9320fe6" }, "plenary.nvim": { "branch": "master", "commit": "08e301982b9a057110ede7a735dd1b5285eb341f" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "pretty-fold.nvim": { "branch": "master", "commit": "a7d8b424abe0eedf50116c460fbe6dfd5783b1d5" },
"rainbow_csv.nvim": { "branch": "main", "commit": "26de78d8324f7ac6a3e478319d1eb1f17123eb5b" }, "rainbow_csv.nvim": { "branch": "main", "commit": "5033e3abd4fb0a0ee07232530a032296535704b4" },
"rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" }, "sonokai": { "branch": "master", "commit": "da162343354fbd9bf9cd49293a856f0e3761e8ac" },
"suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" }, "suda.vim": { "branch": "master", "commit": "b97fab52f9cdeabe2bbb5eb98d82356899f30829" },
"telescope-dap.nvim": { "branch": "master", "commit": "783366bd6c1e7fa0a5c59c07db37f49c805a28df" }, "telescope-dap.nvim": { "branch": "master", "commit": "8c88d9716c91eaef1cdea13cb9390d8ef447dbfe" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "telescope.nvim": { "branch": "0.1.x", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
"templ.vim": { "branch": "main", "commit": "5cc48b93a4538adca0003c4bc27af844bb16ba24" }, "templ.vim": { "branch": "main", "commit": "5cc48b93a4538adca0003c4bc27af844bb16ba24" },
"texpresso.vim": { "branch": "main", "commit": "907838c08bbf99ad6bed3c908f1d0551a92ab4e0" }, "todo-comments.nvim": { "branch": "main", "commit": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "transparent.nvim": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" },
"transparent.nvim": { "branch": "main", "commit": "8a2749a2fa74f97fe6557f61b89ac7fd873f3c21" }, "undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
"undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" }, "vim-glsl": { "branch": "master", "commit": "bfd330a271933c3372fcfa8ce052970746c8e9dd" },
"vim-glsl": { "branch": "master", "commit": "40dd0b143ef93f3930a8a409f60c1bb85e28b727" }, "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-slint": { "branch": "main", "commit": "9badce3860297562bb5e80ba1666628f9e0ac632" }, "vim-slint": { "branch": "main", "commit": "9badce3860297562bb5e80ba1666628f9e0ac632" },
"vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, "vim-visual-multi": { "branch": "master", "commit": "b84a6d42c1c10678928b0bf8327f378c8bc8af5a" },
"vimtex": { "branch": "master", "commit": "85cb04f5a9d2289b9d2b62d5d84342fe9675ec08" }, "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" }, "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" },
"zig.vim": { "branch": "master", "commit": "e55a7949561d34822b7cd2290819927b79825dcd" } "zig.vim": { "branch": "master", "commit": "54c216e5306a5c3878a60596aacb94dca8652ab9" }
} }

83
lua/.luarc.json Normal file
View file

@ -0,0 +1,83 @@
{
"workspace.library": [
"/home/d/.local/share/nvim/lazy/neodev.nvim/types/stable",
"/usr/share/nvim/runtime/lua",
"/home/d/.local/share/nvim/lazy/nvim-navic/lua",
"/home/d/.local/share/nvim/lazy/cmp-path/lua",
"/home/d/.local/share/nvim/lazy/kanagawa.nvim/lua",
"/home/d/.local/share/nvim/lazy/copilot.lua/lua",
"/home/d/.local/share/nvim/lazy/sort.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-treesitter-context/lua",
"/home/d/.local/share/nvim/lazy/color-picker.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-treesitter-textobjects/lua",
"/home/d/.local/share/nvim/lazy/playground/lua",
"/home/d/.local/share/nvim/lazy/rainbow_csv.nvim/lua",
"/home/d/.local/share/nvim/lazy/telescope.nvim/lua",
"/home/d/.local/share/nvim/lazy/rust-tools.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-autopairs/lua",
"/home/d/.local/share/nvim/lazy/nvim-ts-rainbow2/lua",
"/home/d/.local/share/nvim/lazy/crates.nvim/lua",
"/home/d/.local/share/nvim/lazy/popup.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-ts-autotag/lua",
"/home/d/.local/share/nvim/lazy/nvim-dap/lua",
"/home/d/.local/share/nvim/lazy/nvim-notify/lua",
"/home/d/.local/share/nvim/lazy/zig-tools.nvim/lua",
"/home/d/.local/share/nvim/lazy/neo-tree.nvim/lua",
"/home/d/.local/share/nvim/lazy/mini.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-web-devicons/lua",
"/home/d/.local/share/nvim/lazy/nvim-dap-ui/lua",
"/home/d/.local/share/nvim/lazy/nvim-jdtls/lua",
"/home/d/.local/share/nvim/lazy/telescope-dap.nvim/lua",
"/home/d/.local/share/nvim/lazy/lazy.nvim/lua",
"/home/d/.local/share/nvim/lazy/catppuccin/lua",
"/home/d/.local/share/nvim/lazy/sonokai/lua",
"/home/d/.local/share/nvim/lazy/gitsigns.nvim/lua",
"/home/d/.local/share/nvim/lazy/oh-lucy.nvim/lua",
"/home/d/.local/share/nvim/lazy/mellow.nvim/lua",
"/home/d/.local/share/nvim/lazy/minimal.nvim/lua",
"/home/d/.local/share/nvim/lazy/one_monokai.nvim/lua",
"/home/d/.local/share/nvim/lazy/transparent.nvim/lua",
"/home/d/.local/share/nvim/lazy/indent-blankline.nvim/lua",
"/home/d/.local/share/nvim/lazy/tokyodark.nvim/lua",
"/home/d/.local/share/nvim/lazy/gruvbox-baby/lua",
"/home/d/.local/share/nvim/lazy/nightfox.nvim/lua",
"/home/d/.local/share/nvim/lazy/which-key.nvim/lua",
"/home/d/.local/share/nvim/lazy/lsp_signature.nvim/lua",
"/home/d/.local/share/nvim/lazy/vim-dadbod-completion/lua",
"/home/d/.local/share/nvim/lazy/close-buffers.nvim/lua",
"/home/d/.local/share/nvim/lazy/mason-nvim-dap.nvim/lua",
"/home/d/.local/share/nvim/lazy/heirline.nvim/lua",
"/home/d/.local/share/nvim/lazy/lsp-lens.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-cmp/lua",
"/home/d/.local/share/nvim/lazy/telescope-fzf-native.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-navbuddy/lua",
"/home/d/.local/share/nvim/lazy/nvim-lspconfig/lua",
"/home/d/.local/share/nvim/lazy/mason.nvim/lua",
"/home/d/.local/share/nvim/lazy/toggleterm.nvim/lua",
"/home/d/.local/share/nvim/lazy/neodev.nvim/lua",
"/home/d/.local/share/nvim/lazy/dressing.nvim/lua",
"/home/d/.local/share/nvim/lazy/pretty-fold.nvim/lua",
"/home/d/.local/share/nvim/lazy/mason-lspconfig.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-treesitter/lua",
"/home/d/.local/share/nvim/lazy/neoscroll.nvim/lua",
"/home/d/.local/share/nvim/lazy/hop.nvim/lua",
"/home/d/.local/share/nvim/lazy/fidget.nvim/lua",
"/home/d/.local/share/nvim/lazy/cmp-nvim-lsp/lua",
"/home/d/.local/share/nvim/lazy/todo-comments.nvim/lua",
"/home/d/.local/share/nvim/lazy/cmp_luasnip/lua",
"/home/d/.local/share/nvim/lazy/LuaSnip/lua",
"/home/d/.local/share/nvim/lazy/harpoon/lua",
"/home/d/.local/share/nvim/lazy/plenary.nvim/lua",
"/home/d/.local/share/nvim/lazy/numb.nvim/lua",
"/home/d/.local/share/nvim/lazy/Comment.nvim/lua",
"/home/d/.local/share/nvim/lazy/cmp-nvim-lua/lua",
"/home/d/.local/share/nvim/lazy/lsp-inlayhints.nvim/lua",
"/home/d/.local/share/nvim/lazy/nui.nvim/lua",
"/home/d/.local/share/nvim/lazy/nvim-bqf/lua",
"/home/d/.local/share/nvim/lazy/nvim-surround/lua",
"/home/d/.local/share/nvim/lazy/cmp-buffer/lua",
"/home/d/.local/share/nvim/lazy/wilder.nvim/lua",
"/home/d/.config/nvim/lua",
"${3rd}/luv/library"
]
}

37
lua/config/commands.lua Executable file → Normal file
View file

@ -27,6 +27,29 @@ vim.api.nvim_create_user_command("OP", function()
}):find() }):find()
end, {}) end, {})
vim.api.nvim_create_user_command("OCC", function ()
local folders = vim.fn.systemlist("\\ls -d $HOME/projects/cc/*/")
for i, folder in ipairs(folders) do
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
end
pickers.new({}, {
prompt_title = "Open project",
finder = finders.new_table {
results = folders
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd("cd $HOME/projects/cc/" .. selection)
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_user_command("OD", function () vim.api.nvim_create_user_command("OD", function ()
local folders = vim.fn.systemlist("\\ls -d */") local folders = vim.fn.systemlist("\\ls -d */")
for i, folder in ipairs(folders) do for i, folder in ipairs(folders) do
@ -86,12 +109,9 @@ vim.api.nvim_create_user_command("Make", function(args)
end end
vimCmd = vimCmd .. "\"" vimCmd = vimCmd .. "\""
vim.cmd(vimCmd) vim.cmd(vimCmd)
end, { end, {nargs = "*", ["complete"] = function()
nargs = "*",
["complete"] = function()
return get_makefile_targets() return get_makefile_targets()
end end})
})
vim.api.nvim_create_user_command("Maket", function() vim.api.nvim_create_user_command("Maket", function()
local targets = get_makefile_targets() local targets = get_makefile_targets()
@ -131,12 +151,9 @@ vim.api.nvim_create_user_command("Just", function(args)
end end
vimCmd = vimCmd .. "\"" vimCmd = vimCmd .. "\""
vim.cmd(vimCmd) vim.cmd(vimCmd)
end, { end, {nargs = "*", ["complete"] = function ()
nargs = "*",
["complete"] = function()
return get_just_targets() return get_just_targets()
end end})
})
vim.api.nvim_create_user_command("Justt", function() vim.api.nvim_create_user_command("Justt", function()
local targets = get_makefile_targets() local targets = get_makefile_targets()

0
lua/config/init.lua Executable file → Normal file
View file

289
lua/config/keymap.lua Executable file → Normal file
View file

@ -1,192 +1,112 @@
-- local wk = require("which-key") local wk = require("which-key")
--
-- local keys = {
-- e = {
-- name = "Toggle",
-- e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
-- w = {vim.cmd.Ex, "netrw"},
-- s = {"<cmd>NeoTreeShowToggle<CR>", "neotree sidebar"},
-- g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
-- -- b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
-- c = {"<cmd>NeoTreeClose<CR>" , "Close"},
-- u = {vim.cmd.UndotreeToggle, "UndoTree"},
-- },
-- c = {
-- name = "LSP",
-- f = {function () vim.lsp.buf.format() end, "Format"},
-- w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
-- d = {function () vim.diagnostic.open_float() end, "diagnostic"},
-- a = {function () vim.lsp.buf.code_action() end, "code actions"},
-- R = {function () vim.lsp.buf.references() end, "references"},
-- r = {function () vim.lsp.buf.rename() end, "rename"},
-- h = {function () vim.lsp.buf.hover() end, "Hover"},
-- t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
-- s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
-- S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
-- l = {
-- name = "LSP",
-- k = {"<cmd>LspStop<cr>", "Stop"},
-- s = {"<cmd>LspStart<cr>", "Start"},
-- r = {"<cmd>LspRestart<cr>", "Restart"},
-- },
-- },
-- b = {
-- name = "Buffer",
-- h = {vim.cmd.bprevious, "Previous"},
-- l = {vim.cmd.bnext, "Next"},
-- H = {vim.cmd.bfirst, "First"},
-- L = {vim.cmd.blast, "Last"},
-- b = {require("telescope.builtin").buffers, "Picker"},
-- c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
-- C = {"<cmd>:bp | sp | bn | bd!<cr>", "Close Force"},
-- d = {function() vim.cmd("bd") end, "Delete buffer"},
-- D = {function() vim.cmd("bd!") end, "Delete buffer Force"},
-- o = {function() vim.cmd("BDelete other") end, "Delete other buffers"},
-- m = {function() vim.cmd("BDelete select") end, "Select buffer to delete"},
-- },
-- f = {
-- name = "Telescope & fzf",
-- c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
-- d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
-- w = {require("telescope.builtin").grep_string, "Find current Word"},
-- f = {require("telescope.builtin").find_files, "telescope find files"},
-- g = {require("telescope.builtin").live_grep, "live grep"},
-- b = {require("telescope.builtin").buffers, "buffers"},
-- h = {require("telescope.builtin").help_tags, "help tags"},
-- s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
-- m = {"<cmd>Maket<cr>", "Make"},
-- },
-- s = {
-- name = "Settings",
-- c = {function ()
-- vim.opt.scrolloff = 100
-- end, "Always center cursor"},
-- C = {function ()
-- vim.opt.scrolloff = 8
-- end, "Disable Cursor center"},
-- f = {function ()
-- vim.opt.nu = true
-- vim.opt.relativenumber = true
-- end, "Fix number and relative numbers"},
-- },
-- h = {
-- name = "Hop",
-- w = {"<cmd>HopWord<cr>", "Word"},
-- a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
-- l = {"<cmd>HopLine<cr>", "Line"},
-- p = {"<cmd>HopPattern<cr>", "Pattern"},
-- c = {"<cmd>HopChar1<cr>", "Char1"},
-- x = {"<cmd>HopChar2<cr>", "Char2"},
-- h = {vim.cmd.HopChar2, "Hop"},
-- },
-- d = {
-- name = "Debug",
-- b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
-- c = {function () require("dap").continue() end, "launch or continue execution"},
-- s = {function () require("dap").step_into() end, "step into"},
-- o = {function () require("dap").step_over() end, "step over"},
-- r = {function () require("dap").repl.open() end, "open repl"},
-- w = {"<cmd>DapUIFloat<cr>", "DapUI"},
-- },
-- w = {
-- name = "workspace",
-- a = {vim.lsp.buf.add_workspace_folder, "add folder"},
-- r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
-- l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
-- },
-- q = {
-- name = "Quick nav",
-- q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
-- a = {function () require("harpoon"):list():append() end, "Add file"},
-- r = {function () require("harpoon"):list():remove() end, "Remove File"},
-- },
--
-- }
--
-- wk.register(keys, {prefix = "<leader>"})
-- wk.register(keys, {prefix = "<C-Space>"})
-- wk.register(keys, {prefix = "<C-Space>", mode = "i"})
-- wk.register(keys, {prefix = "<C-Space>", mode = "v"})
local keys = { local keys = {
{ "bC", "<cmd>:bp | sp | bn | bd!<cr>", desc = "Close Force" }, e = {
{ "bD", function() vim.cmd("bd!") end, desc = "Delete buffer Force" }, name = "Toggle",
{ "bH", vim.cmd.bfirst, desc = "First" }, e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
{ "bL", vim.cmd.blast, desc = "Last" }, w = {vim.cmd.Ex, "netrw"},
{ "bb", require("telescope.builtin").buffers, desc = "Picker" }, s = {"<cmd>NeoTreeShowToggle<CR>", "neotree sidebar"},
{ "bc", "<cmd>:bp | sp | bn | bd<cr>", desc = "Close" }, g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
{ "bd", vim.cmd.bd, desc = "Delete buffer" }, -- b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
{ "bh", vim.cmd.bprevious, desc = "Previous" }, c = {"<cmd>NeoTreeClose<CR>" , "Close"},
{ "bl", vim.cmd.bnext, desc = "Next" }, u = {vim.cmd.UndotreeToggle, "UndoTree"},
{ "bm", function() vim.cmd("BDelete select") end, desc = "Select buffer to delete" }, },
{ "bo", function() vim.cmd("BDelete other") end, desc = "Delete other buffers" }, c = {
name = "LSP",
f = {function () vim.lsp.buf.format() end, "Format"},
w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
d = {function () vim.diagnostic.open_float() end, "diagnostic"},
a = {function () vim.lsp.buf.code_action() end, "code actions"},
R = {function () vim.lsp.buf.references() end, "references"},
r = {function () vim.lsp.buf.rename() end, "rename"},
h = {function () vim.lsp.buf.hover() end, "Hover"},
t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
l = {
name = "LSP",
k = {"<cmd>LspStop<cr>", "Stop"},
s = {"<cmd>LspStart<cr>", "Start"},
r = {"<cmd>LspRestart<cr>", "Restart"},
},
},
b = {
name = "Buffer",
h = {vim.cmd.bprevious, "Previous"},
l = {vim.cmd.bnext, "Next"},
H = {vim.cmd.bfirst, "First"},
L = {vim.cmd.blast, "Last"},
b = {require("telescope.builtin").buffers, "Picker"},
c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
C = {"<cmd>:bp | sp | bn | bd!<cr>", "Close Force"},
d = {function() vim.cmd("bd") end, "Delete buffer"},
D = {function() vim.cmd("bd!") end, "Delete buffer Force"},
o = {function() vim.cmd("BDelete other") end, "Delete other buffers"},
m = {function() vim.cmd("BDelete select") end, "Select buffer to delete"},
},
f = {
name = "Telescope & fzf",
c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
w = {require("telescope.builtin").grep_string, "Find current Word"},
f = {require("telescope.builtin").find_files, "telescope find files"},
g = {require("telescope.builtin").live_grep, "live grep"},
b = {require("telescope.builtin").buffers, "buffers"},
h = {require("telescope.builtin").help_tags, "help tags"},
s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
m = {"<cmd>Maket<cr>", "Make"},
},
s = {
name = "Settings",
c = {function ()
vim.opt.scrolloff = 100
end, "Always center cursor"},
C = {function ()
vim.opt.scrolloff = 8
end, "Disable Cursor center"},
f = {function ()
vim.opt.nu = true
vim.opt.relativenumber = true
end, "Fix number and relative numbers"},
},
h = {
name = "Hop",
w = {"<cmd>HopWord<cr>", "Word"},
a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
l = {"<cmd>HopLine<cr>", "Line"},
p = {"<cmd>HopPattern<cr>", "Pattern"},
c = {"<cmd>HopChar1<cr>", "Char1"},
x = {"<cmd>HopChar2<cr>", "Char2"},
h = {vim.cmd.HopChar2, "Hop"},
},
d = {
name = "Debug",
b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
c = {function () require("dap").continue() end, "launch or continue execution"},
s = {function () require("dap").step_into() end, "step into"},
o = {function () require("dap").step_over() end, "step over"},
r = {function () require("dap").repl.open() end, "open repl"},
w = {"<cmd>DapUIFloat<cr>", "DapUI"},
},
w = {
name = "workspace",
a = {vim.lsp.buf.add_workspace_folder, "add folder"},
r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
},
q = {
name = "Quick nav",
q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
a = {function () require("harpoon"):list():append() end, "Add file"},
r = {function () require("harpoon"):list():remove() end, "Remove File"},
},
{ "cR", vim.lsp.buf.references, desc = "references" },
{ "cS", require("telescope.builtin").lsp_document_symbols, desc = "Document Symbols" },
{ "ca", vim.lsp.buf.code_action, desc = "code actions" },
{ "cd", vim.diagnostic.open_float, desc = "diagnostic" },
{ "cf", vim.lsp.buf.format, desc = "Format" },
{ "ch", vim.lsp.buf.hover, desc = "Hover" },
{ "clk", "<cmd>LspStop<cr>", desc = "Stop" },
{ "clr", "<cmd>LspRestart<cr>", desc = "Restart" },
{ "cls", "<cmd>LspStart<cr>", desc = "Start" },
{ "cr", vim.lsp.buf.rename, desc = "rename" },
{ "cs", "<cmd>Navbuddy<cr>", desc = "Navbuddy" },
{ "ct", vim.lsp.buf.type_definition, desc = "Type Definition" },
{ "cw", function() vim.lsp.buf.workspace_symbol("") end, desc = "workspace symbol" },
{ "db", require("dap").toggle_breakpoint, desc = "toggle breakpoint" },
{ "dc", require("dap").continue, desc = "launch or continue execution" },
{ "do", require("dap").step_over, desc = "step over" },
{ "dr", require("dap").repl.open, desc = "open repl" },
{ "ds", require("dap").step_into, desc = "step into" },
{ "dw", "<cmd>DapUIFloat<cr>", desc = "DapUI" },
{ "ec", "<cmd>NeoTreeClose<CR>", desc = "Close" },
{ "ee", "<cmd>NeoTreeFloatToggle<CR>", desc = "NeoTree" },
{ "eg", "<cmd>NeoTreeFloatToggle git_status<CR>", desc = "Git Status" },
{ "es", "<cmd>NeoTreeShowToggle<CR>", desc = "neotree sidebar" },
{ "eu", vim.cmd.UndotreeToggle, desc = "UndoTree" },
{ "ew", vim.cmd.Ex, desc = "netrw" },
{ "fb", require("telescope.builtin").buffers, desc = "buffers" },
{ "fc", require("telescope.builtin").colorscheme, desc = "Find Colorscheme" },
{ "fd", require("telescope.builtin").diagnostics, desc = "Find Diagnostics" },
{ "ff", require("telescope.builtin").find_files, desc = "telescope find files" },
{ "fg", require("telescope.builtin").live_grep, desc = "live grep" },
{ "fh", require("telescope.builtin").help_tags, desc = "help tags" },
{ "fm", "<cmd>Maket<cr>", desc = "Make"},
{ "fs", function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, desc = "grep search through files" },
{ "fw", require("telescope.builtin").grep_string, desc = "Find current Word" },
{ "ha", "<cmd>HopAnywhere<cr>", desc = "Anywhere" },
{ "hc", "<cmd>HopChar1<cr>", desc = "Char1" },
{ "hh", vim.cmd.HopChar2, desc = "Hop" },
{ "hl", "<cmd>HopLine<cr>", desc = "Line" },
{ "hp", "<cmd>HopPattern<cr>", desc = "Pattern" },
{ "hw", "<cmd>HopWord<cr>", desc = "Word" },
{ "hx", "<cmd>HopChar2<cr>", desc = "Char2" },
{ "qa", function () require("harpoon"):list():append() end, desc = "Add file" },
{ "qq", require("harpoon.ui").toggle_quick_menu, desc = "Menu" },
{ "qr", function() require("harpoon"):list():remove() end, desc = "Remove File" },
{ "sC", function() vim.opt.scrolloff = 8 end, desc = "Disable Cursor center" },
{ "sc", function() vim.opt.scrolloff = 100 end, desc = "Always center cursor" },
{ "sf", function() vim.opt.nu = true; vim.opt.relativenumber = true end, desc = "Fix number and relative numbers" },
{ "wa", vim.lsp.buf.add_workspace_folder, desc = "add folder" },
{ "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, desc = "list folders" },
{ "wr", vim.lsp.buf.remove_workspace_folder, desc = "remove folder" },
} }
for i, key in ipairs(keys) do wk.register(keys, {prefix = "<leader>"})
vim.keymap.set("n", "<leader>" .. key[1], key[2], {desc = key["desc"]}) wk.register(keys, {prefix = "<C-Space>"})
vim.keymap.set("n", "<C-Space>" .. key[1], key[2], {desc = key["desc"]}) wk.register(keys, {prefix = "<C-Space>", mode = "i"})
vim.keymap.set("i", "<C-Space>" .. key[1], key[2], {desc = key["desc"]}) wk.register(keys, {prefix = "<C-Space>", mode = "v"})
vim.keymap.set("v", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
end
-- LSP -- LSP
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"}) vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
@ -237,4 +157,3 @@ for i = 9, 1, -1 do
vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""}) vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""}) vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
end end

135
lua/config/packages.lua Executable file → Normal file
View file

@ -2,16 +2,20 @@ return {
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
dependencies = { dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim", "j-hui/fidget.nvim",
"folke/neodev.nvim", "folke/neodev.nvim",
}, },
}, },
{
"j-hui/fidget.nvim",
dependencies = {
"neovim/nvim-lspconfig",
},
},
{ {
"ray-x/lsp_signature.nvim", "ray-x/lsp_signature.nvim",
event = "BufRead", event = "BufRead",
config = function() require "lsp_signature".setup() end, config = function() require"lsp_signature".on_attach() end,
}, },
{ {
"hrsh7th/nvim-cmp", "hrsh7th/nvim-cmp",
@ -25,23 +29,9 @@ return {
"rafamadriz/friendly-snippets" "rafamadriz/friendly-snippets"
}, },
}, },
{
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"williamboman/mason.nvim",
"nvimtools/none-ls.nvim",
},
config = function()
end,
},
{ {
"nvimtools/none-ls.nvim" "nvimtools/none-ls.nvim"
}, },
{
"OXY2DEV/markview.nvim",
lazy = false,
},
-- syntax highlighting -- syntax highlighting
{ {
@ -69,7 +59,6 @@ return {
-- debugging -- debugging
"mfussenegger/nvim-dap", "mfussenegger/nvim-dap",
"jay-babu/mason-nvim-dap.nvim",
{ {
"rcarriga/nvim-dap-ui", "rcarriga/nvim-dap-ui",
tag = "v4.0.0", tag = "v4.0.0",
@ -84,8 +73,24 @@ return {
-- git -- git
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
"lvimuser/lsp-inlayhints.nvim",
"echasnovski/mini.nvim", "echasnovski/mini.nvim",
{'kazhala/close-buffers.nvim', config = true}, {'kazhala/close-buffers.nvim', config = true},
{
'anuvyklack/pretty-fold.nvim',
opts = {
keep_indentation = true,
fill_char = '',
sections = {
left = {
'', function() return string.rep('*', vim.v.foldlevel) end, ' ━┫', 'content', ''
},
right = {
'', 'number_of_folded_lines', ': ', 'percentage', ' ┣━━',
}
}
}
},
"editorconfig/editorconfig-vim", "editorconfig/editorconfig-vim",
{"nacro90/numb.nvim", opts = {}}, {"nacro90/numb.nvim", opts = {}},
{"kylechui/nvim-surround", opts={}}, {"kylechui/nvim-surround", opts={}},
@ -166,13 +171,13 @@ return {
config = function() config = function()
local wk = require("which-key") local wk = require("which-key")
wk.setup { wk.setup {
-- popup_mappings = { popup_mappings = {
-- scroll_down = "<C-j>", scroll_down = "<C-j>",
-- scroll_up = "<C-k>", scroll_up = "<C-k>",
-- }, },
-- window = { window = {
-- border = "single", border = "single",
-- }, },
} }
end end
}, },
@ -223,18 +228,9 @@ return {
{ {
"gelguy/wilder.nvim", "gelguy/wilder.nvim",
config = function() config = function()
-- local wilder = require("wilder")
-- wilder.setup({
-- modes = {":", "/", "?"},
-- })
-- wilder.set_option("renderer", wilder.popupmenu_renderer({
-- pumblend = 50,
-- }))
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})') vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
vim.cmd( vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
'call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))') vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
vim.cmd(
'call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
end, end,
}, },
{ {
@ -248,52 +244,6 @@ return {
}, },
-- lenguage specific -- lenguage specific
-- scala
{
"scalameta/nvim-metals",
dependencies = {
"nvim-lua/plenary.nvim",
},
ft = { "scala", "sbt", "java" },
opts = function()
local metals_config = require("metals").bare_config()
metals_config.on_attach = function(client, bufnr)
-- your on_attach function
end
return metals_config
end,
config = function(self, metals_config)
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = self.ft,
callback = function()
require("metals").initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
end
},
-- org
{
"nvim-orgmode/orgmode",
lazy = false,
dependencies = {
"nvim-treesitter/nvim-treesitter",
"hrsh7th/nvim-cmp",
},
config = function()
require("orgmode").setup({})
require('nvim-treesitter.configs').setup({
ensure_installed = 'all',
ignore_install = { 'org' },
})
end
},
{
"akinsho/org-bullets.nvim"
},
-- f# -- f#
{"ionide/Ionide-vim"}, {"ionide/Ionide-vim"},
-- go -- go
@ -323,19 +273,6 @@ return {
"nvim-lua/plenary.nvim" "nvim-lua/plenary.nvim"
}, },
}, },
{
'mrcjkb/rustaceanvim',
version = '^5',
lazy = false,
},
-- diff
{
"julienvincent/hunk.nvim",
cmd = { "DiffEditor" },
config = function()
require("hunk").setup()
end,
},
-- slint -- slint
{"slint-ui/vim-slint"}, {"slint-ui/vim-slint"},
@ -348,11 +285,11 @@ return {
-- java -- java
"mfussenegger/nvim-jdtls", "mfussenegger/nvim-jdtls",
-- latex
"lervag/vimtex",
"let-def/texpresso.vim",
-- themes -- themes
"xiyaowong/transparent.nvim", "xiyaowong/transparent.nvim",
"savq/melange-nvim", "savq/melange-nvim",
"cpea2506/one_monokai.nvim",
"yazeed1s/oh-lucy.nvim",
"sainnhe/sonokai",
} }

17
lua/config/pmstrap.lua Executable file → Normal file
View file

@ -2,24 +2,23 @@ vim.g.mapleader = " "
vim.g.maplocalleader = " " vim.g.maplocalleader = " "
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({ vim.fn.system({
"git", "git",
"clone", "clone",
"--filter=blob:none", "--filter=blob:none",
"--branch=stable",
"https://github.com/folke/lazy.nvim.git", "https://github.com/folke/lazy.nvim.git",
lazypath "--branch=stable", -- latest stable release
lazypath,
}) })
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- bootstrap lazy.nvim
-- Setup lazy.nvim
require("lazy").setup("config.packages", { require("lazy").setup("config.packages", {
defaults = { defaults = {
lazy = false, lazy = false
}, },
--install = { colorscheme = { "melange" } }, install = {
colorscheme = { "melange" },
}
}) })

3
lua/config/sets.lua Executable file → Normal file
View file

@ -8,7 +8,6 @@ vim.opt.softtabstop = 0
vim.opt.shiftwidth = 4 vim.opt.shiftwidth = 4
vim.opt.smartindent = true vim.opt.smartindent = true
vim.o.breakindent = true vim.o.breakindent = true
vim.o.expandtab = true
-- lines -- lines
vim.opt.wrap = true vim.opt.wrap = true
@ -18,7 +17,7 @@ vim.opt.list = true
vim.opt.listchars:append "eol:↴" vim.opt.listchars:append "eol:↴"
-- undo -- undo
vim.opt.undodir = os.getenv("HOME") .. "/.local/share/nvim/undofile" vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true vim.opt.undofile = true
-- search -- search

31
new/after/init.lua Executable file
View file

@ -0,0 +1,31 @@
vim.opt.nu = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
-- vim.cmd[[
-- highlight CursorColumn guibg=none ctermbg=none
-- highlight link CursorColumn CursorLine
-- ]]
-- fixmap
vim.cmd[[
map <Space>m\ <nop>
map <Space>m/ <nop>
map <Space>mA <nop>
map <Space>mgS <nop>
map <Space>tt <nop>
map <Space>tm <nop>
]]
vim.opt.nu = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
require("plugins")

2
new/init.lua Executable file
View file

@ -0,0 +1,2 @@
require("config")
require("plugins")

77
new/lazy-lock.json Executable file
View file

@ -0,0 +1,77 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"Ionide-vim": { "branch": "master", "commit": "c7e8973426431839e9d888a4aa8d6a41251ba16f" },
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
"close-buffers.nvim": { "branch": "master", "commit": "3acbcad1211572342632a6c0151f839e7dead27f" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"crates.nvim": { "branch": "main", "commit": "1dffccc0a95f656ebe00cacb4de282473430c5a1" },
"editorconfig-vim": { "branch": "master", "commit": "3c2813f2566d9392ff3614248c5db43c3fda9d5f" },
"fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"go.nvim": { "branch": "master", "commit": "c6d5ca26377d01c4de1f7bff1cd62c8b43baa6bc" },
"guihua.lua": { "branch": "master", "commit": "d783191eaa75215beae0c80319fcce5e6b3beeda" },
"harpoon": { "branch": "harpoon2", "commit": "a84ab829eaf3678b586609888ef52f7779102263" },
"heirline.nvim": { "branch": "master", "commit": "cc359b628266cb9a84b2d71c883f2b99e16473a0" },
"hop.nvim": { "branch": "master", "commit": "1a1eceafe54b5081eae4cb91c723abd1d450f34b" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" },
"lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" },
"lsp_signature.nvim": { "branch": "master", "commit": "fc38521ea4d9ec8dbd4c2819ba8126cea743943b" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"melange-nvim": { "branch": "master", "commit": "9252c78c7bffd3126b0c9e47e51e0b5211acffb1" },
"mini.nvim": { "branch": "main", "commit": "7ebfab26d77a4b9b05aaae565907e7fa4b2ee154" },
"neo-tree.nvim": { "branch": "v2.x", "commit": "80dc74d081823649809f78370fa5b204aa9a853a" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"neoscroll.nvim": { "branch": "master", "commit": "f957373912e88579e26fdaea4735450ff2ef5c9c" },
"none-ls.nvim": { "branch": "main", "commit": "40dc2e983560acaea29d6312b33fafba37b0c272" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"numb.nvim": { "branch": "master", "commit": "3f7d4a74bd456e747a1278ea1672b26116e0824d" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-bqf": { "branch": "main", "commit": "1b24dc6050c34e8cd377b6b4cd6abe40509e0187" },
"nvim-cmp": { "branch": "main", "commit": "98e8b9d593a5547c126a39212d6f5e954a2d85dd" },
"nvim-dap": { "branch": "master", "commit": "567da83810dd9da32f9414d941bc6848715fc102" },
"nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" },
"nvim-jdtls": { "branch": "master", "commit": "ece818f909c6414cbad4e1fb240d87e003e10fda" },
"nvim-lspconfig": { "branch": "master", "commit": "9f2c279cf9abe584f03bfeb37c6658d68e3ff49d" },
"nvim-metals": { "branch": "main", "commit": "abf4a2b7ccdb2fa21ef59b66e50d9b69a746e3ef" },
"nvim-navbuddy": { "branch": "master", "commit": "f22bac988f2dd073601d75ba39ea5636ab6e38cb" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-surround": { "branch": "main", "commit": "9f0cb495f25bff32c936062d85046fbda0c43517" },
"nvim-treesitter": { "branch": "master", "commit": "102bc74e093ef54aab57a368db15befeb9ba9d58" },
"nvim-treesitter-context": { "branch": "master", "commit": "8fd989b6b457a448606b4a2e51f9161700f609a7" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
"nvim-ts-autotag": { "branch": "main", "commit": "1cca23c9da708047922d3895a71032bc0449c52d" },
"nvim-web-devicons": { "branch": "master", "commit": "0eb18da56e2ba6ba24de7130a12bcc4e31ad11cb" },
"org-bullets.nvim": { "branch": "main", "commit": "46ae687e22192fb806b5977d664ec98af9cf74f6" },
"orgmode": { "branch": "master", "commit": "db7f04435eae7191cb0ffb0e0cf2a1e9484f4a8b" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"pretty-fold.nvim": { "branch": "master", "commit": "a7d8b424abe0eedf50116c460fbe6dfd5783b1d5" },
"rainbow_csv.nvim": { "branch": "main", "commit": "7f3fddfe813641035fac2cdf94c2ff69bb0bf0b9" },
"rustaceanvim": { "branch": "master", "commit": "0a618c1d1c05a8059880076feccb15301da6993d" },
"suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" },
"telescope-dap.nvim": { "branch": "master", "commit": "783366bd6c1e7fa0a5c59c07db37f49c805a28df" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"templ.vim": { "branch": "main", "commit": "5cc48b93a4538adca0003c4bc27af844bb16ba24" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"toggleterm.nvim": { "branch": "main", "commit": "022ff5594acccc8d90d2e46dc43994f7722ebdf7" },
"transparent.nvim": { "branch": "main", "commit": "8a2749a2fa74f97fe6557f61b89ac7fd873f3c21" },
"undotree": { "branch": "master", "commit": "78b5241191852ffa9bb5da5ff2ee033160798c3b" },
"vim-glsl": { "branch": "master", "commit": "40dd0b143ef93f3930a8a409f60c1bb85e28b727" },
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
"vim-slint": { "branch": "main", "commit": "9badce3860297562bb5e80ba1666628f9e0ac632" },
"vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" },
"which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" },
"zig.vim": { "branch": "master", "commit": "15d6510b77a4efbb6ffcb151ed7e2ce4de4d06f6" }
}

163
new/lua/config/commands.lua Executable file
View file

@ -0,0 +1,163 @@
local pickers = require "telescope.pickers"
local finders = require "telescope.finders"
local conf = require("telescope.config").values
local actions = require "telescope.actions"
local action_state = require "telescope.actions.state"
vim.api.nvim_create_user_command("OP", function ()
local folders = vim.fn.systemlist("\\ls -d $HOME/projects/*/")
for i, folder in ipairs(folders) do
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
end
pickers.new({}, {
prompt_title = "Open project",
finder = finders.new_table {
results = folders
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd("cd $HOME/projects/" .. selection)
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_user_command("OD", function ()
local folders = vim.fn.systemlist("\\ls -d */")
for i, folder in ipairs(folders) do
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
end
pickers.new({}, {
prompt_title = "Open directory",
finder = finders.new_table {
results = folders
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd("cd " .. selection)
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_user_command("Config", function ()
vim.cmd("cd $HOME/.config/nvim")
end, {})
vim.api.nvim_create_user_command("RetabFile2Spaces", function ()
vim.cmd(":set ts=2 sts=2 noet | retab! | set ts=4 sts=4 et | retab!")
end, {})
vim.api.nvim_create_user_command("RetabFile4SpacesToTab", function ()
vim.cmd(":set ts=4 sts=4 noet | retab! | set ts=4 sts=0 noexpandtab | retab!")
end, {})
local function get_makefile_targets()
local makefile = "./Makefile"
local targets = {}
local file = io.open(makefile, "r")
if file then
for line in file:lines() do
local target = line:match("^[^\\s:]+:.*")
if target then
local tg = target:match("^[^:]+")
table.insert(targets, tg)
end
end
file:close()
end
return targets
end
vim.api.nvim_create_user_command("Make", function (args)
local vimCmd = "TermExec cmd=\"make"
if (args["args"]) then
vimCmd = vimCmd .. " " .. args["args"]
end
vimCmd = vimCmd .. "\""
vim.cmd(vimCmd)
end, {nargs = "*", ["complete"] = function()
return get_makefile_targets()
end})
vim.api.nvim_create_user_command("Maket", function()
local targets = get_makefile_targets()
pickers.new({}, {
prompt_title = "Run make target",
finder = finders.new_table {
results = targets
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd(":Make " .. selection)
end)
return true
end
}):find()
end, {})
function get_just_targets()
local handle = io.popen("just --summary")
local res = handle:read("*a")
handle:close()
local targets = {}
-- insert space seperated targets
for target in string.gmatch(res, "%S+") do
table.insert(targets, target)
end
end
vim.api.nvim_create_user_command("Just", function(args)
local vimCmd = "TermExec cmd=\"just"
if (args["args"]) then
vimCmd = vimCmd .. " " .. args["args"]
end
vimCmd = vimCmd .. "\""
vim.cmd(vimCmd)
end, {nargs = "*", ["complete"] = function ()
return get_just_targets()
end})
vim.api.nvim_create_user_command("Justt", function()
local targets = get_makefile_targets()
pickers.new({}, {
prompt_title = "Run just target",
finder = finders.new_table {
results = targets
},
sorter = conf.generic_sorter({}),
attach_mappings = function (prompt_bufnr, map)
actions.select_default:replace(function ()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
selection = selection[1]
vim.cmd(":Just " .. selection)
end)
return true
end
}):find()
end, {})
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('HightlightYank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})

4
new/lua/config/init.lua Executable file
View file

@ -0,0 +1,4 @@
require("config.pmstrap")
require("config.sets")
require("config.keymap")
require("config.commands")

240
new/lua/config/keymap.lua Executable file
View file

@ -0,0 +1,240 @@
-- local wk = require("which-key")
--
-- local keys = {
-- e = {
-- name = "Toggle",
-- e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
-- w = {vim.cmd.Ex, "netrw"},
-- s = {"<cmd>NeoTreeShowToggle<CR>", "neotree sidebar"},
-- g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
-- -- b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
-- c = {"<cmd>NeoTreeClose<CR>" , "Close"},
-- u = {vim.cmd.UndotreeToggle, "UndoTree"},
-- },
-- c = {
-- name = "LSP",
-- f = {function () vim.lsp.buf.format() end, "Format"},
-- w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
-- d = {function () vim.diagnostic.open_float() end, "diagnostic"},
-- a = {function () vim.lsp.buf.code_action() end, "code actions"},
-- R = {function () vim.lsp.buf.references() end, "references"},
-- r = {function () vim.lsp.buf.rename() end, "rename"},
-- h = {function () vim.lsp.buf.hover() end, "Hover"},
-- t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
-- s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
-- S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
-- l = {
-- name = "LSP",
-- k = {"<cmd>LspStop<cr>", "Stop"},
-- s = {"<cmd>LspStart<cr>", "Start"},
-- r = {"<cmd>LspRestart<cr>", "Restart"},
-- },
-- },
-- b = {
-- name = "Buffer",
-- h = {vim.cmd.bprevious, "Previous"},
-- l = {vim.cmd.bnext, "Next"},
-- H = {vim.cmd.bfirst, "First"},
-- L = {vim.cmd.blast, "Last"},
-- b = {require("telescope.builtin").buffers, "Picker"},
-- c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
-- C = {"<cmd>:bp | sp | bn | bd!<cr>", "Close Force"},
-- d = {function() vim.cmd("bd") end, "Delete buffer"},
-- D = {function() vim.cmd("bd!") end, "Delete buffer Force"},
-- o = {function() vim.cmd("BDelete other") end, "Delete other buffers"},
-- m = {function() vim.cmd("BDelete select") end, "Select buffer to delete"},
-- },
-- f = {
-- name = "Telescope & fzf",
-- c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
-- d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
-- w = {require("telescope.builtin").grep_string, "Find current Word"},
-- f = {require("telescope.builtin").find_files, "telescope find files"},
-- g = {require("telescope.builtin").live_grep, "live grep"},
-- b = {require("telescope.builtin").buffers, "buffers"},
-- h = {require("telescope.builtin").help_tags, "help tags"},
-- s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
-- m = {"<cmd>Maket<cr>", "Make"},
-- },
-- s = {
-- name = "Settings",
-- c = {function ()
-- vim.opt.scrolloff = 100
-- end, "Always center cursor"},
-- C = {function ()
-- vim.opt.scrolloff = 8
-- end, "Disable Cursor center"},
-- f = {function ()
-- vim.opt.nu = true
-- vim.opt.relativenumber = true
-- end, "Fix number and relative numbers"},
-- },
-- h = {
-- name = "Hop",
-- w = {"<cmd>HopWord<cr>", "Word"},
-- a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
-- l = {"<cmd>HopLine<cr>", "Line"},
-- p = {"<cmd>HopPattern<cr>", "Pattern"},
-- c = {"<cmd>HopChar1<cr>", "Char1"},
-- x = {"<cmd>HopChar2<cr>", "Char2"},
-- h = {vim.cmd.HopChar2, "Hop"},
-- },
-- d = {
-- name = "Debug",
-- b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
-- c = {function () require("dap").continue() end, "launch or continue execution"},
-- s = {function () require("dap").step_into() end, "step into"},
-- o = {function () require("dap").step_over() end, "step over"},
-- r = {function () require("dap").repl.open() end, "open repl"},
-- w = {"<cmd>DapUIFloat<cr>", "DapUI"},
-- },
-- w = {
-- name = "workspace",
-- a = {vim.lsp.buf.add_workspace_folder, "add folder"},
-- r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
-- l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
-- },
-- q = {
-- name = "Quick nav",
-- q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
-- a = {function () require("harpoon"):list():append() end, "Add file"},
-- r = {function () require("harpoon"):list():remove() end, "Remove File"},
-- },
--
-- }
--
-- wk.register(keys, {prefix = "<leader>"})
-- wk.register(keys, {prefix = "<C-Space>"})
-- wk.register(keys, {prefix = "<C-Space>", mode = "i"})
-- wk.register(keys, {prefix = "<C-Space>", mode = "v"})
local keys = {
{ "bC", "<cmd>:bp | sp | bn | bd!<cr>", desc = "Close Force" },
{ "bD", function() vim.cmd("bd!") end, desc = "Delete buffer Force" },
{ "bH", vim.cmd.bfirst, desc = "First" },
{ "bL", vim.cmd.blast, desc = "Last" },
{ "bb", require("telescope.builtin").buffers, desc = "Picker" },
{ "bc", "<cmd>:bp | sp | bn | bd<cr>", desc = "Close" },
{ "bd", vim.cmd.bd, desc = "Delete buffer" },
{ "bh", vim.cmd.bprevious, desc = "Previous" },
{ "bl", vim.cmd.bnext, desc = "Next" },
{ "bm", function() vim.cmd("BDelete select") end, desc = "Select buffer to delete" },
{ "bo", function() vim.cmd("BDelete other") end, desc = "Delete other buffers" },
{ "cR", vim.lsp.buf.references, desc = "references" },
{ "cS", require("telescope.builtin").lsp_document_symbols, desc = "Document Symbols" },
{ "ca", vim.lsp.buf.code_action, desc = "code actions" },
{ "cd", vim.diagnostic.open_float, desc = "diagnostic" },
{ "cf", vim.lsp.buf.format, desc = "Format" },
{ "ch", vim.lsp.buf.hover, desc = "Hover" },
{ "clk", "<cmd>LspStop<cr>", desc = "Stop" },
{ "clr", "<cmd>LspRestart<cr>", desc = "Restart" },
{ "cls", "<cmd>LspStart<cr>", desc = "Start" },
{ "cr", vim.lsp.buf.rename, desc = "rename" },
{ "cs", "<cmd>Navbuddy<cr>", desc = "Navbuddy" },
{ "ct", vim.lsp.buf.type_definition, desc = "Type Definition" },
{ "cw", function() vim.lsp.buf.workspace_symbol("") end, desc = "workspace symbol" },
{ "db", require("dap").toggle_breakpoint, desc = "toggle breakpoint" },
{ "dc", require("dap").continue, desc = "launch or continue execution" },
{ "do", require("dap").step_over, desc = "step over" },
{ "dr", require("dap").repl.open, desc = "open repl" },
{ "ds", require("dap").step_into, desc = "step into" },
{ "dw", "<cmd>DapUIFloat<cr>", desc = "DapUI" },
{ "ec", "<cmd>NeoTreeClose<CR>", desc = "Close" },
{ "ee", "<cmd>NeoTreeFloatToggle<CR>", desc = "NeoTree" },
{ "eg", "<cmd>NeoTreeFloatToggle git_status<CR>", desc = "Git Status" },
{ "es", "<cmd>NeoTreeShowToggle<CR>", desc = "neotree sidebar" },
{ "eu", vim.cmd.UndotreeToggle, desc = "UndoTree" },
{ "ew", vim.cmd.Ex, desc = "netrw" },
{ "fb", require("telescope.builtin").buffers, desc = "buffers" },
{ "fc", require("telescope.builtin").colorscheme, desc = "Find Colorscheme" },
{ "fd", require("telescope.builtin").diagnostics, desc = "Find Diagnostics" },
{ "ff", require("telescope.builtin").find_files, desc = "telescope find files" },
{ "fg", require("telescope.builtin").live_grep, desc = "live grep" },
{ "fh", require("telescope.builtin").help_tags, desc = "help tags" },
{ "fm", "<cmd>Maket<cr>", desc = "Make"},
{ "fs", function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, desc = "grep search through files" },
{ "fw", require("telescope.builtin").grep_string, desc = "Find current Word" },
{ "ha", "<cmd>HopAnywhere<cr>", desc = "Anywhere" },
{ "hc", "<cmd>HopChar1<cr>", desc = "Char1" },
{ "hh", vim.cmd.HopChar2, desc = "Hop" },
{ "hl", "<cmd>HopLine<cr>", desc = "Line" },
{ "hp", "<cmd>HopPattern<cr>", desc = "Pattern" },
{ "hw", "<cmd>HopWord<cr>", desc = "Word" },
{ "hx", "<cmd>HopChar2<cr>", desc = "Char2" },
{ "qa", function () require("harpoon"):list():append() end, desc = "Add file" },
{ "qq", require("harpoon.ui").toggle_quick_menu, desc = "Menu" },
{ "qr", function() require("harpoon"):list():remove() end, desc = "Remove File" },
{ "sC", function() vim.opt.scrolloff = 8 end, desc = "Disable Cursor center" },
{ "sc", function() vim.opt.scrolloff = 100 end, desc = "Always center cursor" },
{ "sf", function() vim.opt.nu = true; vim.opt.relativenumber = true end, desc = "Fix number and relative numbers" },
{ "wa", vim.lsp.buf.add_workspace_folder, desc = "add folder" },
{ "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, desc = "list folders" },
{ "wr", vim.lsp.buf.remove_workspace_folder, desc = "remove folder" },
}
for i, key in ipairs(keys) do
vim.keymap.set("n", "<leader>" .. key[1], key[2], {desc = key["desc"]})
vim.keymap.set("n", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
vim.keymap.set("i", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
vim.keymap.set("v", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
end
-- LSP
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {desc = "goto next"})
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {desc = "goto prev"})
vim.keymap.set("i", "<C-s>", function() vim.lsp.buf.signature_help() end)
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {})
-- term
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
vim.keymap.set("v", "<C-\\>", vim.cmd.ToggleTerm)
-- center
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- visual move
vim.keymap.set("x", "K", ":move '<-2<CR>gv=gv")
vim.keymap.set("x", "J", ":move '>+1<CR>gv=gv")
-- me lazy
vim.keymap.set("i", "<C-c>", "<Esc>")
-- non char keybinds
vim.keymap.set("n", "<leader>f/", function ()
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
vim.keymap.set("i", "<C-Space>f/", function ()
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 10,
previewer = false,
})
end, {desc = "fuzzy find"})
vim.keymap.set('i', '<C-Space>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
for i = 9, 1, -1 do
vim.keymap.set("n", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
end

361
new/lua/config/packages.lua Executable file
View file

@ -0,0 +1,361 @@
return {
{
"neovim/nvim-lspconfig",
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim",
"folke/neodev.nvim",
},
},
{
"VidocqH/lsp-lens.nvim",
opts = {},
},
{
"j-hui/fidget.nvim",
dependencies = {
"neovim/nvim-lspconfig",
},
},
{
"SmiteshP/nvim-navic",
dependencies = {"neovim/nvim-lspconfig"},
opts = {highlight = true},
},
{
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require"lsp_signature".on_attach() end,
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"rafamadriz/friendly-snippets"
},
},
{
"nvimtools/none-ls.nvim"
},
-- syntax highlighting
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate"
},
'nvim-treesitter/nvim-treesitter-context',
{
"nvim-treesitter/nvim-treesitter-textobjects",
dependencies = {"nvim-treesitter"},
},
-- fzf Telescope
{
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
dependencies = {
"nvim-lua/plenary.nvim"
}
},
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
},
-- debugging
"mfussenegger/nvim-dap",
"jay-babu/mason-nvim-dap.nvim",
{
"rcarriga/nvim-dap-ui",
tag = "v4.0.0",
dependencies = {
"mfussenegger/nvim-dap",
"nvim-neotest/nvim-nio"
},
},
{"theHamsta/nvim-dap-virtual-text", opts = {}},
"nvim-telescope/telescope-dap.nvim",
-- git
"lewis6991/gitsigns.nvim",
"lvimuser/lsp-inlayhints.nvim",
"echasnovski/mini.nvim",
{'kazhala/close-buffers.nvim', config = true},
{
'anuvyklack/pretty-fold.nvim',
opts = {
keep_indentation = true,
fill_char = '',
sections = {
left = {
'', function() return string.rep('*', vim.v.foldlevel) end, ' ━┫', 'content', ''
},
right = {
'', 'number_of_folded_lines', ': ', 'percentage', ' ┣━━',
}
}
}
},
"editorconfig/editorconfig-vim",
{"nacro90/numb.nvim", opts = {}},
{"kylechui/nvim-surround", opts={}},
{
"phaazon/hop.nvim",
event = "BufRead",
opts = {}
},
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
init = function ()
local harpoon = require("harpoon")
harpoon:setup()
end
},
-- misc editing
"lambdalisue/suda.vim",
"tpope/vim-sleuth",
"mbbill/undotree",
{"windwp/nvim-autopairs", opts = {}},
{
"mg979/vim-visual-multi",
config = function ()
vim.cmd([[
let g:VM_leader='<Space>m'
let g:VM_maps['Find Under'] = '<C-m>'
]])
end
},
{
"windwp/nvim-ts-autotag",
opts = {
filetypes = {'html', 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'svelte', 'vue', 'tsx', 'jsx', 'rescript', 'xml', 'php', 'markdown', 'astro', 'glimmer', 'handlebars', 'hbs', "rust" },
},
},
{
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
opts = {
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
}
},
"nvim-tree/nvim-web-devicons",
{
"lukas-reineke/indent-blankline.nvim",
init = function ()
require("ibl").setup({
indent = {
tab_char = "",
char = "",
},
})
end
},
{
"folke/which-key.nvim",
config = function()
local wk = require("which-key")
wk.setup {
-- popup_mappings = {
-- scroll_down = "<C-j>",
-- scroll_up = "<C-k>",
-- },
-- window = {
-- border = "single",
-- },
}
end
},
"rebelot/heirline.nvim",
{
"akinsho/toggleterm.nvim",
version = "*",
opts = {
direction = "float",
float_opts = {
border = "curved"
},
}
},
{
"karb94/neoscroll.nvim",
event = "WinScrolled",
opts = {
mappings = {"<C-u>", "<C-d>", "<C-b>", "<C-f>", "<C-y>", "<C-e>", "zt", "zz", "zb"},
hide_cursor = true,
stop_eof = true,
use_local_scrolloff = false,
respect_scrolloff = false,
cursor_scrolls_alone = true,
easing_function = nil,
pre_hook = nil,
post_hook = nil,
}
},
{
"folke/todo-comments.nvim",
event = "BufRead",
},
{'numToStr/Comment.nvim', opts = {}},
{
"SmiteshP/nvim-navbuddy",
dependencies = {
"neovim/nvim-lspconfig",
"SmiteshP/nvim-navic",
"MunifTanjim/nui.nvim",
"numToStr/Comment.nvim",
"nvim-telescope/telescope.nvim"
},
opts = {
window = {border="rounded",},
}
},
{
"gelguy/wilder.nvim",
config = function()
-- local wilder = require("wilder")
-- wilder.setup({
-- modes = {":", "/", "?"},
-- })
-- wilder.set_option("renderer", wilder.popupmenu_renderer({
-- pumblend = 50,
-- }))
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
vim.cmd('call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
end,
},
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v2.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
},
-- lenguage specific
-- the best language in the world (scala)
{
"scalameta/nvim-metals",
dependencies = {
"nvim-lua/plenary.nvim",
},
ft = { "scala", "sbt", "java" },
opts = function()
local metals_config = require("metals").bare_config()
metals_config.on_attach = function(client, bufnr)
-- your on_attach function
end
return metals_config
end,
config = function(self, metals_config)
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = self.ft,
callback = function()
require("metals").initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
end
},
-- org
{
"nvim-orgmode/orgmode",
lazy = false,
dependencies = {
"nvim-treesitter/nvim-treesitter",
"hrsh7th/nvim-cmp",
},
config = function()
require("orgmode").setup({})
require('nvim-treesitter.configs').setup({
ensure_installed = 'all',
ignore_install = { 'org' },
})
end
},
{
"akinsho/org-bullets.nvim"
},
-- f#
{"ionide/Ionide-vim"},
-- go
{"joerdav/templ.vim"},
{
"ray-x/go.nvim",
dependencies = { -- optional packages
"ray-x/guihua.lua",
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
config = function()
require("go").setup()
end,
event = {"CmdlineEnter"},
ft = {"go", 'gomod'},
build = ':lua require("go.install").update_all_sync()' -- if you need to install/update all binaries
},
-- csv
'cameron-wags/rainbow_csv.nvim',
-- rust
{
"saecki/crates.nvim",
tag = "v0.3.0",
dependencies = {
"nvim-lua/plenary.nvim"
},
},
{
'mrcjkb/rustaceanvim',
version = '^5', -- Recommended
lazy = false, -- This plugin is already lazy
},
-- slint
{"slint-ui/vim-slint"},
-- zig
"ziglang/zig.vim",
-- glsl
"tikhomirov/vim-glsl",
-- java
"mfussenegger/nvim-jdtls",
-- themes
"xiyaowong/transparent.nvim",
"savq/melange-nvim",
}

25
new/lua/config/pmstrap.lua Executable file
View file

@ -0,0 +1,25 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " "
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"--branch=stable",
"https://github.com/folke/lazy.nvim.git",
lazypath
})
end
vim.opt.rtp:prepend(lazypath)
-- Setup lazy.nvim
require("lazy").setup("config.packages", {
defaults = {
lazy = false,
},
--install = { colorscheme = { "melange" } },
})

57
new/lua/config/sets.lua Executable file
View file

@ -0,0 +1,57 @@
-- numbers
vim.opt.number = true
vim.opt.relativenumber = true
-- tab && indent
vim.opt.tabstop = 4
vim.opt.softtabstop = 0
vim.opt.shiftwidth = 4
vim.opt.smartindent = true
vim.o.breakindent = true
-- lines
vim.opt.wrap = true
vim.opt.smarttab = true
vim.opt.list = true
vim.opt.listchars:append "eol:↴"
-- undo
vim.opt.undodir = os.getenv("HOME") .. "/.local/share/nvim/undofile"
vim.opt.undofile = true
-- search
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.o.ignorecase = true
vim.o.smartcase = true
-- colors
vim.opt.termguicolors = true
vim.cmd.colorscheme "melange"
vim.opt.cursorline = true
-- misc
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.scrolloff = 8
vim.opt.sidescrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.opt.timeoutlen = 300
vim.o.mouse = "a"
vim.opt.showmode = false
vim.g.have_nerd_font = true
vim.o.completeopt = "menuone,noselect"
-- vim.filetype.add({extension = {leaf = 'html'}})
vim.wo.foldmethod = "manual"
vim.opt.foldcolumn = "1"

15
new/lua/plugins/autopairs.lua Executable file
View file

@ -0,0 +1,15 @@
local npairs = require("nvim-autopairs")
local Rule = require("nvim-autopairs.rule")
npairs.setup({
check_ts = true,
ts_config = {
lua = {"string"},
javascript = {"template_string"},
},
enable_check_bracket_line = false,
ignored_next_char = "[%w%.]",
})
local ts_conds = require("nvim-autopairs.ts-conds")

View file

@ -55,7 +55,7 @@ navic.setup {
} }
local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
vim.lsp.inlay_hint.enable(true)
local on_attach = function(client, bufnr) local on_attach = function(client, bufnr)
local nmap = function(keys, func, desc) local nmap = function(keys, func, desc)
if desc then if desc then
@ -66,7 +66,7 @@ local on_attach = function(client, bufnr)
end end
-- ih.on_attach(client, bufnr) -- ih.on_attach(client, bufnr)
--require("lsp-inlayhints").on_attach(client, bufnr) require("lsp-inlayhints").on_attach(client, bufnr)
if client.server_capabilities.documentSymbolProvider then if client.server_capabilities.documentSymbolProvider then
navic.attach(client, bufnr) navic.attach(client, bufnr)
@ -117,14 +117,11 @@ capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
capabilities.offsetEncoding = { "utf-16" } -- fix copilot capabilities.offsetEncoding = { "utf-16" } -- fix copilot
require('mason').setup() require('mason').setup()
require("mason-nvim-dap").setup({ require("mason-nvim-dap").setup({automatic_installation = true, handlers = {
automatic_installation = true,
handlers = {
function (config) function (config)
require("mason-nvim-dap").default_setup(config) require("mason-nvim-dap").default_setup(config)
end end
} }})
})
local mason_lspconfig = require 'mason-lspconfig' local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup { mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers), ensure_installed = vim.tbl_keys(servers),
@ -139,35 +136,6 @@ mason_lspconfig.setup_handlers {
end, end,
} }
vim.g.rustaceanvim = {
tools = {},
server = {
on_attach = on_attach,
default_settings = {
["rust-analyzer"] = {
cargo = {
features = "all"
},
inlayHints = {
closyreCaptureHints = {
enable = true,
},
},
check = {
command = "clippy",
features = "all",
},
imports = {
preferPrelude = true,
}
}
},
},
dap = {
},
}
-- require("lspconfig").rust_analyzer.setup{ -- require("lspconfig").rust_analyzer.setup{
-- capabilities = capabilities, -- capabilities = capabilities,
-- on_attach = on_attach, -- on_attach = on_attach,
@ -281,25 +249,9 @@ cmp.setup {
}, },
} }
-- cmp.event:on(
-- 'confirm_done',
-- cmp_autopairs.on_confirm_done()
-- )
cmp.event:on( cmp.event:on(
'confirm_done', 'confirm_done',
vim.schedule_wrap(function(completion_item) cmp_autopairs.on_confirm_done()
-- Get the current buffer's filetype
local filetype = vim.api.nvim_buf_get_option(0, 'filetype')
-- Check if the filetype is NOT fsharp
if filetype ~= 'fsharp' then
-- If it's not fsharp, let cmp-autopairs handle it
cmp_autopairs.on_confirm_done()(completion_item)
else
-- If it is fsharp, do nothing (skip the cmp-autopairs action)
end
end)
) )
vim.diagnostic.config({ vim.diagnostic.config({

View file

@ -13,3 +13,4 @@ null_ls.setup({
null_ls.builtins.formatting.swift_format, null_ls.builtins.formatting.swift_format,
} }
}) })

141
new/lua/plugins/rust.lua Executable file
View file

@ -0,0 +1,141 @@
require("crates").setup {
smart_insert = true,
insert_closing_quote = true,
avoid_prerelease = true,
autoload = true,
autoupdate = true,
loading_indicator = true,
date_format = "%Y-%m-%d",
thousands_separator = ".",
notification_title = "Crates",
--curl_args = { "-sL", "--retry", "1" },
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 ",
},
coq = {
enabled = false,
name = "Crates",
},
},
null_ls = {
enabled = false,
name = "Crates",
},
}