|
@@ -0,0 +1,141 @@
|
|
|
|
+local map = vim.api.nvim_set_keymap
|
|
|
|
+local opts = { noremap = true, silent = true }
|
|
|
|
+
|
|
|
|
+-- Move to previous/next
|
|
|
|
+map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', opts)
|
|
|
|
+map('n', '<A-.>', '<Cmd>BufferNext<CR>', opts)
|
|
|
|
+-- Re-order to previous/next
|
|
|
|
+map('n', '<A-<>', '<Cmd>BufferMovePrevious<CR>', opts)
|
|
|
|
+map('n', '<A->>', '<Cmd>BufferMoveNext<CR>', opts)
|
|
|
|
+-- Goto buffer in position...
|
|
|
|
+map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', opts)
|
|
|
|
+map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', opts)
|
|
|
|
+map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', opts)
|
|
|
|
+map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', opts)
|
|
|
|
+map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', opts)
|
|
|
|
+map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', opts)
|
|
|
|
+map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', opts)
|
|
|
|
+map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', opts)
|
|
|
|
+map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', opts)
|
|
|
|
+map('n', '<A-0>', '<Cmd>BufferLast<CR>', opts)
|
|
|
|
+-- Pin/unpin buffer
|
|
|
|
+map('n', '<A-p>', '<Cmd>BufferPin<CR>', opts)
|
|
|
|
+-- Close buffer
|
|
|
|
+map('n', '<A-c>', '<Cmd>BufferClose<CR>', opts)
|
|
|
|
+-- Wipeout buffer
|
|
|
|
+-- :BufferWipeout
|
|
|
|
+-- Close commands
|
|
|
|
+-- :BufferCloseAllButCurrent
|
|
|
|
+-- :BufferCloseAllButPinned
|
|
|
|
+-- :BufferCloseAllButCurrentOrPinned
|
|
|
|
+-- :BufferCloseBuffersLeft
|
|
|
|
+-- :BufferCloseBuffersRight
|
|
|
|
+-- Magic buffer-picking mode
|
|
|
|
+map('n', '<C-p>', '<Cmd>BufferPick<CR>', opts)
|
|
|
|
+-- Sort automatically by...
|
|
|
|
+map('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', opts)
|
|
|
|
+map('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', opts)
|
|
|
|
+map('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', opts)
|
|
|
|
+map('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', opts)
|
|
|
|
+
|
|
|
|
+-- Other:
|
|
|
|
+-- :BarbarEnable - enables barbar (enabled by default)
|
|
|
|
+-- :BarbarDisable - very bad command, should never be used
|
|
|
|
+--
|
|
|
|
+-- Set barbar's options
|
|
|
|
+require'bufferline'.setup {
|
|
|
|
+ -- Enable/disable animations
|
|
|
|
+ animation = true,
|
|
|
|
+
|
|
|
|
+ -- Enable/disable auto-hiding the tab bar when there is a single buffer
|
|
|
|
+ auto_hide = false,
|
|
|
|
+
|
|
|
|
+ -- Enable/disable current/total tabpages indicator (top right corner)
|
|
|
|
+ tabpages = true,
|
|
|
|
+
|
|
|
|
+ -- Enable/disable close button
|
|
|
|
+ closable = true,
|
|
|
|
+
|
|
|
|
+ -- Enables/disable clickable tabs
|
|
|
|
+ -- - left-click: go to buffer
|
|
|
|
+ -- - middle-click: delete buffer
|
|
|
|
+ clickable = true,
|
|
|
|
+
|
|
|
|
+ -- Enables / disables diagnostic symbols
|
|
|
|
+ diagnostics = {
|
|
|
|
+ -- you can use a list
|
|
|
|
+ {enabled = true, icon = 'ff'}, -- ERROR
|
|
|
|
+ {enabled = false}, -- WARN
|
|
|
|
+ {enabled = false}, -- INFO
|
|
|
|
+ {enabled = true}, -- HINT
|
|
|
|
+
|
|
|
|
+ -- OR `vim.diagnostic.severity`
|
|
|
|
+ [vim.diagnostic.severity.ERROR] = {enabled = true, icon = 'ff'},
|
|
|
|
+ [vim.diagnostic.severity.WARN] = {enabled = false},
|
|
|
|
+ [vim.diagnostic.severity.INFO] = {enabled = false},
|
|
|
|
+ [vim.diagnostic.severity.HINT] = {enabled = true},
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ -- Excludes buffers from the tabline
|
|
|
|
+ exclude_ft = {'javascript'},
|
|
|
|
+ exclude_name = {'package.json'},
|
|
|
|
+
|
|
|
|
+ -- Hide inactive buffers and file extensions. Other options are `alternate`, `current`, and `visible`.
|
|
|
|
+ hide = {extensions = true, inactive = true},
|
|
|
|
+
|
|
|
|
+ -- Disable highlighting alternate buffers
|
|
|
|
+ highlight_alternate = false,
|
|
|
|
+
|
|
|
|
+ -- Disable highlighting file icons in inactive buffers
|
|
|
|
+ highlight_inactive_file_icons = false,
|
|
|
|
+
|
|
|
|
+ -- Enable highlighting visible buffers
|
|
|
|
+ highlight_visible = true,
|
|
|
|
+
|
|
|
|
+ -- Enable/disable icons
|
|
|
|
+ -- if set to 'numbers', will show buffer index in the tabline
|
|
|
|
+ -- if set to 'both', will show buffer index and icons in the tabline
|
|
|
|
+ icons = false,
|
|
|
|
+
|
|
|
|
+ -- If set, the icon color will follow its corresponding buffer
|
|
|
|
+ -- highlight group. By default, the Buffer*Icon group is linked to the
|
|
|
|
+ -- Buffer* group (see Highlighting below). Otherwise, it will take its
|
|
|
|
+ -- default value as defined by devicons.
|
|
|
|
+ icon_custom_colors = false,
|
|
|
|
+
|
|
|
|
+ -- Configure icons on the bufferline.
|
|
|
|
+ icon_separator_active = '▎',
|
|
|
|
+ icon_separator_inactive = '▎',
|
|
|
|
+ icon_close_tab = '',
|
|
|
|
+ icon_close_tab_modified = '●',
|
|
|
|
+ icon_pinned = '車',
|
|
|
|
+
|
|
|
|
+ -- If true, new buffers will be inserted at the start/end of the list.
|
|
|
|
+ -- Default is to insert after current buffer.
|
|
|
|
+ insert_at_end = false,
|
|
|
|
+ insert_at_start = false,
|
|
|
|
+
|
|
|
|
+ -- Sets the maximum padding width with which to surround each tab
|
|
|
|
+ maximum_padding = 1,
|
|
|
|
+
|
|
|
|
+ -- Sets the minimum padding width with which to surround each tab
|
|
|
|
+ minimum_padding = 1,
|
|
|
|
+
|
|
|
|
+ -- Sets the maximum buffer name length.
|
|
|
|
+ maximum_length = 30,
|
|
|
|
+
|
|
|
|
+ -- If set, the letters for each buffer in buffer-pick mode will be
|
|
|
|
+ -- assigned based on their name. Otherwise or in case all letters are
|
|
|
|
+ -- already assigned, the behavior is to assign letters in order of
|
|
|
|
+ -- usability (see order below)
|
|
|
|
+ semantic_letters = true,
|
|
|
|
+
|
|
|
|
+ -- New buffer letters are assigned in this order. This order is
|
|
|
|
+ -- optimal for the qwerty keyboard layout but might need adjustement
|
|
|
|
+ -- for other layouts.
|
|
|
|
+ letters = 'asdfjkl;ghnmxcvbziowerutyqpASDFJKLGHNMXCVBZIOWERUTYQP',
|
|
|
|
+
|
|
|
|
+ -- Sets the name of unnamed buffers. By default format is "[Buffer X]"
|
|
|
|
+ -- where X is the buffer number. But only a static string is accepted here.
|
|
|
|
+ no_name_title = nil,
|
|
|
|
+}
|