Update nvim config.
This commit is contained in:
parent
d65a5daf96
commit
83a6862734
8 changed files with 171 additions and 11 deletions
|
@ -65,3 +65,7 @@ vim.opt.ignorecase = true -- case insensitive search...
|
|||
vim.opt.smartcase = true -- unless I use caps
|
||||
vim.opt.hlsearch = true -- highlight matching text
|
||||
vim.opt.incsearch = true -- update results while I type
|
||||
|
||||
-- Better Netrw
|
||||
vim.g.netrw_banner = 0 -- Hide banner
|
||||
vim.g.netrw_list_hide = (vim.fn["netrw_gitignore#Hide"]()) .. [[,\(^\|\s\s\)\zs\.\S\+]] -- use .gitignore
|
||||
|
|
|
@ -12,6 +12,8 @@ local lsp_filetypes = {
|
|||
-- "lua",
|
||||
}
|
||||
|
||||
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||
|
||||
-- Give floating windows borders
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
|
||||
|
||||
|
@ -23,7 +25,8 @@ vim.diagnostic.config({
|
|||
-- Prepend with diagnostic source if there is more than one attached to the buffer
|
||||
-- (e.g. (eslint) Error: blah blah blah)
|
||||
source = "if_many",
|
||||
signs = false,
|
||||
spacing = 4,
|
||||
prefix = "●",
|
||||
},
|
||||
float = {
|
||||
severity_sort = true,
|
||||
|
@ -281,6 +284,11 @@ lspconfig.yamlls.setup({
|
|||
-- on_attach = custom_attach,
|
||||
-- })
|
||||
|
||||
for type, icon in pairs(signs) do
|
||||
local hl = "DiagnosticSign" .. type
|
||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
||||
end
|
||||
|
||||
return {
|
||||
lsp_filetypes = lsp_filetypes,
|
||||
}
|
||||
|
|
|
@ -11,6 +11,16 @@ mapper("n", "gd", ":vs | lua vim.lsp.buf.definition()<CR>") -- open defn in a ne
|
|||
|
||||
if no_plugins then return end
|
||||
|
||||
-- Telescope integration
|
||||
local telescope_builtin = require("telescope.builtin")
|
||||
|
||||
mapper("n", "<C-p>", telescope_builtin.find_files) -- search all files, respecting .gitignore if one exists
|
||||
mapper("n", "<Leader>ff", telescope_builtin.find_files) -- search all files, respecting .gitignore if one exists
|
||||
mapper("n", "<Leader>fb", telescope_builtin.buffers) -- search open buffers
|
||||
mapper("n", "<Leader>fl", telescope_builtin.current_buffer_fuzzy_find) -- search lines in current buffer
|
||||
mapper("n", "<Leader>gg", telescope_builtin.live_grep) -- search all lines in project
|
||||
mapper("n", "<Leader>fr", telescope_builtin.lsp_references) -- search references to symbol under cursor
|
||||
mapper("n", "<Leader>gc", telescope_builtin.git_branches) -- checkout different branches
|
||||
|
||||
-- Git things
|
||||
mapper("n", "<Leader>gs", ":vs Git<CR>") -- `git status` in a new tab to save screen real estate
|
||||
mapper("n", "<Leader>gd", "<cmd>Gdiffsplit<CR>") -- open a split diffing the current file
|
||||
|
|
|
@ -3,6 +3,7 @@ local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
|||
if not cmp then return end
|
||||
|
||||
cmp.setup({
|
||||
preselect = true,
|
||||
snippet = {
|
||||
expand = function(args) vim.fn["vsnip#anonymous"](args.body) end,
|
||||
},
|
||||
|
@ -18,13 +19,13 @@ cmp.setup({
|
|||
["<C-f>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-h>"] = cmp.mapping.complete({ reason = cmp.ContextReason.Manual }),
|
||||
["<C-e>"] = cmp.mapping.close(),
|
||||
["<C-y>"] = cmp.mapping.confirm({
|
||||
["<Esc>"] = cmp.mapping.close(),
|
||||
["<CR>"] = cmp.mapping.confirm({
|
||||
behavior = cmp.ConfirmBehavior.Insert,
|
||||
select = true, -- use first result if none explicitly selected
|
||||
}),
|
||||
-- ["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }),
|
||||
-- ["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }),
|
||||
["<Tab>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }),
|
||||
["<S-Tab>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }),
|
||||
}),
|
||||
preselect = cmp.PreselectMode.None,
|
||||
formatting = {
|
||||
|
|
98
nvim/lua/dwl/plugin-conf/lualine.lua
Normal file
98
nvim/lua/dwl/plugin-conf/lualine.lua
Normal file
|
@ -0,0 +1,98 @@
|
|||
local lualine = require("lualine")
|
||||
|
||||
local IS_WIDE = function() return vim.o.columns > 150 end
|
||||
|
||||
lualine.setup({
|
||||
sections = {
|
||||
--+-------------------------------------------------+--
|
||||
--| A | B | C X | Y | Z |--
|
||||
--+-------------------------------------------------+--
|
||||
lualine_a = {
|
||||
{
|
||||
"mode",
|
||||
fmt = function(m) return IS_WIDE() and m or m:sub(1, 1) end,
|
||||
},
|
||||
},
|
||||
lualine_b = { "branch" },
|
||||
lualine_c = {
|
||||
{
|
||||
"diff",
|
||||
symbols = {
|
||||
modified = "~",
|
||||
removed = "-",
|
||||
added = "+",
|
||||
},
|
||||
},
|
||||
-- A hack to change the path type if the window gets too short. Lualine doesn't accept a function for the
|
||||
-- `path` option, so just swap out the entire component
|
||||
{
|
||||
"filename",
|
||||
path = 1, -- full file path
|
||||
color = { fg = "#ffffff", gui = "bold" },
|
||||
shorting_target = 30,
|
||||
cond = IS_WIDE,
|
||||
},
|
||||
{
|
||||
"filename",
|
||||
path = 0, -- just the filename
|
||||
color = { fg = "#ffffff", gui = "bold" },
|
||||
shorting_target = 30,
|
||||
cond = function() return not IS_WIDE() end,
|
||||
},
|
||||
},
|
||||
lualine_x = {
|
||||
{
|
||||
function()
|
||||
local msg = "No Active Lsp"
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then return msg end
|
||||
|
||||
local client_names = {}
|
||||
local active_client = false
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
active_client = true
|
||||
if not client_names[client.name] then client_names[client.name] = 1 end
|
||||
end
|
||||
end
|
||||
|
||||
if active_client then
|
||||
local names = {}
|
||||
for name, _ in pairs(client_names) do
|
||||
table.insert(names, name)
|
||||
end
|
||||
return table.concat(names, ", ")
|
||||
end
|
||||
|
||||
return "No Active Lsp"
|
||||
end,
|
||||
icon = " LSP:",
|
||||
color = { gui = "bold" },
|
||||
cond = IS_WIDE,
|
||||
},
|
||||
{
|
||||
"diagnostics",
|
||||
sources = { "nvim_diagnostic" },
|
||||
},
|
||||
},
|
||||
lualine_y = { "filetype" },
|
||||
lualine_z = { "location" },
|
||||
},
|
||||
tabline = {},
|
||||
options = {
|
||||
section_separators = { left = "", right = "" },
|
||||
component_separators = { left = "", right = "" },
|
||||
theme = "tokyonight",
|
||||
disabled_filetypes = { "aerial" },
|
||||
globalstatus = true,
|
||||
},
|
||||
extensions = {
|
||||
"aerial",
|
||||
"fugitive",
|
||||
"nvim-dap-ui",
|
||||
"nvim-tree",
|
||||
"quickfix",
|
||||
},
|
||||
})
|
21
nvim/lua/dwl/plugin-conf/telescope.lua
Normal file
21
nvim/lua/dwl/plugin-conf/telescope.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
local telescope = require("telescope")
|
||||
|
||||
telescope.setup({
|
||||
defaults = {
|
||||
file_ignore_patterns = {
|
||||
"%.png",
|
||||
"^index.%",
|
||||
},
|
||||
prompt_prefix = "» ",
|
||||
selection_caret = " ",
|
||||
selection_strategy = "reset",
|
||||
sorting_strategy = "ascending",
|
||||
layout_strategy = "horizontal",
|
||||
path_display = { "smart" },
|
||||
dynamic_preview_title = true,
|
||||
layout_config = {
|
||||
prompt_position = "top",
|
||||
height = 0.8,
|
||||
},
|
||||
},
|
||||
})
|
|
@ -23,7 +23,7 @@ packer.startup(function(use)
|
|||
-- Essentials
|
||||
use({
|
||||
"nvim-telescope/telescope.nvim", -- fuzzy find ALL the things
|
||||
-- config = function() require("dwl.plugin-conf.telescope") end,
|
||||
config = function() require("dwl.plugin-conf.telescope") end,
|
||||
})
|
||||
use({
|
||||
"windwp/nvim-ts-autotag", -- auto close html tags
|
||||
|
@ -47,6 +47,24 @@ packer.startup(function(use)
|
|||
})
|
||||
use("lukas-reineke/indent-blankline.nvim")
|
||||
|
||||
-- Look and feel
|
||||
use({
|
||||
"nvim-lualine/lualine.nvim", -- statusline in lua
|
||||
requires = {
|
||||
"kyazdani42/nvim-web-devicons",
|
||||
opt = true,
|
||||
},
|
||||
config = function() require("dwl.plugin-conf.lualine") end,
|
||||
})
|
||||
-- use({
|
||||
-- "nvim-tree/nvim-web-devicons",
|
||||
-- config = function() require('nvim-web-devicons').setup() end,
|
||||
-- })
|
||||
use({
|
||||
"petertriho/nvim-scrollbar",
|
||||
config = function() require("scrollbar").setup() end,
|
||||
})
|
||||
|
||||
-- LSP & Treesitter
|
||||
use("neovim/nvim-lspconfig") -- basic configurations for LSP client
|
||||
use("jose-elias-alvarez/null-ls.nvim") -- bridge between LSP client and external formatters/linters, not full fledged language servers
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue