diff options
Diffstat (limited to '.config/nvim/init.lua')
| -rw-r--r-- | .config/nvim/init.lua | 96 |
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}) + + |
