Neovim: started rework on the conifg, changed a bunch of stuff
This commit is contained in:
@@ -28,4 +28,12 @@ when there is an lsp active, it shouldn't show any other types like regex
|
||||
it should just show lsp stuff
|
||||
|
||||
|
||||
# Look at in the future
|
||||
|
||||
- Database integration plugins
|
||||
https://github.com/kndndrj/nvim-dbee?tab=readme-ov-file
|
||||
https://github.com/tpope/vim-dadbod
|
||||
|
||||
- Colorscheme https://github.com/scottmckendry/cyberdream.nvim?tab=readme-ov-file
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,4 @@ require('options')
|
||||
require('keymaps')
|
||||
require('autocmds')
|
||||
require('plugin-manager')
|
||||
--vim.cmd.colorscheme('darcula')
|
||||
--vim.cmd.colorscheme('tokyonight-night')
|
||||
require('dapui-colorscheme').set()
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
"spaceduck": { "branch": "main", "commit": "350491f19343b24fa85809242089caa02d4dadce" },
|
||||
"sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
|
||||
"telescope-smart-history.nvim": { "branch": "master", "commit": "81a4cceaa54d65d5f7c7c26178ee63b634d3e26d" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" },
|
||||
|
||||
26
.config/nvim/lua/custom/plugins/colorschemes.lua
Normal file
26
.config/nvim/lua/custom/plugins/colorschemes.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
return {
|
||||
{
|
||||
'folke/tokyonight.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.cmd.colorscheme('tokyonight-night')
|
||||
require('colorschemes.dapui').set()
|
||||
end,
|
||||
},
|
||||
'rktjmp/lush.nvim',
|
||||
'catppuccin/nvim',
|
||||
'marko-cerovac/material.nvim',
|
||||
'rebelot/kanagawa.nvim',
|
||||
'projekt0n/github-nvim-theme',
|
||||
'EdenEast/nightfox.nvim',
|
||||
'rose-pine/neovim',
|
||||
'rafi/awesome-vim-colorschemes',
|
||||
'datsfilipe/min-theme.nvim',
|
||||
'nechaev/darkstorm.nvim',
|
||||
'briones-gabriel/darcula-solid.nvim',
|
||||
'okaihe/okai',
|
||||
'uloco/bluloco.nvim',
|
||||
'doums/darcula',
|
||||
'pineapplegiant/spaceduck',
|
||||
}
|
||||
@@ -14,10 +14,11 @@ return {
|
||||
end)
|
||||
|
||||
for i = 1, 9 do
|
||||
vim.keymap.set('n', '<C-F' .. i .. '>', function()
|
||||
local select = function()
|
||||
harpoon:list():select(i)
|
||||
end)
|
||||
end
|
||||
vim.keymap.set('n', string.format('<C-F%d>', i), select)
|
||||
vim.keymap.set('n', string.format('<leader>%d', i), select)
|
||||
end
|
||||
|
||||
end,
|
||||
}
|
||||
21
.config/nvim/lua/custom/plugins/oil.lua
Normal file
21
.config/nvim/lua/custom/plugins/oil.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
config = function()
|
||||
local oil = require('oil')
|
||||
oil.setup({
|
||||
keymaps = {
|
||||
['<C-h>'] = false,
|
||||
['<C-l>'] = false,
|
||||
['<C-k>'] = false,
|
||||
['<C-j>'] = false,
|
||||
['<M-h>'] = 'actions.select_split',
|
||||
},
|
||||
view_options = {
|
||||
show_hidden = true,
|
||||
},
|
||||
})
|
||||
vim.keymap.set('n', '<leader>ob', '<cmd>Oil<cr>', { desc = '[O]il [B]uffer' })
|
||||
vim.keymap.set('n', '<leader>of', oil.toggle_float, { desc = '[O]il [F]loat' })
|
||||
end,
|
||||
}
|
||||
14
.config/nvim/lua/custom/plugins/telescope.lua
Normal file
14
.config/nvim/lua/custom/plugins/telescope.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
tag = '0.1.5',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
},
|
||||
config = function()
|
||||
require("custom.telescope")
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -2,8 +2,9 @@ return {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
config = function()
|
||||
local config = require('nvim-treesitter.configs')
|
||||
config.setup({
|
||||
---@type userdata
|
||||
require('nvim-treesitter.configs').setup({
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
50
.config/nvim/lua/custom/telescope.lua
Normal file
50
.config/nvim/lua/custom/telescope.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local telescope = require('telescope')
|
||||
telescope.setup({
|
||||
pickers = {
|
||||
find_files = { follow = true },
|
||||
grep_string = { additional_args = '--follow' },
|
||||
live_grep = { additional_args = '--follow' },
|
||||
},
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true, -- false will only do exact matching
|
||||
override_generic_sorter = true, -- override the generic sorter
|
||||
override_file_sorter = true, -- override the file sorter
|
||||
case_mode = 'smart_case', -- default "smart_case" or "ignore_case" or "respect_case"
|
||||
},
|
||||
['ui-select'] = {
|
||||
require('telescope.themes').get_dropdown({}),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
pcall(telescope.load_extension('ui-select'))
|
||||
pcall(telescope.load_extension('fzf'))
|
||||
|
||||
local builtin = require('telescope.builtin')
|
||||
|
||||
vim.keymap.set('n', '<leader>fs', builtin.find_files, { desc = '[F]ile [S]ystem' })
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = '[F]ind [H]elp' })
|
||||
vim.keymap.set('n', '<leader>fm', builtin.man_pages, { desc = '[F]ind [M]an Pages' })
|
||||
-- vim.keymap.set('n', '<leader>fw', builtin.grep_string, { desc = '[F]ind current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>lv', builtin.live_grep, { desc = '[L]ive [G]rep' })
|
||||
vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = '[F]ind Recent Files' })
|
||||
vim.keymap.set('n', '<leader>th', builtin.colorscheme, { desc = 'List [Th]eme' })
|
||||
-- vim.keymap.set('n', '<leader>ob', builtin.buffers, { desc = '[O]pen [B]uffers' })
|
||||
|
||||
vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' })
|
||||
vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' })
|
||||
vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' })
|
||||
-- vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' })
|
||||
vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' })
|
||||
|
||||
vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' })
|
||||
vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' })
|
||||
|
||||
vim.keymap.set('n', '<leader>sb', builtin.git_branches, { desc = '[S]earch [B]ranches' })
|
||||
vim.keymap.set('n', '<leader>sc', builtin.git_commits, { desc = '[S]earch [C]ommits' })
|
||||
-- TODO: Look into the following
|
||||
-- builtin.git_commits
|
||||
-- builtin.git_branches
|
||||
-- builtin.git_status
|
||||
-- builtin.git_stash
|
||||
@@ -1,29 +1,35 @@
|
||||
local set = vim.keymap.set
|
||||
local silent = { silent = true }
|
||||
|
||||
-- Misc
|
||||
vim.keymap.set({ 'n', 'i' }, '<C-a>', '<Esc>ggVG', { desc = 'Visually Highlight [A]ll' })
|
||||
vim.keymap.set('n', '<Esc>', ':nohlsearch<CR>')
|
||||
vim.keymap.set('n', '<leader>z', function()
|
||||
set({ 'n', 'i' }, '<C-a>', '<Esc>ggVG', { desc = 'Visually Highlight [A]ll' })
|
||||
set('n', '<Esc>', ':nohlsearch<CR>', silent)
|
||||
set({ 'i', 'c' }, '<C-v>', '<C-r>+')
|
||||
set('n', '<leader>z', function()
|
||||
vim.cmd('Neotree close')
|
||||
vim.cmd('Trouble todo close')
|
||||
end, { desc = '[Z]en Mode' })
|
||||
vim.keymap.set({ 'i', 'c' }, '<C-v>', '<C-r>+')
|
||||
end, { desc = '[Z]en Mode', silent = true })
|
||||
|
||||
-- Undo/Redo
|
||||
vim.keymap.set('n', 'U', ':redo<cr>')
|
||||
vim.keymap.set('i', '<C-z>', ':undo<cr>')
|
||||
set('n', 'U', ':redo<cr>')
|
||||
set('i', '<C-z>', ':undo<cr>')
|
||||
|
||||
-- Window Navigation
|
||||
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the down window' })
|
||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the up window' })
|
||||
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||
set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||
set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the down window' })
|
||||
set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the up window' })
|
||||
set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||
|
||||
-- Window resizing
|
||||
local resize = 2
|
||||
vim.keymap.set({ 'n', 't' }, '<C-Left>', string.format(':vertical resize -%d<CR>', resize), { desc = 'Resize Left' })
|
||||
vim.keymap.set({ 'n', 't' }, '<C-Up>', string.format(':resize -%d<CR>', resize), { desc = 'Resize Up' })
|
||||
vim.keymap.set({ 'n', 't' }, '<C-Down>', string.format(':resize +%d<CR>', resize), { desc = 'Resize Down' })
|
||||
vim.keymap.set({ 'n', 't' }, '<C-Right>', string.format(':vertical resize +%d<CR>', resize), { desc = 'Resize Right' })
|
||||
set({ 'n', 't' }, '<C-Left>', string.format(':vertical resize -%d<CR>', resize), { desc = 'Resize Left' })
|
||||
set({ 'n', 't' }, '<C-Up>', string.format(':resize -%d<CR>', resize), { desc = 'Resize Up' })
|
||||
set({ 'n', 't' }, '<C-Down>', string.format(':resize +%d<CR>', resize), { desc = 'Resize Down' })
|
||||
set({ 'n', 't' }, '<C-Right>', string.format(':vertical resize +%d<CR>', resize), { desc = 'Resize Right' })
|
||||
|
||||
-- Keep selection after < and >
|
||||
vim.keymap.set('v', '<', '<gv', {})
|
||||
vim.keymap.set('v', '>', '>gv', {})
|
||||
-- Keep selection after < and > in visual mode
|
||||
set('v', '<', '<gv')
|
||||
set('v', '>', '>gv')
|
||||
|
||||
-- Execute lua file or line
|
||||
set('n', '<leader>x', '<cmd>.lua<CR>', { desc = 'Execute the current line' })
|
||||
set('n', '<leader><leader>x', '<cmd>source %<CR>', { desc = 'Execute the current file' })
|
||||
|
||||
@@ -3,14 +3,14 @@ vim.g.maplocalleader = ' '
|
||||
|
||||
-- System
|
||||
vim.g.have_nerd_font = true
|
||||
vim.opt.mouse = 'a' -- enable mouse
|
||||
vim.opt.mouse = 'a' -- enable mouse
|
||||
vim.opt.clipboard = 'unnamedplus' -- use system clipboard
|
||||
|
||||
-- Tab
|
||||
vim.opt.expandtab = true -- convert tabs to spaces
|
||||
vim.opt.tabstop = 4 -- number of visual spaces per TAB
|
||||
vim.opt.softtabstop = 4 -- number of idfk tab when editing
|
||||
vim.opt.shiftwidth = 4 -- number of spaces to insert on tab
|
||||
vim.opt.tabstop = 4 -- number of visual spaces per TAB
|
||||
vim.opt.softtabstop = 4 -- number of idfk tab when editing
|
||||
vim.opt.shiftwidth = 4 -- number of spaces to insert on tab
|
||||
|
||||
-- UI
|
||||
vim.opt.signcolumn = 'auto:9'
|
||||
@@ -22,6 +22,7 @@ vim.opt.splitbelow = true
|
||||
vim.opt.showmode = false -- don't show mode, because lualine already does
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
vim.diagnostic.config({ signs = false }) -- disable signcolumn diagnostics
|
||||
|
||||
-- Searching
|
||||
vim.opt.hlsearch = true
|
||||
@@ -33,16 +34,13 @@ vim.opt.wrap = false
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.undofile = true
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.laststatus = 3 -- views can only be fully collapsed with the global statusline
|
||||
vim.opt.splitkeep = 'screen' -- for edgy.nvim
|
||||
vim.opt.laststatus = 3 -- views can only be fully collapsed with the global statusline
|
||||
vim.opt.splitkeep = 'screen' -- for edgy.nvim
|
||||
vim.opt.inccommand = 'split' -- shows preview for commands like :%s/from/to
|
||||
vim.opt.formatoptions:remove('o') -- don't have `o` add a comment
|
||||
|
||||
-- Disable warnings for missing language providers
|
||||
vim.g.loaded_node_provider = 0
|
||||
vim.g.loaded_perl_provider = 0
|
||||
vim.g.loaded_ruby_provider = 0
|
||||
vim.g.loaded_python3_provider = 0
|
||||
|
||||
-- Disable signcolumn diagnostics
|
||||
vim.diagnostic.config({
|
||||
signs = false,
|
||||
})
|
||||
|
||||
@@ -10,4 +10,6 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
require('lazy').setup('plugins')
|
||||
require('lazy').setup({ import = 'custom/plugins' }, {
|
||||
change_detection = { notify = false },
|
||||
})
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
return {}
|
||||
@@ -1,31 +0,0 @@
|
||||
return {
|
||||
{ 'rktjmp/lush.nvim', lazy = false, priority = 1001 },
|
||||
{ 'catppuccin/nvim', lazy = false, priority = 1000 },
|
||||
{ 'folke/tokyonight.nvim', lazy = false, priority = 1000 },
|
||||
{ 'marko-cerovac/material.nvim', lazy = false, priority = 1000 },
|
||||
{ 'rebelot/kanagawa.nvim', lazy = false, priority = 1000 },
|
||||
{ 'projekt0n/github-nvim-theme', lazy = false, priority = 1000 },
|
||||
{ 'EdenEast/nightfox.nvim', lazy = false, priority = 1000 },
|
||||
{ 'rose-pine/neovim', lazy = false, priority = 1000 },
|
||||
{ 'rafi/awesome-vim-colorschemes', lazy = false, priority = 1000 },
|
||||
{ 'datsfilipe/min-theme.nvim', lazy = false, priority = 1000 },
|
||||
{ 'nechaev/darkstorm.nvim', lazy = false, priority = 1000 },
|
||||
{ 'briones-gabriel/darcula-solid.nvim', lazy = false, priority = 1000 },
|
||||
{
|
||||
'okaihe/okai',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require('okai').setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'uloco/bluloco.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
dependencies = { 'rktjmp/lush.nvim' },
|
||||
},
|
||||
{ 'doums/darcula', lazy = false, priority = 1000 },
|
||||
{ 'pineapplegiant/spaceduck', lazy = false, priority = 1000 },
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
opts = {},
|
||||
config = function ()
|
||||
require("oil").setup()
|
||||
vim.keymap.set('n', '<leader>of', ':Oil --float<cr>', { desc = '[O]il [F]ilesystem' })
|
||||
end
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
return {
|
||||
name = 'C build (make)',
|
||||
builder = function()
|
||||
-- Full path to current file (see :help expand())
|
||||
local file = vim.fn.expand('%:p')
|
||||
file = file:sub(1, -3)
|
||||
return {
|
||||
name = 'Make C file',
|
||||
cmd = { 'make' },
|
||||
args = { file },
|
||||
components = { { 'on_output_quickfix', open = true }, 'default' },
|
||||
}
|
||||
end,
|
||||
condition = {
|
||||
filetype = { 'c' },
|
||||
},
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
return {
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim' },
|
||||
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
tag = '0.1.5',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
config = function()
|
||||
local builtin = require('telescope.builtin')
|
||||
|
||||
vim.keymap.set('n', '<leader>h', builtin.help_tags, { desc = '[H]elp' })
|
||||
vim.keymap.set('n', '<leader>m', builtin.man_pages, { desc = '[M]an Pages' })
|
||||
vim.keymap.set('n', '<leader>th', builtin.colorscheme, { desc = 'List [Th]eme' })
|
||||
vim.keymap.set('n', '<leader>ob', builtin.buffers, { desc = '[O]pen [B]uffers' })
|
||||
|
||||
vim.keymap.set('n', '<leader>fs', builtin.find_files, { desc = '[F]ile [S]ystem' })
|
||||
vim.keymap.set('n', '<leader>fw', builtin.grep_string, { desc = '[F]ind current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>lv', builtin.live_grep, { desc = '[L]ive [G]rep' })
|
||||
vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = '[F]ind Recent Files ("." for old)' })
|
||||
|
||||
vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' })
|
||||
vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' })
|
||||
vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' })
|
||||
vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' })
|
||||
vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' })
|
||||
|
||||
vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' })
|
||||
vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' })
|
||||
|
||||
-- TODO: Look into the following
|
||||
-- builtin.git_commits
|
||||
-- builtin.git_branches
|
||||
-- builtin.git_status
|
||||
-- builtin.git_stash
|
||||
|
||||
local telescope = require('telescope')
|
||||
telescope.setup({
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = {
|
||||
-- map actions.which_key to <C-h> (default: <C-/>)
|
||||
-- actions.which_key shows the mappings for your picker,
|
||||
-- e.g. git_{create, delete, ...}_branch for the git_branches picker
|
||||
['<C-h>'] = 'which_key',
|
||||
['<C-s>'] = 'cycle_previewers_next',
|
||||
['<C-a>'] = 'cycle_previewers_prev',
|
||||
},
|
||||
},
|
||||
},
|
||||
pickers = {
|
||||
find_files = { follow = true },
|
||||
grep_string = { additional_args = '--follow' },
|
||||
live_grep = { additional_args = '--follow' },
|
||||
},
|
||||
extensions = {
|
||||
ui_select = {
|
||||
require('telescope.themes').get_dropdown({}),
|
||||
},
|
||||
fzf = {
|
||||
fuzzy = true, -- false will only do exact matching
|
||||
override_generic_sorter = true, -- override the generic sorter
|
||||
override_file_sorter = true, -- override the file sorter
|
||||
case_mode = 'smart_case', -- or "ignore_case" or "respect_case"
|
||||
-- the default case_mode is "smart_case"
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
telescope.load_extension('ui-select')
|
||||
telescope.load_extension('fzf')
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
return {
|
||||
'folke/which-key.nvim',
|
||||
event = 'VeryLazy',
|
||||
init = function()
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 500
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user