set nocompatible " stops wack stuff set wildmenu " better command line completion set showmode " show editing mode set showcmd " show partial commands set encoding=UTF-8 set title " spellcheck set spelllang=en,fr,de,cjk set spellsuggest=best,9 nnoremap :set spell! inoremap :set spell! " use case-insensitive search except when using capitals set ignorecase set smartcase set backspace=indent,eol,start " Allow backspacing over autoindent, line breaks and start of insert action set nostartofline " stop certain things from going to first character in line set ruler " display cursor position set confirm " ask to save stuff before failed command set visualbell " visual indicator instead of beep set t_vb= " reset terminal code for visual bell set cmdheight=2 " set command window height to 2 lines set number " display line numbers set notimeout ttimeout ttimeoutlen=200 " timeout on keycodes but not mappings " Indentation Stuff set shiftwidth=4 set tabstop=4 set autoindent " keep indent of file or smth " Use and to navigate through pop-up menu inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" nnoremap f CHADopen set lazyredraw " auto-indenting if has('filetype') filetype indent plugin on endif " syntax highlighting if has('syntax') syntax on endif " latex config let g:tex_flavor = 'latex' let g:tex_conceal = '' "let g:vimtex_fold_manual = 1 "let g:vimtex_latexmk_continuous = 1 "let g:vimtex_compiler_progname = 'nvr' " Plugins will be downloaded under the specified directory. call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged') " Declare the list of plugins. " Theme Plug 'catppuccin/nvim', {'as': 'catppuccin'} " Statusline plugin Plug 'feline-nvim/feline.nvim', { 'branch': 'develop' } " Misc Plug 'glepnir/dashboard-nvim' " startup dashboard Plug 'kyazdani42/nvim-web-devicons' " icons! Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " better syntax highlighting Plug 'lewis6991/spellsitter.nvim' " treesitter for spelling Plug 'alaviss/nim.nvim' " nim language support Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " searching Plug 'junegunn/fzf.vim' Plug 'tpope/vim-commentary' " commenting tool Plug 'rrethy/vim-hexokinase', { 'do': 'make hexokinase' } " show colours "Plug 'folke/trouble.nvim' " git signs Plug 'nvim-lua/plenary.nvim' Plug 'lewis6991/gitsigns.nvim' " LaTeX "Plug 'lervag/vimtex' Plug 'Konfekt/FastFold' " speeds or folding or smth Plug 'matze/vim-tex-fold' " rust-lsp configuration Plug 'neovim/nvim-lspconfig' "Plug 'simrat39/rust-tools.nvim' " Plug 'nvim-lua/lsp_extensions.nvim' " File tree Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} " Optional dependencies Plug 'nvim-lua/popup.nvim' " Plug 'nvim-telescope/telescope.nvim' call plug#end() " Set colour scheme autocmd vimenter * ++nested colorscheme catppuccin colorscheme catppuccin let g:Hexokinase_highlighters = ['sign_column'] " Setup plugins lua require('feline').setup({components = require('catppuccin.core.integrations.feline'),}) lua require('gitsigns').setup() lua require('spellsitter').setup() " LSP config lua << EOF -- Mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap=true, silent=true } -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) -- Enable completion triggered by vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()', opts) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'rn', 'lua vim.lsp.buf.rename()', opts) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'ca', 'lua vim.lsp.buf.code_action()', opts) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', 'lua vim.lsp.buf.references()', opts) vim.api.nvim_buf_set_keymap(bufnr, 'n', 'f', 'lua vim.lsp.buf.formatting()', opts) end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local servers = { 'pylsp', 'rust_analyzer', 'asm_lsp', 'gdscript' } for _, lsp in pairs(servers) do require('lspconfig')[lsp].setup { on_attach = on_attach, flags = { -- This will be the default in neovim 0.7+ debounce_text_changes = 150, } } end require('lspconfig').arduino_language_server.setup({ cmd = { -- Required "arduino-language-server", "-cli-config", "/home/erin/.arduino15/arduino-cli.yaml", -- Optional "-cli", "/usr/bin/arduino-cli", "-clangd", "/usr/bin/clangd" } }) EOF " Default value is clap let g:dashboard_default_executive ='fzf' let g:dashboard_custom_header=[ \'', \'⡆⣐⢕⢕⢕⢕⢕⢕⢕⢕⠅⢗⢕⢕⢕⢕⢕⢕⢕⠕⠕⢕⢕⢕⢕⢕⢕⢕⢕⢕', \'⢐⢕⢕⢕⢕⢕⣕⢕⢕⠕⠁⢕⢕⢕⢕⢕⢕⢕⢕⠅⡄⢕⢕⢕⢕⢕⢕⢕⢕⢕', \'⢕⢕⢕⢕⢕⠅⢗⢕⠕⣠⠄⣗⢕⢕⠕⢕⢕⢕⠕⢠⣿⠐⢕⢕⢕⠑⢕⢕⠵⢕', \'⢕⢕⢕⢕⠁⢜⠕⢁⣴⣿⡇⢓⢕⢵⢐⢕⢕⠕⢁⣾⢿⣧⠑⢕⢕⠄⢑⢕⠅⢕', \'⢕⢕⠵⢁⠔⢁⣤⣤⣶⣶⣶⡐⣕⢽⠐⢕⠕⣡⣾⣶⣶⣶⣤⡁⢓⢕⠄⢑⢅⢑', \'⠍⣧⠄⣶⣾⣿⣿⣿⣿⣿⣿⣷⣔⢕⢄⢡⣾⣿⣿⣿⣿⣿⣿⣿⣦⡑⢕⢤⠱⢐', \'⢠⢕⠅⣾⣿⠋⢿⣿⣿⣿⠉⣿⣿⣷⣦⣶⣽⣿⣿⠈⣿⣿⣿⣿⠏⢹⣷⣷⡅⢐', \'⣔⢕⢥⢻⣿⡀⠈⠛⠛⠁⢠⣿⣿⣿⣿⣿⣿⣿⣿⡀⠈⠛⠛⠁⠄⣼⣿⣿⡇⢔', \'⢕⢕⢽⢸⢟⢟⢖⢖⢤⣶⡟⢻⣿⡿⠻⣿⣿⡟⢀⣿⣦⢤⢤⢔⢞⢿⢿⣿⠁⢕', \'⢕⢕⠅⣐⢕⢕⢕⢕⢕⣿⣿⡄⠛⢀⣦⠈⠛⢁⣼⣿⢗⢕⢕⢕⢕⢕⢕⡏⣘⢕', \'⢕⢕⠅⢓⣕⣕⣕⣕⣵⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣷⣕⢕⢕⢕⢕⡵⢀⢕⢕', \'⢑⢕⠃⡈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢃⢕⢕⢕', \'⣆⢕⠄⢱⣄⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢁⢕⢕⠕⢁', \'⣿⣦⡀⣿⣿⣷⣶⣬⣍⣛⣛⣛⡛⠿⠿⠿⠛⠛⢛⣛⣉⣭⣤⣂⢜⠕⢑⣡⣴⣿', \'', \] " trouble config " seems to be broken rn? " lua require("trouble").setup() lua <