Compare commits

..

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

23 changed files with 570 additions and 618 deletions

3
.gitignore vendored
View File

@ -1,3 +0,0 @@
.neoconf.json
.stylua.toml
lazy-lock.json

View File

@ -4,23 +4,8 @@ local vanila_vim_autostart_commands = {
"set nowrap", "set nowrap",
"set shiftwidth=4", "set shiftwidth=4",
"set tabstop=4", "set tabstop=4",
"set ttyfast",
"set clipboard=unnamedplus"
} }
vim.diagnostic.config({
virtual_text = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = '󰅗 ',
[vim.diagnostic.severity.WARN] = '󰀧 ',
[vim.diagnostic.severity.INFO] = '󰬐',
[vim.diagnostic.severity.HINT] = '󰌵',
},
}
})
vim.opt.termguicolors = true
vim.opt.fillchars = { eob = " " } vim.opt.fillchars = { eob = " " }
for _, cmd in pairs(vanila_vim_autostart_commands) do for _, cmd in pairs(vanila_vim_autostart_commands) do
@ -32,9 +17,10 @@ if vim.lsp.inlay_hint then
end end
require("config.lazy") require("config.lazy")
require("config.plugins.acmp")
require("config.plugins.autotag") require("config.plugins.autotag")
require("config.plugins.autocomplete") require("config.plugins.autocomplete")
require("config.plugins.buffer") require("config.plugins.bufferline")
require("config.plugins.colorizer") require("config.plugins.colorizer")
require("config.plugins.comment") require("config.plugins.comment")
require("config.plugins.dap") require("config.plugins.dap")
@ -42,15 +28,18 @@ require("config.plugins.gitsigns")
require("config.plugins.ibl") require("config.plugins.ibl")
require("config.plugins.hover_actions") require("config.plugins.hover_actions")
require("config.plugins.lsp_config") require("config.plugins.lsp_config")
require("config.plugins.lsp_diagnostic")
require("config.plugins.lualine") require("config.plugins.lualine")
require("config.plugins.navic")
require("config.plugins.noice") require("config.plugins.noice")
require("toggleterm").setup() require("toggleterm").setup()
require("config.plugins.telescope")
require("config.plugins.treesitter") require("config.plugins.treesitter")
require("config.plugins.neotree") require("config.plugins.neotree")
require("config.plugins.prettier") require("config.plugins.prettier")
require("config.plugins.rustaceanvim") require("config.plugins.rustaceanvim")
require("huez").setup({}) require("huez").setup({})
require("config.plugins.dropbar")
require("config.plugins.dashboard")
vim.api.nvim_create_autocmd("BufWritePre", { vim.api.nvim_create_autocmd("BufWritePre", {
buffer = buffer, buffer = buffer,
@ -58,4 +47,5 @@ vim.api.nvim_create_autocmd("BufWritePre", {
vim.lsp.buf.format { async = false } vim.lsp.buf.format { async = false }
end end
}) })
require("mappings") require("mappings")

View File

@ -0,0 +1,5 @@
-- require'cmp'.setup {
-- sources = {
-- { name = 'nvim_lsp' }
-- }
-- }

View File

@ -1,99 +1,95 @@
local cmp = require("cmp") local cmp = require "cmp"
local kind_icons = { local kind_icons = {
Text = "", Text = "",
Method = "󰆧", Method = "󰆧",
Function = "󰊕", Function = "󰊕",
Constructor = "", Constructor = "",
Field = "", Field = "",
Variable = "", Variable = "",
Class = "", Class = "",
Interface = "", Interface = "",
Module = "", Module = "",
Property = "󰜢", Property = "󰜢",
Unit = "", Unit = "",
Value = "󰎠", Value = "󰎠",
Enum = "", Enum = "",
Keyword = "󰌋", Keyword = "󰌋",
Snippet = "", Snippet = "",
Color = "󰏘", Color = "󰏘",
File = "󰈙", File = "󰈙",
Reference = "", Reference = "",
Folder = "󰉋", Folder = "󰉋",
EnumMember = "", EnumMember = "",
Constant = "󰏿", Constant = "󰏿",
Struct = "", Struct = "",
Event = "", Event = "",
Operator = "󰆕", Operator = "󰆕",
TypeParameter = "󰅲", TypeParameter = "󰅲",
} }
cmp.setup { cmp.setup{
completion = { completeopt = "menu,menuone" }, completion = { completeopt = "menu,menuone" },
snippet = { snippet = {
expand = function(args) expand = function(args)
require("luasnip").lsp_expand(args.body) require("luasnip").lsp_expand(args.body)
end, end,
}, },
window = {
completion = {
-- winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
col_offset = -3,
side_padding = 0,
},
},
formatting = { formatting = {
fields = { "kind", "abbr", "menu" }, format = function(entry, vim_item)
format = function(entry, vim_item) -- Kind icons
local kind = require("lspkind").cmp_format({ mode = "symbol_text", maxwidth = 50 })(entry, vim_item) vim_item.kind = string.format('\t%s %s\t', kind_icons[vim_item.kind], vim_item.kind) -- This concatenates the icons with the name of the item kind
local strings = vim.split(kind.kind, "%s", { trimempty = true }) -- Source
kind.kind = " " .. (strings[1] or "") .. " " vim_item.menu = ({
kind.menu = " " .. (strings[2] or "") buffer = "[Buffer]",
nvim_lsp = "[LSP]",
luasnip = "[LuaSnip]",
nvim_lua = "[Lua]",
latex_symbols = "[LaTeX]",
})[entry.source.name]
return vim_item
end
},
return kind mapping = {
end ["<C-p>"] = cmp.mapping.select_prev_item(),
}, ["<C-n>"] = cmp.mapping.select_next_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
mapping = { ["<CR>"] = cmp.mapping.confirm {
["<C-p>"] = cmp.mapping.select_prev_item(), behavior = cmp.ConfirmBehavior.Insert,
["<C-n>"] = cmp.mapping.select_next_item(), select = true,
["<C-d>"] = cmp.mapping.scroll_docs(-4), },
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm { ["<Tab>"] = cmp.mapping(function(fallback)
behavior = cmp.ConfirmBehavior.Insert, if cmp.visible() then
select = true, cmp.select_next_item()
}, elseif require("luasnip").expand_or_jumpable() then
require("luasnip").expand_or_jump()
else
fallback()
end
end, { "i", "s" }),
["<Tab>"] = cmp.mapping(function(fallback) ["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_prev_item()
elseif require("luasnip").expand_or_jumpable() then elseif require("luasnip").jumpable(-1) then
require("luasnip").expand_or_jump() require("luasnip").jump(-1)
else else
fallback() fallback()
end end
end, { "i", "s" }), end, { "i", "s" }),
},
["<S-Tab>"] = cmp.mapping(function(fallback) sources = {
if cmp.visible() then { name = "nvim_lsp" },
cmp.select_prev_item() { name = "buffer" },
elseif require("luasnip").jumpable(-1) then { name = "path" },
require("luasnip").jump(-1) },
else
fallback()
end
end, { "i", "s" }),
},
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
},
} }

View File

@ -1,7 +1,7 @@
require('nvim-ts-autotag').setup({ require('nvim-ts-autotag').setup({
opts = { opts = {
enable_close = true, enable_close = true,
enable_rename = true, enable_rename = true,
enable_close_on_slash = true, enable_close_on_slash = false
}, },
}) })

View File

@ -1,88 +1,88 @@
local dap = require('dap') local dap = require('dap')
require("dap-vscode-js").setup({ require("dap-vscode-js").setup({
debugger_path = "/.local/share/lunarvim/site/pack/lazy/opt/vscode-js-debug", debugger_path = "/.local/share/lunarvim/site/pack/lazy/opt/vscode-js-debug",
debugger_cmd = { "js-debug-adapter" }, debugger_cmd = { "js-debug-adapter" },
adapters = { 'node-terminal' }, adapters = { 'node-terminal' },
}) })
dap.configurations.cpp = { dap.configurations.cpp = {
{ {
name = "Launch file", name = "Launch file",
type = "codelldb", type = "codelldb",
request = "launch", request = "launch",
program = function() program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end, end,
cwd = '${workspaceFolder}', cwd = '${workspaceFolder}',
stopOnEntry = false, stopOnEntry = false,
}, },
} }
dap.configurations.c = dap.configurations.cpp dap.configurations.c = dap.configurations.cpp
dap.configurations.rust = dap.configurations.cpp dap.configurations.rust = dap.configurations.cpp
dap.adapters["pwa-node"] = { dap.adapters["pwa-node"] = {
type = "server", type = "server",
host = "localhost", host = "localhost",
port = "${port}", port = "${port}",
executable = { executable = {
command = "node", command = "node",
args = { os.getenv("HOME") .. "/.local/share/lvim/mason/packages/js-debug-adapter/js-debug/src/dapDebugServer.js", "${port}" }, args = {os.getenv("HOME") .. "/.local/share/lvim/mason/packages/js-debug-adapter/js-debug/src/dapDebugServer.js", "${port}"},
} }
} }
dap.configurations.javascript = { dap.configurations.javascript = {
{ {
type = "pwa-node", type = "pwa-node",
request = "launch", request = "launch",
name = "Launch file", name = "Launch file",
program = "${file}", program = "${file}",
cwd = "${workspaceFolder}", cwd = "${workspaceFolder}",
}, },
} }
dap.adapters.chrome = { dap.adapters.chrome = {
type = "executable", type = "executable",
command = "node", command = "node",
args = { os.getenv("HOME") .. "/.local/share/lvim/mason/packages/chrome-debug-adapter/out/src/chromeDebug.js" }, args = {os.getenv("HOME") .. "/.local/share/lvim/mason/packages/chrome-debug-adapter/out/src/chromeDebug.js"},
} }
dap.adapters.firefox = { dap.adapters.firefox = {
type = 'executable', type = 'executable',
command = 'node', command = 'node',
args = { os.getenv('HOME') .. '/.local/share/lvim/mason/packages/firefox-debug-adapter/dist/adapter.bundle.js' }, args = {os.getenv('HOME') .. '/.local/share/lvim/mason/packages/firefox-debug-adapter/dist/adapter.bundle.js'},
} }
dap.configurations.typescriptreact = { dap.configurations.typescriptreact = {
{ {
name = 'Next.js: debug server-side', name = 'Next.js: debug server-side',
type = "pwa-node", type = "pwa-node",
request = "launch", request = "launch",
runtimeExecutable = "npm", runtimeExecutable = "npm",
runtimeArgs = { "run", "dev" }, runtimeArgs = { "run", "dev" },
cwd = "${workspaceFolder}", cwd = "${workspaceFolder}",
}, },
{ {
name = "Next.js: debug client-side with chrome", name = "Next.js: debug client-side with chrome",
type = "chrome", type = "chrome",
request = "launch", request = "launch",
url = "http://localhost:3000" url = "http://localhost:3000"
}, },
{ {
name = "Next.js: debug client-side with firefox", name = "Next.js: debug client-side with firefox",
type = "firefox", type = "firefox",
request = "launch", request = "launch",
url = 'http://localhost:3000', url = 'http://localhost:3000',
webRoot = '${workspaceFolder}', webRoot = '${workspaceFolder}',
firefoxExecutable = '/usr/bin/waterfox', firefoxExecutable = '/usr/bin/waterfox',
pathMappings = { pathMappings = {
{ {
url = "webpack://_n_e/", url = "webpack://_n_e/",
path = "${workspaceFolder}/" path = "${workspaceFolder}/"
} }
}, },
}, },
} }
dap.configurations.javascriptreact = dap.configurations.typescriptreact; dap.configurations.javascriptreact = dap.configurations.typescriptreact;
@ -91,9 +91,9 @@ require("dapui").setup()
local dap, dapui = require("dap"), require("dapui") local dap, dapui = require("dap"), require("dapui")
dap.listeners.after.event_initialized["dapui_config"] = function() dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open({}) dapui.open({})
end end
vim.keymap.set('n', '<leader>ui', require 'dapui'.toggle) vim.keymap.set('n', '<leader>ui', require 'dapui'.toggle)

View File

@ -0,0 +1,31 @@
require('dashboard').setup {
theme = 'hyper',
config = {
week_header = {
enable = true,
},
shortcut = {
{ desc = '󰊳 Update', group = '@property', action = 'Lazy update', key = 'u' },
{
icon = '',
icon_hl = '@variable',
desc = 'Files',
group = 'Label',
action = 'Telescope find_files',
key = 'f',
},
{
desc = ' Apps',
group = 'DiagnosticHint',
action = 'Telescope app',
key = 'a',
},
{
desc = ' dotfiles',
group = 'Number',
action = 'Telescope dotfiles',
key = 'd',
},
},
},
}

View File

@ -0,0 +1,4 @@
require('dropbar').setup()
vim.ui.select = require('dropbar.utils.menu').select
vim.api.nvim_set_hl(0, 'DropBarMenuHoverEntry', { link = 'PmenuExtraSel' })

View File

@ -1,47 +1,48 @@
require('gitsigns').setup { require('gitsigns').setup {
signs = { signs = {
add = { text = '' }, add = { text = '' },
change = { text = '' }, change = { text = '' },
delete = { text = '' }, delete = { text = '' },
topdelete = { text = '' }, topdelete = { text = '' },
changedelete = { text = '' }, changedelete = { text = '' },
untracked = { text = ' ' }, untracked = { text = ' ' },
}, },
signs_staged = { signs_staged = {
add = { text = '' }, add = { text = '' },
change = { text = '' }, change = { text = '' },
delete = { text = '' }, delete = { text = '' },
topdelete = { text = '' }, topdelete = { text = '' },
changedelete = { text = '' }, changedelete = { text = '' },
untracked = { text = ' ' }, untracked = { text = ' ' },
}, },
signcolumn = true, signcolumn = true,
numhl = false, numhl = false,
linehl = false, linehl = false,
word_diff = false, word_diff = false,
watch_gitdir = { watch_gitdir = {
interval = 1000, interval = 1000,
follow_files = true, follow_files = true,
}, },
attach_to_untracked = true, attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = { current_line_blame_opts = {
virt_text = true, virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align' virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 1000, delay = 1000,
ignore_whitespace = false, ignore_whitespace = false,
}, },
current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>", current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>",
sign_priority = 6, sign_priority = 6,
status_formatter = nil, -- Use default status_formatter = nil, -- Use default
update_debounce = 200, update_debounce = 200,
max_file_length = 40000, max_file_length = 40000,
preview_config = { preview_config = {
-- Options passed to nvim_open_win -- Options passed to nvim_open_win
border = "rounded", border = "rounded",
style = "minimal", style = "minimal",
relative = "cursor", relative = "cursor",
row = 0, row = 0,
vcol = 1, vcol = 1,
}, },
yadm = { enable = false },
} }

View File

@ -1,9 +1,6 @@
require("hover").setup { require("hover").setup {
init = function() init = function()
require("hover.providers.lsp") require("hover.providers.lsp")
require("hover.providers.diagnostic")
require("hover.providers.dap")
require("hover.providers.dictionary")
end, end,
preview_opts = { preview_opts = {
border = 'single' border = 'single'

View File

@ -1,58 +1,50 @@
local lspconfig = require("lspconfig") local lspconfig = require("lspconfig")
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = true
}
)
lspconfig.clangd.setup({})
lspconfig.lua_ls.setup({ lspconfig.lua_ls.setup({
settings = { settings = {
Lua = { Lua = {
hint = { hint = {
enable = true, enable = true,
}, },
}, },
} }
}) })
lspconfig.eslint.setup({ lspconfig.eslint.setup({
settings = { settings = {
codeActionOnSave = { codeActionOnSave = {
enable = true, enable = true,
mode = "all", mode = "all",
}, },
format = true, format = true,
} }
}) })
lspconfig.ts_ls.setup({ lspconfig.ts_ls.setup({
settings = { settings = {
typescript = { typescript = {
inlayHints = { inlayHints = {
includeInlayParameterNameHints = "all", -- 'none' | 'literals' | 'all' includeInlayParameterNameHints = "all", -- 'none' | 'literals' | 'all'
includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true, includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true, includeInlayVariableTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = false, includeInlayVariableTypeHintsWhenTypeMatchesName = false,
includeInlayPropertyDeclarationTypeHints = true, includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true, includeInlayEnumMemberValueHints = true,
}, },
}, },
javascript = { javascript = {
inlayHints = { inlayHints = {
includeInlayParameterNameHints = "all", -- 'none' | 'literals' | 'all' includeInlayParameterNameHints = "all", -- 'none' | 'literals' | 'all'
includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayVariableTypeHints = true, includeInlayVariableTypeHints = true,
includeInlayFunctionParameterTypeHints = true, includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = false, includeInlayVariableTypeHintsWhenTypeMatchesName = false,
includeInlayPropertyDeclarationTypeHints = true, includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true, includeInlayEnumMemberValueHints = true,
}, },
}, },
} }
}) })

View File

@ -0,0 +1,5 @@
local signs = { Error = "", Warn = "", Hint = "󱩎 ", Info = "" }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
end

View File

@ -1,92 +1,59 @@
local _colors = { "DiffAdd", "DiffChange", "RedrawDebugRecompose" }
require("lualine").setup({ require("lualine").setup({
options = { options = {
icons_enabled = true, icons_enabled = true,
theme = 'auto', theme = 'auto',
component_separators = { left = '', right = '' }, component_separators = { left = '', right = ''},
section_separators = { left = '', right = '' }, section_separators = { left = '', right = ''},
disabled_filetypes = { disabled_filetypes = {
statusline = {}, statusline = {},
winbar = {}, winbar = {},
}, },
ignore_focus = {}, ignore_focus = {},
always_divide_middle = true, always_divide_middle = true,
always_show_tabline = true, always_show_tabline = true,
globalstatus = true, globalstatus = true,
refresh = { refresh = {
statusline = 100, statusline = 100,
tabline = 100, tabline = 100,
winbar = 100, winbar = 100,
} }
}, },
sections = { sections = {
lualine_a = { lualine_a = {
{ {
function() function()
return "" return ""
end, end,
padding = { left = 0, right = 0 }, padding = { left = 0, right = 0 },
color = {}, color = {},
cond = nil, cond = nil,
}, },
}, },
lualine_b = { 'branch' }, lualine_b = {'branch'},
lualine_c = { lualine_c = {'diff'},
{ lualine_x = {'encoding', 'filetype', 'diagnostics', 'lsp'},
'diff', lualine_y = {'progress'},
colored = true, -- Displays a colored diff status if set to true lualine_z = {'location'}
symbols = { added = '', modified = '', removed = '' }, -- Changes the symbols used by the diff. },
source = nil, -- A function that works as a data source for diff. inactive_sections = {
} lualine_a = {
}, {
lualine_x = { 'encoding', 'filetype', function()
{ return ""
'diagnostics', end,
padding = { left = 0, right = 0 },
sources = { 'nvim_diagnostic', 'coc' }, color = {},
cond = nil,
sections = { 'error', 'warn', 'info', 'hint' }, },
},
diagnostics_color = { lualine_b = {'branch'},
error = 'DiagnosticError', -- Changes diagnostics' error color. lualine_c = {'diff'},
warn = 'DiagnosticWarn', -- Changes diagnostics' warn color. lualine_x = {'encoding', 'filetype', 'diagnostics', 'lsp'},
info = 'DiagnosticInfo', -- Changes diagnostics' info color. lualine_y = {'progress'},
hint = 'DiagnosticHint', -- Changes diagnostics' hint color. lualine_z = {'location'}
}, },
symbols = { tabline = {},
hint = '󰌵 ', winbar = {},
info = '󰬐 ', inactive_winbar = {},
warn = '󰀧 ', extensions = {}
error = '󰅗 ',
},
colored = true, -- Displays diagnostics status in color if set to true.
update_in_insert = false, -- Update diagnostics in insert mode.
always_visible = false, -- Show diagnostics even if there are none.
}
},
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
inactive_sections = {
lualine_a = {
{
function()
return ""
end,
padding = { left = 0, right = 0 },
color = {},
cond = nil,
},
},
lualine_b = { 'branch' },
lualine_c = {},
lualine_x = { 'encoding', 'filetype', 'diagnostics', 'lsp' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}) })

View File

@ -0,0 +1,47 @@
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 = "󰊄 ",
},
lsp = {
auto_attach = true,
preference = nil,
},
highlight = true,
seperator = '',
depth_limit = 0,
depth_limit_indicator = "..",
safe_output = true,
lazy_update_context = false,
click = false,
format_text = function(text)
return text
end,
}

View File

@ -1,57 +1,52 @@
vim.fn.sign_define("LspDiagnosticsSignError",
{text = "󰅙 ", texthl = "LspDiagnosticsSignError"})
vim.fn.sign_define("LspDiagnosticsSignWarning",
{text = "󱇎 ", texthl = "LspDiagnosticsSignWarning"})
vim.fn.sign_define("LspDiagnosticsSignInformation",
{text = "󰰄 ", texthl = "LspDiagnosticsSignInformation"})
vim.fn.sign_define("LspDiagnosticsSignHint",
{text = "󰐗 ", texthl = "LspDiagnosticsSignHint"})
require("neo-tree").setup({ require("neo-tree").setup({
close_if_last_window = false, close_if_last_window = false,
popup_border_style = "rounded", popup_border_style = "rounded",
enable_git_status = true, enable_git_status = true,
enable_diagnostics = true, enable_diagnostics = true,
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, open_files_do_not_replace_types = { "terminal", "trouble", "qf" },
sort_case_insensitive = false, sort_case_insensitive = false,
sort_function = nil, sort_function = nil ,
default_component_configs = { default_component_configs = {
diagnostics = { indent = {
symbols = { with_expanders = true,
hint = '󰌵', },
info = '󰬐', icon = {
warn = '󰀧', folder_closed = "󰉋",
error = '󰅗', folder_open = "󰝰",
}, folder_empty = "󰉖",
highlights = { default = "*",
hint = "DiagnosticSignHint", highlight = "NeoTreeFileIcon"
info = "DiagnosticSignInfo", },
warn = "DiagnosticSignWarn", modified = {
error = "DiagnosticSignError", symbol = "󰧞",
}, highlight = "NeoTreeModified",
}, },
indent = { name = {
with_expanders = true, trailing_slash = false,
}, use_git_status_colors = true,
icon = { highlight = "NeoTreeFileName",
folder_closed = "󰉋", },
folder_open = "󰝰", git_status = {
folder_empty = "󰉖", symbols = {
default = "*", added = "󰜄",
highlight = "NeoTreeFileIcon" modified = "󰑕",
}, deleted = "󰅗",
modified = { renamed = "󰛂",
symbol = "󰧞", untracked = "󰞋",
highlight = "NeoTreeModified", ignored = "󰿠",
}, unstaged = "󰄱",
name = { staged = "󰄵",
trailing_slash = false, conflict = "",
use_git_status_colors = true, }
highlight = "NeoTreeFileName", },
}, },
git_status = {
symbols = {
added = "󰜄",
modified = "󰑕",
deleted = "󰅗",
renamed = "󰛂",
untracked = "󰞋",
ignored = "󰿠",
unstaged = "󰄱",
staged = "󰄵",
conflict = "",
}
},
},
}) })

View File

@ -1,27 +1,15 @@
require("noice").setup({ require("noice").setup({
lsp = { lsp = {
override = { override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true, ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true, ["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
}, },
}, },
presets = { presets = {
command_palette = true, -- position the cmdline and popupmenu together command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help lsp_doc_border = false, -- add a border to hover docs and signature help
}, },
views = {
cmdline_popup = {
border = {
style = "none",
padding = { 1, 2 },
},
filter_options = {},
win_options = {
winhighlight = "NormalFloat:NormalFloat,FloatBorder:FloatBorder",
},
},
},
}) })

View File

@ -1,28 +1,37 @@
local navic = require("nvim-navic")
vim.g.rustaceanvim = { vim.g.rustaceanvim = {
server = { tools = {
settings = { autoSetHints = true,
['rust-analyzer'] = { inlay_hints = {
procMacro = { show_parameter_hints = true,
enable = true, parameter_hints_prefix = "in: ", -- "<- "
}, other_hints_prefix = "out: " -- "=> "
assist = { }
importEnforceGranularity = true, },
importPrefix = "create" server = {
}, on_attach = function(client, bufnr)
cargo = { navic.attach(client, bufnr)
allFeatures = true, end,
}, settings = {
checkOnSave = { ['rust-analyzer'] = {
command = "clippy", assist = {
allFeatures = true importEnforceGranularity = true,
}, importPrefix = "create"
inlayHints = { },
lifetimeElisionHints = { cargo = { allFeatures = true },
enable = true, checkOnSave = {
useParameterNames = true -- default: `cargo check`
} command = "clippy",
} allFeatures = true
} },
} inlayHints = {
} lifetimeElisionHints = {
enable = true,
useParameterNames = true
}
}
}
}
}
} }

View File

@ -1,86 +0,0 @@
require("telescope").load_extension("ui-select")
require("telescope").setup({
defaults = {
borderchars = { " ", " ", " ", " ", " ", " ", " ", " " }
},
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown {
-- even more opts
}
-- pseudo code / specification for writing custom displays, like the one
-- for "codeactions"
-- specific_opts = {
-- [kind] = {
-- make_indexed = function(items) -> indexed_items, width,
-- make_displayer = function(widths) -> displayer
-- make_display = function(displayer) -> function(e)
-- make_ordinal = function(e) -> string
-- },
-- -- for example to disable the custom builtin "codeactions" display
-- do the following
-- codeactions = false,
-- }
}
}
})
local blend = 50
vim.api.nvim_create_autocmd("FileType", {
pattern = "TelescopePrompt",
callback = function(ctx)
local backdropName = "TelescopeBackdrop"
local telescopeBufnr = ctx.buf
-- `Telescope` does not set a zindex, so it uses the default value
-- of `nvim_open_win`, which is 50: https://neovim.io/doc/user/api.html#nvim_open_win()
local telescopeZindex = 50
local backdropBufnr = vim.api.nvim_create_buf(false, true)
local winnr = vim.api.nvim_open_win(backdropBufnr, false, {
relative = "editor",
border = "none",
row = 0,
col = 0,
width = vim.o.columns,
height = vim.o.lines,
focusable = false,
style = "minimal",
zindex = telescopeZindex - 1, -- ensure it's below the reference window
})
vim.api.nvim_set_hl(0, backdropName, { bg = "#000000", default = true })
vim.wo[winnr].winhighlight = "Normal:" .. backdropName
vim.wo[winnr].winblend = blend
vim.bo[backdropBufnr].buftype = "nofile"
-- close backdrop when the reference buffer is closed
vim.api.nvim_create_autocmd({ "WinClosed", "BufLeave" }, {
once = true,
buffer = telescopeBufnr,
callback = function()
if vim.api.nvim_win_is_valid(winnr) then vim.api.nvim_win_close(winnr, true) end
if vim.api.nvim_buf_is_valid(backdropBufnr) then
vim.api.nvim_buf_delete(backdropBufnr, { force = true })
end
end,
})
end,
})
vim.api.nvim_create_autocmd({ "ColorScheme", "VimEnter" }, {
group = vim.api.nvim_create_augroup('Color', {}),
pattern = "*",
callback = function()
vim.api.nvim_set_hl(0, "TelescopePreviewTitle", { link = "MiniStatuslineModeVisual" })
vim.api.nvim_set_hl(0, "TelescopePromptTitle", { link = "MiniStatuslineModeCommand" })
vim.api.nvim_set_hl(0, "TelescopeResultsTitle", { link = "MiniStatuslineModeReplace" })
vim.api.nvim_set_hl(0, "TelescopePromptNormal", { link = "StatusLine" })
vim.api.nvim_set_hl(0, "TelescopePromptBorder", { link = "StatusLine" })
vim.api.nvim_set_hl(0, "TelescopePreviewNormal", { link = "BufferLineHint" })
vim.api.nvim_set_hl(0, "TelescopePreviewBorder", { link = "BufferLineHint" })
end
})

View File

@ -1,11 +1,8 @@
require 'nvim-treesitter.configs'.setup { require'nvim-treesitter.configs'.setup {
ensure_installed = { 'rust', 'c', 'lua', 'tsx', 'javascript', 'typescript' }, ensure_installed = { 'rust', 'c', 'lua', 'tsx', 'javascript', 'typescript' },
sync_install = false, sync_install = false,
auto_install = true, auto_install = true,
highlight = { highlight = {
enable = true, enable = true,
},
autotag = {
enable = true,
} }
} }

View File

@ -1,5 +1,4 @@
local map = vim.keymap.set; local map = vim.keymap.set
local bl_utils = require("config.utils.bufferline") local bl_utils = require("config.utils.bufferline")
local hover = require "hover" local hover = require "hover"
@ -32,8 +31,6 @@ map("n", "ca", "<cmd>RustLsp codeAction<cr>")
map("n", "<C-s>", "<cmd>w!<cr>") map("n", "<C-s>", "<cmd>w!<cr>")
map("i", "<C-s>", "<cmd>w!<cr>") map("i", "<C-s>", "<cmd>w!<cr>")
map("n", "<C-f>", "<C-q>")
map("i", "<C-f>", "<C-q>")
map("n", "<", "<cmd><gv<cr>") map("n", "<", "<cmd><gv<cr>")
map("n", ">", "<cmd>>gv<cr>") map("n", ">", "<cmd>>gv<cr>")
@ -41,6 +38,8 @@ map("n", "<leader>c", function(bufnr)
bl_utils.buf_kill("bd", bufnr, true) bl_utils.buf_kill("bd", bufnr, true)
end) end)
map("n", "<leader>dr", "<cmd> DapContinue <cr>", { desc = "Continue debug" })
map("n", "do", function() map("n", "do", function()
require("dapui").open() require("dapui").open()
end, { desc = "Open DAP ui" }) end, { desc = "Open DAP ui" })
@ -61,7 +60,7 @@ map("n", "<C-Down>", "<cmd>resize +2<CR>")
map("n", "<C-Right>", "<cmd>vertical resize -2<CR>") map("n", "<C-Right>", "<cmd>vertical resize -2<CR>")
map("n", "<C-Left>", "<cmd>vertical resize +2<CR>") map("n", "<C-Left>", "<cmd>vertical resize +2<CR>")
map("n", "<leader>nn", "<cmd>set norelativenumber<cr>") map("n", "<leader>an", "<cmd>set norelativenumber<cr>")
map("n", "<leader>rn", "<cmd>set relativenumber<cr>") map("n", "<leader>rn", "<cmd>set relativenumber<cr>")
map("n", "tt", "<cmd>ToggleTerm<cr>") map("n", "tt", "<cmd>ToggleTerm<cr>")
map("n", "<C-{>", "<cmd>foldopen<cr>") map("n", "<C-{>", "<cmd>foldopen<cr>")

View File

@ -3,14 +3,11 @@ return {
'simrat39/inlay-hints.nvim', 'simrat39/inlay-hints.nvim',
}, },
{ {
'nvim-telescope/telescope-ui-select.nvim' "LunarVim/breadcrumbs.nvim",
}, },
{ {
"akinsho/bufferline.nvim", "akinsho/bufferline.nvim",
}, },
{
"onsails/lspkind.nvim"
},
{ {
"lewis6991/gitsigns.nvim" "lewis6991/gitsigns.nvim"
}, },
@ -20,6 +17,9 @@ return {
{ {
"nvim-lualine/lualine.nvim", "nvim-lualine/lualine.nvim",
}, },
{
"akinsho/toggleterm.nvim",
},
{ {
"windwp/nvim-autopairs", "windwp/nvim-autopairs",
}, },
@ -32,6 +32,9 @@ return {
{ {
"hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lsp",
}, },
{
"SmiteshP/nvim-navic",
},
{ {
"kyazdani42/nvim-web-devicons" "kyazdani42/nvim-web-devicons"
}, },
@ -44,6 +47,9 @@ return {
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
}, },
{
"catppuccin/nvim"
},
{ {
"vague2k/huez.nvim", "vague2k/huez.nvim",
}, },
@ -68,13 +74,26 @@ return {
'folke/lazydev.nvim', 'folke/lazydev.nvim',
ft = "lua", ft = "lua",
}, },
{
'Bekaboo/dropbar.nvim',
dependencies = {
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make'
},
config = function()
local dropbar_api = require('dropbar.api')
vim.keymap.set('n', '<Leader>;', dropbar_api.pick, { desc = 'Pick symbols in winbar' })
vim.keymap.set('n', '[;', dropbar_api.goto_context_start, { desc = 'Go to start of current context' })
vim.keymap.set('n', '];', dropbar_api.select_next_context, { desc = 'Select next context' })
end
},
{ {
"folke/noice.nvim", "folke/noice.nvim",
event = "VeryLazy", event = "VeryLazy",
dependencies = { dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim", "MunifTanjim/nui.nvim",
} "rcarriga/nvim-notify",
},
}, },
{ {
"nvim-neo-tree/neo-tree.nvim", "nvim-neo-tree/neo-tree.nvim",

View File

@ -1,51 +1,50 @@
return { return {
{ {
"kaarmu/typst.vim", 'nvimdev/dashboard-nvim',
lazy = true, event = 'VimEnter',
}, dependencies = { { 'nvim-tree/nvim-web-devicons' } }
{ },
'MunifTanjim/prettier.nvim', {
lazy = true, "kaarmu/typst.vim",
}, lazy = true,
{ },
'akinsho/toggleterm.nvim', version = "*", config = true {
}, 'MunifTanjim/prettier.nvim',
{ lazy = true,
"mlaursen/vim-react-snippets", },
lazy = true, {
}, "savq/melange-nvim"
{ },
"windwp/nvim-ts-autotag", {
lazy = true, "mlaursen/vim-react-snippets",
}, lazy = true,
{ },
"lukas-reineke/indent-blankline.nvim", {
main = "ibl", "windwp/nvim-ts-autotag",
}, lazy = true,
{ },
"sainnhe/gruvbox-material", {
}, "lukas-reineke/indent-blankline.nvim"
{ },
"savq/melange-nvim" {
}, "mxsdev/nvim-dap-vscode-js",
{ lazy = true,
"mxsdev/nvim-dap-vscode-js", },
lazy = true, {
}, "windwp/nvim-autopairs",
{ lazy = true,
"windwp/nvim-autopairs", event = "InsertEnter",
lazy = true, config = true
event = "InsertEnter", },
config = true {
}, "microsoft/vscode-js-debug",
{ lazy = true,
"microsoft/vscode-js-debug", build = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out"
lazy = true, },
build = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out" {
}, "mrcjkb/rustaceanvim",
{ version = '^4', -- Recommended
'mrcjkb/rustaceanvim', lazy = false, -- This plugin is already lazy
version = '^5', -- Recommended ft = { "rust" },
lazy = false, -- This plugin is already lazy },
}
} }