adds oil, blame, lazygit, and minimap
This commit is contained in:
parent
2ba39c6973
commit
6d8dc4e2de
147
init.lua
147
init.lua
|
@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
-- You can also add relative line numbers, to help with jumping.
|
-- You can also add relative line numbers, to help with jumping.
|
||||||
-- Experiment for yourself to see if you like it!
|
-- Experiment for yourself to see if you like it!
|
||||||
-- vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||||
vim.opt.mouse = 'a'
|
vim.opt.mouse = 'a'
|
||||||
|
@ -616,7 +616,10 @@ require('lazy').setup({
|
||||||
local servers = {
|
local servers = {
|
||||||
-- clangd = {},
|
-- clangd = {},
|
||||||
-- gopls = {},
|
-- gopls = {},
|
||||||
-- pyright = {},
|
pyright = {},
|
||||||
|
ruff = {},
|
||||||
|
debugpy = {},
|
||||||
|
taplo = {},
|
||||||
-- rust_analyzer = {},
|
-- rust_analyzer = {},
|
||||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||||
--
|
--
|
||||||
|
@ -709,7 +712,7 @@ require('lazy').setup({
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
lua = { 'stylua' },
|
lua = { 'stylua' },
|
||||||
-- Conform can also run multiple formatters sequentially
|
-- Conform can also run multiple formatters sequentially
|
||||||
-- python = { "isort", "black" },
|
python = { 'ruff_format', 'isort', 'black', stop_after_first = true },
|
||||||
--
|
--
|
||||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
-- You can use 'stop_after_first' to run the first available formatter from the list
|
||||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||||
|
@ -773,24 +776,24 @@ require('lazy').setup({
|
||||||
-- No, but seriously. Please read `:help ins-completion`, it is really good!
|
-- No, but seriously. Please read `:help ins-completion`, it is really good!
|
||||||
mapping = cmp.mapping.preset.insert {
|
mapping = cmp.mapping.preset.insert {
|
||||||
-- Select the [n]ext item
|
-- Select the [n]ext item
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
-- ['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
-- Select the [p]revious item
|
-- Select the [p]revious item
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
-- ['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
|
||||||
-- Scroll the documentation window [b]ack / [f]orward
|
-- Scroll the documentation window [b]ack / [f]orward
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
-- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
-- ['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
|
||||||
-- Accept ([y]es) the completion.
|
-- Accept ([y]es) the completion.
|
||||||
-- This will auto-import if your LSP supports it.
|
-- This will auto-import if your LSP supports it.
|
||||||
-- This will expand snippets if the LSP sent a snippet.
|
-- This will expand snippets if the LSP sent a snippet.
|
||||||
['<C-y>'] = cmp.mapping.confirm { select = true },
|
-- ['<C-y>'] = cmp.mapping.confirm { select = true },
|
||||||
|
|
||||||
-- If you prefer more traditional completion keymaps,
|
-- If you prefer more traditional completion keymaps,
|
||||||
-- you can uncomment the following lines
|
-- you can uncomment the following lines
|
||||||
--['<CR>'] = cmp.mapping.confirm { select = true },
|
['<CR>'] = cmp.mapping.confirm { select = true },
|
||||||
--['<Tab>'] = cmp.mapping.select_next_item(),
|
['<Tab>'] = cmp.mapping.select_next_item(),
|
||||||
--['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||||
|
|
||||||
-- Manually trigger a completion from nvim-cmp.
|
-- Manually trigger a completion from nvim-cmp.
|
||||||
-- Generally you don't need this, because nvim-cmp will display
|
-- Generally you don't need this, because nvim-cmp will display
|
||||||
|
@ -829,6 +832,12 @@ require('lazy').setup({
|
||||||
{ name = 'luasnip' },
|
{ name = 'luasnip' },
|
||||||
{ name = 'path' },
|
{ name = 'path' },
|
||||||
},
|
},
|
||||||
|
cmp.setup.filetype({ 'sql' }, {
|
||||||
|
sources = {
|
||||||
|
{ name = 'vim-dadbod-completion' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
},
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
@ -838,13 +847,16 @@ require('lazy').setup({
|
||||||
-- change the command in the config to whatever the name of that colorscheme is.
|
-- change the command in the config to whatever the name of that colorscheme is.
|
||||||
--
|
--
|
||||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||||
'folke/tokyonight.nvim',
|
-- 'folke/tokyonight.nvim',
|
||||||
|
'rose-pine/neovim',
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||||
init = function()
|
init = function()
|
||||||
-- Load the colorscheme here.
|
-- Load the colorscheme here.
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
-- Like many other themes, this one has different styles, and you could load
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||||
vim.cmd.colorscheme 'tokyonight-night'
|
-- vim.cmd.colorscheme 'tokyonight-night'
|
||||||
|
-- vim.cmd.colorscheme 'rose-pine'
|
||||||
|
vim.cmd.colorscheme 'retrobox'
|
||||||
|
|
||||||
-- You can configure highlights by doing something like:
|
-- You can configure highlights by doing something like:
|
||||||
vim.cmd.hi 'Comment gui=none'
|
vim.cmd.hi 'Comment gui=none'
|
||||||
|
@ -854,50 +866,68 @@ require('lazy').setup({
|
||||||
-- Highlight todo, notes, etc in comments
|
-- Highlight todo, notes, etc in comments
|
||||||
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
||||||
|
|
||||||
{ -- Collection of various small independent plugins/modules
|
-- { -- Collection of various small independent plugins/modules
|
||||||
'echasnovski/mini.nvim',
|
-- 'echasnovski/mini.nvim',
|
||||||
config = function()
|
-- config = function()
|
||||||
-- Better Around/Inside textobjects
|
-- -- Better Around/Inside textobjects
|
||||||
|
-- --
|
||||||
|
-- -- Examples:
|
||||||
|
-- -- - va) - [V]isually select [A]round [)]paren
|
||||||
|
-- -- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
||||||
|
-- -- - ci' - [C]hange [I]nside [']quote
|
||||||
|
-- require('mini.ai').setup { n_lines = 500 }
|
||||||
--
|
--
|
||||||
-- Examples:
|
-- -- Add/delete/replace surroundings (brackets, quotes, etc.)
|
||||||
-- - va) - [V]isually select [A]round [)]paren
|
-- --
|
||||||
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
-- -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
||||||
-- - ci' - [C]hange [I]nside [']quote
|
-- -- - sd' - [S]urround [D]elete [']quotes
|
||||||
require('mini.ai').setup { n_lines = 500 }
|
-- -- - sr)' - [S]urround [R]eplace [)] [']
|
||||||
|
-- require('mini.surround').setup()
|
||||||
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
|
||||||
--
|
--
|
||||||
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
-- -- Simple and easy statusline.
|
||||||
-- - sd' - [S]urround [D]elete [']quotes
|
-- -- You could remove this setup call if you don't like it,
|
||||||
-- - sr)' - [S]urround [R]eplace [)] [']
|
-- -- and try some other statusline plugin
|
||||||
require('mini.surround').setup()
|
-- local statusline = require 'mini.statusline'
|
||||||
|
-- -- set use_icons to true if you have a Nerd Font
|
||||||
|
-- statusline.setup { use_icons = vim.g.have_nerd_font }
|
||||||
|
--
|
||||||
|
-- -- You can configure sections in the statusline by overriding their
|
||||||
|
-- -- default behavior. For example, here we set the section for
|
||||||
|
-- -- cursor location to LINE:COLUMN
|
||||||
|
-- ---@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
-- statusline.section_location = function()
|
||||||
|
-- return '%2l:%-2v'
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- -- ... and there is more!
|
||||||
|
-- -- Check out: https://github.com/echasnovski/mini.nvim
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
|
||||||
-- Simple and easy statusline.
|
|
||||||
-- You could remove this setup call if you don't like it,
|
|
||||||
-- and try some other statusline plugin
|
|
||||||
local statusline = require 'mini.statusline'
|
|
||||||
-- set use_icons to true if you have a Nerd Font
|
|
||||||
statusline.setup { use_icons = vim.g.have_nerd_font }
|
|
||||||
|
|
||||||
-- You can configure sections in the statusline by overriding their
|
|
||||||
-- default behavior. For example, here we set the section for
|
|
||||||
-- cursor location to LINE:COLUMN
|
|
||||||
---@diagnostic disable-next-line: duplicate-set-field
|
|
||||||
statusline.section_location = function()
|
|
||||||
return '%2l:%-2v'
|
|
||||||
end
|
|
||||||
|
|
||||||
-- ... and there is more!
|
|
||||||
-- Check out: https://github.com/echasnovski/mini.nvim
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ -- Highlight, edit, and navigate code
|
{ -- Highlight, edit, and navigate code
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
build = ':TSUpdate',
|
build = ':TSUpdate',
|
||||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
ensure_installed = {
|
||||||
|
'bash',
|
||||||
|
'c',
|
||||||
|
'diff',
|
||||||
|
'html',
|
||||||
|
'lua',
|
||||||
|
'luadoc',
|
||||||
|
'markdown',
|
||||||
|
'markdown_inline',
|
||||||
|
'query',
|
||||||
|
'vim',
|
||||||
|
'vimdoc',
|
||||||
|
'python',
|
||||||
|
'markdown_inline',
|
||||||
|
'markdown',
|
||||||
|
'rst',
|
||||||
|
'ninja',
|
||||||
|
},
|
||||||
-- Autoinstall languages that are not installed
|
-- Autoinstall languages that are not installed
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
|
@ -937,7 +967,7 @@ require('lazy').setup({
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
--
|
--
|
||||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||||
-- { import = 'custom.plugins' },
|
{ import = 'custom.plugins' },
|
||||||
--
|
--
|
||||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||||
-- Or use telescope!
|
-- Or use telescope!
|
||||||
|
@ -965,5 +995,24 @@ require('lazy').setup({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- MiniMap = require 'mini.map'
|
||||||
|
-- vim.keymap.set('n', '<leader>mt', MiniMap.toggle, { desc = 'Toggle MiniMap' })
|
||||||
|
-- vim.keymap.set('n', '<leader>mo', MiniMap.open, { desc = 'Open MiniMap' })
|
||||||
|
-- vim.keymap.set('n', '<leader>mc', MiniMap.close, { desc = 'Close MiniMap' })
|
||||||
|
-- vim.keymap.set('n', '<leader>mf', MiniMap.toggle_focus, { desc = 'Toggle MiniMap Focus' })
|
||||||
|
-- vim.keymap.set('n', '<leader>mr', MiniMap.refresh, { desc = 'Refresh MiniMap' })
|
||||||
|
-- vim.keymap.set('n', '<leader>ms', MiniMap.toggle_side, { desc = 'Toggle MiniMap side' })
|
||||||
|
--
|
||||||
|
vim.api.nvim_create_user_command('LintProject', function()
|
||||||
|
vim.cmd '!poetry run task lint'
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command('FormatProject', function()
|
||||||
|
vim.cmd '!poetry run task format'
|
||||||
|
end, {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command('ShowDiagnostic', function()
|
||||||
|
vim.cmd '!lua vim.diagnostic.open_float()'
|
||||||
|
end, {})
|
||||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
-- vim: ts=2 sts=2 sw=2 et
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'FabijanZulj/blame.nvim',
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require('blame').setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- keys = {
|
||||||
|
-- {
|
||||||
|
-- '<leader>mt',
|
||||||
|
-- function()
|
||||||
|
-- vim.keymap.set('n', '<leader>bt', ':BlameToggle<CR>')
|
||||||
|
-- end,
|
||||||
|
-- desc = 'Toggle git blame window',
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
return {
|
||||||
|
'tpope/vim-dadbod',
|
||||||
|
'kristijanhusak/vim-dadbod-completion',
|
||||||
|
'kristijanhusak/vim-dadbod-ui',
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
-- nvim v0.8.0
|
||||||
|
return {
|
||||||
|
'kdheepak/lazygit.nvim',
|
||||||
|
lazy = true,
|
||||||
|
cmd = {
|
||||||
|
'LazyGit',
|
||||||
|
'LazyGitConfig',
|
||||||
|
'LazyGitCurrentFile',
|
||||||
|
'LazyGitFilter',
|
||||||
|
'LazyGitFilterCurrentFile',
|
||||||
|
},
|
||||||
|
-- optional for floating window border decoration
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
},
|
||||||
|
-- setting the keybinding for LazyGit with 'keys' is recommended in
|
||||||
|
-- order to load the plugin when the command is run for the first time
|
||||||
|
keys = {
|
||||||
|
{ '<leader>lg', '<cmd>LazyGit<cr>', desc = 'LazyGit' },
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
return {
|
||||||
|
'echasnovski/mini.map',
|
||||||
|
version = '*',
|
||||||
|
-- vim.keymap.set('n', '<leader>mo', MiniMap.open, { desc = 'Open MiniMap' }),
|
||||||
|
config = function()
|
||||||
|
-- require('mini.map').setup()
|
||||||
|
local map = require 'mini.map'
|
||||||
|
|
||||||
|
local diagnostic_integration = map.gen_integration.diagnostic {
|
||||||
|
error = 'DiagnosticFloatingError',
|
||||||
|
warn = 'DiagnosticFloatingWarn',
|
||||||
|
info = 'DiagnosticFloatingInfo',
|
||||||
|
hint = 'DiagnosticFloatingHint',
|
||||||
|
}
|
||||||
|
|
||||||
|
local builtin_search_integration = map.gen_integration.builtin_search()
|
||||||
|
|
||||||
|
local gitsigns_integration = map.gen_integration.gitsigns {
|
||||||
|
add = 'GitSignsAdd',
|
||||||
|
change = 'GitSignsChange',
|
||||||
|
delete = 'GitSignsDelete',
|
||||||
|
}
|
||||||
|
|
||||||
|
map.setup {
|
||||||
|
integrations = {
|
||||||
|
diagnostic_integration,
|
||||||
|
builtin_search_integration,
|
||||||
|
gitsigns_integration,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
'<leader>mt',
|
||||||
|
function()
|
||||||
|
require('mini.map').toggle()
|
||||||
|
end,
|
||||||
|
desc = 'Toggle minimap',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>mc',
|
||||||
|
function()
|
||||||
|
require('mini.map').close()
|
||||||
|
end,
|
||||||
|
desc = 'Close minimap',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>mf',
|
||||||
|
function()
|
||||||
|
require('mini.map').toggle_focus()
|
||||||
|
end,
|
||||||
|
desc = 'Toggle minimap focus',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>mo',
|
||||||
|
function()
|
||||||
|
require('mini.map').open()
|
||||||
|
end,
|
||||||
|
desc = 'Open minimap',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>mr',
|
||||||
|
function()
|
||||||
|
require('mini.map').refresh()
|
||||||
|
end,
|
||||||
|
desc = 'Refresh minimap',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>ms',
|
||||||
|
function()
|
||||||
|
require('mini.map').toggle_side()
|
||||||
|
end,
|
||||||
|
desc = 'Toggle minimap side',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
return {
|
||||||
|
'stevearc/oil.nvim',
|
||||||
|
---@module 'oil'
|
||||||
|
---@type oil.SetupOpts
|
||||||
|
-- to open oil with - as shortcut
|
||||||
|
vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open parent directory' }),
|
||||||
|
opts = {},
|
||||||
|
-- Optional dependencies
|
||||||
|
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
|
||||||
|
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if prefer nvim-web-devicons
|
||||||
|
}
|
||||||
|
|
||||||
|
-- return {
|
||||||
|
-- {
|
||||||
|
-- 'stevearc/oil.nvim',
|
||||||
|
-- vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open parent directory' }),
|
||||||
|
-- dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
-- config = function()
|
||||||
|
-- CustomOilBar = function()
|
||||||
|
-- local path = vim.fn.expand "%"
|
||||||
|
-- path = path:gsub("oil://", "")
|
||||||
|
--
|
||||||
|
-- return " " .. vim.fn.fnamemodify(path, ":.")
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- require("oil").setup {
|
||||||
|
-- columns = { "icon" },
|
||||||
|
-- keymaps = {
|
||||||
|
-- ["<C-h>"] = false,
|
||||||
|
-- ["<C-l>"] = false,
|
||||||
|
-- ["<C-k>"] = false,
|
||||||
|
-- ["<C-j>"] = false,
|
||||||
|
-- ["<M-h>"] = "actions.select_split",
|
||||||
|
-- },
|
||||||
|
-- win_options = {
|
||||||
|
-- winbar = "%{v:lua.CustomOilBar()}",
|
||||||
|
-- },
|
||||||
|
-- view_options = {
|
||||||
|
-- show_hidden = true,
|
||||||
|
-- is_always_hidden = function(name, _)
|
||||||
|
-- local folder_skip = { "dev-tools.locks", "dune.lock", "_build" }
|
||||||
|
-- return vim.tbl_contains(folder_skip, name)
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
-- -- Open parent directory in current window
|
||||||
|
-- vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|
||||||
|
--
|
||||||
|
-- -- Open parent directory in floating window
|
||||||
|
-- vim.keymap.set("n", "<space>-", require("oil").toggle_float)
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
-- }
|
Loading…
Reference in New Issue