aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/init.lua')
-rw-r--r--.config/nvim/init.lua96
1 files changed, 93 insertions, 3 deletions
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})
+
+