feat: zako
This commit is contained in:
297
colors/eldar.vim
Normal file
297
colors/eldar.vim
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
" ---------------------------------------------------------
|
||||||
|
" ______ _ _
|
||||||
|
" | ____| | | |
|
||||||
|
" | |__ | | __| | __ _ _ __
|
||||||
|
" | __| | |/ _` |/ _` | '__|
|
||||||
|
" | |____| | (_| | (_| | |
|
||||||
|
" |______|_|\__,_|\__,_|_|
|
||||||
|
"
|
||||||
|
" ---------------------------------------------------------
|
||||||
|
"
|
||||||
|
" Maintainer: Alexander Gude
|
||||||
|
" Email: alex.public.account@gmail.com
|
||||||
|
" File: eldar.vim
|
||||||
|
" URL: github.com/agude/vim-eldar
|
||||||
|
" License: MIT
|
||||||
|
"
|
||||||
|
" ---------------------------------------------------------
|
||||||
|
"
|
||||||
|
" Copyright (c) 2016--2024 Alexander Gude
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any per‐
|
||||||
|
" son obtaining a copy of this software and associated doc‐
|
||||||
|
" umentation files (the “Software”), to deal in the Soft‐
|
||||||
|
" ware without restriction, including without limitation
|
||||||
|
" the rights to use, copy, modify, merge, publish, distrib‐
|
||||||
|
" ute, sublicense, and/or sell copies of the Software, and
|
||||||
|
" to permit persons to whom the Software is furnished to do
|
||||||
|
" so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice
|
||||||
|
" shall be included in all copies or substantial portions
|
||||||
|
" of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
|
||||||
|
" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||||
|
" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐
|
||||||
|
" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐
|
||||||
|
" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐
|
||||||
|
" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
" THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" ---------------------------------------------------------
|
||||||
|
|
||||||
|
" Eldar is designed for dark backgrounds
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
highlight clear
|
||||||
|
if exists('syntax_on')
|
||||||
|
syntax reset
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:colors_name = 'eldar'
|
||||||
|
|
||||||
|
" Define colors (Tango is the default)
|
||||||
|
" GUI colors
|
||||||
|
let s:red = get(g:, 'eldar_red', '#EF2929')
|
||||||
|
let s:yellow = get(g:, 'eldar_yellow', '#FCE94F')
|
||||||
|
let s:green = get(g:, 'eldar_green', '#8AE234')
|
||||||
|
let s:cyan = get(g:, 'eldar_cyan', '#34E2E2')
|
||||||
|
let s:blue = get(g:, 'eldar_blue', '#729FCF')
|
||||||
|
let s:magenta = get(g:, 'eldar_magenta', '#AD7FA8')
|
||||||
|
let s:gui_text = get(g:, 'eldar_text', 'White')
|
||||||
|
let s:gui_bg = get(g:, 'eldar_background', 'Black')
|
||||||
|
|
||||||
|
" Terminal colors
|
||||||
|
let s:term_text = get(g:, 'eldar_term_text', 'NONE')
|
||||||
|
let s:term_bg = get(g:, 'eldar_term_background', 'NONE')
|
||||||
|
|
||||||
|
" The ColourAssignment map and function to unpack it are from the bandit
|
||||||
|
" colorscheme by Al Bunden, available here:
|
||||||
|
" http://www.cgtk.co.uk/vim-scripts/bandit
|
||||||
|
|
||||||
|
let s:ColourAssignment = {}
|
||||||
|
|
||||||
|
" Unspecified colours default to NONE, EXCEPT cterm(.*) which default to matching gui(.*)
|
||||||
|
"
|
||||||
|
" In most cases, only GUIFG is therefore important unless support for Black and White
|
||||||
|
" terminals is essential
|
||||||
|
|
||||||
|
" Editor settings
|
||||||
|
" ---------------
|
||||||
|
if has("gui_running")
|
||||||
|
let s:ColourAssignment['Normal'] = {'GUIFG': s:gui_text, 'GUIBG': s:gui_bg}
|
||||||
|
else
|
||||||
|
let s:ColourAssignment['Normal'] = {'CTERMFG': s:term_text, 'CTERMBG': s:term_bg}
|
||||||
|
endif
|
||||||
|
let s:ColourAssignment['Cursor'] = {'GUI': 'Reverse'}
|
||||||
|
let s:ColourAssignment['CursorLine'] = {'GUI': 'NONE', 'GUIBG': 'NONE'}
|
||||||
|
let s:ColourAssignment['LineNr'] = {'GUIFG': 'DarkGray'}
|
||||||
|
let s:ColourAssignment['CursorLineNr'] = {'GUIFG': 'White'}
|
||||||
|
|
||||||
|
|
||||||
|
" Number column
|
||||||
|
" -------------
|
||||||
|
let s:ColourAssignment['CursorColumn'] = {'GUIBG': 'DarkGrey'}
|
||||||
|
let s:ColourAssignment['Folded'] = {'GUIFG': 'DarkGrey', 'GUIBG': 'Black'}
|
||||||
|
let s:ColourAssignment['FoldColumn'] = {'GUIBG': 'DarkGrey'}
|
||||||
|
highlight! link SignColumn FoldColumn
|
||||||
|
|
||||||
|
|
||||||
|
" Window/Tab delimiters
|
||||||
|
" ---------------------
|
||||||
|
let s:ColourAssignment['VertSplit'] = {'GUIFG': 'White', 'GUIBG': 'NONE'}
|
||||||
|
let s:ColourAssignment['ColorColumn'] = {'GUIBG': 'DarkGray'}
|
||||||
|
let s:ColourAssignment['TabLine'] = {'GUIFG': 'White', 'GUIBG': 'DarkGray'}
|
||||||
|
let s:ColourAssignment['TabLineFill'] = {'GUIBG': 'DarkGray'}
|
||||||
|
let s:ColourAssignment['TabLineSel'] = {'GUIFG': 'Black', 'GUIBG': 'Gray'}
|
||||||
|
|
||||||
|
|
||||||
|
" File Navigation / Searching
|
||||||
|
" ---------------------------
|
||||||
|
let s:ColourAssignment['Directory'] = {'GUIFG': s:blue, 'CTERMFG': 'Blue', 'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['Search'] = {'GUIFG': 'Black', 'GUIBG': s:yellow, 'CTERMFG': 'yellow', 'CTERMBG': 'black', 'GUI': 'Bold', 'CTERM': 'Reverse,Bold'}
|
||||||
|
let s:ColourAssignment['IncSearch'] = {'GUI': 'Reverse'}
|
||||||
|
|
||||||
|
|
||||||
|
" Prompt/Status
|
||||||
|
" -------------
|
||||||
|
let s:ColourAssignment['StatusLine'] = {'GUIFG': 'White', 'GUIBG': s:gui_bg, 'GUI': 'Bold,Reverse', 'CTERMFG': 'White', 'CTERMBG': s:term_bg}
|
||||||
|
let s:ColourAssignment['StatusLineNC'] = {'GUIFG': 'White', 'GUIBG': s:gui_bg, 'GUI': 'Reverse', 'CTERMFG': 'White', 'CTERMBG': s:term_bg}
|
||||||
|
let s:ColourAssignment['WildMenu'] = {'GUIFG': 'White', 'GUIBG': 'DarkGrey', 'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['Question'] = {'GUIFG': s:blue, 'CTERMFG': 'Blue'}
|
||||||
|
let s:ColourAssignment['Title'] = {'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['ModeMsg'] = {'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['MoreMsg'] = {'GUIFG': s:green, 'CTERMFG': 'Green'}
|
||||||
|
|
||||||
|
|
||||||
|
" Visual aid
|
||||||
|
" ----------
|
||||||
|
let s:ColourAssignment['MatchParen'] = {'GUIBG': s:cyan, 'CTERMBG': 'cyan'}
|
||||||
|
let s:ColourAssignment['Visual'] = {'GUIBG': 'DarkGrey'}
|
||||||
|
highlight! link VisualNOS Visual
|
||||||
|
let s:ColourAssignment['NonText'] = {'GUIFG': s:blue, 'CTERMFG': 'blue'}
|
||||||
|
|
||||||
|
let s:ColourAssignment['Todo'] = {'GUIFG': 'Black', 'GUIBG': s:yellow, 'CTERMBG': 'yellow'}
|
||||||
|
let s:ColourAssignment['Underlined'] = {'GUIFG': s:cyan, 'CTERMFG': 'cyan', 'GUI': 'Underline'}
|
||||||
|
let s:ColourAssignment['EndOfBuffer'] = {'GUIFG': s:blue, 'CTERMFG': 'Blue'}
|
||||||
|
let s:ColourAssignment['Error'] = {'GUIFG': s:red, 'GUIBG': 'Black', 'CTERMFG': 'red', 'GUI': 'Reverse,Bold'}
|
||||||
|
let s:ColourAssignment['ErrorMsg'] = {'GUIFG': s:red, 'GUIBG': 'White', 'CTERMFG': 'red', 'GUI': 'Reverse,Bold'}
|
||||||
|
let s:ColourAssignment['WarningMsg'] = {'GUIFG': s:red, 'CTERMFG': 'red'}
|
||||||
|
let s:ColourAssignment['Ignore'] = {'GUIFG': 'bg', 'CTERMFG': 'Black'}
|
||||||
|
let s:ColourAssignment['SpecialKey'] = {'GUIFG': s:cyan, 'CTERMFG': 'Cyan'}
|
||||||
|
|
||||||
|
|
||||||
|
" Variable types
|
||||||
|
" --------------
|
||||||
|
let s:ColourAssignment['Constant'] = {'GUIFG': s:magenta, 'CTERMFG': 'magenta'}
|
||||||
|
let s:ColourAssignment['Number'] = {'GUIFG': s:red, 'CTERMFG': 'red'}
|
||||||
|
highlight! link String Constant
|
||||||
|
highlight! link Boolean Constant
|
||||||
|
highlight! link Float Number
|
||||||
|
|
||||||
|
let s:ColourAssignment['Identifier'] = {'GUIFG': s:green, 'CTERMFG': 'green', 'GUI': 'Bold'}
|
||||||
|
highlight! link Function Identifier
|
||||||
|
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
" --------
|
||||||
|
let s:ColourAssignment['Comment'] = {'GUIFG': s:cyan, 'CTERMFG': 'cyan'}
|
||||||
|
highlight! link SpecialComment Special
|
||||||
|
|
||||||
|
|
||||||
|
" Language constructs
|
||||||
|
" -------------------
|
||||||
|
let s:ColourAssignment['Statement'] = {'GUIFG': s:yellow, 'CTERMFG': 'yellow', 'GUI': 'Bold'}
|
||||||
|
highlight! link Conditional Statement
|
||||||
|
highlight! link Repeat Statement
|
||||||
|
highlight! link Label Statement
|
||||||
|
highlight! link Operator Statement
|
||||||
|
highlight! link Keyword Statement
|
||||||
|
highlight! link Exception Statement
|
||||||
|
|
||||||
|
let s:ColourAssignment['Special'] = {'GUIFG': s:red, 'CTERMFG': 'red'}
|
||||||
|
highlight! link SpecialChar Special
|
||||||
|
highlight! link Tag Special
|
||||||
|
highlight! link Delimiter Special
|
||||||
|
highlight! link Debug Special
|
||||||
|
|
||||||
|
|
||||||
|
" C like
|
||||||
|
" ------
|
||||||
|
let s:ColourAssignment['PreProc'] = {'GUIFG': s:blue, 'CTERMFG': 'blue', 'GUI': 'Bold'}
|
||||||
|
highlight! link Include PreProc
|
||||||
|
highlight! link Define PreProc
|
||||||
|
highlight! link Macro PreProc
|
||||||
|
highlight! link PreCondit PreProc
|
||||||
|
|
||||||
|
let s:ColourAssignment['Type'] = {'GUIFG': s:green, 'CTERMFG': 'green', 'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['Structure'] = {'GUIFG': s:magenta, 'CTERMFG': 'magenta'}
|
||||||
|
highlight! link StorageClass Type
|
||||||
|
highlight! link Typedef Type
|
||||||
|
|
||||||
|
|
||||||
|
" Diff
|
||||||
|
" ----
|
||||||
|
let s:ColourAssignment['DiffAdd'] = {'GUIFG': s:green, 'GUIBG': 'Black', 'CTERMFG': 'Green', 'GUI': 'Reverse,Bold'}
|
||||||
|
let s:ColourAssignment['DiffChange'] = {'GUIFG': 'NONE'}
|
||||||
|
let s:ColourAssignment['DiffDelete'] = {'GUIFG': s:red, 'GUIBG': 'Black', 'CTERMFG': 'Red', 'GUI': 'Reverse,Bold'}
|
||||||
|
let s:ColourAssignment['DiffText'] = {'GUIFG': s:blue, 'GUIBG': 'Black', 'CTERMFG': 'Blue', 'GUI': 'Reverse,Bold'}
|
||||||
|
|
||||||
|
|
||||||
|
" Completion menu
|
||||||
|
" ---------------
|
||||||
|
let s:ColourAssignment['Pmenu'] = {'GUIFG': 'Black', 'GUIBG': 'Grey'}
|
||||||
|
let s:ColourAssignment['PmenuSel'] = {'GUIFG': s:yellow, 'GUIBG': 'DarkGrey', 'GUI': 'Bold', 'CTERMFG': 'yellow'}
|
||||||
|
let s:ColourAssignment['PmenuThumb'] = {'GUIBG': 'DarkGrey'}
|
||||||
|
highlight! link PmenuSbar Pmenu
|
||||||
|
|
||||||
|
|
||||||
|
" Spelling
|
||||||
|
" --------
|
||||||
|
let s:ColourAssignment['SpellBad'] = {'GUIFG': s:red, 'GUISP': s:red, 'CTERMFG': 'red', 'GUI': 'undercurl'}
|
||||||
|
let s:ColourAssignment['SpellCap'] = {'GUIFG': s:blue, 'GUISP': s:blue, 'CTERMFG': 'blue', 'GUI': 'undercurl'}
|
||||||
|
let s:ColourAssignment['SpellLocal'] = {'GUIFG': s:yellow, 'GUISP': s:yellow, 'CTERMFG': 'yellow', 'GUI': 'undercurl'}
|
||||||
|
let s:ColourAssignment['SpellRare'] = {'GUIFG': s:green, 'GUISP': s:green, 'CTERMFG': 'green', 'GUI': 'undercurl'}
|
||||||
|
|
||||||
|
|
||||||
|
" Text Formatting
|
||||||
|
" ---------------
|
||||||
|
let s:ColourAssignment['Italic'] = {'GUIFG': 'White', 'GUI': 'Italic'}
|
||||||
|
let s:ColourAssignment['Bold'] = {'GUIFG': 'White', 'GUI': 'Bold'}
|
||||||
|
let s:ColourAssignment['BoldItalic'] = {'GUIFG': 'White', 'GUI': 'Italic,Bold'}
|
||||||
|
highlight! link htmlItalic Italic
|
||||||
|
highlight! link htmlBold Bold
|
||||||
|
highlight! link htmlBoldItalic BoldItalic
|
||||||
|
|
||||||
|
|
||||||
|
" Function to translate the ColourAssignments to highlight lines
|
||||||
|
let s:colours = {}
|
||||||
|
let s:valid_cterm_colours =
|
||||||
|
\ [
|
||||||
|
\ 'Black', 'DarkBlue', 'DarkGreen', 'DarkCyan',
|
||||||
|
\ 'DarkRed', 'DarkMagenta', 'Brown', 'DarkYellow',
|
||||||
|
\ 'LightGray', 'LightGrey', 'Gray', 'Grey',
|
||||||
|
\ 'DarkGray', 'DarkGrey', 'Blue', 'LightBlue',
|
||||||
|
\ 'Green', 'LightGreen', 'Cyan', 'LightCyan',
|
||||||
|
\ 'Red', 'LightRed', 'Magenta', 'LightMagenta',
|
||||||
|
\ 'Yellow', 'LightYellow', 'White',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
for s:key in keys(s:ColourAssignment)
|
||||||
|
let s:colours = s:ColourAssignment[s:key]
|
||||||
|
if has_key(s:colours, 'TERM')
|
||||||
|
let s:term = s:colours['TERM']
|
||||||
|
else
|
||||||
|
let s:term = 'NONE'
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'GUI')
|
||||||
|
let s:gui = s:colours['GUI']
|
||||||
|
else
|
||||||
|
let s:gui = 'NONE'
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'GUIFG')
|
||||||
|
let s:guifg = s:colours['GUIFG']
|
||||||
|
else
|
||||||
|
let s:guifg = 'NONE'
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'GUIBG')
|
||||||
|
let s:guibg = s:colours['GUIBG']
|
||||||
|
else
|
||||||
|
let s:guibg = 'NONE'
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'CTERM')
|
||||||
|
let s:cterm = s:colours['CTERM']
|
||||||
|
else
|
||||||
|
let s:cterm = s:gui
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'CTERMFG')
|
||||||
|
let s:ctermfg = s:colours['CTERMFG']
|
||||||
|
else
|
||||||
|
if index(s:valid_cterm_colours, s:guifg) != -1
|
||||||
|
let s:ctermfg = s:guifg
|
||||||
|
else
|
||||||
|
let s:ctermfg = 'NONE'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'CTERMBG')
|
||||||
|
let s:ctermbg = s:colours['CTERMBG']
|
||||||
|
else
|
||||||
|
if index(s:valid_cterm_colours, s:guibg) != -1
|
||||||
|
let s:ctermbg = s:guibg
|
||||||
|
else
|
||||||
|
let s:ctermbg = 'NONE'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if has_key(s:colours, 'GUISP')
|
||||||
|
let s:guisp = s:colours['GUISP']
|
||||||
|
else
|
||||||
|
let s:guisp = 'NONE'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if s:key =~# '^\k*$'
|
||||||
|
execute 'highlight '.s:key.' term='.s:term.' cterm='.s:cterm.' gui='.s:gui.' ctermfg='.s:ctermfg.' guifg='.s:guifg.' ctermbg='.s:ctermbg.' guibg='.s:guibg.' guisp='.s:guisp
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
63
init.lua
Normal file
63
init.lua
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
|
vim.cmd("colorscheme eldar")
|
||||||
|
vim.opt.tabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
vim.cmd("set relativenumber")
|
||||||
|
vim.cmd("set number")
|
||||||
|
vim.cmd("set mouse=a")
|
||||||
|
vim.cmd("set clipboard+=unnamedplus")
|
||||||
|
vim.api.nvim_set_hl(0, "Normal", { bg = "#040404" })
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
underline = true, -- enable underline
|
||||||
|
virtual_text = true,
|
||||||
|
signs = true, -- keep gutter signs
|
||||||
|
update_in_insert = false,
|
||||||
|
severity_sort = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter", "CursorHold", "InsertLeave" }, {
|
||||||
|
callback = function()
|
||||||
|
pcall(vim.lsp.codelens.refresh)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
callback = function(args)
|
||||||
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
||||||
|
if client and client.server_capabilities.inlayHintProvider then
|
||||||
|
vim.lsp.inlay_hint.enable(true, { bufnr = args.buf })
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
|
callback = function(args)
|
||||||
|
vim.lsp.buf.format({ bufnr = args.buf })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Format immediately after pasting in normal/visual mode
|
||||||
|
local function format_after_paste(keys)
|
||||||
|
return function()
|
||||||
|
vim.api.nvim_feedkeys(keys, "n", false) -- perform the paste
|
||||||
|
vim.lsp.buf.format({ async = true }) -- format buffer asynchronously
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "x" }, "p", format_after_paste("p"), { noremap = true, silent = true })
|
||||||
|
vim.keymap.set({ "n", "x" }, "P", format_after_paste("P"), { noremap = true, silent = true })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||||
|
callback = function()
|
||||||
|
vim.highlight.on_yank({
|
||||||
|
higroup = "Visual", -- highlight style
|
||||||
|
timeout = 150, -- duration in milliseconds
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
require("config.keymaps")
|
||||||
|
require("config.lazy")
|
||||||
25
lazy-lock.json
Normal file
25
lazy-lock.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
|
||||||
|
"blink.download": { "branch": "main", "commit": "86361b98f3c8317904a08e3bd12cf3cdcbe3e925" },
|
||||||
|
"blink.nvim": { "branch": "main", "commit": "16a597e89cf2ee6215a392c5bc5a945477015534" },
|
||||||
|
"blink.pairs": { "branch": "main", "commit": "d8bf802cca951f0a3b72ddeed21bc5a1d5353f65" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"fzf-lua": { "branch": "main", "commit": "d6e899e8dfdaf47bf849c0875ca3ca0e5a0e0d12" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "1ec4da522fa49dcecee8d190efda273464dd2192" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
|
||||||
|
"neoconf.nvim": { "branch": "main", "commit": "5aeca07ecb2f506d32e81eb82b0ed384ac2a53c5" },
|
||||||
|
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
|
"nvim-highlight-colors": { "branch": "main", "commit": "b42a5ccec7457b44e89f7ed3b3afb1b375bb2093" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "61fdd3a8609071ce44519e405f3424d84ec94d9d" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "32cb9f9b9db71b0dc2454817727cd9a5d840658c" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||||
|
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
|
||||||
|
}
|
||||||
26
lua/config/keymaps.lua
Normal file
26
lua/config/keymaps.lua
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
-- LSP keymaps
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
|
||||||
|
-- Go to definition
|
||||||
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||||
|
|
||||||
|
-- Go to declaration
|
||||||
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||||
|
|
||||||
|
-- Find references
|
||||||
|
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||||
|
|
||||||
|
-- Go to implementation
|
||||||
|
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
|
||||||
|
|
||||||
|
-- Hover documentation
|
||||||
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||||
|
|
||||||
|
-- Signature help
|
||||||
|
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
||||||
|
|
||||||
|
-- Rename symbol
|
||||||
|
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||||
|
|
||||||
|
-- Code actions
|
||||||
|
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||||
35
lua/config/lazy.lua
Normal file
35
lua/config/lazy.lua
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- import your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
-- Configure any other settings here. See the documentation for more details.
|
||||||
|
-- colorscheme that will be used when installing plugins.
|
||||||
|
install = { colorscheme = { "habamax" } },
|
||||||
|
-- automatically check for plugin updates
|
||||||
|
checker = { enabled = true, notify = false },
|
||||||
|
})
|
||||||
60
lua/plugins/blink-cmp.lua
Normal file
60
lua/plugins/blink-cmp.lua
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
return {
|
||||||
|
'saghen/blink.cmp',
|
||||||
|
-- optional: provides snippets for the snippet source
|
||||||
|
dependencies = { 'rafamadriz/friendly-snippets' },
|
||||||
|
|
||||||
|
-- use a release tag to download pre-built binaries
|
||||||
|
version = '1.*',
|
||||||
|
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
|
||||||
|
-- build = 'cargo build --release',
|
||||||
|
-- If you use nix, you can build from source using latest nightly rust with:
|
||||||
|
-- build = 'nix run .#build-plugin',
|
||||||
|
|
||||||
|
---@module 'blink.cmp'
|
||||||
|
---@type blink.cmp.Config
|
||||||
|
opts = {
|
||||||
|
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
|
||||||
|
-- 'super-tab' for mappings similar to vscode (tab to accept)
|
||||||
|
-- 'enter' for enter to accept
|
||||||
|
-- 'none' for no mappings
|
||||||
|
--
|
||||||
|
-- All presets have the following mappings:
|
||||||
|
-- C-space: Open menu or open docs if already open
|
||||||
|
-- C-n/C-p or Up/Down: Select next/previous item
|
||||||
|
-- C-e: Hide menu
|
||||||
|
-- C-k: Toggle signature help (if signature.enabled = true)
|
||||||
|
--
|
||||||
|
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||||
|
keymap = { preset = 'enter' },
|
||||||
|
|
||||||
|
appearance = {
|
||||||
|
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
|
||||||
|
-- Adjusts spacing to ensure icons are aligned
|
||||||
|
nerd_font_variant = 'mono'
|
||||||
|
},
|
||||||
|
|
||||||
|
-- (Default) Only show the documentation popup when manually triggered
|
||||||
|
completion = {
|
||||||
|
documentation = { auto_show = true, auto_show_delay_ms = 500, },
|
||||||
|
menu = { auto_show = true },
|
||||||
|
ghost_text = { show_with_menu = false },
|
||||||
|
list = {
|
||||||
|
selection = { preselect = false }
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Default list of enabled providers defined so that you can extend it
|
||||||
|
-- elsewhere in your config, without redefining it, due to `opts_extend`
|
||||||
|
sources = {
|
||||||
|
default = { 'lsp', 'path', 'snippets', 'buffer' },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
|
||||||
|
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
|
||||||
|
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
|
||||||
|
--
|
||||||
|
-- See the fuzzy documentation for more information
|
||||||
|
fuzzy = { implementation = "prefer_rust_with_warning" }
|
||||||
|
},
|
||||||
|
opts_extend = { "sources.default" }
|
||||||
|
}
|
||||||
46
lua/plugins/blink-pairs.lua
Normal file
46
lua/plugins/blink-pairs.lua
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
return {
|
||||||
|
'saghen/blink.pairs',
|
||||||
|
version = '*', -- (recommended) only required with prebuilt binaries
|
||||||
|
|
||||||
|
-- download prebuilt binaries from github releases
|
||||||
|
dependencies = 'saghen/blink.download',
|
||||||
|
-- OR build from source, requires nightly:
|
||||||
|
-- https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
|
||||||
|
-- build = 'cargo build --release',
|
||||||
|
-- If you use nix, you can build from source using latest nightly rust with:
|
||||||
|
-- build = 'nix run .#build-plugin',
|
||||||
|
|
||||||
|
--- @module 'blink.pairs'
|
||||||
|
--- @type blink.pairs.Config
|
||||||
|
opts = {
|
||||||
|
mappings = {
|
||||||
|
-- you can call require("blink.pairs.mappings").enable()
|
||||||
|
-- and require("blink.pairs.mappings").disable()
|
||||||
|
-- to enable/disable mappings at runtime
|
||||||
|
enabled = true,
|
||||||
|
-- or disable with `vim.g.pairs = false` (global) and `vim.b.pairs = false` (per-buffer)
|
||||||
|
-- and/or with `vim.g.blink_pairs = false` and `vim.b.blink_pairs = false`
|
||||||
|
disabled_filetypes = {},
|
||||||
|
-- see the defaults:
|
||||||
|
-- https://github.com/Saghen/blink.pairs/blob/main/lua/blink/pairs/config/mappings.lua#L14
|
||||||
|
pairs = {},
|
||||||
|
},
|
||||||
|
highlights = {
|
||||||
|
enabled = true,
|
||||||
|
-- requires require('vim._extui').enable({}), otherwise has no effect
|
||||||
|
groups = {
|
||||||
|
'BlinkPairsOrange',
|
||||||
|
'BlinkPairsPurple',
|
||||||
|
'BlinkPairsBlue',
|
||||||
|
},
|
||||||
|
|
||||||
|
-- highlights matching pairs under the cursor
|
||||||
|
matchparen = {
|
||||||
|
enabled = true,
|
||||||
|
-- known issue where typing won't update matchparen highlight, disabled by default
|
||||||
|
group = 'BlinkPairsMatchParen',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
debug = false,
|
||||||
|
}
|
||||||
|
}
|
||||||
36
lua/plugins/blink.lua
Normal file
36
lua/plugins/blink.lua
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
return {
|
||||||
|
'saghen/blink.nvim',
|
||||||
|
build = 'cargo build --release', -- for delimiters
|
||||||
|
keys = {
|
||||||
|
-- chartoggle
|
||||||
|
{
|
||||||
|
'<C-;>',
|
||||||
|
function()
|
||||||
|
require('blink.chartoggle').toggle_char_eol(';')
|
||||||
|
end,
|
||||||
|
mode = { 'n', 'v' },
|
||||||
|
desc = 'Toggle ; at eol',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
',',
|
||||||
|
function()
|
||||||
|
require('blink.chartoggle').toggle_char_eol(',')
|
||||||
|
end,
|
||||||
|
mode = { 'n', 'v' },
|
||||||
|
desc = 'Toggle , at eol',
|
||||||
|
},
|
||||||
|
|
||||||
|
-- tree
|
||||||
|
{ '<C-e>', '<cmd>BlinkTree reveal<cr>', desc = 'Reveal current file in tree' },
|
||||||
|
{ '<leader>E', '<cmd>BlinkTree toggle<cr>', desc = 'Reveal current file in tree' },
|
||||||
|
{ '<leader>e', '<cmd>BlinkTree toggle-focus<cr>', desc = 'Toggle file tree focus' },
|
||||||
|
},
|
||||||
|
-- all modules handle lazy loading internally
|
||||||
|
lazy = false,
|
||||||
|
opts = {
|
||||||
|
chartoggle = { enabled = true },
|
||||||
|
tree = { enabled = true },
|
||||||
|
cmp = { enabled = true },
|
||||||
|
pairs = { enabled = true },
|
||||||
|
}
|
||||||
|
}
|
||||||
27
lua/plugins/bufferline.lua
Normal file
27
lua/plugins/bufferline.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
return {
|
||||||
|
"akinsho/bufferline.nvim",
|
||||||
|
lazy = false,
|
||||||
|
keys = {
|
||||||
|
{ "<leader>bp", "<Cmd>BufferLineTogglePin<CR>", desc = "Toggle Pin" },
|
||||||
|
{ "<leader>bP", "<Cmd>BufferLineGroupClose ungrouped<CR>", desc = "Delete Non-Pinned Buffers" },
|
||||||
|
{ "<leader>br", "<Cmd>BufferLineCloseRight<CR>", desc = "Delete Buffers to the Right" },
|
||||||
|
{ "<leader>bl", "<Cmd>BufferLineCloseLeft<CR>", desc = "Delete Buffers to the Left" },
|
||||||
|
{ "<S-h>", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },
|
||||||
|
{ "<S-l>", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },
|
||||||
|
{ "[b", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },
|
||||||
|
{ "]b", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },
|
||||||
|
{ "[B", "<cmd>BufferLineMovePrev<cr>", desc = "Move buffer prev" },
|
||||||
|
{ "]B", "<cmd>BufferLineMoveNext<cr>", desc = "Move buffer next" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("bufferline").setup{}
|
||||||
|
-- Fix bufferline when restoring a session
|
||||||
|
vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, {
|
||||||
|
callback = function()
|
||||||
|
vim.schedule(function()
|
||||||
|
pcall(nvim_bufferline)
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
8
lua/plugins/fzf-lua.lua
Normal file
8
lua/plugins/fzf-lua.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
"ibhagwan/fzf-lua",
|
||||||
|
-- optional for icon support
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
-- or if using mini.icons/mini.nvim
|
||||||
|
-- dependencies = { "echasnovski/mini.icons" },
|
||||||
|
opts = {}
|
||||||
|
}
|
||||||
53
lua/plugins/gitsigns.lua
Normal file
53
lua/plugins/gitsigns.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
return {
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
lazy = false,
|
||||||
|
opts = {
|
||||||
|
signs = {
|
||||||
|
add = { text = '┃' },
|
||||||
|
change = { text = '┃' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signs_staged = {
|
||||||
|
add = { text = '┃' },
|
||||||
|
change = { text = '┃' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signs_staged_enable = true,
|
||||||
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||||
|
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||||
|
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||||
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||||
|
watch_gitdir = {
|
||||||
|
follow_files = true
|
||||||
|
},
|
||||||
|
auto_attach = true,
|
||||||
|
attach_to_untracked = false,
|
||||||
|
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||||
|
delay = 1000,
|
||||||
|
ignore_whitespace = false,
|
||||||
|
virt_text_priority = 100,
|
||||||
|
use_focus = true,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil, -- Use default
|
||||||
|
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||||
|
preview_config = {
|
||||||
|
-- Options passed to nvim_open_win
|
||||||
|
style = 'minimal',
|
||||||
|
relative = 'cursor',
|
||||||
|
row = 0,
|
||||||
|
col = 1
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
7
lua/plugins/highlight-colors.lua
Normal file
7
lua/plugins/highlight-colors.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'brenoprata10/nvim-highlight-colors',
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require('nvim-highlight-colors').setup{}
|
||||||
|
end
|
||||||
|
}
|
||||||
5
lua/plugins/init.lua
Normal file
5
lua/plugins/init.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
"folke/neodev.nvim",
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
{ "folke/neoconf.nvim", cmd = "Neoconf" },
|
||||||
|
}
|
||||||
22
lua/plugins/lsp-lens.lua
Normal file
22
lua/plugins/lsp-lens.lua
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
local SymbolKind = vim.lsp.protocol.SymbolKind
|
||||||
|
|
||||||
|
return {
|
||||||
|
'VidocqH/lsp-lens.nvim',
|
||||||
|
opts = {
|
||||||
|
enable = true,
|
||||||
|
include_declaration = false, -- Reference include declaration
|
||||||
|
sections = { -- Enable / Disable specific request, formatter example looks 'Format Requests'
|
||||||
|
definition = false,
|
||||||
|
references = true,
|
||||||
|
implements = true,
|
||||||
|
git_authors = true,
|
||||||
|
},
|
||||||
|
ignore_filetype = {
|
||||||
|
"prisma",
|
||||||
|
},
|
||||||
|
-- Target Symbol Kinds to show lens information
|
||||||
|
target_symbol_kinds = { SymbolKind.Function, SymbolKind.Method, SymbolKind.Interface },
|
||||||
|
-- Symbol Kinds that may have target symbol kinds as children
|
||||||
|
wrapper_symbol_kinds = { SymbolKind.Class, SymbolKind.Struct },
|
||||||
|
}
|
||||||
|
}
|
||||||
32
lua/plugins/lspconfig.lua
Normal file
32
lua/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
return {
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
dependencies = { 'saghen/blink.cmp' },
|
||||||
|
|
||||||
|
lazy = false,
|
||||||
|
|
||||||
|
-- example using `opts` for defining servers
|
||||||
|
opts = {
|
||||||
|
inlay_hints = { enabled = true },
|
||||||
|
servers = {
|
||||||
|
lua_ls = {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
for server, config in pairs(opts.servers) do
|
||||||
|
-- passing config.capabilities to blink.cmp merges with the capabilities in your
|
||||||
|
-- `opts[server].capabilities, if you've defined it
|
||||||
|
config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities)
|
||||||
|
lspconfig[server].setup(config)
|
||||||
|
end
|
||||||
|
|
||||||
|
end,
|
||||||
|
|
||||||
|
-- example calling setup directly for each LSP
|
||||||
|
config = function()
|
||||||
|
local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
lspconfig['lua_ls'].setup({ capabilities = capabilities })
|
||||||
|
end
|
||||||
|
}
|
||||||
7
lua/plugins/lualine.lua
Normal file
7
lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
opts = {
|
||||||
|
options = { theme = "16color" }
|
||||||
|
},
|
||||||
|
}
|
||||||
11
lua/plugins/mason-lspconfig.lua
Normal file
11
lua/plugins/mason-lspconfig.lua
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
"mason-org/mason-lspconfig.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = { "lua_ls", "rust_analyzer", "ts_ls" },
|
||||||
|
},
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {
|
||||||
|
{ "mason-org/mason.nvim", opts = {} },
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
},
|
||||||
|
}
|
||||||
5
lua/plugins/mason.lua
Normal file
5
lua/plugins/mason.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
"mason-org/mason.nvim",
|
||||||
|
lazy = false,
|
||||||
|
opts = {}
|
||||||
|
}
|
||||||
23
lua/plugins/snacks.lua
Normal file
23
lua/plugins/snacks.lua
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
return {
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
priority = 1000,
|
||||||
|
lazy = false,
|
||||||
|
---@type snacks.Config
|
||||||
|
opts = {
|
||||||
|
-- your configuration comes here
|
||||||
|
-- or leave it empty to use the default settings
|
||||||
|
-- refer to the configuration section below
|
||||||
|
bigfile = { enabled = true },
|
||||||
|
dashboard = { enabled = true },
|
||||||
|
explorer = { enabled = true },
|
||||||
|
indent = { enabled = true },
|
||||||
|
input = { enabled = true },
|
||||||
|
picker = { enabled = true },
|
||||||
|
notifier = { enabled = true },
|
||||||
|
quickfile = { enabled = true },
|
||||||
|
scope = { enabled = true },
|
||||||
|
scroll = { enabled = true },
|
||||||
|
statuscolumn = { enabled = true },
|
||||||
|
words = { enabled = true },
|
||||||
|
},
|
||||||
|
}
|
||||||
11
lua/plugins/toggleterm.lua
Normal file
11
lua/plugins/toggleterm.lua
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
return
|
||||||
|
{
|
||||||
|
'akinsho/toggleterm.nvim',
|
||||||
|
version = "*",
|
||||||
|
config = true,
|
||||||
|
lazy = false,
|
||||||
|
keys = {
|
||||||
|
{ "<leader>th", "<Cmd>ToggleTerm<CR>", desc = "ToggleTerm Horizontal" },
|
||||||
|
{ "<leader>tv", "<Cmd>ToggleTerm<CR>", desc = "ToggleTerm Vertical" }
|
||||||
|
}
|
||||||
|
}
|
||||||
6
lua/plugins/treesitter.lua
Normal file
6
lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
lazy = false,
|
||||||
|
branch = 'main',
|
||||||
|
build = ':TSUpdate'
|
||||||
|
}
|
||||||
37
lua/plugins/trouble.lua
Normal file
37
lua/plugins/trouble.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
return {
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||||
|
cmd = "Trouble",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>xx",
|
||||||
|
"<cmd>Trouble diagnostics toggle<cr>",
|
||||||
|
desc = "Diagnostics (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xX",
|
||||||
|
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
|
||||||
|
desc = "Buffer Diagnostics (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cs",
|
||||||
|
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||||
|
desc = "Symbols (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cl",
|
||||||
|
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
|
||||||
|
desc = "LSP Definitions / references / ... (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xL",
|
||||||
|
"<cmd>Trouble loclist toggle<cr>",
|
||||||
|
desc = "Location List (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xQ",
|
||||||
|
"<cmd>Trouble qflist toggle<cr>",
|
||||||
|
desc = "Quickfix List (Trouble)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user