From db9835dc2387b2605b15501b43bacf6aeb885f0f Mon Sep 17 00:00:00 2001 From: Hamza Ali Date: Thu, 18 May 2023 10:22:21 -0400 Subject: [PATCH] update to using lua in init.vim --- nvim/coc-settings.json | 127 ++----------- nvim/init.vim | 398 ++++++++++++++++++--------------------- nvim/plugins.vim | 26 +-- nvim/word_processing.vim | 19 -- 4 files changed, 206 insertions(+), 364 deletions(-) delete mode 100644 nvim/word_processing.vim diff --git a/nvim/coc-settings.json b/nvim/coc-settings.json index c1367b5..146279e 100644 --- a/nvim/coc-settings.json +++ b/nvim/coc-settings.json @@ -1,117 +1,16 @@ { - "coc.preferences.formatOnSaveFiletypes": ["gunk", "go", "css", "svelte", "typescript", "javascript"], - "coc.preferences.currentFunctionSymbolAutoUpdate": true, - "diagnostic.virtualText": true, - "diagnostic.virtualTextCurrentLineOnly": true, - "diagnostic.virtualTextPrefix": " ⇒ ", - "diagnostic.virtualTextLineSeparator": "|", - "diagnostic.errorSign": "✘", - "diagnostic.warningSign": "!", - "diagnostic.infoSign": "?", - "diagnostic.checkCurrentLine": true, - "codeLens.enable": false, - "languageserver": { - "golang": { - "command": "gopls", - "rootPatterns": ["go.mod", ".vim/", ".git/", ".hg/"], - "filetypes": ["go"] - } - }, - "explorer": { - "width": 32, - "icon.enableNerdfont": true, - "file.reveal.whenOpen": false, - "keyMappings.global": { - "l": ["wait", "expandable?", "expand", "open:select:keep"], - "L": ["wait", "expandable?", "expand", "open"] - } - }, - "suggest.completionItemKindLabels": { - "class": "", - "color": "", - "constant": "", - "constructor": "", - "default": "", - "enum": "", - "enumMember": "", - "event": "鬒", - "field": "", - "file": "", - "folder": "", - "function": "ƒ", - "interface": "", - "keyword": "", - "method": "", - "module": "פּ", - "operator": "", - "property": "", - "reference": "", - "snippet": "", - "struct": "", - "text": "", - "typeParameter": "", - "unit": "", - "value": "", - "variable": "⒳" - }, - "go.goplsOptions": { - "completeUnimported": true, - "gofumpt": true, - "hoverKind": "SynopsisDocumentation", - "linksInHover": false - }, - "cSpell.allowCompoundWords": true, - "cSpell.enabledLanguageIds": [ "markdown", "pandoc" ], - "cSpell.languagesettings": [ - - { - "languageId": "gunk", - "local": "en", - "dictionaries": ["wordsEn", "softwareTerms", "misc", "go"] - } - ], - "cSpell.userWords": [ - "Brankas", - "GRPC", - "Glitchless", - "Gorm", - "Idempotency", - "Minecraft", - "ORMs", - "Overworld", - "Piglin", - "Speedrunning", - "accountingreports", - "appstatus", - "authorizationholds", - "discordgo", - "emptypb", - "fset", - "glaccounts", - "gohtml", - "hhhapz", - "livestreams", - "newpage", - "nums", - "openapiv", - "pagebreak", - "pkgs", - "proto", - "protobuf", - "protoc", - "resends", - "speedrun", - "speedrunner", - "speedrunners", - "speedruns", - "struct", - "teamortix", - "textwidth", - "unban" - ], - "coc-gunk": { - "server.args": ["-lint"] + "suggest.noselect": true, + "suggest.enablePreselect": false, + "coc.preferences.formatOnSave": true, + "codeLens.enable": true, + "codeLens.position": "eol", + "go.goplsOptions": { + "gofumpt": true, + "semanticTokens": true, + "staticcheck": true, + "usePlaceholders": false }, - "svelte.enable-ts-plugin": true - + "clangd.path": "~/.config/coc/extensions/coc-clangd-data/install/15.0.6/clangd_15.0.6/bin/clangd", + "svelte.enable-ts-plugin": true, + "tsserver.log": "verbose" } diff --git a/nvim/init.vim b/nvim/init.vim index 2331f87..7b013ff 100644 --- a/nvim/init.vim +++ b/nvim/init.vim @@ -1,73 +1,103 @@ set nocompatible so ~/.config/nvim/plugins.vim -so ~/.config/nvim/word_processing.vim - -" --Plugin Configurations -let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#whitespace#enabled = 0 -let g:airline_powerline_fonts = 1 -let g:airline_theme='base16_bespin' -" let g:formatdef_gunk = '"gunk format -"' -" let g:formatters_gunk = ['gunk'] -let g:go_gopls_enabled = 1 -let g:pandoc#command#autoexec_command = "Pandoc! pdf --citeproc" -let g:pandoc#formatting#mode = 'ha' -let g:pandoc#formatting#textwidth = 100 -let g:pandoc#spell#enabled = 0 -let g:svelte_indent_script = 0 -let g:svelte_indent_style = 0 - -"--My ColorScheme -set background=dark -set termguicolors -let g:srcery_italic=1 -let g:srcery_bold=1 -let g:srcery_white='#FCE8C3' -let g:srcery_bright_white='#FCF5E8' - -colorscheme srcery - -" General -set noerrorbells -set title -set number -set relativenumber -set signcolumn=number -set ruler -set wrap -set scrolloff=3 -set clipboard+=unnamedplus -set colorcolumn=81 -set guicursor+=a:blinkon0 -set nofoldenable -set updatetime=300 -set shortmess+=c -set mouse=ar - -" Indentation and highlighting -filetype on -filetype plugin on -filetype plugin indent on -filetype indent on -set shiftwidth=4 -set tabstop=4 -set softtabstop=0 - -" Searchstuff -set ignorecase -set smartcase -set incsearch -set hlsearch - -" Purple comments and transparent background -hi Comment guifg=#b799bd ctermfg=102 -hi Normal guibg=#NONE ctermbg=NONE - -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} lua <nohls') +vim.keymap.set('n', ';', ':') +vim.keymap.set({'n', 'i'}, '', 'bprev') +vim.keymap.set({'n', 'i'}, '', 'bnext') +vim.keymap.set('n', 'K', 'call ShowDocumentation()', { silent = true }) +vim.keymap.set('n', 'w', ':e ') +vim.keymap.set('n', 'E', 'Files') +vim.keymap.set('n', 'b', 'Buffers') +vim.keymap.set('n', 'd', 'bp:bd #') +vim.keymap.set('n', 'rn', '(coc-rename)') +vim.keymap.set('n', 'pp', 'Prettier') +vim.keymap.set('n', 'ff', 'Telescope find_files') +vim.keymap.set('n', 'fg', 'Telescope live_grep') +vim.keymap.set('n', 'fb', 'Telescope buffers') +vim.keymap.set('n', 'fh', 'Telescope help_tags') +vim.keymap.set('n', 'so', 'source ~/.config/nvim/init.vim') + +vim.keymap.set('n', '[g', '(coc-diagnostic-prev)', { silent = true }) +vim.keymap.set('n', ']g', '(coc-diagnostic-next)', { silent = true }) +vim.keymap.set('n', 'cl', '(coc-codelens-action)', { silent = true }) +vim.keymap.set('n', 'gd', '(coc-definition)', { silent = true }) +vim.keymap.set('n', 'gy', '(coc-type-definition)', { silent = true }) +vim.keymap.set('n', 'gi', '(coc-implementaiton)', { silent = true }) +vim.keymap.set('n', 'gr', '(coc-references)', { silent = true }) + +vim.keymap.set('i', 'jj', '') +vim.keymap.set('i', '', 'coc#pum#visible() ? coc#pum#next(1) : ""', { expr = true, silent = true }) +vim.keymap.set('i', '', 'coc#pum#visible() ? coc#pum#prev(1) : ""', { expr = true, silent = true }) +vim.keymap.set('i', '', 'EnterSelect()', { expr = true, silent = true }) +vim.keymap.set('i', '', 'coc#refresh()', { expr = true, silent = true }) +vim.keymap.set('i', '', 'call CocActionAsync("showSignatureHelp")a') +vim.keymap.set('i', '', 'call CocActionAsync("codeAction", "")', { silent = true}) EOF + """""""""""""""""""""""""""""""""""""""" " " " KEYBINDS " " " """""""""""""""""""""""""""""""""""""""" -inoremap jj -noremap // :nohls -noremap ; : command WQ wq command Wq q command W w command Q w - -nnoremap :bprev -nnoremap :bnext -inoremap :bprev -inoremap :bnext -nnoremap gf :e - -noremap -noremap - -inoremap :call CocActionAsync('showSignatureHelp') -noremap :call CocAction('diagnosticNext') -noremap :call CocAction('diagnosticPrevious') -nnoremap K :call show_documentation() - -let mapleader="," - -nnoremap w :e -nnoremap E :Files -nnoremap b :Buffers -nnoremap d :bp:bd # -nnoremap ff Telescope find_files -nnoremap fg Telescope live_grep -nnoremap fb Telescope buffers -nnoremap fh Telescope help_tags - -nmap a (coc-codeaction-selected) -noremap y :VCopy -vnoremap y :VCopyVisual -noremap pd :Pandoc pdf --citeproc -Vmainfont="TeX Gyre Schola" - \ -Vmathfont="TeX Gyre Schola Math" -Vdocumentclass="scrartcl" - \ --resource-path=images --highlight-style ~/.config/pandoc/code.theme - \ -Fpandoc-crossref -Fpandoc-include -Fpantable - -nnoremap g :GoRun -nnoremap f :PrettierAsync -nnoremap so :so ~/.config/nvim/init.vim -nnoremap e :CocCommand explorer --toggle -nnoremap lg :CocCommand workspace.showOutput coc-gunk - -noremap dap } p -noremap vap :m '<-2gv=gv - -" COC -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) -nmap rn (coc-rename) -nnoremap o :CocList outline - -let g:copilot_filetypes = { - \ '*': v:false, - \ 'gunk': v:true, - \ } +command! -nargs=0 Prettier :CocCommand prettier.forceFormatDocument """""""""""""""""""""""""""""""""""""""" " " @@ -159,99 +169,63 @@ let g:copilot_filetypes = { """""""""""""""""""""""""""""""""""""""" -autocmd FileType html,css,scss - \ setlocal ts=4 sts=4 sw=4 expandtab -autocmd FileType javascript,typescript,typescriptreact,svelte - \ setlocal ts=2 sts=2 sw=2 expandtab -autocmd BufNewFile,BufRead *.markdown,*.text - \ setlocal ts=2 sts=2 sw=2 - \ set textwidth=100 colorcolumn=101 -autocmd FileType sql - \setlocal ts=2 sts=2 sw=2 expandtab -autocmd BufNewFile,BufRead *.md.tmpl - \ setlocal filetype=markdown -autocmd BufNewFile,BufRead .*config,*.config,config - \ setlocal filetype=gitconfig -autocmd BufNewFile,BufRead *.bolt - \ setlocal filetype=typescript -autocmd BufNewFile,BufRead *.cql - \ setlocal filetype=cql -autocmd BufNewFile,BufRead *.gradle,*.groovy - \ setlocal filetype=groovy -autocmd BufNewFile,BufRead *.osgjs,*.osgjs.gz +" autocmd FileType html,css,scss + \ setlocal ts=4 sts=4 sw=4 expandtab +" autocmd FileType javascript,typescript,typescriptreact,svelte + \ setlocal ts=2 sts=2 sw=2 expandtab +" autocmd BufNewFile,BufRead *.markdown,*.text + \ setlocal ts=2 sts=2 sw=2 +" autocmd FileType sql + \setlocal ts=2 sts=2 sw=2 expandtab +" autocmd BufNewFile,BufRead *.md.tmpl + \ setlocal filetype=markdown +" autocmd BufNewFile,BufRead .*config,*.config,config + \ setlocal filetype=gitconfig +" autocmd BufNewFile,BufRead *.bolt + \ setlocal filetype=typescript +" autocmd BufNewFile,BufRead *.cql + \ setlocal filetype=cql +" autocmd BufNewFile,BufRead *.gradle,*.groovy + \ setlocal filetype=groovy +" autocmd BufNewFile,BufRead *.osgjs,*.osgjs.gz \ setlocal filetype=json -autocmd BufNewFile,BufRead *.postcss - \ setlocal filetype=css -autocmd BufNewFile,BufRead *.go.tpl,*.peg,*.qtpl - \ setlocal syntax=go -autocmd BufNewFile,BufRead *.gunk - \ setlocal filetype=gunk syntax=go -autocmd BufNewFile,BufRead *.gltf - \ setlocal filetype=gltf syntax=json -autocmd BufNewFile,BufRead *.frag - \ setlocal filetype=glsl syntax=glsl -" autocmd BufWrite *.gunk -" \ :Autoformat +" autocmd BufNewFile,BufRead *.postcss + \ setlocal filetype=css +" autocmd BufNewFile,BufRead *.go.tpl,*.peg,*.qtpl + \ setlocal syntax=go +" autocmd BufNewFile,BufRead *.gunk + \ setlocal filetype=gunk syntax=go +" autocmd BufNewFile,BufRead *.gltf + \ setlocal filetype=gltf syntax=json +" autocmd BufNewFile,BufRead *.frag + \ setlocal filetype=glsl syntax=glsl +" +autocmd FileType json syntax match Comment +\/\/.\+$+ +autocmd BufWritePre *.svelte,*.ts :silent call CocAction('runCommand', 'editor.action.organizeImport') +autocmd FileType svelte setlocal commentstring=//\ %s -let g:coc_snippet_next = '' -let g:coc_snippetnext = '' -autocmd CursorHold * silent call CocActionAsync('highlight') - -inoremap - \ pumvisible() ? coc#_select_confirm() : - \ coc#expandableOrJumpable() ? - \ "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : - \ check_back_space() ? "\" : - \ coc#refresh() -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction +augroup mygroup + autocmd! + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end -inoremap coc#refresh() +function! EnterSelect() + if coc#pum#visible() && coc#pum#info()["index"] == -1 + return "\o" -inoremap pumvisible() ? coc#_select_confirm() - \: "\u\\=coc#on_enter()\" + elseif coc#pum#visible() + return coc#_select_confirm() -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') - endif + else + return "\u\\=coc#on_enter()\" endfunction -function! s:doHover() - if coc#rpc#ready() - let diagnostics = CocAction('diagnosticList') - if empty(diagnostics) - call CocActionAsync('doHover') - return - endif - let file = expand('%:p') - let lnum = line('.') - let cnum = col('.') - for v in diagnostics - if v['file'] != file - \ || lnum != v['lnum'] - \ || cnum < v['location']['range']['start']['character'] - \ || cnum > v['location']['range']['end']['character'] - call CocActionAsync('doHover') - return - endif - endfor - endif +function! ShowDocumentation() + if CocAction('hasProvider', 'hover') + call CocActionAsync('doHover') + else + call feedkeys('K', 'in') + endif endfunction - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -noremap py :! clear; python % diff --git a/nvim/plugins.vim b/nvim/plugins.vim index 081619e..899182f 100644 --- a/nvim/plugins.vim +++ b/nvim/plugins.vim @@ -1,33 +1,21 @@ call plug#begin() -Plug 'chrisbra/Colorizer' -Plug 'KabbAmine/vCoolor.vim' -Plug 'ap/vim-css-color' +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'fatih/vim-go', {'do': ':GoUpdateBinaries'} +Plug 'evanleck/vim-svelte' +Plug 'lervag/vimtex' Plug 'cespare/vim-toml' -Plug 'evanleck/vim-svelte', {'branch': 'main'} -Plug 'fatih/vim-go' -Plug 'github/copilot.vim' + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'nvim-lua/plenary.nvim' Plug 'nvim-telescope/telescope.nvim' -Plug 'machakann/vim-highlightedyank' -Plug 'mattn/emmet-vim' -Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " We recommend updating the parsers on update -Plug 'posva/vim-vue' -Plug 'prettier/vim-prettier', { 'do': 'yarn install' } -Plug 'ron89/thesaurus_query.vim' Plug 'srcery-colors/srcery-vim' +Plug 'bluz71/vim-moonfly-colors' +Plug 'catppuccin/nvim', { 'as': 'catppuccin' } Plug 'tpope/vim-commentary' -Plug 'tpope/vim-unimpaired' -Plug 'udalov/kotlin-vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' -Plug 'vim-autoformat/vim-autoformat' -Plug 'vim-pandoc/vim-pandoc' -Plug 'vim-pandoc/vim-pandoc-syntax' -Plug '~/code/misc/vcopy.nvim' -Plug 'hashivim/vim-terraform' call plug#end() diff --git a/nvim/word_processing.vim b/nvim/word_processing.vim deleted file mode 100644 index 6e4fd3e..0000000 --- a/nvim/word_processing.vim +++ /dev/null @@ -1,19 +0,0 @@ -func! WordProcessor() - " movement changes - map j gj - map k gk - map 0 g0 - map $ g$ - " formatting text - setlocal wrap - setlocal linebreak - " spelling and thesaurus - setlocal spell spelllang=en_us - " complete+=s makes autocompletion search the thesaurus - set complete+=s - set expandtab - set tabstop=2 - set textwidth=100 -endfu - -com! WP call WordProcessor()