added Nvimtree back in
This commit is contained in:
parent
4d5a82ae22
commit
97a0d6f173
|
@ -17,7 +17,7 @@ opt.laststatus = 3 -- global statusline
|
|||
opt.list = true -- Show some invisible characters (tabs...
|
||||
opt.mouse = "a" -- Enable mouse mode
|
||||
opt.number = true -- Print line number
|
||||
opt.pumblend = 10 -- Popup blend
|
||||
opt.pumblend = 0 -- Popup blend
|
||||
opt.pumheight = 10 -- Maximum number of entries in a popup
|
||||
opt.relativenumber = false -- Relative line numbers
|
||||
opt.scrolloff = 4 -- Lines of context
|
||||
|
|
|
@ -1,42 +1,15 @@
|
|||
return {
|
||||
{
|
||||
"stevearc/aerial.nvim",
|
||||
opts = {
|
||||
backends = {
|
||||
"treesitter",
|
||||
"lsp",
|
||||
"markdown",
|
||||
"man",
|
||||
},
|
||||
attach_mode = "global",
|
||||
backends = { "lsp", "treesitter", "markdown", "man" },
|
||||
show_guides = false,
|
||||
layout = {
|
||||
default_direction = "prefer_right",
|
||||
placement = "edge",
|
||||
resize_to_content = true,
|
||||
preserve_equality = true,
|
||||
},
|
||||
-- Disable aerial on files with this many lines
|
||||
disable_max_lines = 10000,
|
||||
-- Disable aerial on files this size or larger (in bytes)
|
||||
disable_max_size = 2000000, -- Default 2MB
|
||||
filter_kind = false,
|
||||
highlight_on_hover = true,
|
||||
nerd_font = "auto",
|
||||
update_events = "TextChanged,InsertLeave",
|
||||
show_guides = true,
|
||||
autojump = true,
|
||||
guides = {
|
||||
-- When the child item has a sibling below it
|
||||
mid_item = "│ ",
|
||||
-- When the child item is the last in the list
|
||||
last_item = "└ ",
|
||||
-- When there are nested child guides to the right
|
||||
nested_top = "│ ",
|
||||
-- Raw indentation
|
||||
whitespace = " ",
|
||||
},
|
||||
lsp = {
|
||||
diagnostics_trigger_update = true,
|
||||
update_when_errors = true,
|
||||
resize_to_content = false,
|
||||
win_opts = {
|
||||
winhl = "Normal:NormalFloat,FloatBorder:NormalFloat,SignColumn:SignColumnSB",
|
||||
signcolumn = "yes",
|
||||
statuscolumn = " ",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
return {
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
opts = function()
|
||||
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
|
||||
local cmp = require("cmp")
|
||||
local defaults = require("cmp.config.default")()
|
||||
return {
|
||||
window = {
|
||||
completion = {
|
||||
border = "rounded",
|
||||
scrollbar = false,
|
||||
winhighlight = "Normal:CmpPmenu,FloatBorder:CmpPmenu,Search:None"
|
||||
},
|
||||
documentation = {
|
||||
border = "rounded",
|
||||
scrollbar = false,
|
||||
winhighlight = "Normal:CmpPmenu,FloatBorder:CmpPmenu,Search:None"
|
||||
},
|
||||
},
|
||||
completion = {
|
||||
completeopt = "menu,menuone,noinsert",
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
|
||||
["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<S-CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
}), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<C-CR>"] = function(fallback)
|
||||
cmp.abort()
|
||||
fallback()
|
||||
end,
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = 'nvim_lsp_signature_help' },
|
||||
{ name = "luasnip" },
|
||||
{ name = "path" },
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
}),
|
||||
formatting = {
|
||||
fields = {
|
||||
"kind",
|
||||
"abbr",
|
||||
"menu"
|
||||
},
|
||||
format = function(_, item)
|
||||
item.menu = item.kind
|
||||
local icons = require("lazyvim.config").icons.kinds
|
||||
if icons[item.kind] then
|
||||
item.kind = icons[item.kind]
|
||||
end
|
||||
return item
|
||||
end,
|
||||
},
|
||||
experimental = {
|
||||
ghost_text = {
|
||||
hl_group = "CmpGhostText",
|
||||
}
|
||||
},
|
||||
sorting = defaults.sorting,
|
||||
}
|
||||
end,
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-nvim-lsp-signature-help",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
}
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ return {
|
|||
if buffer.is_focused then
|
||||
return "Normal"
|
||||
end
|
||||
return "ColorColumn"
|
||||
return "TabLine"
|
||||
end,
|
||||
fg = function(buffer)
|
||||
if buffer.is_focused then
|
||||
|
@ -32,19 +32,12 @@ return {
|
|||
{
|
||||
text = function(buffer)
|
||||
if buffer.is_focused then
|
||||
return "▎"
|
||||
return ""
|
||||
end
|
||||
return " "
|
||||
end,
|
||||
fg = "Normal"
|
||||
},
|
||||
{
|
||||
text = function(buffer) return buffer.devicon.icon end,
|
||||
fg = function(buffer) return buffer.devicon.color end,
|
||||
},
|
||||
{
|
||||
text = function(buffer) return ' ' .. buffer.filename .. ' ' end,
|
||||
},
|
||||
{
|
||||
text = function(buffer)
|
||||
if buffer.is_modified then
|
||||
|
@ -56,6 +49,13 @@ return {
|
|||
end
|
||||
end
|
||||
},
|
||||
{
|
||||
text = function(buffer) return buffer.devicon.icon end,
|
||||
fg = function(buffer) return buffer.devicon.color end,
|
||||
},
|
||||
{
|
||||
text = function(buffer) return ' ' .. buffer.filename .. ' ' end,
|
||||
},
|
||||
{
|
||||
text = '',
|
||||
on_click = function(_, _, _, _, buffer)
|
||||
|
@ -75,49 +75,25 @@ return {
|
|||
end,
|
||||
bg = function(tabpage)
|
||||
if tabpage.is_active then
|
||||
return "TabLineSel"
|
||||
return "NormalNC"
|
||||
end
|
||||
return "ColorColumn"
|
||||
return "TabLine"
|
||||
end,
|
||||
fg = function(tabpage)
|
||||
if tabpage.is_active then
|
||||
return "TabLine"
|
||||
return "NormalNC"
|
||||
end
|
||||
return "Normal"
|
||||
return "TabLine"
|
||||
end,
|
||||
bold = true
|
||||
},
|
||||
{
|
||||
text = function(tabpage)
|
||||
if tabpage.is_active then
|
||||
return " "
|
||||
end
|
||||
return ""
|
||||
end,
|
||||
on_click = function(_, _, _, _, tabpage)
|
||||
tabpage:close()
|
||||
end,
|
||||
bg = function(tabpage)
|
||||
if tabpage.is_active then
|
||||
return "TabLineSel"
|
||||
end
|
||||
return "ColorColumn"
|
||||
end,
|
||||
fg = function(tabpage)
|
||||
if tabpage.is_active then
|
||||
return "TabLine"
|
||||
end
|
||||
return "Normal"
|
||||
end,
|
||||
bold = true
|
||||
},
|
||||
}
|
||||
},
|
||||
sidebar = {
|
||||
filetype = { "NvimTree", "neo-tree", "SidebarNvim" },
|
||||
components = {
|
||||
{
|
||||
text = "Explorer",
|
||||
text = "",
|
||||
bg = "ColorColumn"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -0,0 +1,177 @@
|
|||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"williamboman/mason-lspconfig.nvim"
|
||||
},
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
-- options for vim.diagnostic.config()
|
||||
diagnostics = {
|
||||
underline = true,
|
||||
update_in_insert = true,
|
||||
virtual_text = {
|
||||
spacing = 4,
|
||||
source = "if_many",
|
||||
prefix = "●",
|
||||
-- this will set set the prefix to a function that returns the diagnostics icon based on the severity
|
||||
-- this only works on a recent 0.10.0 build. Will be set to "●" when not supported
|
||||
-- prefix = "icons",
|
||||
},
|
||||
severity_sort = true,
|
||||
float = {
|
||||
border = "rounded"
|
||||
}
|
||||
},
|
||||
-- Enable this to enable the builtin LSP inlay hints on Neovim >= 0.10.0
|
||||
-- Be aware that you also will need to properly configure your LSP server to
|
||||
-- provide the inlay hints.
|
||||
inlay_hints = {
|
||||
enabled = false,
|
||||
},
|
||||
-- add any global capabilities here
|
||||
capabilities = {},
|
||||
-- options for vim.lsp.buf.format
|
||||
-- `bufnr` and `filter` is handled by the LazyVim formatter,
|
||||
-- but can be also overridden when specified
|
||||
format = {
|
||||
formatting_options = nil,
|
||||
timeout_ms = nil,
|
||||
},
|
||||
servers = {
|
||||
lua_ls = {
|
||||
mason = false
|
||||
},
|
||||
rust_analyzer = {
|
||||
mason = false
|
||||
},
|
||||
},
|
||||
setup = {
|
||||
}
|
||||
},
|
||||
---@param opts PluginLspOpts
|
||||
config = function(_, opts)
|
||||
local Util = require("lazyvim.util")
|
||||
if Util.has("neoconf.nvim") then
|
||||
local plugin = require("lazy.core.config").spec.plugins["neoconf.nvim"]
|
||||
require("neoconf").setup(require("lazy.core.plugin").values(plugin, "opts", false))
|
||||
end
|
||||
|
||||
-- setup autoformat
|
||||
Util.format.register(Util.lsp.formatter())
|
||||
|
||||
-- deprectaed options
|
||||
if opts.autoformat ~= nil then
|
||||
vim.g.autoformat = opts.autoformat
|
||||
Util.deprecate("nvim-lspconfig.opts.autoformat", "vim.g.autoformat")
|
||||
end
|
||||
|
||||
-- setup keymaps
|
||||
Util.lsp.on_attach(function(client, buffer)
|
||||
require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer)
|
||||
end)
|
||||
|
||||
local register_capability = vim.lsp.handlers["client/registerCapability"]
|
||||
|
||||
vim.lsp.handlers["client/registerCapability"] = function(err, res, ctx)
|
||||
local ret = register_capability(err, res, ctx)
|
||||
local client_id = ctx.client_id
|
||||
---@type lsp.Client
|
||||
local client = vim.lsp.get_client_by_id(client_id)
|
||||
local buffer = vim.api.nvim_get_current_buf()
|
||||
require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer)
|
||||
return ret
|
||||
end
|
||||
|
||||
-- diagnostics
|
||||
for name, icon in pairs(require("lazyvim.config").icons.diagnostics) do
|
||||
name = "DiagnosticSign" .. name
|
||||
vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" })
|
||||
end
|
||||
|
||||
local inlay_hint = vim.lsp.buf.inlay_hint or vim.lsp.inlay_hint
|
||||
|
||||
if opts.inlay_hints.enabled and inlay_hint then
|
||||
Util.lsp.on_attach(function(client, buffer)
|
||||
if client.supports_method("textDocument/inlayHint") then
|
||||
inlay_hint(buffer, true)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if type(opts.diagnostics.virtual_text) == "table" and opts.diagnostics.virtual_text.prefix == "icons" then
|
||||
opts.diagnostics.virtual_text.prefix = vim.fn.has("nvim-0.10.0") == 0 and "●"
|
||||
or function(diagnostic)
|
||||
local icons = require("lazyvim.config").icons.diagnostics
|
||||
for d, icon in pairs(icons) do
|
||||
if diagnostic.severity == vim.diagnostic.severity[d:upper()] then
|
||||
return icon
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
vim.diagnostic.config(vim.deepcopy(opts.diagnostics))
|
||||
|
||||
local servers = opts.servers
|
||||
local has_cmp, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
"force",
|
||||
{},
|
||||
vim.lsp.protocol.make_client_capabilities(),
|
||||
has_cmp and cmp_nvim_lsp.default_capabilities() or {},
|
||||
opts.capabilities or {}
|
||||
)
|
||||
|
||||
local function setup(server)
|
||||
local server_opts = vim.tbl_deep_extend("force", {
|
||||
capabilities = vim.deepcopy(capabilities),
|
||||
}, servers[server] or {})
|
||||
|
||||
if opts.setup[server] then
|
||||
if opts.setup[server](server, server_opts) then
|
||||
return
|
||||
end
|
||||
elseif opts.setup["*"] then
|
||||
if opts.setup["*"](server, server_opts) then
|
||||
return
|
||||
end
|
||||
end
|
||||
require("lspconfig")[server].setup(server_opts)
|
||||
end
|
||||
|
||||
-- get all the servers that are available through mason-lspconfig
|
||||
local have_mason, mlsp = pcall(require, "mason-lspconfig")
|
||||
local all_mslp_servers = {}
|
||||
if have_mason then
|
||||
all_mslp_servers = vim.tbl_keys(require("mason-lspconfig.mappings.server").lspconfig_to_package)
|
||||
end
|
||||
|
||||
local ensure_installed = {} ---@type string[]
|
||||
for server, server_opts in pairs(servers) do
|
||||
if server_opts then
|
||||
server_opts = server_opts == true and {} or server_opts
|
||||
-- run manual setup if mason=false or if this is a server that cannot be installed with mason-lspconfig
|
||||
if server_opts.mason == false or not vim.tbl_contains(all_mslp_servers, server) then
|
||||
setup(server)
|
||||
else
|
||||
ensure_installed[#ensure_installed + 1] = server
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if have_mason then
|
||||
mlsp.setup({ ensure_installed = ensure_installed, handlers = { setup } })
|
||||
end
|
||||
|
||||
if Util.lsp.get_config("denols") and Util.lsp.get_config("tsserver") then
|
||||
local is_deno = require("lspconfig.util").root_pattern("deno.json", "deno.jsonc")
|
||||
Util.lsp.disable("tsserver", is_deno)
|
||||
Util.lsp.disable("denols", function(root_dir)
|
||||
return not is_deno(root_dir)
|
||||
end)
|
||||
end
|
||||
end,
|
||||
}
|
||||
}
|
|
@ -5,7 +5,7 @@ return {
|
|||
"nvim-lualine/lualine.nvim",
|
||||
opts = {
|
||||
options = {
|
||||
theme = 'tokyonight',
|
||||
theme = 'auto',
|
||||
icons_enabled = true,
|
||||
globalstatus = true,
|
||||
section_separators = { left = '', right = '' },
|
||||
|
@ -15,16 +15,6 @@ return {
|
|||
'help',
|
||||
'startify',
|
||||
'dashboard',
|
||||
'packer',
|
||||
'neogitstatus',
|
||||
-- 'NvimTree',
|
||||
'Trouble',
|
||||
'alpha',
|
||||
'lir',
|
||||
'Outline',
|
||||
'neo-tree',
|
||||
'spectre_panel',
|
||||
'toggleterm',
|
||||
'qf',
|
||||
},
|
||||
winbar = {
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
return {
|
||||
{
|
||||
'echasnovski/mini.nvim',
|
||||
version = '*',
|
||||
config = function()
|
||||
require("mini.pairs").setup()
|
||||
require("mini.clue").setup()
|
||||
end
|
||||
},
|
||||
}
|
|
@ -3,7 +3,9 @@ return {
|
|||
"dstein64/nvim-scrollview",
|
||||
opts = {
|
||||
excluded_filetypes = {
|
||||
'dashboard'
|
||||
'dashboard',
|
||||
'neo-tree',
|
||||
'aerial'
|
||||
},
|
||||
signs_on_startup = {
|
||||
'conflicts',
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
return {
|
||||
{
|
||||
"nvim-tree/nvim-tree.lua",
|
||||
opts = {
|
||||
hijack_cursor = true,
|
||||
sync_root_with_cwd = true,
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = false
|
||||
},
|
||||
icons = {
|
||||
show = {
|
||||
file = true,
|
||||
folder = true,
|
||||
folder_arrow = true,
|
||||
git = true,
|
||||
},
|
||||
}
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
show_on_dirs = false,
|
||||
},
|
||||
actions = {
|
||||
change_dir = {
|
||||
enable = false,
|
||||
restrict_above_cwd = true,
|
||||
},
|
||||
open_file = {
|
||||
resize_window = false,
|
||||
window_picker = {
|
||||
chars = "aoeui",
|
||||
},
|
||||
},
|
||||
remove_file = {
|
||||
close_window = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@ return {
|
|||
},
|
||||
},
|
||||
-- register treesitter as source for scopes
|
||||
provider_selector = function(bufnr, filetype, buftype)
|
||||
provider_selector = function(_, _, _)
|
||||
return { 'treesitter', 'indent' }
|
||||
end
|
||||
}
|
||||
|
|
|
@ -8,6 +8,16 @@ return {
|
|||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
extensions = {
|
||||
aerial = {
|
||||
-- Display symbols as <root>.<parent>.<symbol>
|
||||
show_nesting = {
|
||||
["_"] = false, -- This key will be the default
|
||||
json = true, -- You can set the option for specific filetypes
|
||||
yaml = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
"sharkdp/fd",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
return {
|
||||
{
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = false,
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
opts = {
|
||||
style = "night",
|
||||
|
@ -10,7 +10,7 @@ return {
|
|||
sidebars = "dark",
|
||||
floats = "normal",
|
||||
},
|
||||
sidebars = { "qf", "help", "neo-tree", "aerial" },
|
||||
sidebars = { "qf", "trouble", "neo-tree", "aerial", "help" },
|
||||
},
|
||||
},
|
||||
-- Configure LazyVim to load tokyonight
|
||||
|
|
|
@ -2,8 +2,8 @@ return {
|
|||
{
|
||||
"folke/trouble.nvim",
|
||||
opts = {
|
||||
use_diagnostic_signs = true
|
||||
use_diagnostic_signs = true,
|
||||
indent_lines = false,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue