From 4ec198e9de4c29378a9307f739770e71282d5d45 Mon Sep 17 00:00:00 2001 From: Squibid Date: Fri, 30 Dec 2022 12:44:28 -0500 Subject: fix config not working in other dirs. whoops --- lua/core/auto.lua | 79 +++++++++++++++ lua/core/init.lua | 5 + lua/core/maps.lua | 98 ++++++++++++++++++ lua/core/opts.lua | 167 +++++++++++++++++++++++++++++++ lua/core/overrides/cmp.lua | 122 ++++++++++++++++++++++ lua/core/overrides/cmpluasnipchoice.lua | 3 + lua/core/overrides/codewindow.lua | 16 +++ lua/core/overrides/colorizer.lua | 8 ++ lua/core/overrides/indentblankline.lua | 22 ++++ lua/core/overrides/init.lua | 17 ++++ lua/core/overrides/lspkind.lua | 1 + lua/core/overrides/lspzero.lua | 17 ++++ lua/core/overrides/lualine.lua | 119 ++++++++++++++++++++++ lua/core/overrides/modicator.lua | 15 +++ lua/core/overrides/neoclip.lua | 9 ++ lua/core/overrides/neorg.lua | 17 ++++ lua/core/overrides/smartsplits.lua | 7 ++ lua/core/overrides/telescope.lua | 33 ++++++ lua/core/overrides/treesitter.lua | 14 +++ lua/core/overrides/treesittercontext.lua | 9 ++ lua/core/overrides/trouble.lua | 11 ++ lua/core/overrides/whichkey.lua | 8 ++ lua/core/plugins.lua | 71 +++++++++++++ 23 files changed, 868 insertions(+) create mode 100644 lua/core/auto.lua create mode 100644 lua/core/init.lua create mode 100644 lua/core/maps.lua create mode 100644 lua/core/opts.lua create mode 100644 lua/core/overrides/cmp.lua create mode 100644 lua/core/overrides/cmpluasnipchoice.lua create mode 100644 lua/core/overrides/codewindow.lua create mode 100644 lua/core/overrides/colorizer.lua create mode 100644 lua/core/overrides/indentblankline.lua create mode 100644 lua/core/overrides/init.lua create mode 100644 lua/core/overrides/lspkind.lua create mode 100644 lua/core/overrides/lspzero.lua create mode 100644 lua/core/overrides/lualine.lua create mode 100644 lua/core/overrides/modicator.lua create mode 100644 lua/core/overrides/neoclip.lua create mode 100644 lua/core/overrides/neorg.lua create mode 100644 lua/core/overrides/smartsplits.lua create mode 100644 lua/core/overrides/telescope.lua create mode 100644 lua/core/overrides/treesitter.lua create mode 100644 lua/core/overrides/treesittercontext.lua create mode 100644 lua/core/overrides/trouble.lua create mode 100644 lua/core/overrides/whichkey.lua create mode 100644 lua/core/plugins.lua (limited to 'lua') diff --git a/lua/core/auto.lua b/lua/core/auto.lua new file mode 100644 index 0000000..2733b59 --- /dev/null +++ b/lua/core/auto.lua @@ -0,0 +1,79 @@ +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("")' +}) + +-- 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 | PackerCompile', + group = packer_group, + pattern = vim.fn.expand '$MYVIMRC', +}) + +-- telescope preview opts +a.nvim_create_autocmd('User', { + pattern = 'TelescopePreviewerLoaded', + command = 'setlocal number', +}) diff --git a/lua/core/init.lua b/lua/core/init.lua new file mode 100644 index 0000000..1f484d2 --- /dev/null +++ b/lua/core/init.lua @@ -0,0 +1,5 @@ +require('core.plugins') +require('core.opts') +require('core.maps') +require('core.auto') +require('core.overrides.init') diff --git a/lua/core/maps.lua b/lua/core/maps.lua new file mode 100644 index 0000000..457ed98 --- /dev/null +++ b/lua/core/maps.lua @@ -0,0 +1,98 @@ +local opts = { noremap = true, silent = true } + +-- greatest remap ever +a.nvim_set_keymap("n", "p", "\"_dP", opts) + +-- open term buffer +a.nvim_set_keymap("n", "to", "vw:term", opts) + +-- esc to go to normal mode in term bufers +a.nvim_set_keymap("t", "", "", opts) + +-- open Trouble buffer +a.nvim_set_keymap("n", "tt", ":TroubleToggle", opts) + +-- open file viewer +a.nvim_set_keymap("n", "fo", ":Ex", opts) +a.nvim_set_keymap("n", "fs", ":Sex", opts) + +-- clear search +a.nvim_set_keymap("n", "", ":nohlsearch:echo", opts) + +-- move selected text +a.nvim_set_keymap("v", "", ":m '>+1gv=gv", opts) +a.nvim_set_keymap("v", "", ":m '<-2gv=gv", opts) + +-- keep cursor middle +a.nvim_set_keymap("n", "", "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", "", "zz", opts) -- half page jumping +a.nvim_set_keymap("n", "", "zz", opts) + +-- execute order 111 +a.nvim_set_keymap("n", "x", "!chmod +x %", opts) + +-- resizing splits +a.nvim_set_keymap("n", '', "SmartResizeLeft", opts) +a.nvim_set_keymap("n", '', "SmartResizeDown", opts) +a.nvim_set_keymap("n", '', "SmartResizeUp", opts) +a.nvim_set_keymap("n", '', "SmartResizeRight", opts) + +-- don't blame me pls +a.nvim_set_keymap("n", "", ":Gitsigns toggle_current_line_blame", opts) + +-- telescope +a.nvim_set_keymap('n', 'sf', 'Telescope find_files', opts) +a.nvim_set_keymap('n', 'sg', 'Telescope git_commits', opts) +a.nvim_set_keymap('n', 'sb', + 'Telescope current_buffer_fuzzy_find', opts) +a.nvim_set_keymap('n', 'so', 'Telescope oldfiles', opts) +a.nvim_set_keymap('n', 'sc', 'Telescope neoclip unnamed', opts) +a.nvim_set_keymap('n', 'su', 'Telescope undo', opts) +a.nvim_set_keymap('n', 'sd', 'Telescope diagnostics', 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', '') -- Go down a directory / open a file + bind('.', 'gh') -- Toggle dotfiles + bind('P', 'z') -- Close preview window + bind('', 'q') -- 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", "j:VBox", {noremap = true}) + a.nvim_buf_set_keymap(0, "n", "K", "k:VBox", {noremap = true}) + a.nvim_buf_set_keymap(0, "n", "L", "l:VBox", {noremap = true}) + a.nvim_buf_set_keymap(0, "n", "H", "h:VBox", {noremap = true}) + + -- draw a box by pressing "f" with visual selection + a.nvim_buf_set_keymap(0, "v", "f", ":VBox", {noremap = true}) + -- make easier to navigate + o.cursorcolumn = true + o.colorcolumn = { 0 } + else + cmd[[setlocal ve=]] + cmd[[mapclear ]] + vim.b.venn_enabled = nil + o.cursorcolumn = false + o.colorcolumn = { 80 } + end +end +-- toggle keymappings for venn using v +a.nvim_set_keymap('n', 'v', ":lua Toggle_venn()", { noremap = true}) diff --git a/lua/core/opts.lua b/lua/core/opts.lua new file mode 100644 index 0000000..5f491e1 --- /dev/null +++ b/lua/core/opts.lua @@ -0,0 +1,167 @@ +o = vim.opt +g = vim.g +a = vim.api +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 = '*', }, +}) + +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 +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 + +---------------- +-- highlights -- +---------------- +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 }) + +-- 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}) + +-- diagnostics +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 }) diff --git a/lua/core/overrides/cmp.lua b/lua/core/overrides/cmp.lua new file mode 100644 index 0000000..2b6a9cd --- /dev/null +++ b/lua/core/overrides/cmp.lua @@ -0,0 +1,122 @@ +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({ + [""] = 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" }), + [""] = 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" }), + [''] = cmp.mapping.confirm({ select = true }), + [''] = 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 +} diff --git a/lua/core/overrides/cmpluasnipchoice.lua b/lua/core/overrides/cmpluasnipchoice.lua new file mode 100644 index 0000000..52aa759 --- /dev/null +++ b/lua/core/overrides/cmpluasnipchoice.lua @@ -0,0 +1,3 @@ +require('cmp_luasnip_choice').setup { + auto_open = true, +} diff --git a/lua/core/overrides/codewindow.lua b/lua/core/overrides/codewindow.lua new file mode 100644 index 0000000..cfc4dad --- /dev/null +++ b/lua/core/overrides/codewindow.lua @@ -0,0 +1,16 @@ +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() diff --git a/lua/core/overrides/colorizer.lua b/lua/core/overrides/colorizer.lua new file mode 100644 index 0000000..a18101e --- /dev/null +++ b/lua/core/overrides/colorizer.lua @@ -0,0 +1,8 @@ +require('colorizer').setup { + filetypes = { '*' }, + user_default_options = { + names = false, + RRGGBBAA = true, + AARRGGBB = true, + }, +} diff --git a/lua/core/overrides/indentblankline.lua b/lua/core/overrides/indentblankline.lua new file mode 100644 index 0000000..0e43c22 --- /dev/null +++ b/lua/core/overrides/indentblankline.lua @@ -0,0 +1,22 @@ +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 diff --git a/lua/core/overrides/init.lua b/lua/core/overrides/init.lua new file mode 100644 index 0000000..a8d5d89 --- /dev/null +++ b/lua/core/overrides/init.lua @@ -0,0 +1,17 @@ +require('core.overrides.indentblankline') +require('core.overrides.lualine') +require('core.overrides.telescope') +require('core.overrides.codewindow') +require('core.overrides.modicator') +require('core.overrides.neorg') +require('core.overrides.whichkey') +require('core.overrides.neoclip') +require('core.overrides.smartsplits') +require('core.overrides.treesitter') +require('core.overrides.treesittercontext') +require('core.overrides.colorizer') +require('core.overrides.trouble') +require('core.overrides.lspzero') +require('core.overrides.cmp') +require('core.overrides.lspkind') +require('core.overrides.cmpluasnipchoice') diff --git a/lua/core/overrides/lspkind.lua b/lua/core/overrides/lspkind.lua new file mode 100644 index 0000000..f2f11d5 --- /dev/null +++ b/lua/core/overrides/lspkind.lua @@ -0,0 +1 @@ +require('lspkind').init() diff --git a/lua/core/overrides/lspzero.lua b/lua/core/overrides/lspzero.lua new file mode 100644 index 0000000..108e566 --- /dev/null +++ b/lua/core/overrides/lspzero.lua @@ -0,0 +1,17 @@ +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() diff --git a/lua/core/overrides/lualine.lua b/lua/core/overrides/lualine.lua new file mode 100644 index 0000000..21473f9 --- /dev/null +++ b/lua/core/overrides/lualine.lua @@ -0,0 +1,119 @@ +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'}, + }, +} diff --git a/lua/core/overrides/modicator.lua b/lua/core/overrides/modicator.lua new file mode 100644 index 0000000..5cc6925 --- /dev/null +++ b/lua/core/overrides/modicator.lua @@ -0,0 +1,15 @@ +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, + } + } +} diff --git a/lua/core/overrides/neoclip.lua b/lua/core/overrides/neoclip.lua new file mode 100644 index 0000000..a41877d --- /dev/null +++ b/lua/core/overrides/neoclip.lua @@ -0,0 +1,9 @@ +require('neoclip').setup { + keys = { + telescope = { + i = { + paste_behind = ' ' + }, + }, + }, +} diff --git a/lua/core/overrides/neorg.lua b/lua/core/overrides/neorg.lua new file mode 100644 index 0000000..8412901 --- /dev/null +++ b/lua/core/overrides/neorg.lua @@ -0,0 +1,17 @@ +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', } + }, + } +} diff --git a/lua/core/overrides/smartsplits.lua b/lua/core/overrides/smartsplits.lua new file mode 100644 index 0000000..5e677ab --- /dev/null +++ b/lua/core/overrides/smartsplits.lua @@ -0,0 +1,7 @@ +require('smart-splits').setup { + resize_mode = { + hooks = { + on_leave = require('bufresize').register + }, + }, +} diff --git a/lua/core/overrides/telescope.lua b/lua/core/overrides/telescope.lua new file mode 100644 index 0000000..546a33c --- /dev/null +++ b/lua/core/overrides/telescope.lua @@ -0,0 +1,33 @@ +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 = { + [''] = 'which_key', + [''] = actions.move_selection_next, + [''] = actions.move_selection_previous, + [''] = actions.select_default, + [''] = actions.preview_scrolling_up, + [''] = actions.preview_scrolling_down, + }, + n = { + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + }, + }, + } +} + +a.nvim_create_autocmd('User', { + pattern = 'TelescopePreviewerLoaded', + command = 'setlocal number', +}) diff --git a/lua/core/overrides/treesitter.lua b/lua/core/overrides/treesitter.lua new file mode 100644 index 0000000..a4d2dfe --- /dev/null +++ b/lua/core/overrides/treesitter.lua @@ -0,0 +1,14 @@ +require('nvim-treesitter.configs').setup { + ensure_installed = { 'help', + 'c', + 'lua', + 'norg', + 'bash', + 'html', + 'make', + }, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, +} diff --git a/lua/core/overrides/treesittercontext.lua b/lua/core/overrides/treesittercontext.lua new file mode 100644 index 0000000..8a60704 --- /dev/null +++ b/lua/core/overrides/treesittercontext.lua @@ -0,0 +1,9 @@ +require('treesitter-context').setup { + enable = true, + max_lines = 1, + patterns = { + default = { + 'function', + }, + }, +} diff --git a/lua/core/overrides/trouble.lua b/lua/core/overrides/trouble.lua new file mode 100644 index 0000000..eabbd7e --- /dev/null +++ b/lua/core/overrides/trouble.lua @@ -0,0 +1,11 @@ +require("trouble").setup { + icons = false, + fold_open = "v", + fold_closed = ">", + signs = { + error = "[x]", + warning = "[!]", + hint = "[?]", + information = "[i]" + }, +} diff --git a/lua/core/overrides/whichkey.lua b/lua/core/overrides/whichkey.lua new file mode 100644 index 0000000..65b6ca4 --- /dev/null +++ b/lua/core/overrides/whichkey.lua @@ -0,0 +1,8 @@ +require("which-key").setup { + icons = { + breadcrumb = '>>', + separator = '->', + }, + window = { winblend = 3, }, + layout = { align = 'center', }, +} diff --git a/lua/core/plugins.lua b/lua/core/plugins.lua new file mode 100644 index 0000000..306d106 --- /dev/null +++ b/lua/core/plugins.lua @@ -0,0 +1,71 @@ +-- make sure lazy is installed +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ "git", "clone", "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", lazypath }) + vim.fn.system({ "git", "-C", lazypath, "checkout", "tags/stable" }) + end +end +vim.opt.rtp:prepend(lazypath) + +require('lazy').setup({ + { 'metalelf0/jellybeans-nvim', + dependencies = 'rktjmp/lush.nvim', + lazy = false, + priority = 1000, + }, + { 'lukas-reineke/indent-blankline.nvim' }, + { 'nvim-lualine/lualine.nvim' }, + { 'nvim-telescope/telescope.nvim', + version = '0.1.*', + dependencies = { + 'nvim-lua/plenary.nvim', + 'debugloop/telescope-undo.nvim', + } + }, + { 'gorbit99/codewindow.nvim' }, + { 'melkster/modicator.nvim' }, + { 'numToStr/Comment.nvim', config = true, }, + { 'jbyuki/venn.nvim' }, + { 'nvim-neorg/neorg', + version = '*', + ft = 'norg', + build = ':Neorg sync-parsers', + dependencies = 'nvim-lua/plenary.nvim', + }, + { 'folke/which-key.nvim' }, + { 'AckslD/nvim-neoclip.lua' }, + { 'mrjones2014/smart-splits.nvim', + dependencies = { 'kwkarlwang/bufresize.nvim', config = true, }, + }, + { 'lewis6991/gitsigns.nvim', config = true, }, + { 'chentoast/marks.nvim', config = true, }, + { 'nvim-treesitter/nvim-treesitter', + dependencies = 'nvim-treesitter/nvim-treesitter-context' + }, + { 'nvchad/nvim-colorizer.lua' }, + { 'folke/trouble.nvim' }, + { 'VonHeikemen/lsp-zero.nvim' }, + { 'hrsh7th/nvim-cmp', + dependencies = { + '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', + }, + }, + { 'L3MON4D3/LuaSnip', + version = 'v1.*', + dependencies = 'rafamadriz/friendly-snippets', + }, + { 'doxnit/cmp-luasnip-choice' }, + { 'neovim/nvim-lspconfig' }, + { 'williamboman/mason.nvim' }, + { 'williamboman/mason-lspconfig.nvim' }, + { 'windwp/nvim-autopairs', config = true, }, +}) -- cgit v1.2.1