-- -- ALE -- -- Run linters only on save vim.g.ale_lint_on_text_changed = 'never' vim.g.ale_lint_on_insert_leave = 0 -- Include the linter name (e.g. 'hack' or 'hhast'), code, and message in errors vim.g.ale_echo_msg_format = '[%linter%] %s' vim.g.ale_linters = { hack = {'hack', 'hhast'}, haskell = {"hlint"}, javascript = {'eslint'}, d = {'dmd'}, php = {'phpcs', 'phpstan'}, ruby = {'rubocop'}, cpp = {}, } vim.g.ale_ruby_rubocop_executable = 'bundle' vim.g.ale_cpp_cc_options = '-std=c++17 -Wall' vim.g.ale_open_list = 1 vim.g.ale_disable_lsp = 1 -- -- nvim-cmp -- local cmp = require'cmp' cmp.setup({ snippet = { -- REQUIRED - you must specify a snippet engine expand = function(args) require'snippy'.expand_snippet(args.body) end, }, mapping = { [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), -- Specify `cmp.config.disable` if you want to remove the default `` mapping. [''] = cmp.config.disable, [''] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close(), }), [''] = cmp.mapping.confirm({ select = false }), }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'snippy' }, }, { { name = 'path' }, }, { { name = 'buffer' }, }), view = { entries = 'native', }, }) -- Setup lspconfig. local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true } -- -- Telescope -- require('telescope').setup { extensions = { ["ui-select"] = { require("telescope.themes").get_dropdown { } } } } require("telescope").load_extension("ui-select") vim.api.nvim_set_keymap('n', 'ff', "lua require('telescope.builtin').find_files()", { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'fg', "lua require('telescope.builtin').live_grep()", { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'fb', "lua require('telescope.builtin').buffers()", { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'fh', "lua require('telescope.builtin').help_tags()", { noremap = true, silent = true }) -- -- NvimTree -- require('nvim-tree').setup {} vim.api.nvim_set_keymap('n', '', ':NvimTreeToggle', { noremap = true }) vim.api.nvim_set_keymap('n', 'r', ':NvimTreeRefresh', { noremap = true }) vim.api.nvim_set_keymap('n', 'n', ':NvimTreeFindFile', { noremap = true }) -- -- Lualine -- require('lualine').setup { options = { theme = 'codedark' }, extensions = {'quickfix', 'nvim-tree', 'fugitive'}, sections = { lualine_c = { 'filename' } } } -- -- Diffview.nvim -- require('diffview').setup {} -- -- Vista -- vim.g.vista_default_executive = 'nvim_lsp' -- -- nvim-ufo -- vim.wo.foldcolumn = '1' vim.wo.foldlevel = 99 -- feel free to decrease the value vim.wo.foldenable = true require('ufo').setup() -- -- nvim-dap -- vim.keymap.set('n', '', function() require('dap').continue() end) vim.keymap.set('n', '', function() require('dap').step_over() end) vim.keymap.set('n', '', function() require('dap').step_into() end) vim.keymap.set('n', '', function() require('dap').step_out() end) vim.keymap.set('n', 'b', function() require('dap').toggle_breakpoint() end) vim.keymap.set('n', 'B', function() require('dap').set_breakpoint() end) vim.keymap.set('n', 'lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end) vim.keymap.set('n', 'dr', function() require('dap').repl.open() end) vim.keymap.set('n', 'dl', function() require('dap').run_last() end) vim.keymap.set({'n', 'v'}, 'dh', function() require('dap.ui.widgets').hover() end) vim.keymap.set({'n', 'v'}, 'dp', function() require('dap.ui.widgets').preview() end) vim.keymap.set('n', 'df', function() local widgets = require('dap.ui.widgets') widgets.centered_float(widgets.frames) end) vim.keymap.set('n', 'ds', function() local widgets = require('dap.ui.widgets') widgets.centered_float(widgets.scopes) end) local dap = require("dap") dap.adapters.gdb = { type = "executable", command = "gdb", args = { "-i", "dap" } } dap.configurations.cpp = { { name = "Launch", type = "gdb", request = "launch", program = function() return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') end, cwd = "${workspaceFolder}", stopAtBeginningOfMainSubprogram = false, }, } -- -- Vdebug -- vim.g.vdebug_options = { port = '9000' } -- -- Treesitter -- require'nvim-treesitter.configs'.setup { ensure_installed = { 'haskell', 'php', 'lua' }, highlight = { enable = true, additional_vim_regex_highlighting = false }, indent = { enable = true } }