12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- -- apply default terminal settings
- vim.api.nvim_create_autocmd('TermOpen', {
- callback = function()
- vim.bo.scrollback = 10000
- vim.opt_local.number = false
- vim.opt_local.relativenumber = false
- vim.b.miniindentscope_disable = true
- end
- })
- -- preserve window structure when exiting terminal via C-d
- vim.api.nvim_create_autocmd('TermClose', {
- callback = function(opts)
- -- don't trigger when force deleting
- if vim.api.nvim_buf_get_option(opts.buf, 'modified') then
- return
- end
- MiniBufremove.delete(opts.buf)
- end,
- -- needed so statusline properly updates
- nested = true,
- })
- -- automatically enter/leave terminal mode
- vim.api.nvim_create_autocmd('TermOpen', { command = 'startinsert' })
- vim.api.nvim_create_autocmd({'WinEnter','BufWinEnter'}, {
- pattern = 'term://*',
- command = 'startinsert',
- })
- vim.api.nvim_create_autocmd('BufLeave', {
- pattern = 'term://*',
- command = 'stopinsert',
- })
- -- formatting
- vim.api.nvim_create_autocmd('BufWritePre', {
- callback = function(opts)
- if vim.bo.filetype == 'diff' then
- return
- end
- if not vim.g.no_lsp_format then
- -- check if can LSP format
- local clients = vim.lsp.get_active_clients({ bufnr = opts.buf })
- for _, client in ipairs(clients) do
- if client.server_capabilities.documentFormattingProvider then
- vim.lsp.buf.format()
- return
- end
- end
- end
- -- otherwise strip trailing whitespace
- vim.cmd('%s/\\s\\+$//e')
- end,
- })
- -- filetype specific options
- vim.api.nvim_create_autocmd('FileType', {
- pattern = 'markdown',
- callback = function()
- vim.bo.textwidth = 80
- end,
- })
- vim.api.nvim_create_autocmd('FileType', {
- pattern = 'http',
- callback = function(opts)
- vim.keymap.set('n', '<Leader>r', '<Plug>RestNvim', {
- buffer = opts.buf,
- })
- end,
- })
|