|
|
|
@ -6,7 +6,6 @@ require 'core.snippets'
|
|
|
|
|
vim.g.have_nerd_font = true
|
|
|
|
|
|
|
|
|
|
-- [[ Install `lazy.nvim` plugin manager ]]
|
|
|
|
|
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
|
|
|
|
|
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
|
|
|
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
|
|
|
|
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
|
|
|
@ -20,55 +19,8 @@ end
|
|
|
|
|
local rtp = vim.opt.rtp
|
|
|
|
|
rtp:prepend(lazypath)
|
|
|
|
|
|
|
|
|
|
-- [[ Configure and install plugins ]]
|
|
|
|
|
--
|
|
|
|
|
-- To check the current status of your plugins, run
|
|
|
|
|
-- :Lazy
|
|
|
|
|
--
|
|
|
|
|
-- You can press `?` in this menu for help. Use `:q` to close the window
|
|
|
|
|
--
|
|
|
|
|
-- To update plugins you can run
|
|
|
|
|
-- :Lazy update
|
|
|
|
|
--
|
|
|
|
|
-- NOTE: Here is where you install your plugins.
|
|
|
|
|
require('lazy').setup({
|
|
|
|
|
-- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
|
|
|
|
|
'NMAC427/guess-indent.nvim', -- Detect tabstop and shiftwidth automatically
|
|
|
|
|
|
|
|
|
|
-- NOTE: Plugins can also be added by using a table,
|
|
|
|
|
-- with the first argument being the link and the following
|
|
|
|
|
-- keys can be used to configure plugin behavior/loading/etc.
|
|
|
|
|
--
|
|
|
|
|
-- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded.
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
-- Alternatively, use `config = function() ... end` for full control over the configuration.
|
|
|
|
|
-- If you prefer to call `setup` explicitly, use:
|
|
|
|
|
-- {
|
|
|
|
|
-- 'lewis6991/gitsigns.nvim',
|
|
|
|
|
-- config = function()
|
|
|
|
|
-- require('gitsigns').setup({
|
|
|
|
|
-- -- Your gitsigns configuration here
|
|
|
|
|
-- })
|
|
|
|
|
-- end,
|
|
|
|
|
-- }
|
|
|
|
|
--
|
|
|
|
|
-- Here is a more advanced example where we pass configuration
|
|
|
|
|
-- options to `gitsigns.nvim`.
|
|
|
|
|
--
|
|
|
|
|
-- See `:help gitsigns` to understand what the configuration keys do
|
|
|
|
|
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
|
|
|
|
'lewis6991/gitsigns.nvim',
|
|
|
|
|
opts = {
|
|
|
|
|
signs = {
|
|
|
|
|
add = { text = '+' },
|
|
|
|
|
change = { text = '~' },
|
|
|
|
|
delete = { text = '_' },
|
|
|
|
|
topdelete = { text = '‾' },
|
|
|
|
|
changedelete = { text = '~' },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
require 'plugins.neo-tree',
|
|
|
|
|
require 'plugins.autopairs',
|
|
|
|
|
require 'plugins.gitsigns',
|
|
|
|
@ -79,7 +31,7 @@ require('lazy').setup({
|
|
|
|
|
require 'plugins.fugitive',
|
|
|
|
|
require 'plugins.rhubarb',
|
|
|
|
|
require 'plugins.lsp',
|
|
|
|
|
|
|
|
|
|
require 'plugins.conform',
|
|
|
|
|
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
|
|
|
|
--
|
|
|
|
|
-- This is often very useful to both group configuration, as well as handle
|
|
|
|
@ -93,7 +45,6 @@ require('lazy').setup({
|
|
|
|
|
--
|
|
|
|
|
-- Then, because we use the `opts` key (recommended), the configuration runs
|
|
|
|
|
-- after the plugin has been loaded as `requpre(MODULE).setup(opts)`.
|
|
|
|
|
|
|
|
|
|
{ -- Useful plugin to show you pending keybinds.
|
|
|
|
|
'folke/which-key.nvim',
|
|
|
|
|
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
|
|
|
@ -258,48 +209,6 @@ require('lazy').setup({
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{ -- Autoformat
|
|
|
|
|
'stevearc/conform.nvim',
|
|
|
|
|
event = { 'BufWritePre' },
|
|
|
|
|
cmd = { 'ConformInfo' },
|
|
|
|
|
keys = {
|
|
|
|
|
{
|
|
|
|
|
'<leader>f',
|
|
|
|
|
function()
|
|
|
|
|
require('conform').format { async = true, lsp_format = 'fallback' }
|
|
|
|
|
end,
|
|
|
|
|
mode = '',
|
|
|
|
|
desc = '[F]ormat buffer',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
opts = {
|
|
|
|
|
notify_on_error = false,
|
|
|
|
|
format_on_save = function(bufnr)
|
|
|
|
|
-- Disable "format_on_save lsp_fallback" for languages that don't
|
|
|
|
|
-- have a well standardized coding style. You can add additional
|
|
|
|
|
-- languages here or re-enable it for the disabled ones.
|
|
|
|
|
local disable_filetypes = { c = true, cpp = true }
|
|
|
|
|
if disable_filetypes[vim.bo[bufnr].filetype] then
|
|
|
|
|
return nil
|
|
|
|
|
else
|
|
|
|
|
return {
|
|
|
|
|
timeout_ms = 500,
|
|
|
|
|
lsp_format = 'fallback',
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
formatters_by_ft = {
|
|
|
|
|
lua = { 'stylua' },
|
|
|
|
|
python = { 'ruff_fix', 'ruff_format', 'ruff_organize_imports' },
|
|
|
|
|
-- Conform can also run multiple formatters sequentially
|
|
|
|
|
-- python = { "isort", "black" },
|
|
|
|
|
--
|
|
|
|
|
-- You can use 'stop_after_first' to run the first available formatter from the list
|
|
|
|
|
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{ -- Autocompletion
|
|
|
|
|
'saghen/blink.cmp',
|
|
|
|
|
event = 'VimEnter',
|
|
|
|
|