initial commit
This commit is contained in:
commit
1ede5f5311
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
plugin
|
||||||
|
spell
|
||||||
|
.git
|
||||||
|
*.old
|
10
autocommands.vim
Normal file
10
autocommands.vim
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
" open at last location if possible
|
||||||
|
if has('autocmd')
|
||||||
|
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" open help and man pages in a vertical split
|
||||||
|
autocmd FileType help wincmd L
|
||||||
|
autocmd FileType man wincmd L
|
||||||
|
" make terminal not have line numbers
|
||||||
|
autocmd TermOpen * setlocal nonumber norelativenumber
|
50
coc-settings.json
Normal file
50
coc-settings.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"diagnostic.displayByAle": false,
|
||||||
|
"diagnostic.enable": true,
|
||||||
|
"diagnostic.level": "hint",
|
||||||
|
"diagnostic-languageserver.enable": true,
|
||||||
|
"diagnostic-languageserver.filetypes": {
|
||||||
|
"sh": "shellcheck",
|
||||||
|
"python": "pylint"
|
||||||
|
},
|
||||||
|
"diagnostic-languageserver.mergeConfig": true,
|
||||||
|
"diagnostic-languageserver.formatFiletypes": {
|
||||||
|
"sh": "shfmt",
|
||||||
|
"python": ["black", "isort"]
|
||||||
|
},
|
||||||
|
"diagnostic-languageserver.formatters": {
|
||||||
|
"shfmt": {
|
||||||
|
"command": "shfmt",
|
||||||
|
"args": ["-i", "4", "-ci", "-sr"]
|
||||||
|
},
|
||||||
|
"black": {
|
||||||
|
"command": "black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyright.organizeimports.provider": "isort",
|
||||||
|
"pyright.completion.importSupport": true,
|
||||||
|
"pyright.enable": true,
|
||||||
|
"python.linting.pylintEnabled": true,
|
||||||
|
"python.linting.pylintPath": "/usr/bin/pylint",
|
||||||
|
"python.formatting.blackPath": "/usr/bin/black",
|
||||||
|
"python.analysis.autoSearchPaths": true,
|
||||||
|
"python.venvPath": "env",
|
||||||
|
"languageserver": {
|
||||||
|
"python": {
|
||||||
|
"command": "pyright",
|
||||||
|
"filetypes": ["python", "py"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hover.floatConfig": {
|
||||||
|
"border": true,
|
||||||
|
"shadow": true,
|
||||||
|
"focusable": true,
|
||||||
|
"highlight": "CocFloating",
|
||||||
|
"borderhighlight": "CocFloating"
|
||||||
|
},
|
||||||
|
"diagnostic.virtualText": true,
|
||||||
|
"diagnostic.virtualTextLines": 5,
|
||||||
|
"diagnostic.virtualTextLevel": "information",
|
||||||
|
"codeLens.enable": true,
|
||||||
|
"codeLens.position": "eol"
|
||||||
|
}
|
98
init.vim
Normal file
98
init.vim
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
if has('autocmd')
|
||||||
|
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" open help and man pages in a vertical split
|
||||||
|
autocmd FileType help wincmd L
|
||||||
|
autocmd FileType man wincmd L
|
||||||
|
" make terminal not have line numbers
|
||||||
|
autocmd TermOpen * setlocal nonumber norelativenumber
|
||||||
|
|
||||||
|
" " " gray
|
||||||
|
" highlight! CmpItemAbbrDeprecated guibg=NONE gui=strikethrough guifg=#808080
|
||||||
|
" " blue
|
||||||
|
" highlight! CmpItemAbbrMatch guibg=NONE guifg=#569CD6
|
||||||
|
" highlight! link CmpItemAbbrMatchFuzzy CmpItemAbbrMatch
|
||||||
|
" " light blue
|
||||||
|
" highlight! CmpItemKindVariable guibg=NONE guifg=#9CDCFE
|
||||||
|
" highlight! link CmpItemKindInterface CmpItemKindVariable
|
||||||
|
" highlight! link CmpItemKindText CmpItemKindVariable
|
||||||
|
" " pink
|
||||||
|
" highlight! CmpItemKindFunction guibg=NONE guifg=#C586C0
|
||||||
|
" highlight! link CmpItemKindMethod CmpItemKindFunction
|
||||||
|
" " front
|
||||||
|
" highlight! CmpItemKindKeyword guibg=NONE guifg=#D4D4D4
|
||||||
|
" highlight! link CmpItemKindProperty CmpItemKindKeyword
|
||||||
|
" highlight! link CmpItemKindUnit CmpItemKindKeyword
|
||||||
|
" highlight! PmenuSel guibg=#51afef guifg=NONE
|
||||||
|
" highlight! Pmenu guifg=#C5CDD9 guibg=#51afef
|
||||||
|
|
||||||
|
lua require('settings')
|
||||||
|
lua require('plugins')
|
||||||
|
source ~/.config/nvim/keybindings.vim
|
||||||
|
|
||||||
|
" nvim plugins
|
||||||
|
source ~/.config/nvim/plugin-confs/bufferline.lua
|
||||||
|
" source ~/.config/nvim/plugin-confs/dashboard-art.vim
|
||||||
|
source ~/.config/nvim/plugin-confs/dashboard-nvim.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/gitsigns.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/lspfuzzy.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/lualine.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/nvimtree.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/presence.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/treesitter.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/whichkey.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/telescope.lua
|
||||||
|
|
||||||
|
source ~/.config/nvim/plugin-confs/code_actions.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/goto-preview.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/lsp-kind.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/lspconfig.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/lsplines.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/null-ls.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/nvim-cmp.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/fidget.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/symbols-outline.lua
|
||||||
|
" source ~/.config/nvim/plugin-confs/copilot.lua
|
||||||
|
" source ~/.config/nvim/plugin-confs/lsp-signature.lua
|
||||||
|
" source ~/.config/nvim/plugin-confs/nvim-docs-view.lua
|
||||||
|
|
||||||
|
" nvim and vim plugins
|
||||||
|
source ~/.vim/plugin-confs/floaterm.vim
|
||||||
|
source ~/.vim/plugin-confs/fzf.vim
|
||||||
|
source ~/.vim/plugin-confs/vim-closetag.vim
|
||||||
|
source ~/.vim/plugin-confs/wakatime.vim
|
||||||
|
|
||||||
|
source ~/.config/nvim/plugin-confs/doomone.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/dracula.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/github-theme.lua
|
||||||
|
source ~/.config/nvim/plugin-confs/onedarkpro.lua
|
||||||
|
|
||||||
|
source ~/.config/nvim/lua/toggle_lsp_diagnostics.lua
|
||||||
|
|
||||||
|
" CUSTOM COMMANDS
|
||||||
|
command! -bang -nargs=? -complete=dir Files
|
||||||
|
\ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh']}), <bang>0)
|
||||||
|
|
||||||
|
command! -bang -nargs=? -complete=dir AllFiles
|
||||||
|
\ call fzf#run(fzf#wrap('allfiles', fzf#vim#with_preview({'dir': <q-args>, 'sink': 'e', 'source': 'rg --files --hidden --no-ignore', 'options': ['--layout=reverse', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh']}), <bang>0))
|
||||||
|
|
||||||
|
command! -bang -nargs=? -complete=dir Lines
|
||||||
|
\ call fzf#vim#lines(<q-args>, ({'options': ['--layout=reverse']}), <bang>0)
|
||||||
|
|
||||||
|
command! -bang -nargs=? -complete=dir Buffers
|
||||||
|
\ call fzf#vim#buffers(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh']}), <bang>0)
|
||||||
|
|
||||||
|
command! Reload execute "source ~/.config/nvim/init.vim"
|
||||||
|
command! Config execute ":e ~/.config/nvim/init.vim"
|
||||||
|
command! Plugins execute ":e ~/.config/nvim/lua/plugins.lua"
|
||||||
|
command! Settings execute ":e ~/.config/nvim/lua/settings.lua"
|
||||||
|
command! Env execute ":Dotenv .env"
|
||||||
|
command! MakeTags !ctags -R .
|
||||||
|
command! Ovewrite execute ":w !sudo tee %"
|
||||||
|
command! Aniwrapper execute ":FloatermNew aniwrapper -qtdoomone -D 144"
|
||||||
|
|
||||||
|
set termguicolors
|
||||||
|
" colorscheme doom-one
|
||||||
|
colorscheme onedarkpro
|
||||||
|
" colorscheme github_dark
|
140
keybindings.vim
Normal file
140
keybindings.vim
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
nmap <F4> :set paste!<Bar>set paste?<CR>
|
||||||
|
nmap <F5> :!
|
||||||
|
|
||||||
|
" reselect visual selection after indent
|
||||||
|
vnoremap < <gv
|
||||||
|
vnoremap > >gv
|
||||||
|
|
||||||
|
" for toggling/hiding the split-term
|
||||||
|
tnoremap <C-T> <C-\><C-n>:FloatermToggle floatterm<CR>
|
||||||
|
tnoremap <Esc> <C-\><C-n>
|
||||||
|
tnoremap <leader>tt <C-\><C-N>:FloatermToggle split-term<CR>
|
||||||
|
tnoremap <leader>tf <C-\><C-N>:FloatermToggle floatterm<CR>
|
||||||
|
tnoremap <leader>tp <C-\><C-N>:FloatermToggle ipython<CR>
|
||||||
|
tnoremap <leader>tP <C-\><C-N>:FloatermToggle ipython-full<CR>
|
||||||
|
|
||||||
|
nmap <C-J> :bnext<CR>
|
||||||
|
nmap <C-K> :bprev<CR>
|
||||||
|
nmap <C-T> :wa<CR>:FloatermToggle floatterm<CR>
|
||||||
|
|
||||||
|
" open file under cursor, create if necessary
|
||||||
|
nnoremap // :Telescope current_buffer_fuzzy_find<CR>
|
||||||
|
nnoremap ?? :BLines<CR>
|
||||||
|
|
||||||
|
nmap gA :lua vim.lsp.buf.code_actions()<CR>
|
||||||
|
nmap gd :Telescope lsp_definitions<CR>
|
||||||
|
nmap gDc :Telescope lsp_implementations<CR>
|
||||||
|
nmap gDf :Telescope lsp_definitions<CR>
|
||||||
|
nmap gF :edit <cfile><cr>
|
||||||
|
nmap gT :Telescope lsp_type_definitions<CR>
|
||||||
|
nmap gb :Gitsigns blame_line<CR>
|
||||||
|
" nmap gd :lua vim.lsp.buf.definition()<CR>
|
||||||
|
nmap gi :Telescope lsp_implementations<CR>
|
||||||
|
nmap gj :Telescope jumplist<CR>
|
||||||
|
nmap gl :lua vim.lsp.buf.code_lens()<CR>
|
||||||
|
nmap gr :Telescope lsp_references<CR>
|
||||||
|
nmap gs :lua vim.lsp.buf.signature_help()<CR>
|
||||||
|
|
||||||
|
nmap Q !!$SHELL<CR>
|
||||||
|
|
||||||
|
nmap rn :lua vim.lsp.buf.rename()<CR>
|
||||||
|
|
||||||
|
nmap <leader>as :FloatermNew --title=aniwrapper aniwrapper -qtdoomone -D144<CR>
|
||||||
|
nmap <leader>ad :FloatermNew --title=aniwrapper ani-cli -q720p -cd/home/sudacode/Videos/sauce -D144<CR>
|
||||||
|
|
||||||
|
nmap <leader>bb :Telescope buffers<CR>
|
||||||
|
nmap <leader>bk :bdelete<CR>
|
||||||
|
nmap <leader>bn :bnext<CR>
|
||||||
|
nmap <leader>bp :bprev<CR>
|
||||||
|
|
||||||
|
nmap <leader>ca :lua vim.lsp.buf.code_action()<CR>
|
||||||
|
nmap <leader>cc :vert Copilot<CR>
|
||||||
|
nmap <leader>cd :Telescope diagnostics<CR>
|
||||||
|
" nmap <leader>cl :lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
|
||||||
|
nnoremap <silent> <Leader>cn :DashboardNewFile<CR>
|
||||||
|
|
||||||
|
nnoremap <leader>ff :Telescope find_files<cr>
|
||||||
|
nnoremap <leader>fg :Telescope live_grep<cr>
|
||||||
|
nnoremap <leader>fb :Telescope buffers<cr>
|
||||||
|
nnoremap <leader>fh :Telescope help_tags<cr>
|
||||||
|
nmap <silent> <Leader>fa :DashboardFindWord<CR>
|
||||||
|
nmap <silent> <Leader>fb :DashboardJumpMark<CR>
|
||||||
|
nmap <silent> <Leader>fh :DashboardFindHistory<CR>
|
||||||
|
|
||||||
|
nmap <leader>gb :Gitsigns blame_line<CR>
|
||||||
|
nmap <leader>gc :Telescope git_commits<CR>
|
||||||
|
nmap <leader>gf :Telescope git_files<CR>
|
||||||
|
" nmap <leader>gg :Neogit<CR>
|
||||||
|
nmap <leader>gg :FloatermNew --title=lazygit --width=1.0 --height=1.0 --opener=vsplit lazygit<CR>
|
||||||
|
nnoremap gP <cmd>lua require('goto-preview').close_all_win()<CR>
|
||||||
|
nnoremap gR <cmd>Telescope lsp_references<cr>
|
||||||
|
nnoremap gpc <cmd>lua require('goto-preview').close_all_win()<CR>
|
||||||
|
nnoremap gpd <cmd>lua require('goto-preview').goto_preview_definition()<CR>
|
||||||
|
nnoremap gpi <cmd>lua require('goto-preview').goto_preview_implementation()<CR>
|
||||||
|
|
||||||
|
nmap <leader>hc :Telescope commands<CR>
|
||||||
|
nmap <leader>hh :Telescope tags<CR>
|
||||||
|
nmap <leader>hk :Telescope keymaps<CR>
|
||||||
|
nmap <leader>hs :Telescope spell_suggest<CR>
|
||||||
|
|
||||||
|
nmap <leader>isp :-1read $HOME/Templates/python.py<CR>4jw
|
||||||
|
|
||||||
|
nmap <leader>j :AnyJump<CR>
|
||||||
|
|
||||||
|
" nmap K :DocsViewToggle<CR>
|
||||||
|
nmap K :lua vim.lsp.buf.hover()<CR>
|
||||||
|
|
||||||
|
nmap <leader>ld :Telescope lsp_definitions<CR>
|
||||||
|
nmap <leader>la :lua vim.lsp.buf.code_action()<CR>
|
||||||
|
nmap <leader>lci :Telescope lsp_incoming_calls<CR>
|
||||||
|
nmap <leader>lco :Telescope lsp_outgoing_calls<CR>
|
||||||
|
nmap <leader>lh :lua vim.lsp.buf.signature_help()<CR>
|
||||||
|
nmap <leader>li :Telescope lsp_implementations<CR>
|
||||||
|
nmap <leader>lr :Telescope lsp_references<CR>
|
||||||
|
nmap <leader>lR :lua vim.lsp.buf.rename()<CR>
|
||||||
|
nmap <leader>ls :Telescope lsp_document_symbols<CR>
|
||||||
|
nmap <leader>lt :Telescope lsp_type_definitions<CR>
|
||||||
|
nmap <leader>lw :Telescope lsp_dynamic_workspace_symbols<CR>
|
||||||
|
|
||||||
|
nmap <leader>n :NvimTreeToggle<CR>
|
||||||
|
|
||||||
|
nmap <leader>ob :FloatermNew --title=bpytop --opener=vsplit bpytop<CR>
|
||||||
|
nmap <leader>od :FloatermNew --title=lazydocker --opener=vsplit lazydocker<CR>
|
||||||
|
nmap <leader>of :wa<CR>:FloatermToggle floatterm<CR>
|
||||||
|
nmap <leader>oh :FloatermNew --title=floaterm --name=split-term --opener=edit --wintype=split --position=botright --height=0.45<CR>
|
||||||
|
nmap <leader>on :FloatermNew --title=ncmpcpp --opener=vsplit ncmpcpp<CR>
|
||||||
|
nmap <leader>op :FloatermNew --title=ipython --name=ipython --opener=split --wintype=vsplit --position=botright --width=0.5 ipython<CR>
|
||||||
|
nmap <leader>oP :FloatermNew --title=ipython-full --name=ipython-full --opener=edit --width=1.0 --height=1.0 ipython<CR>
|
||||||
|
nmap <leader>or :FloatermNew --title=ranger --opener=vsplit ranger --cmd="cd $PWD"<CR>
|
||||||
|
nmap <leader>ot :FloatermNew --title=floaterm --name=split-term --opener=edit --wintype=vsplit --position=botright --width=0.5<CR>
|
||||||
|
|
||||||
|
nmap <leader>r :NvimTreeRefresh<CR>
|
||||||
|
|
||||||
|
nmap <Leader>sl :<C-u>SessionLoad<CR>
|
||||||
|
nmap <Leader>ss :<C-u>SessionSave<CR>
|
||||||
|
nmap <leader>sc :nohls<Cr>
|
||||||
|
nmap <leader>sC :Telescope commands<Cr>
|
||||||
|
nmap <leader>sf :Telescope find_files<Cr>
|
||||||
|
nmap <leader>sh :Telescope command_history<CR>
|
||||||
|
nmap <leader>sm :Telescope man_pages<CR>
|
||||||
|
nmap <leader>s/ :Telescope search_history<CR>
|
||||||
|
|
||||||
|
nnoremap <silent> <Leader>tc :Telescope colorscheme<CR>
|
||||||
|
nmap <leader>tf :wa<CR>:FloatermToggle floatterm<CR>
|
||||||
|
nmap <leader>to :SymbolsOutline<CR>
|
||||||
|
nmap <leader>tp :FloatermToggle ipython<CR>
|
||||||
|
nmap <leader>tP :FloatermToggle ipython-full<CR>
|
||||||
|
nmap <leader>tt :FloatermToggle split-term<CR>
|
||||||
|
|
||||||
|
nmap <leader>wa :lua vim.lsp.buf.add_workspace_folder()<CR>
|
||||||
|
nmap <leader>wl :lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>
|
||||||
|
nmap <leader>wr :lua vim.lsp.buf.remove_workspace_folder()<CR>
|
||||||
|
|
||||||
|
" nnoremap <leader>xd <cmd>TroubleToggle document_diagnostics<cr>
|
||||||
|
" nnoremap <leader>xl <cmd>TroubleToggle loclist<cr>
|
||||||
|
" nnoremap <leader>xq <cmd>TroubleToggle quickfix<cr>
|
||||||
|
" nnoremap <leader>xw <cmd>TroubleToggle workspace_diagnostics<cr>
|
||||||
|
" nnoremap <leader>xx <cmd>TroubleToggle<cr>
|
||||||
|
|
||||||
|
nmap <leader>y "+
|
||||||
|
vmap <leader>y "+
|
3
lua/keybindings.lua
Normal file
3
lua/keybindings.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
local function map(m, k, v)
|
||||||
|
vim.keymap.set(m, k, v, {silent = true, noremap = true})
|
||||||
|
end
|
207
lua/plugins.lua
Normal file
207
lua/plugins.lua
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
vim.cmd [[packadd packer.nvim]]
|
||||||
|
require('packer').startup(function(use)
|
||||||
|
use 'wbthomason/packer.nvim'
|
||||||
|
use 'nvim-lua/plenary.nvim'
|
||||||
|
use {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = function() require('nvim-treesitter.install').update({ with_sync = true }) end,
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
requires = { 'kyazdani42/nvim-web-devicons', opt = true }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
use {
|
||||||
|
"zbirenbaum/copilot.lua",
|
||||||
|
after = "lualine.nvim",
|
||||||
|
config = function ()
|
||||||
|
vim.defer_fn(function()
|
||||||
|
require('copilot').setup({
|
||||||
|
panel = {
|
||||||
|
enabled = true,
|
||||||
|
auto_refresh = false,
|
||||||
|
keymap = {
|
||||||
|
jump_prev = "[[",
|
||||||
|
jump_next = "]]",
|
||||||
|
accept = "<CR>",
|
||||||
|
refresh = "gr",
|
||||||
|
open = "<M-CR>"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
suggestion = {
|
||||||
|
enabled = true,
|
||||||
|
auto_trigger = true,
|
||||||
|
debounce = 75,
|
||||||
|
keymap = {
|
||||||
|
accept = "<Tab>",
|
||||||
|
next = "<M-]>",
|
||||||
|
prev = "<M-[>",
|
||||||
|
dismiss = "<C-]>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- filetypes = {
|
||||||
|
-- yaml = false,
|
||||||
|
-- markdown = false,
|
||||||
|
-- help = false,
|
||||||
|
-- gitcommit = false,
|
||||||
|
-- gitrebase = false,
|
||||||
|
-- hgcommit = false,
|
||||||
|
-- svn = false,
|
||||||
|
-- cvs = false,
|
||||||
|
-- ["."] = false,
|
||||||
|
-- },
|
||||||
|
copilot_node_command = 'node', -- Node version must be < 18
|
||||||
|
plugin_manager_path = vim.fn.stdpath("data") .. "/site/pack/packer",
|
||||||
|
server_opts_overrides = {},
|
||||||
|
})
|
||||||
|
end, 100)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
"zbirenbaum/copilot-cmp",
|
||||||
|
after = { "copilot.lua" },
|
||||||
|
config = function ()
|
||||||
|
require("copilot_cmp").setup({
|
||||||
|
-- method = "getCompletionsCycling",
|
||||||
|
-- formatters = {
|
||||||
|
-- insert_text = require("copilot_cmp.format").remove_existing
|
||||||
|
-- }
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
'junegunn/fzf',
|
||||||
|
run = function() vim.fn['fzf#install']() end
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
"lewis6991/hover.nvim",
|
||||||
|
config = function()
|
||||||
|
require("hover").setup {
|
||||||
|
init = function()
|
||||||
|
-- Require providers
|
||||||
|
require("hover.providers.lsp")
|
||||||
|
-- require('hover.providers.gh')
|
||||||
|
-- require('hover.providers.jira')
|
||||||
|
require('hover.providers.man')
|
||||||
|
require('hover.providers.dictionary')
|
||||||
|
end,
|
||||||
|
preview_opts = {
|
||||||
|
border = "rounded"
|
||||||
|
-- border = {
|
||||||
|
-- { "╭", "FloatBorder" },
|
||||||
|
-- { "─", "FloatBorder" },
|
||||||
|
-- { "╮", "FloatBorder" },
|
||||||
|
-- { "│", "FloatBorder" },
|
||||||
|
-- { "╯", "FloatBorder" },
|
||||||
|
-- { "─", "FloatBorder" },
|
||||||
|
-- { "╰", "FloatBorder" },
|
||||||
|
-- { "│", "FloatBorder" },
|
||||||
|
-- }
|
||||||
|
},
|
||||||
|
-- Whether the contents of a currently open hover window should be moved
|
||||||
|
-- to a :h preview-window when pressing the hover keymap.
|
||||||
|
preview_window = false,
|
||||||
|
title = true
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Setup keymaps
|
||||||
|
vim.keymap.set("n", "K", require("hover").hover, {desc = "hover.nvim"})
|
||||||
|
vim.keymap.set("n", "gK", require("hover").hover_select, {desc = "hover.nvim (select)"})
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
use 'ap/vim-css-color'
|
||||||
|
use 'jiangmiao/auto-pairs'
|
||||||
|
use 'junegunn/fzf.vim'
|
||||||
|
use 'pechorin/any-jump.vim'
|
||||||
|
use 'tpope/vim-commentary'
|
||||||
|
use 'tpope/vim-surround'
|
||||||
|
use 'voldikss/vim-floaterm'
|
||||||
|
use 'wakatime/vim-wakatime'
|
||||||
|
|
||||||
|
use {
|
||||||
|
'akinsho/nvim-bufferline.lua'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'andweeb/presence.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'folke/which-key.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'glepnir/dashboard-nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'kyazdani42/nvim-tree.lua'
|
||||||
|
}
|
||||||
|
use 'kyazdani42/nvim-web-devicons'
|
||||||
|
use {
|
||||||
|
'lewis6991/gitsigns.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'nvim-telescope/telescope.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'ojroques/nvim-lspfuzzy'
|
||||||
|
}
|
||||||
|
|
||||||
|
use 'L3MON4D3/LuaSnip'
|
||||||
|
-- use 'amrbashir/nvim-docs-view'
|
||||||
|
use {
|
||||||
|
'hrsh7th/nvim-cmp'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'hrsh7th/cmp-nvim-lsp'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'hrsh7th/cmp-nvim-lua'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'hrsh7th/cmp-nvim-lsp-signature-help'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'hrsh7th/cmp-path'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'hrsh7th/cmp-buffer'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'j-hui/fidget.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'jose-elias-alvarez/null-ls.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'ksyasuda/lsp_lines.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'neovim/nvim-lspconfig'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'onsails/lspkind-nvim'
|
||||||
|
}
|
||||||
|
-- use 'ray-x/lsp_signature.nvim'
|
||||||
|
use {
|
||||||
|
'rmagatti/goto-preview'
|
||||||
|
}
|
||||||
|
use 'saadparwaiz1/cmp_luasnip'
|
||||||
|
use 'williamboman/nvim-lsp-installer'
|
||||||
|
|
||||||
|
use {
|
||||||
|
'Mofiqul/dracula.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'NTBBloodbath/doom-one.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'olimorris/onedarkpro.nvim'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'projekt0n/github-nvim-theme'
|
||||||
|
}
|
||||||
|
end)
|
43
lua/settings.lua
Normal file
43
lua/settings.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
local g = vim.g
|
||||||
|
local o = vim.o
|
||||||
|
local A = vim.api
|
||||||
|
|
||||||
|
g.mapleader = " "
|
||||||
|
g.maplocalleader = ','
|
||||||
|
g.fzf_command = 'fzf --height 90% --width=85% --layout=reverse --preview "bat --color=always {}"'
|
||||||
|
o.completeopt="menu,menuone,noselect"
|
||||||
|
o.showmode = false
|
||||||
|
o.termguicolors = true
|
||||||
|
o.background = 'dark'
|
||||||
|
o.mouse = 'a'
|
||||||
|
o.syntax = 'on'
|
||||||
|
o.laststatus = 3
|
||||||
|
o.number = true
|
||||||
|
o.relativenumber = true
|
||||||
|
o.colorcolumn = '80'
|
||||||
|
o.textwidth = 80
|
||||||
|
o.shiftwidth = 4
|
||||||
|
o.tabstop = 4
|
||||||
|
o.autoindent = true
|
||||||
|
o.ignorecase = true
|
||||||
|
o.smartcase = true
|
||||||
|
o.incsearch = true
|
||||||
|
o.hlsearch = true
|
||||||
|
o.title = true
|
||||||
|
o.splitright = true
|
||||||
|
o.cursorline = true
|
||||||
|
o.scrolloff = 8
|
||||||
|
o.sidescrolloff = 8
|
||||||
|
o.wildmenu = true
|
||||||
|
o.wildignore= '.git,.hg,.svn,CVS,.DS_Store,.idea,.vscode,.vscode-test,node_modules'
|
||||||
|
o.showmatch = true
|
||||||
|
o.list = true
|
||||||
|
o.listchars = 'tab:»·,trail:·,nbsp:·,extends:>,precedes:<'
|
||||||
|
o.encoding = 'utf-8'
|
||||||
|
o.guifont = 'JetBrainsMono Nerd Font 14'
|
||||||
|
o.expandtab = true
|
||||||
|
o.hidden = true
|
||||||
|
o.cmdheight = 1
|
||||||
|
o.updatetime = 300
|
||||||
|
o.timeoutlen = 500
|
||||||
|
o.pumwidth=35
|
11
lua/toggle_lsp_diagnostics.lua
Normal file
11
lua/toggle_lsp_diagnostics.lua
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
local diagnostics_active = true
|
||||||
|
local toggle_diagnostics = function()
|
||||||
|
diagnostics_active = not diagnostics_active
|
||||||
|
if diagnostics_active then
|
||||||
|
vim.diagnostic.show()
|
||||||
|
else
|
||||||
|
vim.diagnostic.hide()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>td', toggle_diagnostics)
|
85
plugin-confs/bufferline.lua
Normal file
85
plugin-confs/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',
|
||||||
|
}
|
||||||
|
}
|
14
plugin-confs/code_actions.lua
Normal file
14
plugin-confs/code_actions.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local lsp_util = vim.lsp.util
|
||||||
|
|
||||||
|
function M.code_action_listener()
|
||||||
|
local context = { diagnostics = vim.lsp.diagnostic.get_line_diagnostics() }
|
||||||
|
local params = lsp_util.make_range_params()
|
||||||
|
params.context = context
|
||||||
|
vim.lsp.buf_request(0, 'textDocument/codeAction', params, function(err, _, result)
|
||||||
|
-- do something with result - e.g. check if empty and show some indication such as a sign
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
38
plugin-confs/copilot.lua
Normal file
38
plugin-confs/copilot.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
require('copilot').setup({
|
||||||
|
panel = {
|
||||||
|
enabled = true,
|
||||||
|
auto_refresh = false,
|
||||||
|
keymap = {
|
||||||
|
jump_prev = "[[",
|
||||||
|
jump_next = "]]",
|
||||||
|
accept = "<CR>",
|
||||||
|
refresh = "gr",
|
||||||
|
open = "<S-CR>"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
suggestion = {
|
||||||
|
enabled = true,
|
||||||
|
auto_trigger = false,
|
||||||
|
debounce = 75,
|
||||||
|
keymap = {
|
||||||
|
accept = "<M-l>",
|
||||||
|
next = "<M-]>",
|
||||||
|
prev = "<M-[>",
|
||||||
|
dismiss = "<C-]>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filetypes = {
|
||||||
|
yaml = false,
|
||||||
|
markdown = false,
|
||||||
|
help = false,
|
||||||
|
gitcommit = false,
|
||||||
|
gitrebase = false,
|
||||||
|
hgcommit = false,
|
||||||
|
svn = false,
|
||||||
|
cvs = false,
|
||||||
|
["."] = false,
|
||||||
|
},
|
||||||
|
copilot_node_command = 'node', -- Node version must be < 18
|
||||||
|
plugin_manager_path = vim.fn.stdpath("data") .. "/site/pack/packer",
|
||||||
|
server_opts_overrides = {},
|
||||||
|
})
|
8
plugin-confs/dashboard-art.vim
Normal file
8
plugin-confs/dashboard-art.vim
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
let g:dashboard_custom_header = [
|
||||||
|
\ ' ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗',
|
||||||
|
\ ' ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║',
|
||||||
|
\ ' ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║',
|
||||||
|
\ ' ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║',
|
||||||
|
\ ' ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║',
|
||||||
|
\ ' ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝',
|
||||||
|
\]
|
36
plugin-confs/dashboard-nvim.lua
Normal file
36
plugin-confs/dashboard-nvim.lua
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
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 = 'DashboardFindHistory',
|
||||||
|
shortcut = 'SPC f h'},
|
||||||
|
{icon = ' ',
|
||||||
|
desc = 'Find File ',
|
||||||
|
action = 'Telescope find_files find_command=rg,--hidden,--files',
|
||||||
|
shortcut = 'SPC f f'},
|
||||||
|
{icon = ' ',
|
||||||
|
desc ='File Browser ',
|
||||||
|
action = 'NvimTreeToggle',
|
||||||
|
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'},
|
||||||
|
}
|
57
plugin-confs/doomone.lua
Normal file
57
plugin-confs/doomone.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
-- require('doom-one').setup({
|
||||||
|
-- cursor_coloring = false,
|
||||||
|
-- terminal_colors = false,
|
||||||
|
-- italic_comments = false,
|
||||||
|
-- enable_treesitter = true,
|
||||||
|
-- transparent_background = false,
|
||||||
|
-- pumblend = {
|
||||||
|
-- enable = true,
|
||||||
|
-- transparency_amount = 20,
|
||||||
|
-- },
|
||||||
|
-- plugins_integrations = {
|
||||||
|
-- neorg = true,
|
||||||
|
-- barbar = true,
|
||||||
|
-- bufferline = false,
|
||||||
|
-- gitgutter = false,
|
||||||
|
-- gitsigns = true,
|
||||||
|
-- telescope = false,
|
||||||
|
-- neogit = true,
|
||||||
|
-- nvim_tree = true,
|
||||||
|
-- dashboard = true,
|
||||||
|
-- startify = true,
|
||||||
|
-- whichkey = true,
|
||||||
|
-- indent_blankline = true,
|
||||||
|
-- vim_illuminate = true,
|
||||||
|
-- lspsaga = false,
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
|
||||||
|
|
||||||
|
vim.g.doom_one_cursor_coloring = true
|
||||||
|
-- Set :terminal colors
|
||||||
|
vim.g.doom_one_terminal_colors = true
|
||||||
|
-- Enable italic comments
|
||||||
|
vim.g.doom_one_italic_comments = false
|
||||||
|
-- Enable TS support
|
||||||
|
vim.g.doom_one_enable_treesitter = true
|
||||||
|
-- Color whole diagnostic text or only underline
|
||||||
|
vim.g.doom_one_diagnostics_text_color = true
|
||||||
|
-- Enable transparent background
|
||||||
|
vim.g.doom_one_transparent_background = false
|
||||||
|
|
||||||
|
-- Pumblend transparency
|
||||||
|
vim.g.doom_one_pumblend_enable = false
|
||||||
|
vim.g.doom_one_pumblend_transparency = 20
|
||||||
|
|
||||||
|
-- Plugins integration
|
||||||
|
vim.g.doom_one_plugin_neorg = true
|
||||||
|
vim.g.doom_one_plugin_barbar = false
|
||||||
|
vim.g.doom_one_plugin_telescope = false
|
||||||
|
vim.g.doom_one_plugin_neogit = true
|
||||||
|
vim.g.doom_one_plugin_nvim_tree = true
|
||||||
|
vim.g.doom_one_plugin_dashboard = true
|
||||||
|
vim.g.doom_one_plugin_startify = true
|
||||||
|
vim.g.doom_one_plugin_whichkey = true
|
||||||
|
vim.g.doom_one_plugin_indent_blankline = true
|
||||||
|
vim.g.doom_one_plugin_vim_illuminate = true
|
||||||
|
vim.g.doom_one_plugin_lspsaga = false
|
33
plugin-confs/dracula.lua
Normal file
33
plugin-confs/dracula.lua
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
-- customize dracula color palette
|
||||||
|
vim.g.dracula_colors = {
|
||||||
|
bg = "#282A36",
|
||||||
|
fg = "#F8F8F2",
|
||||||
|
selection = "#44475A",
|
||||||
|
comment = "#6272A4",
|
||||||
|
red = "#FF5555",
|
||||||
|
orange = "#FFB86C",
|
||||||
|
yellow = "#F1FA8C",
|
||||||
|
green = "#50fa7b",
|
||||||
|
purple = "#BD93F9",
|
||||||
|
cyan = "#8BE9FD",
|
||||||
|
pink = "#FF79C6",
|
||||||
|
bright_red = "#FF6E6E",
|
||||||
|
bright_green = "#69FF94",
|
||||||
|
bright_yellow = "#FFFFA5",
|
||||||
|
bright_blue = "#D6ACFF",
|
||||||
|
bright_magenta = "#FF92DF",
|
||||||
|
bright_cyan = "#A4FFFF",
|
||||||
|
bright_white = "#FFFFFF",
|
||||||
|
menu = "#21222C",
|
||||||
|
visual = "#3E4452",
|
||||||
|
gutter_fg = "#4B5263",
|
||||||
|
nontext = "#3B4048",
|
||||||
|
}
|
||||||
|
-- show the '~' characters after the end of buffers
|
||||||
|
vim.g.dracula_show_end_of_buffer = true
|
||||||
|
-- use transparent background
|
||||||
|
vim.g.dracula_transparent_bg = true
|
||||||
|
-- set custom lualine background color
|
||||||
|
vim.g.dracula_lualine_bg_color = "#44475a"
|
||||||
|
-- set italic comment
|
||||||
|
vim.g.dracula_italic_comment = true
|
49
plugin-confs/fidget.lua
Normal file
49
plugin-confs/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
plugin-confs/git-blame.lua
Normal file
2
plugin-confs/git-blame.lua
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
vim.g.gitblame_highlight_group = "Question"
|
||||||
|
vim.g.gitblame_enabled = 0
|
19
plugin-confs/github-theme.lua
Normal file
19
plugin-confs/github-theme.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
-- Example config in Lua
|
||||||
|
require("github-theme").setup({
|
||||||
|
theme_style = "dark",
|
||||||
|
function_style = "italic",
|
||||||
|
sidebars = {"qf", "vista_kind", "terminal", "packer"},
|
||||||
|
|
||||||
|
-- Change the "hint" color to the "orange" color, and make the "error" color bright red
|
||||||
|
colors = {hint = "orange", error = "#ff0000"},
|
||||||
|
|
||||||
|
-- Overwrite the highlight groups
|
||||||
|
overrides = function(c)
|
||||||
|
return {
|
||||||
|
htmlTag = {fg = c.red, bg = "#282c34", sp = c.hint, style = "underline"},
|
||||||
|
DiagnosticHint = {link = "LspDiagnosticsDefaultHint"},
|
||||||
|
-- this will remove the highlight groups
|
||||||
|
TSField = {},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
})
|
43
plugin-confs/gitsigns.lua
Normal file
43
plugin-confs/gitsigns.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
require('gitsigns').setup {
|
||||||
|
signs = {
|
||||||
|
add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'},
|
||||||
|
change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||||
|
delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||||
|
topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||||
|
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||||
|
},
|
||||||
|
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 = {
|
||||||
|
interval = 1000,
|
||||||
|
follow_files = true
|
||||||
|
},
|
||||||
|
attach_to_untracked = true,
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter_opts = {
|
||||||
|
relative_time = false
|
||||||
|
},
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil, -- Use default
|
||||||
|
max_file_length = 40000,
|
||||||
|
preview_config = {
|
||||||
|
-- Options passed to nvim_open_win
|
||||||
|
border = 'single',
|
||||||
|
style = 'minimal',
|
||||||
|
relative = 'cursor',
|
||||||
|
row = 0,
|
||||||
|
col = 1
|
||||||
|
},
|
||||||
|
yadm = {
|
||||||
|
enable = false
|
||||||
|
},
|
||||||
|
}
|
19
plugin-confs/goto-preview.lua
Normal file
19
plugin-confs/goto-preview.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
require('goto-preview').setup {
|
||||||
|
width = 120; -- Width of the floating window
|
||||||
|
height = 20; -- Height of the floating window
|
||||||
|
border = {"╭", "─" ,"╮", "│", "╯", "─", "╰", "│"}; -- Border characters of the floating window
|
||||||
|
-- border = {"┌", "─" ,"┐", "│", "┘", "─", "└", "│"}; -- Border characters of the floating window
|
||||||
|
default_mappings = false; -- Bind default mappings
|
||||||
|
debug = false; -- Print debug information
|
||||||
|
opacity = 25; -- 0-100 opacity level of the floating window where 100 is fully transparent.
|
||||||
|
resizing_mappings = false; -- Binds arrow keys to resizing the floating window.
|
||||||
|
post_open_hook = nil; -- A function taking two arguments, a buffer and a window to be ran as a hook.
|
||||||
|
references = { -- Configure the telescope UI for slowing the references cycling window.
|
||||||
|
-- telescope = telescope.themes.get_dropdown({ hide_preview = false })
|
||||||
|
};
|
||||||
|
-- These two configs can also be passed down to the goto-preview definition and implementation calls for one off "peak" functionality.
|
||||||
|
focus_on_open = true; -- Focus the floating window when opening it.
|
||||||
|
dismiss_on_move = false; -- Dismiss the floating window when moving the cursor.
|
||||||
|
force_close = false, -- passed into vim.api.nvim_win_close's second argument. See :h nvim_win_close
|
||||||
|
bufhidden = "wipe", -- the bufhidden option to set on the floating window. See :h bufhidden
|
||||||
|
}
|
8
plugin-confs/lsp-kind.lua
Normal file
8
plugin-confs/lsp-kind.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
-- lspkind.lua
|
||||||
|
local lspkind = require("lspkind")
|
||||||
|
lspkind.init({
|
||||||
|
symbol_map = {
|
||||||
|
Copilot = ""
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.api.nvim_set_hl(0, "CmpItemKindCopilot", {fg ="#6CC644"})
|
54
plugin-confs/lsp-signature.lua
Normal file
54
plugin-confs/lsp-signature.lua
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
cfg = {
|
||||||
|
debug = false, -- set to true to enable debug logging
|
||||||
|
log_path = vim.fn.stdpath("cache") .. "/lsp_signature.log", -- log dir when debug is on
|
||||||
|
-- default is ~/.cache/nvim/lsp_signature.log
|
||||||
|
verbose = false, -- show debug line number
|
||||||
|
|
||||||
|
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||||
|
-- If you want to hook lspsaga or other signature handler, pls set to false
|
||||||
|
doc_lines = 12, -- will show two lines of comment/doc(if there are more than two lines in doc, will be truncated);
|
||||||
|
-- set to 0 if you DO NOT want any API comments be shown
|
||||||
|
-- This setting only take effect in insert mode, it does not affect signature help in normal
|
||||||
|
-- mode, 10 by default
|
||||||
|
|
||||||
|
floating_window = true, -- show hint in a floating window, set to false for virtual text only mode
|
||||||
|
floating_window_above_cur_line = true, -- try to place the floating above the current line when possible Note:
|
||||||
|
-- will set to true when fully tested, set to false will use whichever side has more space
|
||||||
|
-- this setting will be helpful if you do not want the PUM and floating win overlap
|
||||||
|
|
||||||
|
floating_window_off_x = 1, -- adjust float windows x position.
|
||||||
|
floating_window_off_y = -1, -- adjust float windows y position.
|
||||||
|
|
||||||
|
fix_pos = false, -- set to true, the floating window will not auto-close until finish all parameters
|
||||||
|
hint_enable = true, -- virtual hint enable
|
||||||
|
hint_prefix = " ", -- Panda for parameter
|
||||||
|
hint_scheme = "String",
|
||||||
|
hi_parameter = "LspSignatureActiveParameter", -- how your parameter will be highlight
|
||||||
|
max_height = 15, -- max height of signature floating_window, if content is more than max_height, you can scroll down
|
||||||
|
-- to view the hiding contents
|
||||||
|
max_width = 85, -- max_width of signature floating_window, line will be wrapped if exceed max_width
|
||||||
|
handler_opts = {
|
||||||
|
border = "rounded" -- double, rounded, single, shadow, none
|
||||||
|
},
|
||||||
|
|
||||||
|
always_trigger = false, -- sometime show signature on new line or in middle of parameter can be confusing, set it to false for #58
|
||||||
|
|
||||||
|
auto_close_after = nil, -- autoclose signature float win after x sec, disabled if nil.
|
||||||
|
extra_trigger_chars = {}, -- Array of extra characters that will trigger signature completion, e.g., {"(", ","}
|
||||||
|
zindex = 200, -- by default it will be on top of all floating windows, set to <= 50 send it to bottom
|
||||||
|
|
||||||
|
padding = '', -- character to pad on left and right of signature can be ' ', or '|' etc
|
||||||
|
|
||||||
|
transparency = nil, -- disabled by default, allow floating win transparent value 1~100
|
||||||
|
shadow_blend = 36, -- if you using shadow as border use this set the opacity
|
||||||
|
shadow_guibg = 'Black', -- if you using shadow as border use this set the color e.g. 'Green' or '#121315'
|
||||||
|
timer_interval = 200, -- default timer check interval set to lower value if you want to reduce latency
|
||||||
|
toggle_key = nil -- toggle signature on and off in insert mode, e.g. toggle_key = '<M-x>'
|
||||||
|
}
|
||||||
|
|
||||||
|
-- recommended:
|
||||||
|
require 'lsp_signature'.setup(cfg) -- no need to specify bufnr if you don't use toggle_key
|
||||||
|
|
||||||
|
-- You can also do this inside lsp on_attach
|
||||||
|
-- note: on_attach deprecated
|
||||||
|
-- require'lsp_signature'.on_attach(cfg, bufnr) -- no need to specify bufnr if you don't use toggle_key
|
217
plugin-confs/lspconfig.lua
Normal file
217
plugin-confs/lspconfig.lua
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||||
|
|
||||||
|
-- Use an on_attach function to only map the following keys
|
||||||
|
-- after the language server attaches to the current buffer
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
-- set in ~/.config/nvim/keybindings.vim
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-s>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
-- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||||||
|
-- highlighting things under cursor
|
||||||
|
-- if client.resolved_capabilities.document_highlight then
|
||||||
|
-- vim.cmd [[
|
||||||
|
-- hi! LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
-- hi! LspReferenceText cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
-- hi! LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
-- augroup lsp_document_highlight
|
||||||
|
-- autocmd! * <buffer>
|
||||||
|
-- autocmd! CursorHold <buffer> lua vim.lsp.buf.document_highlight()
|
||||||
|
-- autocmd! CursorMoved <buffer> lua vim.lsp.buf.clear_references()
|
||||||
|
-- augroup END
|
||||||
|
-- ]]
|
||||||
|
-- end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd [[autocmd! ColorScheme * highlight NormalFloat guibg=#1f2335]]
|
||||||
|
vim.cmd [[autocmd! ColorScheme * highlight FloatBorder guifg=white guibg=#1f2335]]
|
||||||
|
|
||||||
|
-- squared corners
|
||||||
|
|
||||||
|
-- local border = {
|
||||||
|
-- {"┌", "FloatBorder"},
|
||||||
|
-- {"─", "FloatBorder"},
|
||||||
|
-- {"┐", "FloatBorder"},
|
||||||
|
-- {"|", "FloatBorder"},
|
||||||
|
-- {"┘", "FloatBorder"},
|
||||||
|
-- {"─", "FloatBorder"},
|
||||||
|
-- {"└", "FloatBorder"},
|
||||||
|
-- {"|", "FloatBorder"},
|
||||||
|
-- }
|
||||||
|
|
||||||
|
-- rounded
|
||||||
|
|
||||||
|
local border = {
|
||||||
|
{ "╭", "FloatBorder" },
|
||||||
|
{ "─", "FloatBorder" },
|
||||||
|
{ "╮", "FloatBorder" },
|
||||||
|
{ "│", "FloatBorder" },
|
||||||
|
{ "╯", "FloatBorder" },
|
||||||
|
{ "─", "FloatBorder" },
|
||||||
|
{ "╰", "FloatBorder" },
|
||||||
|
{ "│", "FloatBorder" },
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
local handlers = {
|
||||||
|
["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = border }),
|
||||||
|
["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = border }),
|
||||||
|
}
|
||||||
|
|
||||||
|
-- local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview
|
||||||
|
-- function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
|
||||||
|
-- opts = {
|
||||||
|
-- { "border", border },
|
||||||
|
-- }
|
||||||
|
-- opts.border = opts.border or border
|
||||||
|
-- return orig_util_open_floating_preview(contents, syntax, opts, ...)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
local DEFAULT_SETTINGS = {
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
-- The list icon to use for installed servers.
|
||||||
|
server_installed = "◍",
|
||||||
|
-- The list icon to use for servers that are pending installation.
|
||||||
|
server_pending = "◍",
|
||||||
|
-- The list icon to use for servers that are not installed.
|
||||||
|
server_uninstalled = "◍",
|
||||||
|
},
|
||||||
|
keymaps = {
|
||||||
|
-- Keymap to expand a server in the UI
|
||||||
|
toggle_server_expand = "<CR>",
|
||||||
|
-- Keymap to install a server
|
||||||
|
install_server = "i",
|
||||||
|
-- Keymap to reinstall/update a server
|
||||||
|
update_server = "u",
|
||||||
|
-- Keymap to update all installed servers
|
||||||
|
update_all_servers = "U",
|
||||||
|
-- Keymap to uninstall a server
|
||||||
|
uninstall_server = "X",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- The directory in which to install all servers.
|
||||||
|
-- install_root_dir = "/home/sudacode/.vim/lsp",
|
||||||
|
|
||||||
|
pip = {
|
||||||
|
-- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior
|
||||||
|
-- and is not recommended.
|
||||||
|
--
|
||||||
|
-- Example: { "--proxy", "https://proxyserver" }
|
||||||
|
install_args = {},
|
||||||
|
},
|
||||||
|
on_attach = on_attach,
|
||||||
|
handlers = handlers,
|
||||||
|
|
||||||
|
-- Controls to which degree logs are written to the log file. It's useful to set this to vim.log.levels.DEBUG when
|
||||||
|
-- debugging issues with server installations.
|
||||||
|
log_level = vim.log.levels.INFO,
|
||||||
|
|
||||||
|
-- Limit for the maximum amount of servers to be installed at the same time. Once this limit is reached, any further
|
||||||
|
-- servers that are requested to be installed will be put in a queue.
|
||||||
|
max_concurrent_installers = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = true,
|
||||||
|
signs = true,
|
||||||
|
underline = false,
|
||||||
|
update_in_insert = false,
|
||||||
|
severity_sort = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||||
|
for type, icon in pairs(signs) do
|
||||||
|
local hl = "DiagnosticSign" .. type
|
||||||
|
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||||||
|
end
|
||||||
|
|
||||||
|
function PrintDiagnostics(opts, bufnr, line_nr, client_id)
|
||||||
|
bufnr = bufnr or 0
|
||||||
|
line_nr = line_nr or (vim.api.nvim_win_get_cursor(0)[1] - 1)
|
||||||
|
opts = opts or { ['lnum'] = line_nr }
|
||||||
|
|
||||||
|
local line_diagnostics = vim.diagnostic.get(bufnr, opts)
|
||||||
|
if vim.tbl_isempty(line_diagnostics) then return end
|
||||||
|
|
||||||
|
local diagnostic_message = ""
|
||||||
|
for i, diagnostic in ipairs(line_diagnostics) do
|
||||||
|
diagnostic_message = diagnostic_message .. string.format("%d: %s", i, diagnostic.message or "")
|
||||||
|
print(diagnostic_message)
|
||||||
|
if i ~= #line_diagnostics then
|
||||||
|
diagnostic_message = diagnostic_message .. "\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.api.nvim_echo({ { diagnostic_message, "Normal" } }, false, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- vim.cmd [[ autocmd! CursorHold * lua PrintDiagnostics() ]]
|
||||||
|
|
||||||
|
local lsp_installer = require("nvim-lsp-installer")
|
||||||
|
|
||||||
|
-- Register a handler that will be called for each installed server when it's ready (i.e. when installation is finished
|
||||||
|
-- or if the server is already installed).
|
||||||
|
lsp_installer.on_server_ready(function(server)
|
||||||
|
local opts = {}
|
||||||
|
|
||||||
|
-- (optional) Customize the options passed to the server
|
||||||
|
-- if server.name == "tsserver" then
|
||||||
|
-- opts.root_dir = function() ... end
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- This setup() function will take the provided server configuration and decorate it with the necessary properties
|
||||||
|
-- before passing it onwards to lspconfig.
|
||||||
|
-- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||||
|
server:setup(DEFAULT_SETTINGS)
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
-- local servers = { 'jedi_language_server', 'bashls', 'vimls', 'yamlls', 'dockerls', 'rust_analyzer', 'clangd', 'ansiblels' }
|
||||||
|
-- for _, lsp in pairs(servers) do
|
||||||
|
-- require('lspconfig')[lsp].setup {
|
||||||
|
-- on_attach = on_attach,
|
||||||
|
-- handlers = handlers,
|
||||||
|
-- flags = {
|
||||||
|
-- -- This will be the default in neovim 0.7+
|
||||||
|
-- debounce_text_changes = 150,
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- local plugins_path = vim.fn.stdpath("data") .. "site/autoload/plug.vim"
|
||||||
|
-- local dir_list = vim.fn.glob(plugins_path .. "/*", true, true)
|
||||||
|
-- local library_table = {}
|
||||||
|
-- for _, v in ipairs(dir_list) do
|
||||||
|
-- library_table[v .. "/lua"] = true
|
||||||
|
-- end
|
||||||
|
-- library_table[vim.fn.expand("$VIMRUNTIME/lua")] = true
|
||||||
|
-- library_table[vim.fn.stdpath("config") .. "/lua"] = true
|
||||||
|
-- require('lspconfig').sumneko_lua.setup({
|
||||||
|
-- settings = {
|
||||||
|
-- Lua = {
|
||||||
|
-- diagnostics = { globals = { "vim" } },
|
||||||
|
-- workspace = { library = library_table },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
|
||||||
|
-- -- require 'lspconfig'.bashls.setup {}
|
16
plugin-confs/lspfuzzy.lua
Normal file
16
plugin-confs/lspfuzzy.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
require('lspfuzzy').setup {
|
||||||
|
methods = 'all', -- either 'all' or a list of LSP methods (see below)
|
||||||
|
jump_one = true, -- jump immediately if there is only one location
|
||||||
|
save_last = false, -- save last location results for the :LspFuzzyLast command
|
||||||
|
callback = nil, -- callback called after jumping to a location
|
||||||
|
fzf_preview = { -- arguments to the FZF '--preview-window' option
|
||||||
|
'right:+{2}-/2' -- preview on the right and centered on entry
|
||||||
|
},
|
||||||
|
fzf_action = { -- FZF actions
|
||||||
|
['ctrl-t'] = 'tab split', -- go to location in a new tab
|
||||||
|
['ctrl-v'] = 'vsplit', -- go to location in a vertical split
|
||||||
|
['ctrl-x'] = 'split', -- go to location in a horizontal split
|
||||||
|
},
|
||||||
|
fzf_modifier = ':~:.', -- format FZF entries, see |filename-modifiers|
|
||||||
|
fzf_trim = false, -- trim FZF entries
|
||||||
|
}
|
5
plugin-confs/lsplines.lua
Normal file
5
plugin-confs/lsplines.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
require("lsp_lines").setup()
|
||||||
|
-- Disable virtual_text since it's redundant due to lsp_lines.
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
})
|
52
plugin-confs/lualine.lua
Normal file
52
plugin-confs/lualine.lua
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
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' },
|
||||||
|
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.
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lualine_x = { 'location' },
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
extensions = { 'quickfix', 'fzf', 'nvim-tree', 'symbols-outline', 'fugitive' }
|
||||||
|
}
|
73
plugin-confs/neogit.lua
Normal file
73
plugin-confs/neogit.lua
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
local neogit = require("neogit")
|
||||||
|
|
||||||
|
neogit.setup {
|
||||||
|
disable_signs = false,
|
||||||
|
disable_hint = false,
|
||||||
|
disable_context_highlighting = false,
|
||||||
|
disable_commit_confirmation = false,
|
||||||
|
auto_refresh = true,
|
||||||
|
disable_builtin_notifications = false,
|
||||||
|
use_magit_keybindings = false,
|
||||||
|
commit_popup = {
|
||||||
|
kind = "split",
|
||||||
|
},
|
||||||
|
-- Change the default way of opening neogit
|
||||||
|
kind = "tab",
|
||||||
|
-- kind = "vsplit",
|
||||||
|
-- customize displayed signs
|
||||||
|
signs = {
|
||||||
|
-- { CLOSED, OPENED }
|
||||||
|
section = { ">", "v" },
|
||||||
|
item = { ">", "v" },
|
||||||
|
hunk = { "", "" },
|
||||||
|
},
|
||||||
|
integrations = {
|
||||||
|
-- Neogit only provides inline diffs. If you want a more traditional way to look at diffs, you can use `sindrets/diffview.nvim`.
|
||||||
|
-- The diffview integration enables the diff popup, which is a wrapper around `sindrets/diffview.nvim`.
|
||||||
|
--
|
||||||
|
-- Requires you to have `sindrets/diffview.nvim` installed.
|
||||||
|
-- use {
|
||||||
|
-- 'TimUntersberger/neogit',
|
||||||
|
-- requires = {
|
||||||
|
-- 'nvim-lua/plenary.nvim',
|
||||||
|
-- 'sindrets/diffview.nvim'
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
diffview = false
|
||||||
|
},
|
||||||
|
-- Setting any section to `false` will make the section not render at all
|
||||||
|
sections = {
|
||||||
|
untracked = {
|
||||||
|
folded = false
|
||||||
|
},
|
||||||
|
unstaged = {
|
||||||
|
folded = false
|
||||||
|
},
|
||||||
|
staged = {
|
||||||
|
folded = false
|
||||||
|
},
|
||||||
|
stashes = {
|
||||||
|
folded = true
|
||||||
|
},
|
||||||
|
unpulled = {
|
||||||
|
folded = true
|
||||||
|
},
|
||||||
|
unmerged = {
|
||||||
|
folded = false
|
||||||
|
},
|
||||||
|
recent = {
|
||||||
|
folded = true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- override/add mappings
|
||||||
|
mappings = {
|
||||||
|
-- modify status buffer mappings
|
||||||
|
status = {
|
||||||
|
-- Adds a mapping with "B" as key that does the "BranchPopup" command
|
||||||
|
["B"] = "BranchPopup",
|
||||||
|
-- Removes the default mapping of "s"
|
||||||
|
["s"] = "",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
121
plugin-confs/null-ls.lua
Normal file
121
plugin-confs/null-ls.lua
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
local null_ls = require("null-ls")
|
||||||
|
local helpers = require("null-ls.helpers")
|
||||||
|
|
||||||
|
require("null-ls").setup({
|
||||||
|
on_attach = function(client)
|
||||||
|
if client.supports_method "textDocument/formatting" then
|
||||||
|
vim.cmd([[
|
||||||
|
augroup LspFormatting
|
||||||
|
autocmd! * <buffer>
|
||||||
|
autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync()
|
||||||
|
augroup END
|
||||||
|
]])
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
sources = {
|
||||||
|
null_ls.builtins.completion.spell,
|
||||||
|
null_ls.builtins.completion.luasnip,
|
||||||
|
null_ls.builtins.code_actions.gitsigns,
|
||||||
|
null_ls.builtins.code_actions.shellcheck,
|
||||||
|
null_ls.builtins.diagnostics.cppcheck,
|
||||||
|
null_ls.builtins.diagnostics.gitlint,
|
||||||
|
null_ls.builtins.diagnostics.jsonlint,
|
||||||
|
-- require("null-ls").builtins.diagnostics.luacheck,
|
||||||
|
null_ls.builtins.diagnostics.markdownlint,
|
||||||
|
null_ls.builtins.diagnostics.pylint,
|
||||||
|
null_ls.builtins.diagnostics.pydocstyle.with({
|
||||||
|
extra_args = { "--config=$ROOT/setup.cfg" }
|
||||||
|
}),
|
||||||
|
null_ls.builtins.diagnostics.vint,
|
||||||
|
null_ls.builtins.diagnostics.shellcheck.with({
|
||||||
|
extra_args = { "-s", "bash", "-o", "add-default-case, check-set-e-suppressed, check-unassigned-uppercase, deprecate-which, quote-safe-variables" }
|
||||||
|
}),
|
||||||
|
null_ls.builtins.diagnostics.ansiblelint,
|
||||||
|
null_ls.builtins.formatting.json_tool,
|
||||||
|
-- require("null-ls").builtins.formatting.lua_format,
|
||||||
|
null_ls.builtins.formatting.markdownlint,
|
||||||
|
null_ls.builtins.formatting.prettier,
|
||||||
|
-- handled by lsp server
|
||||||
|
-- require("null-ls").builtins.formatting.rustfmt,
|
||||||
|
null_ls.builtins.formatting.shfmt.with({
|
||||||
|
filetypes = { "sh", "bash" },
|
||||||
|
extra_args = { "-i", "0", "-ci", "-sr" }
|
||||||
|
}),
|
||||||
|
null_ls.builtins.formatting.black,
|
||||||
|
null_ls.builtins.formatting.isort,
|
||||||
|
-- null_ls.builtins.formatting.tidy
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- local markdownlint = {
|
||||||
|
-- method = null_ls.methods.DIAGNOSTICS,
|
||||||
|
-- filetypes = { "markdown" },
|
||||||
|
-- -- null_ls.generator creates an async source
|
||||||
|
-- -- that spawns the command with the given arguments and options
|
||||||
|
-- generator = null_ls.generator({
|
||||||
|
-- command = "markdownlint",
|
||||||
|
-- args = { "--stdin" },
|
||||||
|
-- to_stdin = true,
|
||||||
|
-- from_stderr = true,
|
||||||
|
-- -- choose an output format (raw, json, or line)
|
||||||
|
-- format = "line",
|
||||||
|
-- check_exit_code = function(code, stderr)
|
||||||
|
-- local success = code <= 1
|
||||||
|
|
||||||
|
-- if not success then
|
||||||
|
-- -- can be noisy for things that run often (e.g. diagnostics), but can
|
||||||
|
-- -- be useful for things that run on demand (e.g. formatting)
|
||||||
|
-- print(stderr)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- return success
|
||||||
|
-- end,
|
||||||
|
-- -- use helpers to parse the output from string matchers,
|
||||||
|
-- -- or parse it manually with a function
|
||||||
|
-- on_output = helpers.diagnostics.from_patterns({
|
||||||
|
-- {
|
||||||
|
-- pattern = [[:(%d+):(%d+) [%w-/]+ (.*)]],
|
||||||
|
-- groups = { "row", "col", "message" },
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- pattern = [[:(%d+) [%w-/]+ (.*)]],
|
||||||
|
-- groups = { "row", "message" },
|
||||||
|
-- },
|
||||||
|
-- }),
|
||||||
|
-- }),
|
||||||
|
-- }
|
||||||
|
|
||||||
|
-- local shellcheck = {
|
||||||
|
-- method = null_ls.methods.DIAGNOSTICS,
|
||||||
|
-- filetypes = { "sh", "bash", "zsh", "fish" },
|
||||||
|
-- generator = null_ls.generator({
|
||||||
|
-- command = "shellcheck",
|
||||||
|
-- args = { "-s", "bash", "-o", "all", "-e", "2250" },
|
||||||
|
-- from_stderr = true,
|
||||||
|
-- format = "line",
|
||||||
|
-- check_exit_code = function(code, stderr)
|
||||||
|
-- local success = code <= 1
|
||||||
|
|
||||||
|
-- if not success then
|
||||||
|
-- -- can be noisy for things that run often (e.g. diagnostics), but can
|
||||||
|
-- -- be useful for things that run on demand (e.g. formatting)
|
||||||
|
-- print(stderr)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- return success
|
||||||
|
-- end,
|
||||||
|
-- on_output = helpers.diagnostics.from_patterns({
|
||||||
|
-- {
|
||||||
|
-- pattern = [[:(%d+):(%d+) [%w-/]+ (.*)]],
|
||||||
|
-- groups = { "row", "col", "message" },
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- pattern = [[:(%d+) [%w-/]+ (.*)]],
|
||||||
|
-- groups = { "row", "message" },
|
||||||
|
-- },
|
||||||
|
-- }),
|
||||||
|
-- }),
|
||||||
|
-- }
|
||||||
|
|
||||||
|
-- null_ls.register(markdownlint)
|
||||||
|
-- null_ls.register(shellcheck)
|
192
plugin-confs/nvim-cmp.lua
Normal file
192
plugin-confs/nvim-cmp.lua
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
-- Setup nvim-cmp.
|
||||||
|
local cmp = require 'cmp'
|
||||||
|
local lspkind = require('lspkind')
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
-- luasnip setup
|
||||||
|
local luasnip = require 'luasnip'
|
||||||
|
local highlight = require('cmp.utils.highlight')
|
||||||
|
|
||||||
|
local has_words_before = function()
|
||||||
|
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then return false end
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_text(0, line-1, 0, line-1, col, {})[1]:match("^%s*$") == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
lspkind.init({
|
||||||
|
symbol_map = {
|
||||||
|
Copilot = "",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, "CmpItemKindCopilot", {fg ="#6CC644"})
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
-- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||||
|
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
|
||||||
|
-- require('snippy').expand_snippet(args.body) -- For `snippy` users.
|
||||||
|
-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
capabilities = capabilities,
|
||||||
|
mapping = {
|
||||||
|
['<C-p>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<C-n>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
-- ["<Tab>"] = 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" }),
|
||||||
|
["<Tab>"] = vim.schedule_wrap(function(fallback)
|
||||||
|
if cmp.visible() and has_words_before() then
|
||||||
|
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
['<S-Tab>'] = cmp.mapping(function()
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
end
|
||||||
|
end, { "i", "s"}),
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = {
|
||||||
|
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
|
||||||
|
col_offset = -3,
|
||||||
|
side_padding = 0,
|
||||||
|
border = "rounded",
|
||||||
|
borderchars = {
|
||||||
|
"─",
|
||||||
|
"│",
|
||||||
|
"─",
|
||||||
|
"│",
|
||||||
|
"╭",
|
||||||
|
"╮",
|
||||||
|
"╯",
|
||||||
|
"╰",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
documentation = {
|
||||||
|
border = "rounded",
|
||||||
|
borderchars = {
|
||||||
|
"─",
|
||||||
|
"│",
|
||||||
|
"─",
|
||||||
|
"│",
|
||||||
|
"╭",
|
||||||
|
"╮",
|
||||||
|
"╯",
|
||||||
|
"╰",
|
||||||
|
},
|
||||||
|
-- padding = 15,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = { "kind", "abbr", "menu" },
|
||||||
|
format = function(entry, vim_item)
|
||||||
|
local kind = require("lspkind").cmp_format({ mode = "symbol_text", maxwidth = 75 })(entry, vim_item)
|
||||||
|
local strings = vim.split(kind.kind, "%s", { trimempty = true })
|
||||||
|
kind.kind = " " .. strings[1] .. " "
|
||||||
|
kind.menu = " (" .. strings[2] .. ")"
|
||||||
|
|
||||||
|
return kind
|
||||||
|
end,
|
||||||
|
-- format = lspkind.cmp_format({
|
||||||
|
-- mode = 'symbol_text', -- show only symbol annotations
|
||||||
|
-- menu = ({
|
||||||
|
-- buffer = "[Buffer]",
|
||||||
|
-- nvim_lsp = "[LSP]",
|
||||||
|
-- luasnip = "[LuaSnip]",
|
||||||
|
-- nvim_lua = "[Lua]",
|
||||||
|
-- latex_symbols = "[Latex]",
|
||||||
|
-- })
|
||||||
|
-- })
|
||||||
|
},
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = "copilot", group_index = 2 },
|
||||||
|
{ name = 'nvim_lsp', group_index = 2 },
|
||||||
|
{ name = 'nvim_lsp_signature_help', group_index = 2 },
|
||||||
|
{ name = "path", group_index = 2 },
|
||||||
|
{ name = 'luasnip', group_index = 2 }, -- For luasnip users.
|
||||||
|
{
|
||||||
|
name = 'buffer',
|
||||||
|
option = {
|
||||||
|
get_bufnrs = function()
|
||||||
|
local bufs = {}
|
||||||
|
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
||||||
|
bufs[vim.api.nvim_win_get_buf(win)] = true
|
||||||
|
end
|
||||||
|
return vim.tbl_keys(bufs)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-- { name = 'ultisnips' }, -- For ultisnips users.
|
||||||
|
-- { name = 'snippy' }, -- For snippy users.
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
}),
|
||||||
|
sorting = {
|
||||||
|
priority_weight = 2,
|
||||||
|
comparators = {
|
||||||
|
cmp.config.compare.offset,
|
||||||
|
cmp.config.compare.exact,
|
||||||
|
cmp.config.compare.score,
|
||||||
|
cmp.config.compare.kind,
|
||||||
|
cmp.config.compare.sort_text,
|
||||||
|
cmp.config.compare.length,
|
||||||
|
cmp.config.compare.order,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
local servers = { 'bashls', 'jedi_language_server', 'sqlls', 'jsonls', 'yamlls', 'vimls', 'dotls', 'dockerls' }
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
lspconfig[lsp].setup {
|
||||||
|
-- on_attach = my_custom_on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
cmp.event:on("menu_opened", function()
|
||||||
|
vim.b.copilot_suggestion_hidden = true
|
||||||
|
end)
|
||||||
|
cmp.event:on("menu_closed", function()
|
||||||
|
vim.b.copilot_suggestion_hidden = false
|
||||||
|
end)
|
6
plugin-confs/nvim-docs-view.lua
Normal file
6
plugin-confs/nvim-docs-view.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
require("docs-view").setup {
|
||||||
|
-- position = "right",
|
||||||
|
-- width = 90,
|
||||||
|
position = "bottom",
|
||||||
|
height = 20,
|
||||||
|
}
|
106
plugin-confs/nvimtree.lua
Normal file
106
plugin-confs/nvimtree.lua
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
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" },
|
||||||
|
}
|
29
plugin-confs/onedarkpro.lua
Normal file
29
plugin-confs/onedarkpro.lua
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
local onedarkpro = require("onedarkpro")
|
||||||
|
onedarkpro.setup({
|
||||||
|
theme = "onedark",
|
||||||
|
-- colors = {}, -- Override default colors. Can specify colors for "onelight" or "onedark" themes by passing in a table
|
||||||
|
-- hlgroups = {}, -- Override default highlight groups
|
||||||
|
plugins = { -- Override which plugins highlight groups are loaded
|
||||||
|
native_lsp = true,
|
||||||
|
polygot = true,
|
||||||
|
treesitter = true,
|
||||||
|
},
|
||||||
|
styles = {
|
||||||
|
comments = "italic",
|
||||||
|
functions = "italic,bold",
|
||||||
|
keywords = "italic,bold",
|
||||||
|
strings = "NONE",
|
||||||
|
variables = "bold"
|
||||||
|
},
|
||||||
|
options = {
|
||||||
|
bold = true, -- Use the themes opinionated bold styles?
|
||||||
|
italic = true, -- Use the themes opinionated italic styles?
|
||||||
|
underline = true, -- Use the themes opinionated underline styles?
|
||||||
|
undercurl = false, -- Use the themes opinionated undercurl styles?
|
||||||
|
cursorline = true, -- Use cursorline highlighting?
|
||||||
|
transparency = false, -- Use a transparent background?
|
||||||
|
terminal_colors = false, -- Use the theme's colors for Neovim's :terminal?
|
||||||
|
window_unfocussed_color = false, -- When the window is out of focus, change the normal background?
|
||||||
|
}
|
||||||
|
})
|
||||||
|
onedarkpro.load()
|
22
plugin-confs/presence.lua
Normal file
22
plugin-confs/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)
|
||||||
|
})
|
53
plugin-confs/symbols-outline.lua
Normal file
53
plugin-confs/symbols-outline.lua
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
-- init.lua
|
||||||
|
vim.g.symbols_outline = {
|
||||||
|
highlight_hovered_item = true,
|
||||||
|
show_guides = true,
|
||||||
|
auto_preview = true,
|
||||||
|
position = 'right',
|
||||||
|
relative_width = true,
|
||||||
|
width = 35,
|
||||||
|
auto_close = false,
|
||||||
|
show_numbers = false,
|
||||||
|
show_relative_numbers = false,
|
||||||
|
show_symbol_details = true,
|
||||||
|
preview_bg_highlight = 'Pmenu',
|
||||||
|
keymaps = { -- These keymaps can be a string or a table for multiple keys
|
||||||
|
close = {"<Esc>", "q"},
|
||||||
|
goto_location = "<Cr>",
|
||||||
|
focus_location = "o",
|
||||||
|
hover_symbol = "<C-space>",
|
||||||
|
toggle_preview = "K",
|
||||||
|
rename_symbol = "r",
|
||||||
|
code_actions = "a",
|
||||||
|
},
|
||||||
|
lsp_blacklist = {},
|
||||||
|
symbol_blacklist = {},
|
||||||
|
symbols = {
|
||||||
|
File = {icon = "", hl = "TSURI"},
|
||||||
|
Module = {icon = "", hl = "TSNamespace"},
|
||||||
|
Namespace = {icon = "", hl = "TSNamespace"},
|
||||||
|
Package = {icon = "", hl = "TSNamespace"},
|
||||||
|
Class = {icon = "𝓒", hl = "TSType"},
|
||||||
|
Method = {icon = "ƒ", hl = "TSMethod"},
|
||||||
|
Property = {icon = "", hl = "TSMethod"},
|
||||||
|
Field = {icon = "", hl = "TSField"},
|
||||||
|
Constructor = {icon = "", hl = "TSConstructor"},
|
||||||
|
Enum = {icon = "ℰ", hl = "TSType"},
|
||||||
|
Interface = {icon = "ﰮ", hl = "TSType"},
|
||||||
|
Function = {icon = "", hl = "TSFunction"},
|
||||||
|
Variable = {icon = "", hl = "TSConstant"},
|
||||||
|
Constant = {icon = "", hl = "TSConstant"},
|
||||||
|
String = {icon = "𝓐", hl = "TSString"},
|
||||||
|
Number = {icon = "#", hl = "TSNumber"},
|
||||||
|
Boolean = {icon = "⊨", hl = "TSBoolean"},
|
||||||
|
Array = {icon = "", hl = "TSConstant"},
|
||||||
|
Object = {icon = "⦿", hl = "TSType"},
|
||||||
|
Key = {icon = "🔐", hl = "TSType"},
|
||||||
|
Null = {icon = "NULL", hl = "TSType"},
|
||||||
|
EnumMember = {icon = "", hl = "TSField"},
|
||||||
|
Struct = {icon = "𝓢", hl = "TSType"},
|
||||||
|
Event = {icon = "🗲", hl = "TSType"},
|
||||||
|
Operator = {icon = "+", hl = "TSOperator"},
|
||||||
|
TypeParameter = {icon = "𝙏", hl = "TSParameter"}
|
||||||
|
}
|
||||||
|
}
|
43
plugin-confs/telescope.lua
Normal file
43
plugin-confs/telescope.lua
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
require('telescope').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-h>"] = "which_key"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
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 = {
|
||||||
|
-- Your extension configuration goes here:
|
||||||
|
-- extension_name = {
|
||||||
|
-- extension_config_key = value,
|
||||||
|
-- }
|
||||||
|
-- please take a look at the readme of the extension you want to configure
|
||||||
|
}
|
||||||
|
}
|
34
plugin-confs/treesitter.lua
Normal file
34
plugin-confs/treesitter.lua
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
require 'nvim-treesitter.configs'.setup {
|
||||||
|
-- One of "all", "maintained" (parsers with maintainers), or a list of languages
|
||||||
|
-- ensure_installed = "maintained",
|
||||||
|
|
||||||
|
-- Install languages synchronously (only applied to `ensure_installed`)
|
||||||
|
sync_install = false,
|
||||||
|
|
||||||
|
-- List of parsers to ignore installing
|
||||||
|
-- ignore_install = { "javascript" },
|
||||||
|
|
||||||
|
highlight = {
|
||||||
|
-- `false` will disable the whole extension
|
||||||
|
enable = true,
|
||||||
|
|
||||||
|
-- list of language that will be disabled
|
||||||
|
-- disable = { "c", "rust" },
|
||||||
|
|
||||||
|
-- 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,
|
||||||
|
},
|
||||||
|
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "gnn",
|
||||||
|
node_incremental = "grn",
|
||||||
|
scope_incremental = "grc",
|
||||||
|
node_decremental = "grm",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
47
plugin-confs/trouble.lua
Normal file
47
plugin-confs/trouble.lua
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
require("trouble").setup {
|
||||||
|
position = "right", -- position of the list can be: bottom, top, left, right
|
||||||
|
height = 10, -- height of the trouble list when position is top or bottom
|
||||||
|
width = 50, -- width of the list when position is left or right
|
||||||
|
icons = true, -- use devicons for filenames
|
||||||
|
mode = "workspace_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist"
|
||||||
|
fold_open = "", -- icon used for open folds
|
||||||
|
fold_closed = "", -- icon used for closed folds
|
||||||
|
group = true, -- group results by file
|
||||||
|
padding = true, -- add an extra new line on top of the list
|
||||||
|
action_keys = { -- key mappings for actions in the trouble list
|
||||||
|
-- map to {} to remove a mapping, for example:
|
||||||
|
-- close = {},
|
||||||
|
close = "q", -- close the list
|
||||||
|
cancel = "<esc>", -- cancel the preview and get back to your last window / buffer / cursor
|
||||||
|
refresh = "r", -- manually refresh
|
||||||
|
jump = {"<cr>", "<tab>"}, -- jump to the diagnostic or open / close folds
|
||||||
|
open_split = { "<c-x>" }, -- open buffer in new split
|
||||||
|
open_vsplit = { "<c-v>" }, -- open buffer in new vsplit
|
||||||
|
open_tab = { "<c-t>" }, -- open buffer in new tab
|
||||||
|
jump_close = {"o"}, -- jump to the diagnostic and close the list
|
||||||
|
toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode
|
||||||
|
toggle_preview = "P", -- toggle auto_preview
|
||||||
|
hover = "K", -- opens a small popup with the full multiline message
|
||||||
|
preview = "p", -- preview the diagnostic location
|
||||||
|
close_folds = {"zM", "zm"}, -- close all folds
|
||||||
|
open_folds = {"zR", "zr"}, -- open all folds
|
||||||
|
toggle_fold = {"zA", "za"}, -- toggle fold of current file
|
||||||
|
previous = "k", -- preview item
|
||||||
|
next = "j" -- next item
|
||||||
|
},
|
||||||
|
indent_lines = true, -- add an indent guide below the fold icons
|
||||||
|
auto_open = false, -- automatically open the list when you have diagnostics
|
||||||
|
auto_close = false, -- automatically close the list when you have no diagnostics
|
||||||
|
auto_preview = true, -- automatically preview the location of the diagnostic. <esc> to close preview and go back to last window
|
||||||
|
auto_fold = false, -- automatically fold a file trouble list at creation
|
||||||
|
auto_jump = {"lsp_definitions"}, -- for the given modes, automatically jump if there is only a single result
|
||||||
|
signs = {
|
||||||
|
-- icons / text used for a diagnostic
|
||||||
|
error = "",
|
||||||
|
warning = "",
|
||||||
|
hint = "",
|
||||||
|
information = "",
|
||||||
|
other = ""
|
||||||
|
},
|
||||||
|
use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client
|
||||||
|
}
|
70
plugin-confs/whichkey.lua
Normal file
70
plugin-confs/whichkey.lua
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
require("which-key").setup {
|
||||||
|
plugins = {
|
||||||
|
marks = true, -- shows a list of your marks on ' and `
|
||||||
|
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||||
|
spelling = {
|
||||||
|
enabled = true, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||||
|
suggestions = 20, -- how many suggestions should be shown in the list?
|
||||||
|
},
|
||||||
|
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
|
||||||
|
-- No actual key bindings are created
|
||||||
|
presets = {
|
||||||
|
operators = true, -- adds help for operators like d, y, ... and registers them for motion / text object completion
|
||||||
|
motions = true, -- adds help for motions
|
||||||
|
text_objects = true, -- help for text objects triggered after entering an operator
|
||||||
|
windows = true, -- default bindings on <c-w>
|
||||||
|
nav = true, -- misc bindings to work with windows
|
||||||
|
z = true, -- bindings for folds, spelling and others prefixed with z
|
||||||
|
g = true, -- bindings for prefixed with g
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- add operators that will trigger motion and text object completion
|
||||||
|
-- to enable all native operators, set the preset / operators plugin above
|
||||||
|
operators = { gc = "Comments" },
|
||||||
|
key_labels = {
|
||||||
|
-- override the label used to display some keys. It doesn't effect WK in any other way.
|
||||||
|
-- For example:
|
||||||
|
-- ["<space>"] = "SPC",
|
||||||
|
-- ["<cr>"] = "RET",
|
||||||
|
-- ["<tab>"] = "TAB",
|
||||||
|
},
|
||||||
|
icons = {
|
||||||
|
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
|
||||||
|
separator = "➜", -- symbol used between a key and it's label
|
||||||
|
group = "+", -- symbol prepended to a group
|
||||||
|
},
|
||||||
|
popup_mappings = {
|
||||||
|
scroll_down = '<c-d>', -- binding to scroll down inside the popup
|
||||||
|
scroll_up = '<c-u>', -- binding to scroll up inside the popup
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
border = "none", -- none, single, double, shadow
|
||||||
|
position = "bottom", -- bottom, top
|
||||||
|
margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left]
|
||||||
|
padding = { 2, 2, 2, 2 }, -- extra window padding [top, right, bottom, left]
|
||||||
|
winblend = 0
|
||||||
|
},
|
||||||
|
layout = {
|
||||||
|
height = { min = 4, max = 25 }, -- min and max height of the columns
|
||||||
|
width = { min = 20, max = 50 }, -- min and max width of the columns
|
||||||
|
spacing = 3, -- spacing between columns
|
||||||
|
align = "left", -- align columns left, center or right
|
||||||
|
},
|
||||||
|
ignore_missing = false, -- enable this to hide mappings for which you didn't specify a label
|
||||||
|
hidden = { "<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate
|
||||||
|
show_help = true, -- show help message on the command line when the popup is visible
|
||||||
|
show_keys = true, -- show the key strokes for your commands
|
||||||
|
triggers = "auto", -- automatically setup triggers
|
||||||
|
-- triggers = {"<leader>"}, -- or specify a list manually
|
||||||
|
triggers_blacklist = {
|
||||||
|
-- list of mode / prefixes that should never be hooked by WhichKey
|
||||||
|
-- this is mostly relevant for key maps that start with a native binding
|
||||||
|
-- most people should not need to change this
|
||||||
|
i = { "j", "k" },
|
||||||
|
v = { "j", "k" },
|
||||||
|
},
|
||||||
|
disable = {
|
||||||
|
buftypes = {},
|
||||||
|
filetypes = { "TelescopePrompt" },
|
||||||
|
},
|
||||||
|
}
|
8
static/nvim-dashboard.vim
Normal file
8
static/nvim-dashboard.vim
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
let g:dashboard_custom_header = [
|
||||||
|
\ ' ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗',
|
||||||
|
\ ' ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║',
|
||||||
|
\ ' ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║',
|
||||||
|
\ ' ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║',
|
||||||
|
\ ' ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║',
|
||||||
|
\ ' ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝',
|
||||||
|
\]
|
Loading…
Reference in New Issue
Block a user