set nocompatible filetype off colorscheme torte let mapleader = " " " ----[Plugins]---- call plug#begin() " Plug 'ms-jpq/coq_nvim', {'branch': 'coq'} " Plug 'ms-jpq/coq.artifacts', {'branch': 'artifacts'} " Plug 'ms-jpq/coq.thirdparty', {'branch': '3p'} " Plug 'neovim/nvim-lspconfig' " Plug 'williamboman/nvim-lsp-installer' Plug 'preservim/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' Plug 'tikhomirov/vim-glsl' Plug 'powerman/vim-plugin-AnsiEsc' Plug 'neovim/nvim-lspconfig' Plug 'williamboman/mason.nvim' Plug 'williamboman/mason-lspconfig.nvim' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-cmdline' Plug 'hrsh7th/nvim-cmp' Plug 'L3MON4D3/LuaSnip' Plug 'VonHeikemen/lsp-zero.nvim', {'branch': 'v3.x'} Plug '~/.config/nvim/plugins/qt-uic' Plug 'nvim-lua/plenary.nvim' Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.6' } Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'nvim-treesitter/nvim-treesitter-context' Plug 'nvim-treesitter/playground' Plug 'mbbill/undotree' Plug 'tpope/vim-fugitive' Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && npx --yes yarn install' } call plug#end() " ----[COQ]---- " let g:coq_settings = {'auto_start': 'shut-up', 'display.pum.fast_close': v:false} " ----[NVim LSPConfig]---- lua << EOF local lsp = require 'lspconfig' -- local qt_uic = require 'qt_uic' -- local coq = require 'coq' -- lsp.cmake.setup{} -- lsp.pyright.setup{} -- lsp.clangd.setup{coq.lsp_ensure_capabilities{}} -- lsp.cmake.setup{coq.lsp_ensure_capabilities{}} -- lsp.pyright.setup{coq.lsp_ensure_capabilities{}} local lsp_zero = require('lsp-zero') lsp_zero.on_attach(function(client, bufnr) -- see :help lsp-zero-keybindings -- to learn the available actions lsp_zero.default_keymaps({buffer = bufnr}) end) local cmp = require('cmp') local cmp_lsp = require("cmp_nvim_lsp") local capabilities = vim.tbl_deep_extend( "force", {}, vim.lsp.protocol.make_client_capabilities(), cmp_lsp.default_capabilities()) -- to learn how to use mason.nvim with lsp-zero -- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guides/integrate-with-mason-nvim.md local lspconfig = require('lspconfig') require('mason').setup({}) require('mason-lspconfig').setup({ handlers = { function(server_name) lspconfig[server_name].setup({capabilities=capabilities}) end, ['lua_ls'] = function() lspconfig.lua_ls.setup { capabilities = capabilities, settings = { Lua = { runtime = { version = 'Lua 5.1' }, diagnostics = { globals = { 'vim', 'it', 'describe', 'before_each', 'after_each' }, } } } } end, } }) -- memes = vim.lsp.start_client({ -- name='qt_uic', -- cmd={'python', 'lsptest.py'}, -- root_dir='/home/devnull' -- }) -- qt_uic.setup{} cmp.setup({ mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.select_prev_item(cmp_select), [''] = cmp.mapping.select_next_item(cmp_select), [''] = cmp.mapping.select_next_item(cmp_select), [''] = cmp.mapping.confirm({ select = true }), [''] = cmp.mapping.confirm({ select = true }), [''] = cmp.mapping.complete(), }), sources = cmp.config.sources( { { name = 'nvim_lsp' }, -- { name = 'qt_uic' }, }, { { name = 'buffer' }, } ) }) -- lsp.clangd.setup{} -- lsp.cmake.setup{} -- lsp.pyright.setup{} -- lsp.clangd.setup{coq.lsp_ensure_capabilities{}} -- lsp.cmake.setup{coq.lsp_ensure_capabilities{}} -- lsp.pyright.setup{coq.lsp_ensure_capabilities{}} require("nvim-treesitter.configs").setup({ -- A list of parser names, or "all" ensure_installed = { "vimdoc", "c", "cpp", "bash", "python", }, -- Install parsers synchronously (only applied to `ensure_installed`) sync_install = false, -- Automatically install missing parsers when entering buffer -- Recommendation: set to false if you don"t have `tree-sitter` CLI installed locally auto_install = true, highlight = { -- `false` will disable the whole extension enable = true, -- Setting this to true will run `:h syntax` and tree-sitter at the same time. -- Set this to `true` if you depend on "syntax" being enabled (like for indentation). -- Using this option may slow down your editor, and you may see some duplicate highlights. -- Instead of true it can also be a list of languages additional_vim_regex_highlighting = false, }, }) vim.keymap.set('n', 'e', vim.diagnostic.open_float) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) vim.keymap.set('n', ']d', vim.diagnostic.goto_next) vim.keymap.set('n', 'q', vim.diagnostic.setloclist) vim.keymap.set('n', 'gD', vim.lsp.buf.declaration) vim.keymap.set('n', 'gd', vim.lsp.buf.definition) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation) --vim.keymap.set('n', 'e', vim.lsp.diagnostic.show_line_diagnostics) vim.keymap.set('n', 'grn', vim.lsp.buf.rename) vim.keymap.set('n', 'gra', vim.lsp.buf.code_action) vim.keymap.set('n', 'grr', vim.lsp.buf.references) vim.keymap.set('i', '^S', vim.lsp.buf.signature_help) local builtin = require('telescope.builtin') vim.keymap.set('n', 'ff', builtin.find_files, {}) vim.keymap.set('n', 'fg', builtin.live_grep, {}) vim.keymap.set('n', 'fb', builtin.buffers, {}) vim.keymap.set('n', 'fh', builtin.help_tags, {}) vim.keymap.set('n', 'u', vim.cmd.UndotreeToggle) vim.keymap.set('n', 'gs', vim.cmd.Git) vim.opt.scrolloff = 8 vim.opt.signcolumn = 'yes' vim.opt.isfname:append('@-@') -- Dragging vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") EOF " ----[Look and Feel]---- " Syntax hilighting and line numbers syntax on set encoding=utf-8 set number relativenumber set wildmode=longest,list,full autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o set title " Indents filetype plugin indent on " Tabbing set tabstop=4 set shiftwidth=4 set softtabstop=4 expandtab " Splits below and right set splitbelow splitright " Block cursor set guicursor=i:block " ----[File Specific Stuff]---- " yml autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType yml setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType meson setlocal ts=4 sts=4 sw=4 expandtab autocmd FileType xacro setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType xml setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType urdf setlocal ts=2 sts=2 sw=2 expandtab autocmd FileType idl setlocal ts=2 sts=2 sw=2 expandtab autocmd! BufNewFile,BufRead *.vs,*.fs,*.glvs,*.glfs,*.glsl set ft=glsl " ----[NERDTree]---- nnoremap :NERDTreeToggle " ----[Macros]---- " Find and replace macro nnoremap S :%s//g nnoremap zz nnoremap zz " Copy paste vnoremap "+y map "+P " xnoremap p "_dP " sudo write, TODO: make this not fuck things up " command W :execute ':silent w !sudo tee % > /dev/null' | :edit! " ----[Pre / Post Write]---- " Get rid of extra whitespace autocmd BufWritePre * %s/\s\+$//e " Run xrdb when Xresources or Xdefaults are changed autocmd BufWritePost *Xresources,*Xdefaults !xrdb % " Reload sxhkd when config is edited autocmd BufWritePost sxhkdrc :silent !pkill sxhkd; sxhkd & autocmd BufNewFile,BufRead *.compute set syntax=hlsl