diff options
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 917 |
1 files changed, 1 insertions, 916 deletions
@@ -1,916 +1 @@ -local o = vim.opt -local g = vim.g -local a = vim.api -local cmd = vim.cmd - -g.mapleader = " " - ---------------- --- better ui -- ---------------- -o.number = true -o.relativenumber = true -o.numberwidth = 2 -- width o numberline -o.signcolumn = 'yes:1' -- show gutter -o.cursorline = true -- highlights the current line -o.scrolloff = 5 -- # lines below/above cursor -o.showmode = false -- stop vim from showing mode -o.cmdheight = 2 -- vim command height -o.mouse = "" -- no mouse - -o.wrap = true -- wrap lines -o.linebreak = true -- fix where line is wraped -o.emoji = false -- something to do with the spacing of emojis -o.clipboard = 'unnamedplus' -- use system clipboard - --- intenting & tabing -o.expandtab = true -o.smarttab = true -o.cindent = true -o.autoindent = true -o.tabstop = 2 -o.shiftwidth = 2 -o.softtabstop = -1 -- If negative, shiftwidth value is used - --- colors -o.termguicolors = true -cmd('colorscheme jellybeans-nvim') - --- diagnostics -vim.diagnostic.config({ - underline = true, - virtual_text = { prefix = '*', }, -}) - -local colors = { - black = '#000000', - black2 = '#161616', - black3 = '#0E0E0E', - black4 = '#101010', - grey = '#1E1E1E', - grey2 = '#404040', - white = '#ffffff', - red = '#E06C75', - orange = '#EA936C', - yellow = '#E5C07B', - green = '#98C379', - blue = '#61AFEF', - purple = '#C678DD', -} - --- width line -o.colorcolumn = { 80 } - --- custom opts -local copts = { - tablines = 'colored', -- false, 'colored', and 'wrap' - minimapcolor = colors.grey2, -} - ------------- --- saving -- ------------- -o.swapfile = false -o.undofile = true -o.confirm = true - ------------- --- search -- ------------- -o.ignorecase = true -o.smartcase = true -o.wrapscan = true -o.showmatch = true - ----------------- --- wild menus -- ----------------- -o.wildoptions = 'pum' -o.pumblend = 3 -o.pumheight = 20 - -o.wildignorecase = true -o.wildignore = '*.o' - ------------ --- netrw -- ------------ -g.netrw_banner = 0 -g.netrw_localcopydircmd = 'cp -r' -g.netrw_winsize = 30 -g.netrw_liststyle = 1 - -------------------- --- auto commands -- -------------------- -a.nvim_create_augroup('bufcheck', {clear = true}) - --- highlight yanks -a.nvim_create_autocmd('TextYankPost', { - group = 'bufcheck', - pattern = '*', - callback = function() vim.highlight.on_yank{timeout = 250} end -}) - --- start terminal in insert mode -a.nvim_create_autocmd('TermOpen', { - group = 'bufcheck', - pattern = '*', - command = 'startinsert | set winfixheight' -}) - --- close terminal buffers after shell dies -a.nvim_create_autocmd('TermClose', { - group = 'bufcheck', - pattern = 'term://*', - command = 'call nvim_input("<CR>")' -}) - --- start git messages in insert mode -a.nvim_create_autocmd('FileType', { - group = 'bufcheck', - pattern = { 'gitcommit', 'gitrebase', }, - command = 'startinsert | 1' -}) - --- return to last place -a.nvim_create_autocmd('BufRead', { - pattern = '*', - command = [[call setpos(".", getpos("'\""))]] -}) - --- disable color column in certain files -a.nvim_create_autocmd('FileType', { - pattern = { - 'netrw', - "help", - "term", - "gitcommit", - "packer", - "vim", - "Trouble", - "norg" - }, - command = 'set colorcolumn=0' -}) - --- disable intent markers in certain files -a.nvim_create_autocmd('FileType', { - pattern = { - 'netrw', - "help", - "term", - "gitcommit", - "packer", - "vim", - "Trouble", - "norg" - }, - command = 'IndentBlanklineDisable' -}) - --- source and compile lua conf when written -local packer_group = a.nvim_create_augroup('Packer', { clear = true }) -vim.api.nvim_create_autocmd('BufWritePost', { - command = 'source <afile> | PackerCompile', - group = packer_group, - pattern = vim.fn.expand '$MYVIMRC', -}) - --- telescope preview opts -a.nvim_create_autocmd('User', { - pattern = 'TelescopePreviewerLoaded', - command = 'setlocal number', -}) - --------------- --- keybinds -- --------------- -local opts = { noremap = true, silent = true } - --- greatest remap ever -a.nvim_set_keymap("n", "<leader>p", "\"_dP", opts) - --- open term buffer -a.nvim_set_keymap("n", "<leader>to", "<C-w>v<C-w>w:term<CR>", opts) - --- esc to go to normal mode in term bufers -a.nvim_set_keymap("t", "<ESC>", "<C-\\><C-n>", opts) - --- open Trouble buffer -a.nvim_set_keymap("n", "<leader>tt", "<cmd>:TroubleToggle<CR>", opts) - --- open file viewer -a.nvim_set_keymap("n", "<leader>fo", ":Ex<CR>", opts) -a.nvim_set_keymap("n", "<leader>fs", ":Sex<CR>", opts) - --- clear search -a.nvim_set_keymap("n", "<ESC>", ":nohlsearch<Bar>:echo<CR>", opts) - --- move selected text -a.nvim_set_keymap("v", "<S-j>", ":m '>+1<CR>gv=gv", opts) -a.nvim_set_keymap("v", "<S-k>", ":m '<-2<CR>gv=gv", opts) - --- keep cursor middle -a.nvim_set_keymap("n", "<S-j>", "mzJ`z", opts) -- when combining lines -a.nvim_set_keymap("n", "n", "nzzzv", opts) -- searching -a.nvim_set_keymap("n", "N", "Nzzzv", opts) -a.nvim_set_keymap("n", "<C-d>", "<C-d>zz", opts) -- half page jumping -a.nvim_set_keymap("n", "<C-u>", "<C-u>zz", opts) - --- execute order 111 -a.nvim_set_keymap("n", "<leader>x", "<cmd>!chmod +x %<CR>", opts) - --- resizing splits -a.nvim_set_keymap("n", '<C-h>', "<cmd>SmartResizeLeft<CR>", opts) -a.nvim_set_keymap("n", '<C-j>', "<cmd>SmartResizeDown<CR>", opts) -a.nvim_set_keymap("n", '<C-k>', "<cmd>SmartResizeUp<CR>", opts) -a.nvim_set_keymap("n", '<C-l>', "<cmd>SmartResizeRight<CR>", opts) - --- don't blame me pls -a.nvim_set_keymap("n", "<C-g>", ":Gitsigns toggle_current_line_blame<CR>", opts) - --- telescope -a.nvim_set_keymap('n', '<leader>sf', '<cmd>Telescope find_files<CR>', opts) -a.nvim_set_keymap('n', '<leader>sg', '<cmd>Telescope git_commits<CR>', opts) -a.nvim_set_keymap('n', '<leader>sb', - '<cmd>Telescope current_buffer_fuzzy_find<CR>', opts) -a.nvim_set_keymap('n', '<leader>so', '<cmd>Telescope oldfiles<CR>', opts) -a.nvim_set_keymap('n', '<leader>sc', '<cmd>Telescope neoclip unnamed<CR>', opts) -a.nvim_set_keymap('n', '<leader>su', '<cmd>Telescope undo<CR>', opts) -a.nvim_set_keymap('n', '<leader>sd', '<cmd>Telescope diagnostics<CR>', opts) - --- auto comand keybinds --- add some keybinds to the file view -a.nvim_create_autocmd('FileType', { - pattern = 'netrw', - callback = function() - local bind = function(lhs, rhs) - vim.keymap.set('n', lhs, rhs, {remap = true, buffer = true}) - end - bind('h', '-^') -- Go up a directory - bind('l', '<CR>') -- Go down a directory / open a file - bind('.', 'gh') -- Toggle dotfiles - bind('P', '<C-w>z') -- Close preview window - bind('<ESC>', '<cmd>q<CR>') -- Close netrw - end -}) - --- vbox note taking -function _G.Toggle_venn() - local venn_enabled = vim.inspect(vim.b.venn_enabled) - if venn_enabled == "nil" then - vim.b.venn_enabled = true - cmd[[setlocal ve=all]] - - -- draw a line on HJKL keystokes - a.nvim_buf_set_keymap(0, "n", "J", "<C-v>j:VBox<CR>", {noremap = true}) - a.nvim_buf_set_keymap(0, "n", "K", "<C-v>k:VBox<CR>", {noremap = true}) - a.nvim_buf_set_keymap(0, "n", "L", "<C-v>l:VBox<CR>", {noremap = true}) - a.nvim_buf_set_keymap(0, "n", "H", "<C-v>h:VBox<CR>", {noremap = true}) - - -- draw a box by pressing "f" with visual selection - a.nvim_buf_set_keymap(0, "v", "f", ":VBox<CR>", {noremap = true}) - -- make easier to navigate - o.cursorcolumn = true - o.colorcolumn = { 0 } - else - cmd[[setlocal ve=]] - cmd[[mapclear <buffer>]] - vim.b.venn_enabled = nil - o.cursorcolumn = false - o.colorcolumn = { 80 } - end -end --- toggle keymappings for venn using <leader>v -a.nvim_set_keymap('n', '<leader>v', ":lua Toggle_venn()<CR>", { noremap = true}) - ----------------- --- highlights -- ----------------- --- indent line colors -a.nvim_set_hl(0, "IndentBlanklineIndent1", { fg = colors.red } ) -a.nvim_set_hl(0, "IndentBlanklineIndent2", { fg = colors.orange } ) -a.nvim_set_hl(0, "IndentBlanklineIndent3", { fg = colors.yellow } ) -a.nvim_set_hl(0, "IndentBlanklineIndent4", { fg = colors.green } ) -a.nvim_set_hl(0, "IndentBlanklineIndent5", { fg = colors.blue } ) -a.nvim_set_hl(0, "IndentBlanklineIndent6", { fg = colors.purple } ) - --- code window -a.nvim_set_hl(0, 'CodewindowBorder', {fg = copts.minimapcolor}) - -a.nvim_set_hl(0, "ColorColumn", { bg = colors.grey }) -- color column -a.nvim_set_hl(0, "Pmenu", { bg = colors.black2 }) -a.nvim_set_hl(0, "PmenuSel", { bg = colors.grey2 }) -a.nvim_set_hl(0, "CursorLineNr", { fg = colors.white, bold = true }) -a.nvim_set_hl(0, "DiagnosticVirtualTextHint", { fg = "#ffffff", bg = "#1E1E1E" }) -a.nvim_set_hl(0, "DiagnosticVirtualTextInfo", { fg = "#006fd8", bg = "#152f47" }) -a.nvim_set_hl(0, "DiagnosticVirtualTextWarn", { fg = "#E9AD5A", bg = "#533221" }) -a.nvim_set_hl(0, "DiagnosticVirtualTextError", - { fg = "#ED3B44", bg = "#4b1313" }) - --- cmp/treesitter stuff -a.nvim_set_hl(0, "CmpItemMenu", { fg = colors.purple, italic = true }) - -a.nvim_set_hl(0, "CmpItemKindSnippet", { bg = "#A377BF", bold = true }) -a.nvim_set_hl(0, "CmpItemKindText", { bg = "#63bc47", bold = true }) -a.nvim_set_hl(0, "CmpItemKindField", { bg = "#db7093", bold = true }) -a.nvim_set_hl(0, "CmpItemKindVariable", { bg = "#ff8c00", bold = true }) -a.nvim_set_hl(0, "CmpItemKindEnum", { bg = "#FF5733", bold = true }) -a.nvim_set_hl(0, "CmpItemKindFunction", { bg = "#483d8b", bold = true }) -a.nvim_set_hl(0, "CmpItemKindKeyword", { bg = "#FF339C", bold = true }) -a.nvim_set_hl(0, "CmpItemKindProperty", { bg = "#4FBF63", bold = true }) -a.nvim_set_hl(0, "CmpItemKindInterface", { bg = "#1e90ff", bold = true }) -a.nvim_set_hl(0, "CmpItemKindClass", { bg = "#4D4C5C", bold = true }) - -a.nvim_set_hl(0, "TreesitterContext", { bg = colors.grey }) - --- telescope -a.nvim_set_hl(0, "TelescopeMatching", { bg = colors.black3 }) -a.nvim_set_hl(0, "TelescopeNormal", { bg = colors.black3 }) - -a.nvim_set_hl(0, "TelescopePreviewBorder", { bg = colors.black3 }) -a.nvim_set_hl(0, "TelescopePreviewNormal", { bg = colors.black3 }) -a.nvim_set_hl(0, "TelescopePreviewTitle", { bg = colors.black3, - fg = colors.black3 }) - -a.nvim_set_hl(0, "TelescopePromptBorder", { bg = colors.black2 }) -a.nvim_set_hl(0, "TelescopePromptNormal", { bg = colors.black2 }) -a.nvim_set_hl(0, "TelescopePromptPrefix", { bg = colors.black2 }) -a.nvim_set_hl(0, "TelescopePromptTitle", { bg = colors.black2, - fg = colors.black2 }) - -a.nvim_set_hl(0, "TelescopeResultsBorder", { bg = colors.black4 }) -a.nvim_set_hl(0, "TelescopeResultsNormal", { bg = colors.black4 }) -a.nvim_set_hl(0, "TelescopeResultsTitle", { bg = colors.black4, - fg = colors.black4 }) - -a.nvim_set_hl(0, "TelescopeSelection", { bg = colors.black2 }) -a.nvim_set_hl(0, "TelescopeSelectionCaret", { bg = colors.black2, - fg = colors.orange, bold = true }) - ----------------------- --- plugin functions -- ----------------------- -if copts.tablines == 'colored' then - require("indent_blankline").setup { - space_char_blankline = ' ', - char_highlight_list = { - 'IndentBlanklineIndent1', - 'IndentBlanklineIndent2', - 'IndentBlanklineIndent3', - 'IndentBlanklineIndent4', - 'IndentBlanklineIndent5', - 'IndentBlanklineIndent6', - }, - } -elseif copts.tablines == 'wrap' then - o.list = true - require('indent_blankline').setup { - space_char_blankline = ' ', - show_current_context = true, - show_current_context_start = true, - } -else - g.indent_blankline_char = ' ' -end - --- lua line -local custom = require'lualine.themes.auto' - -custom.normal = { - a = { fg = colors.black, bg = colors.blue, gui = 'bold' }, - b = { fg = colors.black, bg = colors.blue, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.blue, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.blue, gui = 'bold' }, -} -custom.insert = { - a = { fg = colors.black, bg = colors.green, gui = 'bold' }, - b = { fg = colors.black, bg = colors.green, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.green, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.green, gui = 'bold' }, -} -custom.replace = { - a = { fg = colors.black, bg = colors.orange, gui = 'bold' }, - b = { fg = colors.black, bg = colors.orange, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.orange, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.orange, gui = 'bold' }, -} -custom.visual = { - a = { fg = colors.black, bg = colors.purple, gui = 'bold' }, - b = { fg = colors.black, bg = colors.purple, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.purple, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.purple, gui = 'bold' }, -} -custom.command = { - a = { fg = colors.black, bg = colors.red, gui = 'bold' }, - b = { fg = colors.black, bg = colors.red, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.red, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.red, gui = 'bold' }, -} -custom.terminal = { - a = { fg = colors.black, bg = colors.yellow, gui = 'bold' }, - b = { fg = colors.black, bg = colors.yellow, gui = 'bold' }, - c = { fg = colors.white, bg = colors.grey }, - x = {}, - y = { fg = colors.yellow, bg = colors.black2 }, - z = { fg = colors.black2, bg = colors.yellow, gui = 'bold' }, -} -custom.inactive = { - a = { bg = colors.grey }, - b = { bg = colors.grey }, - c = { bg = colors.grey }, - x = { bg = colors.grey }, - y = { bg = colors.grey }, - z = { bg = colors.grey }, -} - -local function diff_source() - local gitsigns = vim.b.gitsigns_status_dict - if gitsigns then - return { - added = gitsigns.added, - modified = gitsigns.changed, - removed = gitsigns.removed - } - end -end - -require('lualine').setup { - options = { - icons_enabled = false, - component_separators = { left = '', right = '' }, - section_separators = { left = '', right = '' }, - theme = custom, - always_divide_middle = false, - globalstatus = false, - refresh = { - statusline = 100, - tabline = 1000, - winbar = 1000, - } - }, - sections = { - lualine_a = {'mode'}, - lualine_b = { - { 'filetype', - color = { fg = colors.white, bg = colors.grey }, - }, - { 'filename', - filestatus = true, - path = 1, - - symbols = { - modified = '[+]', - readonly = '[=]', - unnamed = 'No Name', - newfile = '[New]', - } - } - }, - lualine_c = { { 'diff', source = diff_source } }, - lualine_x = { - { 'fileformat', - color = { gui = 'bold' } - } - }, - lualine_y = {'progress'}, - lualine_z = { - { 'location', - padding = 1, - } - } - }, - inactive_sections = { - lualine_x = {'location'}, - }, -} - --- completion -local has_words_before = function() - unpack = unpack or table.unpack - local line, col = unpack(a.nvim_win_get_cursor(0)) - return col ~= 0 and a.nvim_buf_get_lines(0, line - 1, line, true) - [1]:sub(col, col):match("%s") == nil -end - -local cmp = require('cmp') -local luasnip = require('luasnip') -require("luasnip.loaders.from_vscode").lazy_load() - -cmp.setup { - completion = { autocomplete = false, }, - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - sources = cmp.config.sources({ - { name = 'nvim_lsp', keyword_length = 3 }, - { name = 'luasnip', keyword_length = 3 }, - { name = 'path' }, - { name = 'buffer', keyword_length = 3, max_item_count = 7 }, - { name = 'calc' }, - }), - window = { - completion = { - winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None", - col_offset = -3, - side_padding = 0, - } - }, - formatting = { - fields = { "kind", "abbr", "menu" }, - format = function(entry, vim_item) - local kind_icons = { - Text = 'Tx', - Snippet = '<>', - Method = ' ', - Function = '{}', - Constructor = ' ', - Field = '""', - Variable = 'x=', - Class = '~{', - Interface = '.h', - Module = ' ', - Property = '@p', - Unit = ' ', - Value = ' ', - Enum = 'E#', - Keyword = '$1', - Color = ' ', - File = ' ', - Reference = ' ', - Folder = ' ', - EnumMember = ' ', - Constant = ' ', - Struct = ' ', - Event = ' ', - Operator = ' ', - TypeParameter = ' ', - } - local menu_items = { - buffer = "buffer", - nvim_lsp = "LSP", - luasnip = "luasnip", - nvim_lua = "lua", - calc = "calc", - } - - vim_item.kind = string.format(' %s ', kind_icons[vim_item.kind]) - vim_item.menu = string.format(' (%s)', menu_items[entry.source.name]) - - return vim_item - end - }, - mapping = cmp.mapping.preset.insert({ - ["<Tab>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - ["<S-Tab>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end, { "i", "s" }), - ['<CR>'] = cmp.mapping.confirm({ select = true }), - ['<ESC>'] = cmp.mapping.close(), - }), - sorting = { - comparators = { - cmp.config.compare.offset, - cmp.config.compare.exact, - cmp.config.compare.score, - require "cmp-under-comparator".under, - cmp.config.compare.kind, - cmp.config.compare.sort_text, - cmp.config.compare.length, - cmp.config.compare.order, - }, - }, - enabled = function() - local context = require 'cmp.config.context' - if a.nvim_get_mode().mode == 'c' then - return true - else - return not context.in_treesitter_capture("comment") - and not context.in_syntax_group("Comment") - end - end -} - -------------- --- plugins -- -------------- --- install packer -local ensure_packer = function() - local fn = vim.fn - local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' - if fn.empty(fn.glob(install_path)) > 0 then - fn.system({'git', 'clone', '--depth', '1', - 'https://github.com/wbthomason/packer.nvim', install_path}) - cmd [[packadd packer.nvim]] - return true - end - return false -end -local packer_bootstrap = ensure_packer() - -return require('packer').startup(function(use) - -- I use the packer to manage the packer - use 'wbthomason/packer.nvim' - - -- nice looking but useless - use { 'metalelf0/jellybeans-nvim', - requires = { 'rktjmp/lush.nvim' }, - } - use 'lukas-reineke/indent-blankline.nvim' - use { 'gorbit99/codewindow.nvim', - config = function() - local codewindow = require('codewindow') - codewindow.setup({ - show_cursor = false, - minimap_width = 15, - window_border = 'single', - exclude_filetypes = { - "netrw", - "help", - "term", - "gitcommit", - "packer", - "vim", - "Trouble", - }, - }) - codewindow.apply_default_keybinds() - end, - } - use { 'melkster/modicator.nvim', - require('modicator').setup({ - show_warnings = true, - highlights = { - modes = { - ['i'] = colors.green, - ['v'] = colors.purple, - ['V'] = colors.purple, - ['�'] = colors.purple, - ['s'] = colors.yellow, - ['S'] = colors.yellow, - ['R'] = colors.orange, - ['c'] = colors.red, - } - } - }) - } - - -- useful - use 'nvim-lualine/lualine.nvim' - use { 'numToStr/Comment.nvim', - config = function() require('Comment').setup() end - } - use 'jghauser/mkdir.nvim' - use 'jbyuki/venn.nvim' - use { 'nvim-neorg/neorg', - tag = '*', - ft = 'norg', - run = ':Neorg sync-parsers', - requires = 'nvim-lua/plenary.nvim', - config = function() - require('neorg').setup { - load = { - ['core.defaults'] = {}, - ['core.norg.concealer'] = { - config = { - dim_code_blocks = { - width = 'content', - padding = { right = 2, }, - }, - folds = false, - } - }, - ['core.norg.completion'] = { - config = { engine = 'nvim-cmp', } - }, - } - } - end - } - use { 'folke/which-key.nvim', - config = function() - require("which-key").setup { - icons = { - breadcrumb = '>>', - separator = '->', - }, - window = { winblend = 3, }, - layout = { align = 'center', }, - } - end - } - use { 'nvim-telescope/telescope.nvim', - tag = '0.1.x', - requires = { - 'nvim-lua/plenary.nvim', - 'debugloop/telescope-undo.nvim', - }, - config = function() - local telescope = require('telescope') - local actions = require('telescope.actions') - - telescope.load_extension('undo') - telescope.setup { - defaults = { - borderchars = { " ", " ", " ", " ", " ", " ", " ", " " }, - sorting_strategy = 'ascending', - layout_config = { - height = 0.9, - prompt_position = 'top', - }, - mappings = { - i = { - ['<C-h>'] = 'which_key', - ['<C-j>'] = actions.move_selection_next, - ['<C-k>'] = actions.move_selection_previous, - ['<C-l>'] = actions.select_default, - ['<C-u>'] = actions.preview_scrolling_up, - ['<C-d>'] = actions.preview_scrolling_down, - }, - n = { - ["gg"] = actions.move_to_top, - ["G"] = actions.move_to_bottom, - }, - }, - } - } - end - } - use { 'AckslD/nvim-neoclip.lua', - config = function() - require('neoclip').setup { - keys = { telescope = { i = { paste_behind = ' ' } } } - } - end - } - use { 'mrjones2014/smart-splits.nvim', - requires = { 'kwkarlwang/bufresize.nvim', - config = function() require("bufresize").setup() end - }, - config = function() - require('smart-splits').setup { - resize_mode = { hooks = { on_leave = require('bufresize').register } } - } - end - } - - -- gutter - use { 'lewis6991/gitsigns.nvim', - config = function() require('gitsigns').setup() end - } - use { 'chentoast/marks.nvim', - config = function() require('marks').setup() end - } - - -- syntax related - use { 'nvim-treesitter/nvim-treesitter', - config = function() - require'nvim-treesitter.configs'.setup { - ensure_installed = { "help", "c", "lua", }, - highlight = { - enable = true, - additional_vim_regex_highlighting = false, - }, - } - end, - requires = { - { 'nvim-treesitter/nvim-treesitter-context', - config = function() - require'treesitter-context'.setup { - enable = true, - max_lines = 1, - patterns = { - default = { - 'function', - }, - }, - } - end - }, - } - } - use { 'nvchad/nvim-colorizer.lua', - config = function() - require('colorizer').setup { - filetypes = { '*' }, - user_default_options = { - names = false, - RRGGBBAA = true, - AARRGGBB = true, - }, - } - end - } - use { "folke/trouble.nvim", - config = function() - require("trouble").setup { - icons = false, - fold_open = "v", - fold_closed = ">", - signs = { - error = "[x]", - warning = "[!]", - hint = "[?]", - information = "[i]" - }, - } - end - } - - -- completion - use { 'VonHeikemen/lsp-zero.nvim', - config = function() - local lsp = require('lsp-zero') - lsp.set_preferences({ - suggest_lsp_servers = true, - setup_servers_on_start = true, - set_lsp_keymaps = true, - configure_diagnostics = true, - cmp_capabilities = true, - manage_nvim_cmp = false, - call_servers = 'local', - sign_icons = { - error = 'x', - warn = '!', - hint = '?', - info = 'i' - } - }) - lsp.setup() - end - } - - use { 'hrsh7th/nvim-cmp', - requires = { - 'hrsh7th/cmp-buffer', - 'hrsh7th/cmp-path', - 'hrsh7th/cmp-calc', - 'saadparwaiz1/cmp_luasnip', - 'hrsh7th/cmp-nvim-lua', - 'hrsh7th/cmp-nvim-lsp', - 'lukas-reineke/cmp-under-comparator', - { 'onsails/lspkind.nvim', - config = function() - require('lspkind').init() - end - }, - } - } - - -- snippets - use { 'L3MON4D3/LuaSnip', - tag = 'v1.*', - requires = { - 'rafamadriz/friendly-snippets', - }, - } - use { 'doxnit/cmp-luasnip-choice', - config = function() - require('cmp_luasnip_choice').setup({ - auto_open = true, - }) - end - } - - -- lsp stuff - use 'neovim/nvim-lspconfig' - use 'williamboman/mason.nvim' - use 'williamboman/mason-lspconfig.nvim' - - use { 'windwp/nvim-autopairs', - config = function() require("nvim-autopairs").setup {} end - } - - if packer_bootstrap then - require('packer').sync() - end -end) +require('core.init') |