From 4ec198e9de4c29378a9307f739770e71282d5d45 Mon Sep 17 00:00:00 2001
From: Squibid <me@zacharyscheiman.com>
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/core')

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("<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',
+})
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", "<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})
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({
+    ["<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
+}
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 = {
+        ['<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,
+      },
+    },
+  }
+}
+
+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