aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
authorXander Swan <email>2025-12-03 10:00:42 -0500
committerXander Swan <email>2025-12-03 10:00:42 -0500
commit9a128539e675333e7441ad893c61f8dce625f317 (patch)
tree3b4b99678c026d2854857259a9803be68448b032 /.config/nvim
parentb3d6b3ffb2e8fb2c2f6dca90120673f22a40b0a3 (diff)
Update lots and lots
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/colors/mine.lua91
-rw-r--r--.config/nvim/colors/mine.vim63
-rw-r--r--.config/nvim/colors/prismatic.vim225
-rw-r--r--.config/nvim/colors/some_vscode.vim61
-rw-r--r--.config/nvim/ftplugin/cs.vim3
-rw-r--r--.config/nvim/init.lua96
-rw-r--r--.config/nvim/lua/map.lua36
-rw-r--r--.config/nvim/lua/opt.lua27
-rw-r--r--.config/nvim/lua/plugin/init.lua3
-rw-r--r--.config/nvim/lua/plugin/lsp.lua81
-rw-r--r--.config/nvim/lua/plugin/packer.lua18
-rw-r--r--.config/nvim/lua/plugin/setup.lua12
12 files changed, 184 insertions, 532 deletions
diff --git a/.config/nvim/colors/mine.lua b/.config/nvim/colors/mine.lua
new file mode 100644
index 0000000..e88d74b
--- /dev/null
+++ b/.config/nvim/colors/mine.lua
@@ -0,0 +1,91 @@
+---@diagnostic disable: undefined-global
+
+vim.cmd("hi clear")
+
+vim.g.colors_name = "mine"
+vim.g.background = "dark"
+
+local colors = {
+ ["Terminal"] = {link="Normal"},
+ ["TermCursor"] = {link="Cursor"},
+ ["TermCursorNC"] = {link="Cursor"},
+ ["CurSearch"] = {link="Search"},
+ ["CursorLineFold"] = {link="CursorLine"},
+ ["CursorLineSign"] = {link="CursorLine"},
+ ["MessageWindow"] = {link="Pmenu"},
+ ["PopupNotification"] = {link="Todo"},
+ ["Character"] = {link="String"},
+ ["FloatBorder"] = {link="NormalFloat"},
+ ["NormalFloat"] = {link="Normal"},
+
+ ["ModeMsg"] = {fg="#FF88CC", bold=true},
+ ["StatusLine"] = {fg="#000000", bg="#AA66DD"},
+ ["StatusLineNC"] = {fg="#FFFFFF"},
+ ["ColorColumn"] = {bg="#333333"},
+ ["WinSeparator"] = {fg="#222222"},
+ ["CursorLine"] = {bg="#222222"},
+ ["EndOfBuffer"] = {fg="#222222"},
+ ["LineNr"] = {fg="#CCCCCC"},
+ ["LineNrAbove"] = {fg="#888888"},
+ ["LineNrBelow"] = {fg="#888888"},
+ ["MatchParen"] = {fg="#EE66AA", bold=true},
+ ["Normal"] = {fg="#AAAAAA", bg="#1A191C"},
+ ["Pmenu"] = {fg="#FFFFFF", bg="#333333"},
+ ["PmenuSel"] = {fg="#333333", bg="#FFFFFF", bold=true},
+ ["Search"] = {fg="#333333", bg="#FFFF88", bold=true},
+ ["Visual"] = {bg="#333333"},
+
+ ["Comment"] = {fg="#777777", italic=true},
+
+ ["Constant"] = {fg="#44FF99"},
+ ["Number"] = {fg="#44FF99"},
+ ["String"] = {fg="#FFFF00"},
+ ["Boolean"] = {fg="#44FF99"},
+
+ ["Identifier"] = {fg="#FFFFFF"},
+ ["Function"] = {fg="#5599EE"},
+ ["Statement"] = {fg="#FF4499"},
+ ["Label"] = {fg="#FF9944"},
+
+ ["Operator"] = {fg="#AAAABB"},
+
+ ["PreProc"] = {fg="#FF4499"},
+ ["Typedef"] = {fg="#997FFF"},
+ ["Type"] = {fg="#997FFF"},
+
+ ["StorageClass"] = {fg="#4499FF"},
+ ["Structure"] = {fg="#4499FF"},
+
+ ["Special"] = {fg="#CCCCDD"},
+ ["SpecialChar"] = {fg="#FFFFFF", bold=true},
+
+ ["Error"] = {fg="#FF4444", bold=true, undercurl=true},
+ ["Todo"] = {fg="#FFFFFF", bold=true, undercurl=true},
+ ["Added"] = {fg="#44FF44"},
+ ["Changed"] = {fg="#FFFF44"},
+ ["Removed"] = {fg="#FF4444"},
+
+ ["@constant.builtin"] = {link="Constant"},
+ ["@type.builtin"] = {link="Type"},
+ ["@function.builtin"] = {link="Function"},
+ ["@attribute.builtin"] = {link="@attribute"},
+
+ ["@keyword.repeat"] = {fg="#DD66FF"},
+ ["@keyword.conditional"] = {fg="#FF66DD"},
+
+ ["@variable"] = {fg="#CCCCCC"},
+ ["@variable.parameter.builtin"] = {link="@variable.builtin"},
+ ["@variable.parameter"] = {fg="#CCCCCC", italic=true},
+ ["@variable.builtin"] = {fg="#DD66FF", italic=true},
+ ["@variable.member"] = {fg="#9999FF"},
+
+ ["@lsp.type.variable"] = {fg="none"},
+ ["@lsp.type.parameter"] = {link="@variable.parameter"},
+ ["@lsp.type.enumMember"] = {link="Constant"},
+ ["@lsp.typemod.variable.static"] = {link="@lsp.typemod.variable.global"},
+ ["@lsp.typemod.variable.global"] = {fg="#FFDD66"},
+}
+
+for k, v in pairs(colors) do
+ vim.api.nvim_set_hl(0, k, v)
+end
diff --git a/.config/nvim/colors/mine.vim b/.config/nvim/colors/mine.vim
deleted file mode 100644
index d7d57b2..0000000
--- a/.config/nvim/colors/mine.vim
+++ /dev/null
@@ -1,63 +0,0 @@
-set background=dark
-
-hi clear
-let g:colors_name = "mine"
-
-hi! link FloatBorder Normal
-hi! link NormalFloat Normal
-hi! link Terminal Normal
-hi! link TermCursor Cursor
-hi! link TermCursorNC Cursor
-hi! link CurSearch Search
-hi! link CursorLineFold CursorLine
-hi! link CursorLineSign CursorLine
-hi! link MessageWindow Pmenu
-hi! link PopupNotification Todo
-hi! link Character String
-
-hi ColorColumn guifg=#333333 guibg=#333333 gui=NONE
-hi WinSeparator guifg=#222222 guibg=NONE gui=NONE
-hi CursorLine guifg=NONE guibg=NONE gui=NONE
-hi EndOfBuffer guifg=#222222 guibg=NONE gui=NONE
-hi SignColumn guifg=NONE guibg=NONE gui=NONE
-hi LineNr guifg=#666666 guibg=NONE gui=NONE
-hi LineNrAbove guifg=#888888 guibg=NONE gui=NONE
-hi LineNrBelow guifg=#888888 guibg=NONE gui=NONE
-hi MatchParen guifg=#FFFFFF guibg=#FF0000 gui=bold
-hi Normal guifg=#AAAAAA guibg=#1A191C gui=NONE
-hi Pmenu guifg=#FFFFFF guibg=#333333 gui=NONE
-hi PmenuSel guifg=#333333 guibg=#FFFFFF gui=bold,underdouble
-hi Search guifg=#333333 guibg=#FFFF88 gui=bold
-hi Visual guifg=NONE guibg=#333333 gui=NONE
-
-hi Comment guifg=#777777 guibg=NONE gui=NONE
-
-hi Constant guifg=#44FF99 guibg=NONE gui=NONE
-hi Number guifg=#44FF99 guibg=NONE gui=NONE
-hi String guifg=#FFFF00 guibg=NONE gui=NONE
-hi Boolean guifg=#44FF99 guibg=NONE gui=NONE
-
-hi Identifier guifg=#FFFFFF guibg=NONE gui=NONE
-hi Function guifg=#FF4499 guibg=NONE gui=NONE
-
-hi Statement guifg=#FF9944 guibg=NONE gui=NONE
-hi Label guifg=#FF9944 guibg=NONE gui=NONE
-hi Operator guifg=#AAAABB guibg=NONE gui=NONE
-
-hi PreProc guifg=#FF4499 guibg=NONE gui=NONE
-
-hi Typedef guifg=#997FFF guibg=NONE gui=NONE
-hi Type guifg=#997FFF guibg=NONE gui=NONE
-hi StorageClass guifg=#4499FF guibg=NONE gui=NONE
-hi Structure guifg=#4499FF guibg=NONE gui=bold
-
-hi Special guifg=#CCCCDD guibg=NONE gui=NONE
-hi SpecialChar guifg=#ffffff guibg=NONE gui=bold
-
-hi Error guifg=#ff4444 guibg=NONE gui=bold,undercurl
-
-hi Todo guifg=#ffffff guibg=NONE gui=bold,underline
-
-hi Added guifg=#44FF44 guibg=NONE gui=NONE
-hi Changed guifg=#FFFF44 guibg=NONE gui=NONE
-hi Removed guifg=#FF4444 guibg=NONE gui=NONE
diff --git a/.config/nvim/colors/prismatic.vim b/.config/nvim/colors/prismatic.vim
deleted file mode 100644
index a6fe2e3..0000000
--- a/.config/nvim/colors/prismatic.vim
+++ /dev/null
@@ -1,225 +0,0 @@
-" ==============================================================================
-" Name: One Half Dark
-" Author: Son A. Pham <[email protected]>
-" Url: https://github.com/sonph/onehalf
-" License: The MIT License (MIT)
-"
-" A dark vim color scheme based on Atom's One. See github.com/sonph/onehalf
-" for installation instructions, a light color scheme, versions for other
-" editors/terminals, and a matching theme for vim-airline.
-" ==============================================================================
-
-set background=dark
-highlight clear
-syntax reset
-
-let g:colors_name="onehalfdark"
-let colors_name="onehalfdark"
-
-
-let s:black = { "gui": "#242424", "cterm": "236" }
-let s:red = { "gui": "#FF5370", "cterm": "168" }
-let s:green = { "gui": "#12C359", "cterm": "114" }
-let s:yellow = { "gui": "#FAC863", "cterm": "180" }
-let s:blue = { "gui": "#10BAF1", "cterm": "75" }
-let s:purple = { "gui": "#EF71D5", "cterm": "176" }
-let s:cyan = { "gui": "#56b6c2", "cterm": "73" }
-let s:white = { "gui": "#C7C7C7", "cterm": "188" }
-let s:pink = { "gui": "#C071EF", "cterm": "176" }
-
-let s:fg = s:white
-let s:bg = s:black
-
-let s:comment_fg = { "gui": "#65737E", "cterm": "241" }
-let s:gutter_bg = { "gui": "#242424", "cterm": "236" }
-let s:gutter_fg = { "gui": "#514d4d", "cterm": "237" }
-let s:non_text = { "gui": "#373C45", "cterm": "239" }
-
-let s:cursor_line = { "gui": "#403c3c", "cterm": "237" }
-let s:color_col = { "gui": "#403c3c", "cterm": "237" }
-
-let s:selection = { "gui": "#403c3c", "cterm": "239" }
-let s:vertsplit = { "gui": "#403c3c", "cterm": "237" }
-
-
-function! s:h(group, fg, bg, attr)
- if type(a:fg) == type({})
- exec "hi " . a:group . " guifg=" . a:fg.gui . " ctermfg=" . a:fg.cterm
- else
- exec "hi " . a:group . " guifg=NONE cterm=NONE"
- endif
- if type(a:bg) == type({})
- exec "hi " . a:group . " guibg=" . a:bg.gui . " ctermbg=" . a:bg.cterm
- else
- exec "hi " . a:group . " guibg=NONE ctermbg=NONE"
- endif
- if a:attr != ""
- exec "hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr
- else
- exec "hi " . a:group . " gui=NONE cterm=NONE"
- endif
-endfun
-
-
-" User interface colors {
-call s:h("Normal", s:fg, s:bg, "")
-
-call s:h("Cursor", s:bg, s:blue, "")
-call s:h("CursorColumn", "", s:cursor_line, "")
-call s:h("CursorLine", "", s:cursor_line, "")
-
-call s:h("LineNr", s:gutter_fg, s:gutter_bg, "")
-call s:h("CursorLineNr", s:fg, "", "")
-
-call s:h("DiffAdd", s:green, "", "")
-call s:h("DiffChange", s:yellow, "", "")
-call s:h("DiffDelete", s:red, "", "")
-call s:h("DiffText", s:blue, "", "")
-
-call s:h("IncSearch", s:bg, s:yellow, "")
-call s:h("Search", s:bg, s:yellow, "")
-
-call s:h("ErrorMsg", s:fg, "", "")
-call s:h("ModeMsg", s:fg, "", "")
-call s:h("MoreMsg", s:fg, "", "")
-call s:h("WarningMsg", s:red, "", "")
-call s:h("Question", s:purple, "", "")
-
-call s:h("Pmenu", s:fg, s:bg, "")
-call s:h("PmenuSel", s:bg, s:fg, "")
-call s:h("PmenuSbar", "", s:selection, "")
-call s:h("PmenuThumb", "", s:fg, "")
-
-call s:h("SpellBad", s:red, "", "")
-call s:h("SpellCap", s:yellow, "", "")
-call s:h("SpellLocal", s:yellow, "", "")
-call s:h("SpellRare", s:yellow, "", "")
-
-call s:h("StatusLine", s:white, s:cursor_line, "")
-call s:h("StatusLineNC", s:white, s:bg, "")
-call s:h("TabLine", s:comment_fg, s:cursor_line, "")
-call s:h("TabLineFill", s:comment_fg, s:cursor_line, "")
-call s:h("TabLineSel", s:fg, s:bg, "")
-
-call s:h("Visual", "", s:selection, "")
-call s:h("VisualNOS", "", s:selection, "")
-
-call s:h("ColorColumn", "", s:color_col, "")
-call s:h("Conceal", s:fg, "", "")
-call s:h("Directory", s:blue, "", "")
-call s:h("VertSplit", s:vertsplit, s:vertsplit, "")
-call s:h("Folded", s:fg, "", "")
-call s:h("FoldColumn", s:fg, "", "")
-call s:h("SignColumn", s:fg, "", "")
-
-call s:h("MatchParen", s:blue, "", "underline")
-call s:h("SpecialKey", s:fg, "", "")
-call s:h("Title", s:green, "", "")
-call s:h("WildMenu", s:fg, "", "")
-" }
-
-
-" Syntax colors {
-" Whitespace is defined in Neovim, not Vim.
-" See :help hl-Whitespace and :help hl-SpecialKey
-call s:h("Whitespace", s:non_text, "", "")
-call s:h("NonText", s:non_text, "", "")
-call s:h("Comment", s:comment_fg, "", "italic")
-call s:h("Constant", s:cyan, "", "")
-call s:h("String", s:yellow, "", "")
-call s:h("Character", s:yellow, "", "")
-call s:h("Number", s:pink, "", "")
-call s:h("Boolean", s:red, "", "")
-call s:h("Float", s:pink, "", "")
-
-call s:h("Identifier", s:red, "", "")
-call s:h("Function", s:blue, "", "")
-call s:h("Statement", s:purple, "", "")
-
-call s:h("Conditional", s:purple, "", "")
-call s:h("Repeat", s:purple, "", "")
-call s:h("Label", s:purple, "", "")
-call s:h("Operator", s:fg, "", "")
-call s:h("Keyword", s:red, "", "")
-call s:h("Exception", s:purple, "", "")
-
-call s:h("PreProc", s:green, "", "")
-call s:h("Include", s:purple, "", "")
-call s:h("Define", s:purple, "", "")
-call s:h("Macro", s:purple, "", "")
-call s:h("PreCondit", s:green, "", "")
-
-call s:h("Type", s:red, "", "")
-call s:h("StorageClass", s:green, "", "")
-call s:h("Structure", s:green, "", "")
-call s:h("Typedef", s:green, "", "")
-
-call s:h("Special", s:blue, "", "")
-call s:h("SpecialChar", s:fg, "", "")
-call s:h("Tag", s:fg, "", "")
-call s:h("Delimiter", s:fg, "", "")
-call s:h("SpecialComment", s:fg, "", "")
-call s:h("Debug", s:fg, "", "")
-call s:h("Underlined", s:fg, "", "")
-call s:h("Ignore", s:fg, "", "")
-call s:h("Error", s:red, s:gutter_bg, "")
-call s:h("Todo", s:purple, "", "")
-" }
-
-
-" Plugins {
-" GitGutter
-call s:h("GitGutterAdd", s:green, s:gutter_bg, "")
-call s:h("GitGutterDelete", s:red, s:gutter_bg, "")
-call s:h("GitGutterChange", s:yellow, s:gutter_bg, "")
-call s:h("GitGutterChangeDelete", s:red, s:gutter_bg, "")
-" Fugitive
-call s:h("diffAdded", s:green, "", "")
-call s:h("diffRemoved", s:red, "", "")
-" }
-
-
-" Git {
-call s:h("gitcommitComment", s:comment_fg, "", "")
-call s:h("gitcommitUnmerged", s:red, "", "")
-call s:h("gitcommitOnBranch", s:fg, "", "")
-call s:h("gitcommitBranch", s:purple, "", "")
-call s:h("gitcommitDiscardedType", s:red, "", "")
-call s:h("gitcommitSelectedType", s:green, "", "")
-call s:h("gitcommitHeader", s:fg, "", "")
-call s:h("gitcommitUntrackedFile", s:cyan, "", "")
-call s:h("gitcommitDiscardedFile", s:red, "", "")
-call s:h("gitcommitSelectedFile", s:green, "", "")
-call s:h("gitcommitUnmergedFile", s:yellow, "", "")
-call s:h("gitcommitFile", s:fg, "", "")
-hi link gitcommitNoBranch gitcommitBranch
-hi link gitcommitUntracked gitcommitComment
-hi link gitcommitDiscarded gitcommitComment
-hi link gitcommitSelected gitcommitComment
-hi link gitcommitDiscardedArrow gitcommitDiscardedFile
-hi link gitcommitSelectedArrow gitcommitSelectedFile
-hi link gitcommitUnmergedArrow gitcommitUnmergedFile
-" }
-
-" Fix colors in neovim terminal buffers {
- if has('nvim')
- let g:terminal_color_0 = s:black.gui
- let g:terminal_color_1 = s:red.gui
- let g:terminal_color_2 = s:green.gui
- let g:terminal_color_3 = s:yellow.gui
- let g:terminal_color_4 = s:blue.gui
- let g:terminal_color_5 = s:purple.gui
- let g:terminal_color_6 = s:cyan.gui
- let g:terminal_color_7 = s:white.gui
- let g:terminal_color_8 = s:black.gui
- let g:terminal_color_9 = s:red.gui
- let g:terminal_color_10 = s:green.gui
- let g:terminal_color_11 = s:yellow.gui
- let g:terminal_color_12 = s:blue.gui
- let g:terminal_color_13 = s:purple.gui
- let g:terminal_color_14 = s:cyan.gui
- let g:terminal_color_15 = s:white.gui
- let g:terminal_color_background = s:bg.gui
- let g:terminal_color_foreground = s:fg.gui
- endif
-" }
diff --git a/.config/nvim/colors/some_vscode.vim b/.config/nvim/colors/some_vscode.vim
deleted file mode 100644
index 05fe46e..0000000
--- a/.config/nvim/colors/some_vscode.vim
+++ /dev/null
@@ -1,61 +0,0 @@
-set background=dark
-
-hi clear
-let g:colors_name = "mine"
-
-hi! link Terminal Normal
-hi! link TermCursor Cursor
-hi! link TermCursorNC Cursor
-hi! link CurSearch Search
-hi! link CursorLineFold CursorLine
-hi! link CursorLineSign CursorLine
-hi! link MessageWindow Pmenu
-hi! link PopupNotification Todo
-hi! link Character String
-
-hi ColorColumn guifg=#333333 guibg=#333333 gui=NONE
-hi WinSeparator guifg=#222222 guibg=NONE gui=NONE
-hi CursorLine guifg=NONE guibg=NONE gui=NONE
-hi EndOfBuffer guifg=#222222 guibg=NONE gui=NONE
-hi SignColumn guifg=NONE guibg=NONE gui=NONE
-hi LineNr guifg=#666666 guibg=NONE gui=NONE
-hi LineNrAbove guifg=#888888 guibg=NONE gui=NONE
-hi LineNrBelow guifg=#888888 guibg=NONE gui=NONE
-hi MatchParen guifg=#FFFFFF guibg=#FF0000 gui=bold
-hi Normal guifg=#f8f8f0 guibg=#16171d gui=NONE
-hi Pmenu guifg=#FFFFFF guibg=#333333 gui=NONE
-hi PmenuSel guifg=#333333 guibg=#FFFFFF gui=bold,underdouble
-hi Search guifg=#333333 guibg=#FFFF88 gui=bold,italic
-hi Visual guifg=NONE guibg=#333333 gui=NONE
-
-hi Comment guifg=#777777 guibg=NONE gui=italic
-
-hi Constant guifg=#81f900 guibg=NONE gui=NONE
-hi Number guifg=#e373ce guibg=NONE gui=NONE
-hi String guifg=#ffca2e guibg=NONE gui=NONE
-hi Boolean guifg=#e373ce guibg=NONE gui=italic
-
-hi Identifier guifg=#FFFFFF guibg=NONE gui=NONE
-hi Function guifg=#81f900 guibg=NONE gui=NONE
-
-hi Statement guifg=#ff3f3a guibg=NONE gui=NONE
-hi Label guifg=#ff3f3a guibg=NONE gui=NONE
-hi Operator guifg=#ff3f3a guibg=NONE gui=NONE
-
-hi PreProc guifg=#81f900 guibg=NONE gui=NONE
-
-hi Typedef guifg=#00a0e4 guibg=NONE gui=italic
-hi Type guifg=#00a0e4 guibg=NONE gui=italic
-hi StorageClass guifg=#ff3f3a guibg=NONE gui=italic
-hi Structure guifg=#19d1e5 guibg=NONE gui=bold,italic
-
-hi Special guifg=#CCCCDD guibg=NONE gui=NONE
-hi SpecialChar guifg=#e373ce guibg=NONE gui=NONE
-
-hi Error guifg=#ff4444 guibg=NONE gui=bold,undercurl
-
-hi Todo guifg=#ffffff guibg=NONE gui=bold,italic,underline
-
-hi Added guifg=#44FF44 guibg=NONE gui=NONE
-hi Changed guifg=#FFFF44 guibg=NONE gui=NONE
-hi Removed guifg=#FF4444 guibg=NONE gui=NONE
diff --git a/.config/nvim/ftplugin/cs.vim b/.config/nvim/ftplugin/cs.vim
deleted file mode 100644
index 2dc3520..0000000
--- a/.config/nvim/ftplugin/cs.vim
+++ /dev/null
@@ -1,3 +0,0 @@
-set tabstop=4
-set shiftwidth=4
-set expandtab
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 7d4a97f..e993929 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -1,3 +1,93 @@
-require("opt")
-require("map")
-require("plugin")
+---@diagnostic disable: undefined-global
+
+vim.o.termguicolors = true
+vim.o.relativenumber = true
+vim.o.number = true
+vim.o.cursorline = true
+vim.o.cursorlineopt = "line"
+vim.o.cc = "80"
+vim.o.swapfile = false
+vim.o.splitright = true
+vim.o.splitbelow = true
+vim.o.winborder = "bold"
+vim.o.signcolumn = "yes"
+vim.o.guicursor =
+ "n-v:block,i:ver25,r:hor100,i-r:blinkon100,i-r:blinkoff100,n-v:blinkon0"
+
+local tabwidth = 2
+vim.o.tabstop = tabwidth
+vim.o.softtabstop = tabwidth
+vim.o.shiftwidth = tabwidth
+vim.o.expandtab = true
+
+require("packer").startup(function(use)
+ use {"wbthomason/packer.nvim"}
+ use {"ibhagwan/fzf-lua"}
+ use {"stevearc/oil.nvim"}
+ use {"lewis6991/gitsigns.nvim"}
+ use {"williamboman/mason.nvim"}
+ use {"neovim/nvim-lspconfig"}
+ use {"nvim-treesitter/nvim-treesitter"}
+end)
+
+require("gitsigns").setup({})
+require("mason").setup({})
+require("oil").setup({})
+require("fzf-lua").setup(require("fzf-lua.profiles.telescope"))
+require("nvim-treesitter.configs").setup({
+ ensure_installed = {"lua", "c"},
+ highlight = {enable = true}
+})
+
+vim.cmd.colorscheme("mine")
+
+vim.g.mapleader = " "
+-- $ is actually so incredibly annoying and I hate it so much ugh
+vim.keymap.set({"n", "v", "o"}, "+", "$", {})
+vim.keymap.set({"n", "v"}, "<leader>s", ":noh<CR>", {silent=true})
+vim.keymap.set("n", "<leader>e", ":Oil<CR>", {})
+vim.keymap.set("n", "<C-o>", function() FzfLua.files({}) end, {})
+vim.keymap.set("n", "<C-f>", function() FzfLua.grep() end, {})
+
+local function scroll(cmd)
+ return function()
+ return math.floor(vim.fn.winheight(0) / 4) .. cmd
+ end
+end
+vim.keymap.set("n", "<C-d>", scroll("<C-e>"), {expr=true, noremap=true})
+vim.keymap.set("n", "<C-u>", scroll("<C-y>"), {expr=true, noremap=true})
+
+require("lspconfig").lua_ls.setup {
+ settings = {
+ Lua = {
+ runtime = {
+ version = "LuaJIT"
+ },
+ ["diagnostics.disable"] = {
+ "lowercase-global",
+ }
+ }
+ }
+}
+
+vim.lsp.enable({"lua_ls", "clangd"})
+vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(ev)
+ local client = vim.lsp.get_client_by_id(ev.data.client_id)
+
+ -- trigger autocomplete on every keystroke
+ local chars = {}
+ for i = 32, 126 do
+ table.insert(chars, string.char(i))
+ end
+ client.server_capabilities.completionProvider.triggerCharacters = chars
+
+ if client:supports_method("textDocument/completion") then
+ vim.lsp.completion.enable(true, client.id, ev.buf, {autotrigger = true})
+ end
+ end,
+})
+vim.cmd("set completeopt+=menu,menuone,noinsert")
+vim.diagnostic.config({virtual_text = true})
+
+
diff --git a/.config/nvim/lua/map.lua b/.config/nvim/lua/map.lua
deleted file mode 100644
index b52ad22..0000000
--- a/.config/nvim/lua/map.lua
+++ /dev/null
@@ -1,36 +0,0 @@
-vim.g.mapleader = " "
-
-local nv = {"n", "v"}
-
-vim.keymap.set(nv, "gm", "gM", {})
-vim.keymap.set(nv, "gM", "gMi", {})
-
--- Make exiting insert mode in terminal mode easier
-vim.keymap.set("t", "<ESC>", "<C-\\><C-n>", {})
-
--- Center when moving around at high speeds
-vim.keymap.set(nv, "<C-u>", "<C-u>zz", {})
-vim.keymap.set(nv, "<C-d>", "<C-d>zz", {})
-vim.keymap.set(nv, "G", "Gzz", {})
-
--- Make going to the end of a line as easy as going to the beginning
-vim.keymap.set({"n", "v", "o"}, "+", "$", {})
-
--- Yanking and pasting
-vim.keymap.set(nv, "<leader>y", "\"+y", {})
-vim.keymap.set(nv, "<leader>p", "\"+p", {})
-vim.keymap.set("x", "p", "\"_dP", {})
-vim.keymap.set("x", "<leader>P", "p", {})
-
--- Commands
-vim.keymap.set(nv, "<leader>c", "<CMD>set invhlsearch<CR>", {silent=true})
-vim.keymap.set("n", "{", "<CMD>cp<CR>", {silent=true})
-vim.keymap.set("n", "}", "<CMD>cn<CR>", {silent=true})
-
--- Common typo with me
-vim.api.nvim_create_user_command("W", "w", {bang=true})
-vim.api.nvim_create_user_command("Wa", "wa", {bang=true})
-vim.api.nvim_create_user_command("Wq", "wq", {bang=true})
-vim.api.nvim_create_user_command("Wqa", "wqa", {bang=true})
-vim.api.nvim_create_user_command("Q", "q", {bang=true})
-vim.api.nvim_create_user_command("Qa", "qa", {bang=true})
diff --git a/.config/nvim/lua/opt.lua b/.config/nvim/lua/opt.lua
deleted file mode 100644
index 446229d..0000000
--- a/.config/nvim/lua/opt.lua
+++ /dev/null
@@ -1,27 +0,0 @@
-vim.o.termguicolors = true
-vim.o.relativenumber = true
-vim.o.number = true
-vim.o.cursorline = true
-vim.o.cursorlineopt = "line"
-vim.o.ignorecase = true
-vim.o.smartcase = true
-vim.o.mouse = ""
-vim.o.cc = "80"
-vim.o.splitright = true
-vim.o.splitbelow = true
-local tabwidth = 2
-vim.o.tabstop = tabwidth
-vim.o.softtabstop = tabwidth
-vim.o.shiftwidth = tabwidth
-vim.o.expandtab = true
-vim.o.wrap = false
-
--- Disable line numbers in terminal
-vim.api.nvim_create_autocmd("TermOpen", {
- callback = function()
- vim.o.number = false
- vim.o.relativenumber = false
- end,
-})
-
-vim.cmd.colorscheme("mine")
diff --git a/.config/nvim/lua/plugin/init.lua b/.config/nvim/lua/plugin/init.lua
deleted file mode 100644
index 4e60f98..0000000
--- a/.config/nvim/lua/plugin/init.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-require("plugin.packer")
-require("plugin.setup")
-require("plugin.lsp")
diff --git a/.config/nvim/lua/plugin/lsp.lua b/.config/nvim/lua/plugin/lsp.lua
deleted file mode 100644
index 50eed85..0000000
--- a/.config/nvim/lua/plugin/lsp.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-local lspconf = require("lspconfig")
-local cmp = require("cmp")
-local capabilities = require("cmp_nvim_lsp").default_capabilities()
-
-vim.opt.signcolumn = "yes"
-
-local servers = {
- ["lua_ls"] = {
- settings = {
- Lua = {
- runtime = {
- version = "LuaJIT"
- },
- },
- },
- },
- ["clangd"] = {},
-}
-
-for lsp, conf in pairs(servers) do
- conf.capabilities = capabilities
- lspconf[lsp].setup(conf)
-end
-
-cmp.setup({
- preselect = "item",
- completion = {
- completeopt = "menu,menuone,noinsert",
- },
- window = {
- completion = cmp.config.window.bordered(),
- documentation = cmp.config.window.bordered(),
- },
- formatting = {
- fields = { "menu", "abbr", "kind" },
-
- format = function(entry, item)
- local menu_icon = {
- nvim_lsp = "L",
- buffer = "B",
- path = "P",
- nvim_lua = "V",
- }
-
- item.menu = menu_icon[entry.source.name]
-
- return item
- end,
- },
- mapping = {
- ["<CR>"] = cmp.mapping.confirm({ select = false }),
- ["<Tab>"] = cmp.mapping.select_next_item(),
- ["<S-Tab>"] = cmp.mapping.select_prev_item(),
- },
- sources = {
- { name = "path" },
- { name = "nvim_lsp" },
- { name = "buffer", keyword_length = 3 },
- },
-})
-
-vim.api.nvim_create_autocmd("LspAttach", {
- group = vim.api.nvim_create_augroup("UserLspConfig", {}),
- callback = function(ev)
- vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc"
- local opts = { buffer = ev.buf }
- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
- vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
- vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
- vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts)
- vim.keymap.set("n", "<leader>ls", vim.lsp.buf.signature_help, opts)
- vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts)
- vim.keymap.set("n", "<leader>h", vim.lsp.buf.hover, opts)
- vim.keymap.set({"n", "v"}, "<space>ca", vim.lsp.buf.code_action, opts)
- vim.keymap.set("n", "<space>f",
- function()
- vim.lsp.buf.format({async = true})
- end, opts)
- end
-})
diff --git a/.config/nvim/lua/plugin/packer.lua b/.config/nvim/lua/plugin/packer.lua
deleted file mode 100644
index 359ceab..0000000
--- a/.config/nvim/lua/plugin/packer.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-return require("packer").startup(function(use)
- use {"wbthomason/packer.nvim"}
-
- use {"ibhagwan/fzf-lua"}
- use {"stevearc/oil.nvim"}
-
- use {"lewis6991/gitsigns.nvim"}
-
- use {"williamboman/mason.nvim"}
- use {"neovim/nvim-lspconfig"}
- use {"hrsh7th/nvim-cmp"}
- use {"hrsh7th/cmp-buffer"}
- use {"hrsh7th/cmp-path"}
- use {"hrsh7th/cmp-nvim-lsp"}
- use {"hrsh7th/cmp-nvim-lua"}
-
- use {"michaeljsmith/vim-indent-object"}
-end)
diff --git a/.config/nvim/lua/plugin/setup.lua b/.config/nvim/lua/plugin/setup.lua
deleted file mode 100644
index 7a53c6a..0000000
--- a/.config/nvim/lua/plugin/setup.lua
+++ /dev/null
@@ -1,12 +0,0 @@
----@diagnostic disable: undefined-global
-
-require("gitsigns").setup({})
-require("mason").setup({})
-
-require("oil").setup({})
-vim.keymap.set("n", "<leader>e", "<CMD>Oil<CR>", {})
-
-require("fzf-lua").setup(require("fzf-lua.profiles.telescope"))
-vim.keymap.set("n", "<C-o>", function() FzfLua.files({}) end, {})
-
-vim.keymap.set("n", "<C-f>", function() FzfLua.grep() end, {})