Neovim: started rework on the conifg, changed a bunch of stuff

This commit is contained in:
Kyren223
2024-07-06 20:07:41 +03:00
parent 7166c238e8
commit 39d1990952
49 changed files with 165 additions and 178 deletions

View File

@@ -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

View 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()

View File

@@ -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" },

View 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',
}

View File

@@ -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,
}

View 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,
}

View 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,
},
}

View File

@@ -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 },

View 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

View File

@@ -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' })

View 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,
})

View File

@@ -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 },
})

View File

@@ -1 +0,0 @@
return {}

View File

@@ -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 },
}

View File

@@ -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
}

View File

@@ -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' },
},
}

View File

@@ -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,
},
}

View File

@@ -1,8 +0,0 @@
return {
'folke/which-key.nvim',
event = 'VeryLazy',
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 500
end,
}