update to lua config
This commit is contained in:
85
lua/plugins/ui/bufferline.lua
Normal file
85
lua/plugins/ui/bufferline.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
require('bufferline').setup {
|
||||
options = {
|
||||
-- numbers = function(opts)
|
||||
-- return string.format("%s", opts.id)
|
||||
-- end,
|
||||
numbers = function(opts)
|
||||
return ""
|
||||
end,
|
||||
-- number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2
|
||||
-- number_style = "none",
|
||||
close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
|
||||
right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
|
||||
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
|
||||
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
|
||||
-- NOTE: this plugin is designed with this icon in mind,
|
||||
-- and so changing this is NOT recommended, this is intended
|
||||
-- as an escape hatch for people who cannot bear it for whatever reason
|
||||
indicator_style = '▎',
|
||||
buffer_close_icon = '',
|
||||
modified_icon = '●',
|
||||
close_icon = '',
|
||||
left_trunc_marker = '',
|
||||
right_trunc_marker = '',
|
||||
--- name_formatter can be used to change the buffer's label in the bufferline.
|
||||
--- Please note some names can/will break the
|
||||
--- bufferline so use this at your discretion knowing that it has
|
||||
--- some limitations that will *NOT* be fixed.
|
||||
name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
|
||||
-- remove extension from markdown files for example
|
||||
if buf.name:match('%.md') then
|
||||
return vim.fn.fnamemodify(buf.name, ':t:r')
|
||||
end
|
||||
end,
|
||||
max_name_length = 18,
|
||||
max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
|
||||
tab_size = 18,
|
||||
-- diagnostics = false | "nvim_lsp" | "coc",
|
||||
diagnostics = "nvim_lsp",
|
||||
diagnostics_update_in_insert = false,
|
||||
diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
||||
local s = " "
|
||||
for e, n in pairs(diagnostics_dict) do
|
||||
local sym = e == "error" and " "
|
||||
or e == "hint" and " "
|
||||
or (e == "warning" and " " or "" )
|
||||
s = s .. n .. sym
|
||||
end
|
||||
return s
|
||||
end,
|
||||
custom_filter = function(buf_number, buf_numbers)
|
||||
-- filter out filetypes you don't want to see
|
||||
if vim.bo[buf_number].filetype ~= "<i-dont-want-to-see-this>" then
|
||||
return true
|
||||
end
|
||||
-- filter out by buffer name
|
||||
if vim.fn.bufname(buf_number) ~= "<buffer-name-I-dont-want>" then
|
||||
return true
|
||||
end
|
||||
-- filter out based on arbitrary rules
|
||||
-- e.g. filter out vim wiki buffer from tabline in your work repo
|
||||
if vim.fn.getcwd() == "<work-repo>" and vim.bo[buf_number].filetype ~= "wiki" then
|
||||
return true
|
||||
end
|
||||
-- filter out by it's index number in list (don't show first buffer)
|
||||
if buf_numbers[1] ~= buf_number then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
-- offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}},
|
||||
-- offsets = text_align = "left" | "center" | "right"}},
|
||||
show_buffer_icons = true,
|
||||
show_buffer_close_icons = true,
|
||||
show_close_icon = false,
|
||||
show_tab_indicators = true,
|
||||
persist_buffer_sort = false, -- whether or not custom sorted buffers should persist
|
||||
-- can also be a table containing 2 custom separators
|
||||
-- [focused and unfocused]. eg: { '|', '|' }
|
||||
-- separator_style = "slant" | "thick" | "thin" | { 'any', 'any' },
|
||||
separator_style = "thick",
|
||||
enforce_regular_tabs = false,
|
||||
always_show_bufferline = true,
|
||||
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
|
||||
sort_by = 'id',
|
||||
}
|
||||
}
|
||||
40
lua/plugins/ui/copilot-lualine.lua
Normal file
40
lua/plugins/ui/copilot-lualine.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
local lualine = require('lualine')
|
||||
lualine.setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = cozynight,
|
||||
component_separators = { left = '', right = '' },
|
||||
section_separators = { left = '', right = '' },
|
||||
disabled_filetypes = {},
|
||||
always_divide_middle = true
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = {
|
||||
'branch', 'diff', {
|
||||
'diagnostics',
|
||||
sources = { "nvim_diagnostic" },
|
||||
symbols = {
|
||||
error = ' ',
|
||||
warn = ' ',
|
||||
info = ' ',
|
||||
hint = ' '
|
||||
}
|
||||
}
|
||||
},
|
||||
lualine_c = { 'filename' },
|
||||
lualine_x = { 'copilot', 'encoding', 'fileformat', 'filetype' }, -- I added copilot here
|
||||
lualine_y = { 'progress' },
|
||||
lualine_z = { 'location' }
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = { 'filename' },
|
||||
lualine_x = { 'location' },
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
extensions = {}
|
||||
})
|
||||
93
lua/plugins/ui/dashboard-nvim.lua
Normal file
93
lua/plugins/ui/dashboard-nvim.lua
Normal file
@@ -0,0 +1,93 @@
|
||||
local home = os.getenv('HOME')
|
||||
local db = require('dashboard')
|
||||
-- macos
|
||||
-- db.preview_command = 'cat | lolcat -F 0.3'
|
||||
-- linux
|
||||
-- db.preview_command = 'ueberzug'
|
||||
-- db.preview_file_path = home .. '/.config/nvim/static/neovim.cat'
|
||||
-- db.preview_file_height = 11
|
||||
-- db.preview_file_width = 70
|
||||
vim.cmd('source $HOME/.config/nvim/static/nvim-dashboard.vim')
|
||||
db.custom_center = {
|
||||
{
|
||||
icon = ' ',
|
||||
desc = 'Recently latest session ',
|
||||
shortcut = 'SPC s l',
|
||||
action = 'SessionLoad'
|
||||
}, {
|
||||
icon = ' ',
|
||||
desc = 'Recently opened files ',
|
||||
action = 'Telescope oldfiles',
|
||||
shortcut = 'SPC f h'
|
||||
}, {
|
||||
desc = 'Find File ',
|
||||
icon = ' ',
|
||||
action = 'Telescope find_files find_command=rg,--hidden,--files',
|
||||
shortcut = 'SPC f f'
|
||||
}, {
|
||||
icon = ' ',
|
||||
desc = 'File Browser ',
|
||||
action = 'Telescope file_browser',
|
||||
shortcut = 'SPC f b'
|
||||
}, {
|
||||
icon = ' ',
|
||||
desc = 'Find word ',
|
||||
action = 'Telescope live_grep',
|
||||
shortcut = 'SPC f w'
|
||||
}, {
|
||||
icon = ' ',
|
||||
desc = 'Open Personal dotfiles ',
|
||||
action = ':e ~/.config/nvim/init.vim',
|
||||
shortcut = 'SPC f d'
|
||||
}
|
||||
}
|
||||
require('dashboard').setup {
|
||||
theme = 'doom', -- theme is doom and hyper default is hyper
|
||||
disable_move = false, -- default is false disable move keymap for hyper
|
||||
shortcut_type = 'number', -- shorcut type 'letter' or 'number'
|
||||
change_to_vcs_root = false, -- default is false,for open file in hyper mru. it will change to the root of vcs
|
||||
config = {
|
||||
header = { "NVIM DASHBOARD" }, -- your header
|
||||
center = {
|
||||
{
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Open Recent',
|
||||
desc_hl = 'String',
|
||||
key = '1',
|
||||
keymap = 'SPC f r',
|
||||
key_hl = 'Number',
|
||||
action = 'lua print(1)'
|
||||
}, {
|
||||
icon = ' ',
|
||||
icon_hl = 'Title',
|
||||
desc = 'Find File',
|
||||
desc_hl = 'String',
|
||||
key = '2',
|
||||
key_hl = 'Number',
|
||||
keymap = 'SPC f f',
|
||||
action = 'lua print(2)'
|
||||
}
|
||||
|
||||
-- {
|
||||
-- icon = ' ',
|
||||
-- desc = 'Find Dotfiles',
|
||||
-- key = 'f',
|
||||
-- keymap = 'SPC f d',
|
||||
-- action = 'lua print(3)'
|
||||
-- }
|
||||
},
|
||||
footer = {} -- your footer
|
||||
},
|
||||
hide = {
|
||||
statusline = true, -- hide statusline default is true
|
||||
tabline = true, -- hide the tabline
|
||||
winbar = true -- hide winbar
|
||||
}
|
||||
-- preview = {
|
||||
-- command = "bat", -- preview command
|
||||
-- file_path -- preview file path
|
||||
-- file_height -- preview file height
|
||||
-- file_width -- preview file width
|
||||
-- },
|
||||
}
|
||||
49
lua/plugins/ui/fidget.lua
Normal file
49
lua/plugins/ui/fidget.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
require"fidget".setup {
|
||||
text = {
|
||||
spinner = "pipe", -- animation shown when tasks are ongoing
|
||||
done = "✔", -- character shown when all tasks are complete
|
||||
commenced = "Started", -- message shown when task starts
|
||||
completed = "Completed", -- message shown when task completes
|
||||
},
|
||||
align = {
|
||||
bottom = true, -- align fidgets along bottom edge of buffer
|
||||
right = true, -- align fidgets along right edge of buffer
|
||||
},
|
||||
timer = {
|
||||
spinner_rate = 125, -- frame rate of spinner animation, in ms
|
||||
fidget_decay = 2000, -- how long to keep around empty fidget, in ms
|
||||
task_decay = 1000, -- how long to keep around completed task, in ms
|
||||
},
|
||||
window = {
|
||||
relative = "win", -- where to anchor, either "win" or "editor"
|
||||
blend = 100, -- &winblend for the window
|
||||
zindex = nil, -- the zindex value for the window
|
||||
},
|
||||
fmt = {
|
||||
leftpad = true, -- right-justify text in fidget box
|
||||
stack_upwards = true, -- list of tasks grows upwards
|
||||
max_width = 0, -- maximum width of the fidget box
|
||||
fidget = -- function to format fidget title
|
||||
function(fidget_name, spinner)
|
||||
return string.format("%s %s", spinner, fidget_name)
|
||||
end,
|
||||
task = -- function to format each task line
|
||||
function(task_name, message, percentage)
|
||||
return string.format(
|
||||
"%s%s [%s]",
|
||||
message,
|
||||
percentage and string.format(" (%s%%)", percentage) or "",
|
||||
task_name
|
||||
)
|
||||
end,
|
||||
},
|
||||
-- sources = {
|
||||
-- * = {
|
||||
-- ignore = false,
|
||||
-- },
|
||||
-- },
|
||||
-- debug = {
|
||||
-- logging = false, -- whether to enable logging, for debugging
|
||||
-- strict = false, -- whether to interpret LSP strictly
|
||||
-- },
|
||||
}
|
||||
2
lua/plugins/ui/git-blame.lua
Normal file
2
lua/plugins/ui/git-blame.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
vim.g.gitblame_highlight_group = "Question"
|
||||
vim.g.gitblame_enabled = 0
|
||||
48
lua/plugins/ui/gitsigns.lua
Normal file
48
lua/plugins/ui/gitsigns.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
require('gitsigns').setup {
|
||||
signs = {
|
||||
add = { text = '┃' },
|
||||
change = { text = '┃' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
untracked = { text = '┆' }
|
||||
},
|
||||
signs_staged = {
|
||||
add = { text = '┃' },
|
||||
change = { text = '┃' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
untracked = { text = '┆' }
|
||||
},
|
||||
signs_staged_enable = true,
|
||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||
watch_gitdir = { follow_files = true },
|
||||
auto_attach = true,
|
||||
attach_to_untracked = false,
|
||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = false,
|
||||
virt_text_priority = 100
|
||||
},
|
||||
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil, -- Use default
|
||||
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = 'single',
|
||||
style = 'minimal',
|
||||
relative = 'cursor',
|
||||
row = 0,
|
||||
col = 1
|
||||
}
|
||||
}
|
||||
|
||||
17
lua/plugins/ui/init.lua
Normal file
17
lua/plugins/ui/init.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
require('plugins.ui.bufferline')
|
||||
require('plugins.ui.copilot-lualine')
|
||||
require('plugins.ui.dashboard-nvim')
|
||||
require('plugins.ui.fidget')
|
||||
-- require('plugins.ui.git-blame')
|
||||
require('plugins.ui.gitsigns')
|
||||
require('plugins.ui.lualine')
|
||||
require('plugins.ui.nvim-colorizer')
|
||||
require('plugins.ui.nvim-notify')
|
||||
require('plugins.ui.nvimtree')
|
||||
require('plugins.ui.presence')
|
||||
require('plugins.ui.rainbow-delimiters')
|
||||
require('plugins.ui.telescope-file-browser')
|
||||
require('plugins.ui.telescope')
|
||||
require('plugins.ui.treesitter-context')
|
||||
require('plugins.ui.treesitter')
|
||||
require('plugins.ui.whichkey')
|
||||
103
lua/plugins/ui/lualine.lua
Normal file
103
lua/plugins/ui/lualine.lua
Normal file
@@ -0,0 +1,103 @@
|
||||
local M = require("lualine.component"):extend()
|
||||
|
||||
M.processing = false
|
||||
M.spinner_index = 1
|
||||
|
||||
local spinner_symbols = {
|
||||
"⠋",
|
||||
"⠙",
|
||||
"⠹",
|
||||
"⠸",
|
||||
"⠼",
|
||||
"⠴",
|
||||
"⠦",
|
||||
"⠧",
|
||||
"⠇",
|
||||
"⠏",
|
||||
}
|
||||
local spinner_symbols_len = 10
|
||||
|
||||
-- Initializer
|
||||
function M:init(options)
|
||||
M.super.init(self, options)
|
||||
|
||||
local group = vim.api.nvim_create_augroup("CodeCompanionHooks", {})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "User" }, {
|
||||
pattern = "CodeCompanionRequest*",
|
||||
group = group,
|
||||
callback = function(request)
|
||||
if request.match == "CodeCompanionRequestStarted" then
|
||||
self.processing = true
|
||||
elseif request.match == "CodeCompanionRequestFinished" then
|
||||
self.processing = false
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Function that runs every time statusline is updated
|
||||
function M:update_status()
|
||||
if self.processing then
|
||||
self.spinner_index = (self.spinner_index % spinner_symbols_len) + 1
|
||||
return spinner_symbols[self.spinner_index]
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = 'codedark',
|
||||
-- theme = 'dracula',
|
||||
-- theme = 'horizon',
|
||||
-- theme = 'onedark',
|
||||
component_separators = { left = '', right = '' },
|
||||
section_separators = { left = '', right = '' },
|
||||
disabled_filetypes = {},
|
||||
always_divide_middle = true,
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = { 'branch', 'diff' },
|
||||
lualine_c = { 'filename', M },
|
||||
lualine_x = {
|
||||
{
|
||||
'diagnostics',
|
||||
'fileformat',
|
||||
symbols = {
|
||||
unix = '', -- e712
|
||||
dos = '', -- e70f
|
||||
mac = '', -- e711
|
||||
}
|
||||
}, 'encoding', 'fileformat', { 'filetype', colored = true, icon_only = false } },
|
||||
lualine_y = { 'progress' },
|
||||
lualine_z = { 'location' }
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {
|
||||
{
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
path = 0, -- 0: Just the filename
|
||||
shorting_target = 40, -- Shortens path to leave 40 spaces in the window
|
||||
symbols = {
|
||||
modified = '[+]', -- Text to show when the file is modified.
|
||||
readonly = '[-]', -- Text to show when the file is non-modifiable or readonly.
|
||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||
}
|
||||
},
|
||||
M
|
||||
},
|
||||
lualine_x = { 'location' },
|
||||
lualine_y = {},
|
||||
lualine_z = {}
|
||||
},
|
||||
tabline = {},
|
||||
extensions = { 'quickfix', 'fzf', 'nvim-tree', 'symbols-outline', 'fugitive' }
|
||||
}
|
||||
|
||||
-- return M
|
||||
1
lua/plugins/ui/nvim-colorizer.lua
Normal file
1
lua/plugins/ui/nvim-colorizer.lua
Normal file
@@ -0,0 +1 @@
|
||||
require 'colorizer'.setup()
|
||||
17
lua/plugins/ui/nvim-notify.lua
Normal file
17
lua/plugins/ui/nvim-notify.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
require("notify").setup({
|
||||
background_colour = "#000000",
|
||||
fps = 144,
|
||||
icons = {
|
||||
DEBUG = "",
|
||||
ERROR = "",
|
||||
INFO = "",
|
||||
TRACE = "✎",
|
||||
WARN = ""
|
||||
},
|
||||
level = 2,
|
||||
minimum_width = 50,
|
||||
render = "default",
|
||||
stages = "fade_in_slide_out",
|
||||
timeout = 5000,
|
||||
top_down = true
|
||||
})
|
||||
67
lua/plugins/ui/nvimtree.lua
Normal file
67
lua/plugins/ui/nvimtree.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
require 'nvim-tree'.setup {
|
||||
disable_netrw = false,
|
||||
hijack_netrw = false,
|
||||
-- open_on_setup = false,
|
||||
-- ignore_ft_on_setup = {},
|
||||
-- auto_close = false,
|
||||
open_on_tab = false,
|
||||
hijack_cursor = false,
|
||||
update_cwd = false,
|
||||
-- update_to_buf_dir = {
|
||||
-- enable = true,
|
||||
-- auto_open = true,
|
||||
-- },
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = { hint = "", info = "", warning = "", error = "" }
|
||||
},
|
||||
update_focused_file = { enable = false, update_cwd = false, ignore_list = {} },
|
||||
system_open = { cmd = nil, args = {} },
|
||||
filters = { dotfiles = false, custom = {} },
|
||||
git = { enable = true, ignore = true, timeout = 500 },
|
||||
view = {
|
||||
width = 35,
|
||||
-- height = 35,
|
||||
-- hide_root_folder = false,
|
||||
side = 'left',
|
||||
-- auto_resize = false,
|
||||
-- mappings = {
|
||||
-- custom_only = false,
|
||||
-- list = {}
|
||||
-- },
|
||||
number = false,
|
||||
relativenumber = false,
|
||||
signcolumn = "yes"
|
||||
},
|
||||
trash = { cmd = "trash", require_confirm = true },
|
||||
actions = {
|
||||
change_dir = { global = false },
|
||||
open_file = { quit_on_open = false }
|
||||
}
|
||||
}
|
||||
|
||||
-- local tree_cb = require'nvim-tree.config'.nvim_tree_callback
|
||||
|
||||
-- default mappings
|
||||
local list = {
|
||||
{ key = { "<CR>", "o", "<2-LeftMouse>" }, action = "edit" },
|
||||
{ key = { "O" }, action = "edit_no_picker" },
|
||||
{ key = { "<2-RightMouse>", "<C-]>" }, action = "cd" },
|
||||
{ key = "<C-v>", action = "vsplit" }, { key = "<C-x>", action = "split" },
|
||||
{ key = "<C-t>", action = "tabnew" }, { key = "<", action = "prev_sibling" },
|
||||
{ key = ">", action = "next_sibling" }, { key = "P", action = "parent_node" },
|
||||
{ key = "<BS>", action = "close_node" }, { key = "<Tab>", action = "preview" },
|
||||
{ key = "K", action = "first_sibling" }, { key = "J", action = "last_sibling" },
|
||||
{ key = "I", action = "toggle_ignored" },
|
||||
{ key = "H", action = "toggle_dotfiles" }, { key = "R", action = "refresh" },
|
||||
{ key = "a", action = "create" }, { key = "d", action = "remove" },
|
||||
{ key = "D", action = "trash" }, { key = "r", action = "rename" },
|
||||
{ key = "<C-r>", action = "full_rename" }, { key = "x", action = "cut" },
|
||||
{ key = "c", action = "copy" }, { key = "p", action = "paste" },
|
||||
{ key = "y", action = "copy_name" }, { key = "Y", action = "copy_path" },
|
||||
{ key = "gy", action = "copy_absolute_path" },
|
||||
{ key = "[c", action = "prev_git_item" },
|
||||
{ key = "]c", action = "next_git_item" }, { key = "-", action = "dir_up" },
|
||||
{ key = "s", action = "system_open" }, { key = "q", action = "close" },
|
||||
{ key = "g?", action = "toggle_help" }
|
||||
}
|
||||
22
lua/plugins/ui/presence.lua
Normal file
22
lua/plugins/ui/presence.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
require("presence"):setup({
|
||||
-- General options
|
||||
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
|
||||
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
|
||||
main_image = "neovim", -- Main image display (either "neovim" or "file")
|
||||
-- client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
|
||||
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
|
||||
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
|
||||
enable_line_number = false, -- Displays the current line number instead of the current project
|
||||
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
|
||||
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
|
||||
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
|
||||
|
||||
-- Rich Presence text options
|
||||
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
|
||||
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
|
||||
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
|
||||
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
|
||||
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
|
||||
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
|
||||
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
|
||||
})
|
||||
15
lua/plugins/ui/rainbow-delimiters.lua
Normal file
15
lua/plugins/ui/rainbow-delimiters.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
-- This module contains a number of default definitions
|
||||
local rainbow_delimiters = require 'rainbow-delimiters'
|
||||
|
||||
vim.g.rainbow_delimiters = {
|
||||
strategy = {
|
||||
[''] = rainbow_delimiters.strategy['global'],
|
||||
vim = rainbow_delimiters.strategy['local']
|
||||
},
|
||||
query = { [''] = 'rainbow-delimiters', lua = 'rainbow-blocks' },
|
||||
highlight = {
|
||||
'RainbowDelimiterRed', 'RainbowDelimiterYellow', 'RainbowDelimiterBlue',
|
||||
'RainbowDelimiterOrange', 'RainbowDelimiterGreen',
|
||||
'RainbowDelimiterViolet', 'RainbowDelimiterCyan'
|
||||
}
|
||||
}
|
||||
25
lua/plugins/ui/telescope-file-browser.lua
Normal file
25
lua/plugins/ui/telescope-file-browser.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
local fb_actions = require "telescope".extensions.file_browser.actions
|
||||
require("telescope").setup {
|
||||
extensions = {
|
||||
file_browser = {
|
||||
-- theme = "ivy",
|
||||
-- disables netrw and use telescope-file-browser in its place
|
||||
hijack_netrw = true,
|
||||
mappings = {
|
||||
["i"] = {
|
||||
-- your custom insert mode mappings
|
||||
["<C-h>"] = fb_actions.goto_home_dir,
|
||||
["<C-x>"] = function(prompt_bufnr)
|
||||
end
|
||||
},
|
||||
["n"] = {
|
||||
-- your custom normal mode mappings
|
||||
f = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
-- To get telescope-file-browser loaded and working with telescope,
|
||||
-- you need to call load_extension, somewhere after setup function:
|
||||
require("telescope").load_extension "file_browser"
|
||||
67
lua/plugins/ui/telescope.lua
Normal file
67
lua/plugins/ui/telescope.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
local ts = require('telescope')
|
||||
ts.setup({
|
||||
defaults = {
|
||||
-- Default configuration for telescope goes here:
|
||||
-- config_key = value,
|
||||
layout_strategy = 'flex',
|
||||
width = 0.9,
|
||||
wrap_results = true,
|
||||
preview = {
|
||||
border = true,
|
||||
borderchars = {
|
||||
'─', '│', '─', '│', '╭', '╮', '╯', '╰'
|
||||
},
|
||||
title = true,
|
||||
dynamic_preview_title = true,
|
||||
treesitter = true
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
-- map actions.which_key to <C-h> (default: <C-/>)
|
||||
-- actions.which_key shows the mappings for your picker,
|
||||
-- e.g. git_{create, delete, ...}_branch for the git_branches picker
|
||||
["<C-/>"] = "which_key"
|
||||
}
|
||||
},
|
||||
file_ignore_patterns = { "^node_modules/", "^env/", "^__pycache__/" }
|
||||
},
|
||||
pickers = {
|
||||
-- Default configuration for builtin pickers goes here:
|
||||
-- picker_name = {
|
||||
-- picker_config_key = value,
|
||||
-- ...
|
||||
-- }
|
||||
-- Now the picker_config_key will be applied every time you call this
|
||||
-- builtin picker
|
||||
find_files = {
|
||||
-- theme = "dropdown"
|
||||
}
|
||||
},
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true, -- false will only do exact matching
|
||||
override_generic_sorter = true, -- override the generic sorter
|
||||
override_file_sorter = true, -- override the file sorter
|
||||
case_mode = "smart_case" -- or "ignore_case" or "respect_case"
|
||||
-- the default case_mode is "smart_case"
|
||||
},
|
||||
glyph = {
|
||||
action = function(glyph)
|
||||
-- argument glyph is a table.
|
||||
-- {name="", value="", category="", description=""}
|
||||
|
||||
-- vim.fn.setreg("*", glyph.value)
|
||||
-- print([[Press p or "*p to paste this glyph]] .. glyph.value)
|
||||
|
||||
-- insert glyph when picked
|
||||
vim.api.nvim_put({ glyph.value }, 'c', false, true)
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
-- ts.load_extension('dap')
|
||||
ts.load_extension('fzf')
|
||||
ts.load_extension('glyph')
|
||||
ts.load_extension('color_names')
|
||||
ts.load_extension('notify')
|
||||
14
lua/plugins/ui/treesitter-context.lua
Normal file
14
lua/plugins/ui/treesitter-context.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
require 'treesitter-context'.setup {
|
||||
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
|
||||
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
|
||||
min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit.
|
||||
line_numbers = true,
|
||||
multiline_threshold = 20, -- Maximum number of lines to show for a single context
|
||||
trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
|
||||
mode = 'cursor', -- Line used to calculate context. Choices: 'cursor', 'topline'
|
||||
-- Separator between context and content. Should be a single character string, like '-'.
|
||||
-- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
|
||||
separator = nil,
|
||||
zindex = 20, -- The Z-index of the context window
|
||||
on_attach = nil -- (fun(buf: integer): boolean) return false to disable attaching
|
||||
}
|
||||
48
lua/plugins/ui/treesitter.lua
Normal file
48
lua/plugins/ui/treesitter.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
require 'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all" (the five listed parsers should always be installed)
|
||||
ensure_installed = {
|
||||
"c", "lua", "vim", "vimdoc", "query", "cpp", "python", "bash", "sql",
|
||||
"yaml", "toml", "dockerfile", "gitcommit", "gitignore", "html", "css",
|
||||
"javascript", "typescript", "rust", "go", "json", "regex", "latex",
|
||||
"comment", "cmake", "graphql", "haskell", "java", "php", "ruby",
|
||||
"sparql", "vue"
|
||||
},
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
-- List of parsers to ignore installing (for "all")
|
||||
-- ignore_install = { "javascript" },
|
||||
|
||||
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
|
||||
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
|
||||
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
|
||||
-- the name of the parser)
|
||||
-- list of language that will be disabled
|
||||
-- disable = { "c", "rust" },
|
||||
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||
-- 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,
|
||||
|
||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||
-- Instead of true it can also be a list of languages
|
||||
additional_vim_regex_highlighting = false
|
||||
}
|
||||
}
|
||||
96
lua/plugins/ui/whichkey.lua
Executable file
96
lua/plugins/ui/whichkey.lua
Executable file
@@ -0,0 +1,96 @@
|
||||
local wk = require("which-key")
|
||||
|
||||
wk.add({
|
||||
{ "<leader>C", group = "ChatGPT", desc = "ChatGPT", icon = "" },
|
||||
{ "<leader>Cd", desc = "Docstring" }, { "<leader>Ce", desc = "Explain Code" },
|
||||
{ "<leader>Cf", desc = "Fix Bugs" },
|
||||
{ "<leader>Ci", desc = "Edit with Instructions" },
|
||||
{ "<leader>Co", desc = "Optimize Code" }, { "<leader>Cs", desc = "Summarize" },
|
||||
{ "<leader>Ct", desc = "Add Tests" },
|
||||
{ "<leader>K", desc = "Show Docs", icon = "" },
|
||||
{ "<leader>T", group = "Telescope", icon = "" },
|
||||
{ "<leader>Tc", desc = "Color Names" }, { "<leader>Tg", desc = "Glyph" },
|
||||
{ "<leader>Tn", desc = "Notifications" }, { "<leader>Tt", desc = "Telescope" },
|
||||
{ "<leader>a", group = "AnyJump", icon = "" },
|
||||
{ "<leader>ab", desc = "Back" }, { "<leader>al", desc = "Last Result" },
|
||||
{ "<leader>b", group = "Buffers" }, { "<leader>bb", desc = "Show Buffers" },
|
||||
{ "<leader>bd", desc = "Delete Buffer" },
|
||||
{ "<leader>bn", desc = "Next Buffer" },
|
||||
{ "<leader>bp", desc = "Previous Buffer" },
|
||||
{ "<leader>c", group = "Code", icon = "" },
|
||||
{ "<leader>cD", group = "Diagnostic List" },
|
||||
{ "<leader>cDn", desc = "Next Diagnostic" },
|
||||
{ "<leader>cDp", desc = "Previous Diagnostic" },
|
||||
{ "<leader>ca", desc = "Code Action" }, { "<leader>cd", desc = "Diagnostics" },
|
||||
{ "<leader>cl", desc = "Set Loclist" },
|
||||
{ "<leader>cp", desc = "Copilot Panel" }, { "<leader>d", group = "Debug" },
|
||||
{ "<leader>dO", desc = "Step Out" }, { "<leader>dP", group = "Dap-python" },
|
||||
{ "<leader>dPc", desc = "Test Class" }, { "<leader>dPm", desc = "Test Method" },
|
||||
{ "<leader>dPs", desc = "Debug Selection" },
|
||||
{ "<leader>db", desc = "Toggle Breakpoint" },
|
||||
{ "<leader>dc", desc = "Continue" }, { "<leader>df", desc = "Frames" },
|
||||
{ "<leader>dh", desc = "Hover" }, { "<leader>di", desc = "Step Into" },
|
||||
{ "<leader>dl", desc = "Run Last" }, { "<leader>do", desc = "Step Over" },
|
||||
{ "<leader>dp", desc = "Preview" }, { "<leader>dr", desc = "REPL Open" },
|
||||
{ "<leader>ds", desc = "Scopes" }, { "<leader>du", group = "Dap UI" },
|
||||
{ "<leader>duc", desc = "Close" }, { "<leader>duo", desc = "Open" },
|
||||
{ "<leader>dut", desc = "Toggle" }, { "<leader>f", group = "Find File" },
|
||||
{ "<leader>fb", desc = "File Browser" }, { "<leader>fc", desc = "File Color" },
|
||||
{ "<leader>ff", desc = "Find in Current Directory" },
|
||||
{ "<leader>fg", desc = "Live Grep" }, { "<leader>fr", desc = "File Recent" },
|
||||
{ "<leader>g", group = "Git" },
|
||||
{ "<leader>gP", desc = "Close goto-preview window" },
|
||||
{ "<leader>gR", desc = "Telescope References" },
|
||||
{ "<leader>gb", desc = "Blame" }, { "<leader>gc", desc = "Commit" },
|
||||
{ "<leader>gf", desc = "Files" }, { "<leader>gg", desc = "Lazygit" },
|
||||
{ "<leader>gp", desc = "Peek" }, { "<leader>gpc", desc = "Close Preview" },
|
||||
{ "<leader>gpd", desc = "Preview Definition" },
|
||||
{ "<leader>gpi", desc = "Preview Implementation" },
|
||||
{ "<leader>h", group = "Help", icon = "" },
|
||||
{ "<leader>hc", desc = "Commands" },
|
||||
{ "<leader>hd", group = "Dap", icon = "" },
|
||||
{ "<leader>hdC", desc = "Configurations" },
|
||||
{ "<leader>hdb", desc = "Breakpoints" }, { "<leader>hdc", desc = "Commands" },
|
||||
{ "<leader>hdf", desc = "Frames" }, { "<leader>hdv", desc = "Variables" },
|
||||
{ "<leader>hk", desc = "Keymaps" }, { "<leader>hs", desc = "Spell Suggest" },
|
||||
{ "<leader>hv", desc = "Vim Options" },
|
||||
{ "<leader>i", group = "Insert", icon = "" },
|
||||
{ "<leader>is", group = "Snippet" }, { "<leader>isp", desc = "Python File" },
|
||||
{ "<leader>j", desc = "Any Jump", icon = "" },
|
||||
{ "<leader>l", group = "LSP", icon = "" },
|
||||
{ "<leader>lD", desc = "Diagnostics" }, { "<leader>lR", desc = "Rename" },
|
||||
{ "<leader>la", desc = "Code Actions" }, { "<leader>lc", group = "Calls" },
|
||||
{ "<leader>lci", desc = "Incoming" }, { "<leader>lco", desc = "Outgoing" },
|
||||
{ "<leader>ld", desc = "Definitions" },
|
||||
{ "<leader>lh", desc = "Signature Help" },
|
||||
{ "<leader>li", desc = "Implementations" },
|
||||
{ "<leader>lr", desc = "References" },
|
||||
{ "<leader>ls", desc = "Document Symbols" },
|
||||
{ "<leader>lt", desc = "Type Definitions" },
|
||||
{ "<leader>lw", desc = "Workspace Symbols" },
|
||||
{ "<leader>n", desc = "NvimTree" },
|
||||
{ "<leader>o", group = "Open", icon = "" }, { "<leader>oB", desc = "Btop" },
|
||||
{ "<leader>oC", desc = "Nvim Config" },
|
||||
{ "<leader>oP", desc = "Ipython (fullscreen)" },
|
||||
{ "<leader>ob", desc = "File Browser" }, { "<leader>oc", desc = "ChatGPT" },
|
||||
{ "<leader>od", desc = "Lazydocker" },
|
||||
{ "<leader>of", desc = "Floating Terminal" },
|
||||
{ "<leader>oh", desc = "Horizontal Terminal" },
|
||||
{ "<leader>op", desc = "Ipython" }, { "<leader>or", desc = "Ranger" },
|
||||
{ "<leader>ot", desc = "Vertical Terminal" }, { "<leader>s", group = "Search" },
|
||||
{ "<leader>sC", desc = "Commands" },
|
||||
{ "<leader>sc", desc = "Clear Highlights" }, { "<leader>sf", desc = "Files" },
|
||||
{ "<leader>sG", desc = "Glyph" }, { "<leader>sg", desc = "Grep" },
|
||||
{ "<leader>sh", desc = "Command History" },
|
||||
{ "<leader>sm", desc = "Man Pages" }, { "<leader>t", group = "Toggle" },
|
||||
{ "<leader>tP", desc = "Ipython (fullscreen)" },
|
||||
{ "<leader>tc", desc = "Colorscheme" }, { "<leader>td", desc = "DBUI" },
|
||||
{ "<leader>tf", desc = "Floating Terminal" },
|
||||
{ "<leader>tp", desc = "Ipython" }, { "<leader>tt", desc = "Split Terminal" },
|
||||
{ "<leader>w", group = "Workspace" }, { "<leader>wa", desc = "Add Folder" },
|
||||
{ "<leader>wl", desc = "List Folders" },
|
||||
{ "<leader>wr", desc = "Remove Folder" },
|
||||
{ "<leader>x", group = "Set Executable Bit", desc = "Set Executable Bit" },
|
||||
{ "<leader>y", desc = "System Yank", icon = "" },
|
||||
{ "<leader>e", desc = "Edit", icon = "" }
|
||||
})
|
||||
Reference in New Issue
Block a user