require "plugins" -- thanks nvchad for the telescope config require("telescope").setup { defaults = { vimgrep_arguments = { "rg", "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case", }, prompt_prefix = "  ", selection_caret = " ", entry_prefix = " ", initial_mode = "insert", selection_strategy = "reset", sorting_strategy = "ascending", layout_strategy = "horizontal", layout_config = { horizontal = { prompt_position = "top", preview_width = 0.55, results_width = 0.8, }, vertical = { mirror = false, }, width = 0.87, height = 0.80, preview_cutoff = 120, }, file_sorter = require("telescope.sorters").get_fuzzy_file, file_ignore_patterns = { "node_modules" }, generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter, path_display = { "absolute" }, winblend = 0, border = {}, borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" }, color_devicons = true, use_less = true, set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil, file_previewer = require("telescope.previewers").vim_buffer_cat.new, grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new, qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new, buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker, } } require("nvim-treesitter.configs").setup { highlight = { enable = true, disable = {}, }, indent = { enable = false, disable = {}, }, ensure_installed = { "json", "html", "scss", "javascript", "css", "c", "cpp", "rust", "lua" }, } -- Add additional capabilities supported by nvim-cmp local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) -- Language servers require"lspconfig".clangd.setup{ capabilities = capabilities } local luasnip = require "luasnip" local cmp = require "cmp" cmp.setup { snippet = { expand = function(args) luasnip.lsp_expand(args.body) end, }, mapping = { [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.confirm({ select = true }) elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() else fallback() end end, { 'i', 's' }), [''] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() else fallback() end end, { 'i', 's' }), }, sources = { { name = "nvim_lsp" }, }, } local options = { tabstop = 4, shiftwidth = 4, expandtab = true, smartindent = true, smartcase = true, mouse = "a", termguicolors = true, cmdheight = 1 } local init = { "nnoremap ff lua require('telescope.builtin').find_files()", "nnoremap fg lua require('telescope.builtin').live_grep()", "nnoremap fb lua require('telescope.builtin').buffers()", "nnoremap fh lua require('telescope.builtin').help_tags()", "let g:gruvbox_material_palette = 'material'", "let g:gruvbox_material_background = 'soft'", "let g:gruvbox_material_better_performance = '1'", "colorscheme gruvbox-material" } for k, v in pairs(options) do vim.o[k] = v end for i, v in pairs(init) do vim.cmd(v) end