let g:mapleader = '\' let g:vsnip_snippet_dir = '~/.config/nvim/snippets' lua <'] = cmp.mapping.scroll_docs(-4), -- [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'vsnip' }, -- { name = 'man' } }, { { name = 'buffer' } }) }) cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). }, { { name = 'buffer' }, }) }) -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = 'path' }, { name = 'man' }, }, { { name = 'cmdline' } } ) }) cmp.register_source('man', { complete = function(self, request, callback) local input = string.match(request.context.cursor_before_line, "Man%s+(.*)$") if not input then return end local result = {} local handle = io.popen("man -k . | cut -d ' ' -f 1,2 | sed 's/ (/(/'") if handle then for line in handle:lines() do if vim.startswith(line:lower(), input:lower()) then table.insert(result, { label = line, kind = cmp.lsp.CompletionItemKind.File, }) end end handle:close() end callback({ items = result, isIncomplete = false }) end }) require("wpm").setup({ sample_count = 8, sample_interval = 750, percentile = 1 }) local capabilities = require('cmp_nvim_lsp').default_capabilities() require('lspconfig')['clangd'].setup { capabilities = capabilities } require('lspconfig')['ts_ls'].setup { capabilities = capabilities, settings = { eslint = { rules = { eqeqeq = "off" } } } } require('lspconfig')['zls'].setup { capabilities = capabilities } require('lspconfig')['intelephense'].setup { capabilities = capabilities } require('lspconfig')['jdtls'].setup { capabilities = capabilities } vim.diagnostic.config({ signs = false }) require('whitespace-nvim').setup({ highlight = 'Underlined', ignored_filetypes = { 'TelescopePrompt', 'Trouble', 'help', 'dashboard' }, -- `ignore_terminal` configures whether to ignore terminal buffers ignore_terminal = true, }) require'nvim-treesitter.configs'.setup { ensure_installed = { "c", "cpp", "javascript", "html", "lua", "vim", "vimdoc", "java", "sql", "query", "markdown", "markdown_inline" }, sync_install = false, textobjects = { enable = true }, injections = { enable = true, }, auto_install = true, -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! highlight = { enable = true, disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end, additional_vim_regex_highlighting = false, }, query_linter = { enable = true, lint_events = {"BufWrite", "CursorHold"}, }, } require('img-clip').setup( { -- recommended settings default = { embed_image_as_base64 = false, prompt_for_file_name = false, drag_and_drop = { insert_mode = true, }, }, } ) require('render-markdown').setup { file_types = { "markdown", "Avante" }, enable = true, } require('avante_lib').load() require('avante').setup({ mappings = { --- @class AvanteConflictMappings diff = { ours = "co", theirs = "ct", all_theirs = "ca", both = "cb", cursor = "cc", next = "]x", prev = "[x", }, suggestion = { accept = "", next = "", prev = "", dismiss = "", }, jump = { next = "]]", prev = "[[", }, submit = { normal = "", insert = "", }, }, provider = "ollama", vendors = { ---@type AvanteProvider ollama = { ["local"] = true, endpoint = "127.0.0.1:11434/v1", -- model = 'qwen2.5:7b-instruct-q4_K_M', model = 'qwen2.5-coder:7b-instruct-q5_K_M', -- model = 'yi-coder:9b-chat-q4_0', -- model = "codestral", -- model = "codestral:22b-v0.1-q6_K", -- model = "mistral-nemo:12b-instruct-2407-q8_0", -- model = "mistral-nemo:12b-instruct-2407-q4_K_S", -- model = "deepseek-coder-v2:16b-lite-instruct-q5_K_M", -- model = "llama3.1:8b-instruct-q5_K_M", -- model = "starcoder2:15b-instruct-v0.1-q3_K_S", -- model = "gemma2:27b-instruct-q5_K_M", -- model = "mixtral:8x7b-instruct-v0.1-q3_K_L", parse_curl_args = function(opts, code_opts) return { url = opts.endpoint .. "/chat/completions", headers = { ["Accept"] = "application/json", ["Content-Type"] = "application/json", }, body = { model = opts.model, messages = require("avante.providers").copilot.parse_message(code_opts), -- you can make your own message, but this is very advanced max_tokens = 20000, stream = true, }, } end, parse_response_data = function(data_stream, event_state, opts) require("avante.providers").openai.parse_response(data_stream, event_state, opts) end, }, }, }) EOF set autoindent expandtab tabstop=2 shiftwidth=2 number set mouse=a set mousemodel=popup set noshowmode set termguicolors set title set smartcase set showtabline=2 set nocompatible set signcolumn=no filetype plugin on let g:vimspector_enable_mappings = 'HUMAN' let g:vimspector_enable_debug_logging = 0 let g:lightline = { \ 'colorscheme': 'landscape', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'readonly', 'filename', 'modified' ] ], \ 'right': [ [ 'lineinfo' ], \ [ 'percent' ], \ [ 'fmtcustom', 'enccustom', 'ftcustom', 'wpm' ] ] \ }, \ 'tabline': { \ 'left': [ ['buffers'] ], \ 'right': [ ['close'], ['tabscustom'] ] \ }, \ 'component_expand': { \ 'buffers': 'lightline#bufferline#buffers' \ }, \ 'component_type': { \ 'buffers': 'tabsel' \ }, \ 'component_function': { \ 'tabline_tabs': 'TablineTabs', \ 'wpm': 'WPM', \ 'ftcustom': 'CustomFT', \ 'enccustom': 'CustomEncode', \ 'fmtcustom': 'CustomFileFormat', \ 'tabscustom': 'CustomTabs' \ } \ } let g:lightline.component_raw = {'buffers': 1} let g:lightline#bufferline#clickable = 1 let g:lightline#bufferline#show_number = 2 let g:zig_fmt_autosave=0 let g:ale_javascript_eslint_options = '--config /home/aurelia/.eslintrc.json' function! CustomTabs() if tabpagenr('$') == 1 return '' endif let current_tab = tabpagenr() let tab_list = [] for i in range(1, tabpagenr('$')) if i == current_tab call add(tab_list, '[' . i . ']') else call add(tab_list, i) endif endfor return join(tab_list, ' | ') endfunction function CustomFileFormat() if &filetype != 'Avante' && &filetype != 'AvanteInput' return &fileformat endif return '' endfunction function CustomEncode() if &filetype != 'Avante' && &filetype != 'AvanteInput' return &fileencoding endif return '' endfunction function CustomFT() if &filetype != 'Avante' && &filetype != 'AvanteInput' return &filetype endif return '' endfunction function WPM() if &filetype != 'Avante' && &filetype != 'AvanteInput' return (luaeval("require('wpm').historic_graph()") . ' ' . luaeval("require('wpm').wpm()")) . 'wpm' endif return '' endfunction function! TablineTabs() return lightline#tabline() endfunction let g:tabby_keybinding_accept = '' autocmd Filetype json,jsonc let g:indentLine_setConceal = 0 autocmd Filetype javascriptreact,typescriptreact TSEnable indent autocmd Filetype * call tabby#inline_completion#keybindings#Setup() function! SWB() execute('call lightline#bufferline#go_previous()') endfunction function! SW() execute('call lightline#bufferline#go_next()') endfunction function! Q() let float_visible = 0 let winid = 0 for win in range(1, winnr('$')) let config = nvim_win_get_config(win_getid(win)) if has_key(config, 'relative') && config.relative != '' let float_visible = 1 let winid = win_getid(win) break endif endfor if float_visible call nvim_win_close(winid, v:true) return endif if exists("t:NERDTreeBufName") && bufwinnr(t:NERDTreeBufName) != -1 NERDTreeClose else call feedkeys(":nohlsearch\") if len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) > 1 call feedkeys(':bd') else call feedkeys(':q') endif endif endfunction function! GoToTab(tab_number) execute 'call lightline#bufferline#go(' . a:tab_number . ')' endfunction function! InputTabNumber() let l:tab_number = nr2char(getchar()) if l:tab_number =~ '\d' call GoToTab(str2nr(l:tab_number)) endif endfunction function! TurnOffDiag() let disallowed_langs = ['c', 'cpp', 'javascript', 'typescript', 'typescriptreact', 'javascriptreact'] if index(disallowed_langs, &filetype) >= 0 ALEDisable endif endfunction function! AddSpacesToParentheses() range let saved_search = @/ let pattern = '\v(\w+\()(\S.{-})(\))' execute a:firstline . ',' . a:lastline . 's/' . pattern . '/\1 \2 \3/ge' execute a:firstline . ',' . a:lastline . 's/( )/( )/ge' execute a:firstline . ',' . a:lastline . 's/(\s\+/( /ge' execute a:firstline . ',' . a:lastline . 's/\s\+)/ )/ge' let @/ = saved_search endfunction function! OpenLsp() let float_visible = 0 for win in range(1, winnr('$')) let config = nvim_win_get_config(win_getid(win)) if has_key(config, 'relative') && config.relative != '' let float_visible = 1 break endif endfor if float_visible call Q() endif call feedkeys('K') endfunction function! OpenFloat() let float_visible = 0 let g:float_winid = 0 for win in range(1, winnr('$')) let config = nvim_win_get_config(win_getid(win)) if has_key(config, 'relative') && config.relative != '' let float_visible = 1 let g:float_winid = win_getid(win) break endif endfor lua <') let parts = split(file_line, '#L') if len(parts) > 1 execute 'e +' . parts[1] . ' ' . parts[0] | sleep 200m execute('call lightline#bufferline#go_next()') set number else normal! gf endif endfunction nnoremap gf :call GFLine() vnoremap ap :call AddSpacesToParentheses() autocmd BufReadPost * call TurnOffDiag() nnoremap :noh nnoremap :NERDTree inoremap :NERDTree vnoremap :NERDTree nnoremap :call Q() tnoremap nnoremap :call SWB() nnoremap :call SW() nnoremap w nnoremap nnoremap b vnoremap w vnoremap vnoremap b noremap :tabn noremap :tabp nnoremap :call InputTabNumber() inoremap :call InputTabNumber() vnoremap :call InputTabNumber() nnoremap :Telescope live_grep nnoremap :Telescope current_buffer_fuzzy_find nnoremap :Telescope marks nnoremap :lua ToggleDiagnostics() nnoremap :VimspectorReset nnoremap b :VimspectorBreakpoints nnoremap d :VimspectorDisassemble nnoremap [ VimspectorUpFrame nnoremap ] VimspectorDownFrame nnoremap VimspectorBalloonEval inoremap vnoremap >gv vnoremap lightline#bufferline#move_previous() nnoremap lightline#bufferline#move_next() nnoremap t :call OpenFloat() nnoremap T :call OpenLsp() nnoremap gd nnoremap gd :Telescope diagnostics nnoremap gr :Telescope lsp_references nnoremap [[ ?{:nohl nnoremap ]] /}:nohl nnoremap ][ /{:nohl nnoremap [] ?}:nohl vnoremap [[ ?{:nohlgv vnoremap ]] /}:nohlgv vnoremap ][ /{:nohlgv vnoremap [] ?}:nohlgv colorscheme base16-synth-midnight-dark hi LineNr guibg=#000000 hi String ctermfg=1 guifg=#ea5971 hi Character ctermfg=1 guifg=#dddddd hi CmpItemKindDefault guifg=#7cede9 guibg=#101010 hi javaScriptIdentifier guifg=#ff40ff ctermfg=Magenta hi Delimiter ctermfg=14 guifg=#cccccc hi AvanteConflictCurrent guibg=#101010 hi AvanteConflictIncoming guibg=#102010 hi PmenuSel guibg=#ffffff guifg=#202020 hi Variable guifg=#40FF40 ctermfg=Green hi @variable guifg=#40FF40 ctermfg=Green hi Identifier guifg=#27ea91 hi def link @lsp.typemod.variable.defaultLibrary.javascript Special hi def link @lsp.typemod.variable.defaultLibrary.typescript Special hi def link @punctuation.special.javascript Delimiter hi def link @lsp.type.keywordLiteral.zig Special hi def link @lsp.type.string.zig NONE hi @type.builtin.cpp guifg=#ea5ce2 hi SpecialChar ctermfg=9 guifg=#e4600e let g:vim_json_conceal=0 let g:markdown_syntax_conceal=0 let g:indentLine_color_term=239 let g:indentLine_color_gui='#141414' let NERDTreeQuitOnOpen=1 autocmd BufNewFile,BufRead *.zig set shiftwidth=2 autocmd BufNewFile,BufRead *.modelfile set ft=gotmpl aunmenu PopUp.How-to\ disable\ mouse aunmenu PopUp.Inspect aunmenu PopUp.-1- aunmenu PopUp.-2-