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 filetype plugin on 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' }, -- For vsnip users. -- { name = 'luasnip' }, -- For luasnip users. -- { name = 'ultisnips' }, -- For ultisnips users. -- { name = 'snippy' }, -- For snippy users. }, { { name = 'buffer' }, }) }) -- Set configuration for specific filetype. 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 = 'cmdline' } }) }) require("wpm").setup({ sample_count = 8, sample_interval = 750, percentile = 1 }) -- Set up lspconfig. local capabilities = require('cmp_nvim_lsp').default_capabilities() -- Replace with each lsp server you've enabled. require('lspconfig')['clangd'].setup { capabilities = capabilities } require('lspconfig')['ts_ls'].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 = "llama3.1:8b-instruct-q5_K_M", 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 = 8192, 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 let g:lightline = { \ 'colorscheme': 'landscape', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'readonly', 'filename', 'modified' ] ], \ 'right': [ [ 'lineinfo' ], \ [ 'percent' ], \ [ 'fmtcustom', 'enccustom', 'ftcustom', 'wpm' ] ] \ }, \ 'tabline': { \ 'left': [ ['tabs'] ], \ 'right': [ ['buffers'] ] \ }, \ 'component_function': { \ 'tabline_tabs': 'TablineTabs', \ 'wpm': 'WPM', \ 'ftcustom': 'CustomFT', \ 'enccustom': 'CustomEncode', \ 'fmtcustom': 'CustomFileFormat' \ } \ } 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 let g:indentLine_setConceal = 0 function! SW() if winnr('$') > 1 wincmd w else tabnext endif endfunction function! Q() if exists("t:NERDTreeBufName") && bufwinnr(t:NERDTreeBufName) != -1 NERDTreeClose else if winnr('$') > 1 q else call feedkeys(':q') endif endif endfunction function! GoToTab(tab_number) execute 'tabn ' . 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 nnoremap :NERDTree inoremap :NERDTree vnoremap :NERDTree nnoremap :call Q() nnoremap :call SW() nnoremap :call InputTabNumber() inoremap :call InputTabNumber() vnoremap :call InputTabNumber() nnoremap :Telescope live_grep nnoremap :Telescope current_buffer_fuzzy_find nnoremap :lua ToggleDiagnostics() vnoremap >gv nnoremap vnoremap