Compare commits

...

34 Commits

Author SHA1 Message Date
cf16908e4f reduce cmd time 2025-12-01 13:07:15 +09:00
185887d20d we an go cheo jim 2025-11-29 13:08:29 +09:00
9399fde789 fix: apply new lspconfig API 2025-11-29 12:27:16 +09:00
b261344f4a ignore err 2025-11-26 11:59:46 +09:00
e4afa6b707 add hpack 2025-11-25 13:48:39 +09:00
14aaf99bca lazy lock 2025-11-25 13:25:10 +09:00
341bf54dbf add haskell-mod 2025-11-25 12:48:41 +09:00
893583838f change blink.pairs to nvim-autopairs 2025-11-22 00:31:39 +09:00
7074c72cb0 add hpack 2025-11-22 00:13:06 +09:00
459c767e92 add ?? 2025-11-14 14:07:06 +09:00
34439c0c91 add flake 2025-11-14 13:43:34 +09:00
3aec645b22 add unception.nvim 2025-10-31 21:09:11 +09:00
c7955f36e5 add relativenumber to tree 2025-10-27 10:13:33 +09:00
0b08441563 add opts 2025-10-26 10:52:09 +09:00
08274e8ad8 add nvim-tree 2025-10-26 10:23:16 +09:00
df2acf298b add hls 2025-10-25 14:43:57 +09:00
3e5e0c52cd add direnv 2025-10-23 22:16:42 +09:00
f087fd2bdb add some keymaps 2025-10-21 21:49:34 +09:00
6af119073f add diffview 2025-10-21 20:31:31 +09:00
9bd0c15301 fix: blink.cmp path resolution 2025-10-19 12:10:23 +09:00
582f657423 feat: add fzf key 2025-10-19 10:12:10 +09:00
f3dcabed0e feat: fix peek issue 2025-10-14 20:27:32 +09:00
fc66dfa97b feat: add peek plugin 2025-10-14 20:19:13 +09:00
3a7e793589 feat: remove block comment key 2025-09-17 20:07:02 +09:00
0dfd6219da feat: simplify yazi key to ; 2025-09-17 12:58:02 +09:00
cf1208e613 feat: remove neotree keybind 2025-09-17 12:53:54 +09:00
41240fd961 feat: change all docked UI to floating 2025-09-17 12:53:21 +09:00
f9025afecd feat: add hardtime.nvim 2025-09-17 01:09:54 +09:00
1c6921f5a4 feat: remove paste 2025-09-16 23:39:59 +09:00
f085be7085 feat: add colors, add outline 2025-09-13 11:55:10 +09:00
d52234a409 feat: comment 2025-08-21 01:03:22 +09:00
bb61d3e5af feat: change cursorline color 2025-08-20 14:40:13 +09:00
a5265bd3ba feat: auto bracket 2025-08-20 14:29:19 +09:00
51da8e6e1d feat: cursorline 2025-08-20 14:26:28 +09:00
35 changed files with 943 additions and 191 deletions

9
after/lsp/hls.lua Normal file
View File

@@ -0,0 +1,9 @@
return {
filetypes = { "haskell", "lhaskell" },
cmd = { "haskell-language-server-wrapper", "--lsp" },
settings = {
haskell = {
formattingProvider = "fourmolu"
}
}
}

50
autoload/pop_punk.vim Normal file
View File

@@ -0,0 +1,50 @@
let s:colors = {}
let s:colors.white = ['#ffffff', 231]
let s:colors.gray_1 = ['#1a1a1a', 234]
let s:colors.gray_2 = ['#2e373e', 237]
let s:colors.gray_3 = ['#3a3a3a', 237]
let s:colors.gray_4 = ['#5a5a5a', 59]
let s:colors.gray_5 = ['#767c88', 60]
let s:colors.gray_6 = ['#8b8a7c', 101]
let s:colors.gray_7 = ['#8787af', 103]
let s:colors.black = ['#000000', 16]
let s:colors.eggshell = ['#ffffcd', 230]
let s:colors.mauve = ['#e4dfff', 189]
let s:colors.blue = ['#0088ff', 33]
let s:colors.teal = ['#40e0d0', 80]
let s:colors.magenta = ['#c526ff', 165]
let s:colors.burgundy = ['#5f2a5f', 53]
let s:colors.red_1 = ['#d70061', 161]
let s:colors.red_2 = ['#ff005f', 197]
let s:colors.orange = ['#ff9d00', 214]
let s:colors.sun = ['#ffdd00', 220]
let s:colors.yellow = ['#ffff00', 226]
let s:colors.pink = ['#f9e0f5', 225]
let s:colors.green = ['#5ff967', 76]
let s:colors.cobalt_1 = ['#306b8f', 24]
let s:colors.cobalt_2 = ['#445291', 60]
function! pop_punk#GetColors()
return s:colors
endfunction
function! pop_punk#AnsiColors()
return [
\s:colors.black[0],
\s:colors.red_2[0],
\s:colors.green[0],
\s:colors.orange[0],
\s:colors.blue[0],
\s:colors.magenta[0],
\s:colors.teal[0],
\s:colors.white[0],
\s:colors.gray_7[0],
\s:colors.red_2[0],
\s:colors.green[0],
\s:colors.yellow[0],
\s:colors.blue[0],
\s:colors.magenta[0],
\s:colors.teal[0],
\s:colors.pink[0]
\]
endfunction

263
colors/pop-punk.vim Normal file
View File

@@ -0,0 +1,263 @@
" Pop-Punk
"
" by Jeff Auriemma
" @bignimbus
scriptencoding utf8
set t_Co=256
let &t_Cs = "\e[4:3m"
let &t_Ce = "\e[4:0m"
let g:colors_name = "pop-punk"
" Palette
let s:colors = pop_punk#GetColors()
let s:white = s:colors.white
let s:gray_1 = s:colors.gray_1
let s:gray_2 = s:colors.gray_2
let s:gray_3 = s:colors.gray_3
let s:gray_4 = s:colors.gray_4
let s:gray_5 = s:colors.gray_5
let s:gray_6 = s:colors.gray_6
let s:gray_7 = s:colors.gray_7
let s:black = s:colors.black
let s:eggshell = s:colors.eggshell
let s:mauve = s:colors.mauve
let s:blue = s:colors.blue
let s:teal = s:colors.teal
let s:magenta = s:colors.magenta
let s:burgundy = s:colors.burgundy
let s:red_1 = s:colors.red_1
let s:red_2 = s:colors.red_2
let s:orange = s:colors.orange
let s:sun = s:colors.sun
let s:yellow = s:colors.yellow
let s:pink = s:colors.pink
let s:green = s:colors.green
let s:cobalt_1 = s:colors.cobalt_1
let s:cobalt_2 = s:colors.cobalt_2
let s:none = ['NONE', 'NONE']
" User Configuration
if !exists('g:pop_punk_bold')
let g:pop_punk_bold = 1
endif
if !exists('g:pop_punk_italic')
let g:pop_punk_italic = 1
endif
if !exists('g:pop_punk_underline')
let g:pop_punk_underline = 1
endif
if !exists('g:pop_punk_undercurl') && g:pop_punk_underline != 0
let g:pop_punk_undercurl = 1
endif
if !exists('g:pop_punk_inverse')
let g:pop_punk_inverse = 1
endif
if !exists('g:pop_punk_colorterm')
let g:pop_punk_colorterm = 1
endif
" Script Helpers
let s:attrs = {
\ 'bold': g:pop_punk_bold == 1 ? 'bold' : 0,
\ 'italic': g:pop_punk_italic == 1 ? 'italic' : 0,
\ 'underline': g:pop_punk_underline == 1 ? 'underline' : 0,
\ 'undercurl': g:pop_punk_undercurl == 1 ? 'undercurl' : 0,
\ 'inverse': g:pop_punk_inverse == 1 ? 'inverse' : 0,
\}
function! s:h(scope, fg, ...) " bg, attr_list, special
let l:fg = copy(a:fg)
let l:bg = get(a:, 1, ['NONE', 'NONE'])
let l:attr_list = filter(get(a:, 2, ['NONE']), 'type(v:val) == 1')
let l:attrs = len(l:attr_list) > 0 ? join(l:attr_list, ',') : 'NONE'
let l:special = get(a:, 3, ['NONE', 'NONE'])
" Falls back to coloring foreground group on terminals because
" nearly all do not support undercurl
" if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running')
" let l:fg[0] = l:special[0]
" let l:fg[1] = l:special[1]
" endif
let l:hl_string = [
\ 'highlight', a:scope,
\ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1],
\ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1],
\ 'gui=' . l:attrs, 'cterm=' . l:attrs,
\ 'guisp=' . l:special[0],
\]
execute join(l:hl_string, ' ')
endfunction
" User Interface
set background=dark
" Required as some plugins will overwrite
call s:h('Normal', s:white, s:black)
call s:h('StatusLine', s:magenta, s:gray_2, [s:attrs.bold])
call s:h('StatusLineNC', s:gray_7, s:gray_2, [s:attrs.italic])
" call s:h('StatusLineTerm', s:none, s:bglighter, [s:attrs.bold])
" call s:h('StatusLineTermNC', s:none, s:bglight)
call s:h('WildMenu', s:none, s:gray_7)
call s:h('Cursor', s:white, s:burgundy)
call s:h('CursorLine', s:none, s:gray_1)
call s:h('CursorColumn', s:none, s:gray_1)
call s:h('CursorLineNr', s:yellow, s:none)
call s:h('Debug', s:gray_6, s:none)
call s:h('DiffAdd', s:none, s:gray_3)
call s:h('DiffChange', s:eggshell, s:cobalt_1)
call s:h('DiffDelete', s:red_2, s:none)
" call s:h('DiffRemoved', s:red_2, s:none)
call s:h('DiffText', s:eggshell, s:burgundy)
call s:h('Directory', s:magenta, s:none)
call s:h('ErrorMsg', s:red_2, s:none)
call s:h('FoldColumn', s:gray_1, s:gray_7, [s:attrs.italic])
call s:h('Folded', s:gray_1, s:gray_7, [s:attrs.italic])
call s:h('IncSearch', s:mauve, s:cobalt_2)
call s:h('LineNr', s:gray_7, s:black)
call s:h('MoreMsg', s:pink, s:gray_2)
call s:h('NonText', s:gray_5, s:none)
call s:h('Pmenu', s:white, s:gray_2)
call s:h('PmenuSbar', s:none, s:gray_2)
call s:h('PmenuSel', s:white, s:red_1)
call s:h('PmenuThumb', s:none, s:cobalt_1)
call s:h('Question', s:pink, s:gray_2)
call s:h('Search', s:white, s:red_1)
call s:h('SignColumn', s:gray_1, s:black)
call s:h('TabLine', s:magenta, s:gray_2)
call s:h('TabLineFill', s:white, s:black)
call s:h('TabLineSel', s:white, s:magenta, [s:attrs.bold])
call s:h('Title', s:white, s:none)
call s:h('VertSplit', s:magenta, s:black)
call s:h('Visual', s:gray_1, s:mauve)
" call s:h('VisualNOS', s:gray_1, s:mauve)
call s:h('WarningMsg', s:yellow, s:black)
" Syntax
" Required as some plugins will overwrite
call s:h('MatchParen', s:mauve, s:cobalt_2)
" call s:h('Conceal', s:cyan, s:none)
call s:h('SpecialKey', s:gray_5, s:none)
call s:h('Comment', s:blue, s:none, [s:attrs.italic])
call s:h('Underlined', s:blue, s:none, [s:attrs.underline])
call s:h('Todo', s:orange, s:black)
call s:h('Error', s:red_2, s:none)
call s:h('SpellBad', s:none, s:none, [s:attrs.undercurl], s:red_2)
" call s:h('SpellLocal', s:none, s:none, [s:attrs.undercurl], s:red_2)
call s:h('SpellCap', s:none, s:none, [s:attrs.undercurl], s:yellow)
" call s:h('SpellRare', s:none, s:none)
call s:h('Constant', s:red_2, s:none)
call s:h('String', s:green, s:none)
call s:h('Character', s:red_2, s:none)
hi! link Character Constant
hi! link Number Constant
hi! link Boolean Constant
hi! link Float Constant
call s:h('Identifier', s:teal, s:none)
call s:h('Function', s:teal, s:none, [s:attrs.bold])
call s:h('Statement', s:orange, s:none, [s:attrs.bold])
hi! link Conditional Statement
hi! link Repeat Statement
hi! link Label Statement
hi! link Operator Statement
hi! link Exception Statement
call s:h('Keyword', s:sun, s:none, [s:attrs.bold])
call s:h('PreProc', s:magenta, s:none)
hi! link Include PreProc
hi! link PreCondit PreProc
call s:h('Define', s:gray_6, s:none)
call s:h('Macro', s:sun, s:none)
call s:h('StorageClass', s:teal, s:none, [s:attrs.bold])
hi! link Typedef StorageClass
call s:h('Structure', s:orange, s:none, [s:attrs.bold])
call s:h('Type', s:teal, s:none, [s:attrs.bold])
call s:h('Delimiter', s:gray_6, s:none)
call s:h('Special', s:magenta, s:none, [s:attrs.bold])
call s:h('SpecialComment', s:blue, s:none, [s:attrs.bold])
call s:h('Tag', s:orange, s:none)
" netrw
call s:h('netrwTreeBar', s:blue, s:none)
call s:h('netrwDir', s:magenta, s:none)
call s:h('netrwClassify', s:orange, s:none)
call s:h('netrwSuffixes', s:sun, s:none)
" vim-ale
call s:h('ALEErrorSign', s:red_2, s:none)
call s:h('ALEWarningSign', s:yellow, s:none)
" coc.nvim
hi! link CocErrorSign ALEErrorSign
hi! link CocWarningSign ALEWarningSign
hi! link CocInfoSign ALEWarningSign
call s:h('CocErrorFloat', s:red_2, s:none, [s:attrs.bold])
call s:h('CocWarningFloat', s:orange, s:none, [s:attrs.bold])
hi default CocUnderline cterm=undercurl gui=undercurl
call s:h('CocMenuSel', s:none, s:red_1)
" vim-indent-guides
call s:h('IndentGuidesOdd', s:gray_4, s:none)
call s:h('IndentGuidesEven', s:gray_4, s:none)
" you-are-here.vim
call s:h('YouAreHereActiveBorder', s:magenta, s:gray_2)
" vim-startify
call s:h('StartifyHeader', s:magenta, s:none)
" vim-graphql
call s:h('graphqlType', s:pink, s:none)
call s:h('graphqlVariable', s:red_1, s:none)
call s:h('graphqlTemplateString', s:blue, s:none)
" vim-css
call s:h('cssClassName', s:pink, s:none, [s:attrs.bold])
call s:h('cssPseudoClassId', s:yellow, s:none, [s:attrs.bold])
call s:h('cssAtRule', s:sun, s:none)
call s:h('cssProp', s:teal, s:none)
call s:h('cssDefinition', s:teal, s:none)
call s:h('cssFunctionName', s:pink, s:none, [s:attrs.bold])
call s:h('cssCustomProp', s:magenta, s:none)
call s:h('cssBraces', s:white, s:none, [s:attrs.bold])
" vim-typescript
call s:h('typescriptBraces', s:pink, s:none, [s:attrs.bold])
call s:h('typescriptVariableDeclaration', s:pink, s:none)
call s:h('typescriptDotNotation', s:blue, s:none)
call s:h('typescriptBOM', s:pink, s:none, [s:attrs.bold])
call s:h('typescriptTemplateSB', s:magenta, s:none, [s:attrs.bold])
" vim-markdown
call s:h('mkdHeading', s:orange, s:none, [s:attrs.bold])
" hi! link helpHyperTextJump PopPunkLink
" hi! link helpCommand PopPunkPurple
" hi! link helpExample PopPunkGreen
" hi! link helpBacktick Special

61
flake.lock generated Normal file
View File

@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1762977756,
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

24
flake.nix Normal file
View File

@@ -0,0 +1,24 @@
{
description = "Neovim Setup Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
name = "nvim-setup";
buildInputs = with pkgs; [
gcc
lua51Packages.lua
lua51Packages.luarocks
];
};
});
}

View File

@@ -1,14 +1,20 @@
vim.opt.termguicolors = true
vim.cmd("colorscheme eldar")
vim.cmd("colorscheme pop-punk")
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.messagesopt = "wait:30,history:500"
vim.cmd("set relativenumber")
vim.cmd("set number")
vim.cmd("set cursorline")
vim.cmd("set mouse=a")
vim.cmd("set clipboard+=unnamedplus")
vim.g.python3_host_prog = 'python3.13'
vim.api.nvim_set_hl(0, "Normal", { bg = "#040404" })
vim.api.nvim_set_hl(0, "CursorLine", { bg = "#101010", fg = nil })
vim.diagnostic.config({
underline = true, -- enable underline
@@ -40,24 +46,25 @@ vim.api.nvim_create_autocmd("BufWritePre", {
})
-- 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
-- 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.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
timeout = 150, -- duration in milliseconds
})
end,
})
require("config.keymaps")
require("config.lazy")
require("config.hpack")

View File

@@ -1,26 +1,46 @@
{
"Korean-IME.nvim": { "branch": "master", "commit": "c733599b9219e25bb05d8aa0467327edc769be94" },
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"blink.download": { "branch": "main", "commit": "86361b98f3c8317904a08e3bd12cf3cdcbe3e925" },
"blink.nvim": { "branch": "main", "commit": "16a597e89cf2ee6215a392c5bc5a945477015534" },
"blink.pairs": { "branch": "main", "commit": "d8bf802cca951f0a3b72ddeed21bc5a1d5353f65" },
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"Korean-IME.nvim": { "branch": "master", "commit": "1367a854123463f1b0339255aef4012505cd45c2" },
"aerial.nvim": { "branch": "master", "commit": "8bb8697d180681746da41bef5c8691d04443af36" },
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
"blink.nvim": { "branch": "main", "commit": "d1e7c7c45d45c6b6a25427bf62db4db73b03ff3d" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmdhistory.nvim": { "branch": "master", "commit": "26d3fbbe53c00422be64afb24cc9228062740074" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"fzf-lua": { "branch": "main", "commit": "d6e899e8dfdaf47bf849c0875ca3ca0e5a0e0d12" },
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"fzf-lua": { "branch": "main", "commit": "9a0704e8af8f8442110ff22a83b5608366b235df" },
"gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
"glance.nvim": { "branch": "master", "commit": "bf86d8b79dce808e65fdb6e9269d0b4ed6d2eefc" },
"hardtime.nvim": { "branch": "main", "commit": "b4e431934af1fe224a3a801f632c008278cb7628" },
"haskell-mod.nvim": { "branch": "main", "commit": "f403618030ef9687e63eecfca7798e53b969f763" },
"image.nvim": { "branch": "master", "commit": "446a8a5cc7a3eae3185ee0c697732c32a5547a0b" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
"lazygit.nvim": { "branch": "main", "commit": "2305deed25bc61b866d5d39189e9105a45cf1cfb" },
"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" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7d527c76c43f46294de9c19d39c5a86317809b4b" },
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
"molten-nvim": { "branch": "main", "commit": "4fd7be6a12b5efda5179db642f13bad60893acca" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" },
"neoconf.nvim": { "branch": "main", "commit": "3fdd84804c397059d4698fd8933f443058c4858e" },
"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" },
"neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
"nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" },
"nvim-lspconfig": { "branch": "master", "commit": "07f4e93de92e8d4ea7ab99602e3a8c9ac0fb778a" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-tree.lua": { "branch": "master", "commit": "3fb91e18a727ecc0385637895ec397dea90be42a" },
"nvim-tree.lua-float-preview": { "branch": "master", "commit": "78b3ff2e0423438a341c9628f2f10f51b80a69c6" },
"nvim-treesitter": { "branch": "main", "commit": "17885756e63df73ed90db62e4630f744ceda6514" },
"nvim-unception": { "branch": "main", "commit": "df0e505f0f1371c49c2bcf993985962edb5a279d" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
"toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

13
lua/config/hpack.lua Normal file
View File

@@ -0,0 +1,13 @@
local function hpack()
vim.fn.system("hpack")
end
vim.api.nvim_create_autocmd("BufWritePost", {
pattern = "package.yaml",
callback = hpack,
})
vim.api.nvim_create_autocmd("BufEnter", {
pattern = "*.hs",
callback = hpack,
})

View File

@@ -1,6 +1,8 @@
-- LSP keymaps
local opts = { noremap = true, silent = true }
vim.g.mapleader = " "
-- Go to definition
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
@@ -23,4 +25,15 @@ vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
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)
vim.keymap.set("n", "ca", vim.lsp.buf.code_action, opts)
-- Show floating error
vim.keymap.set("n", "E", vim.diagnostic.open_float, opts)
-- Window navigation with Ctrl + hjkl
vim.keymap.set('n', '<C-h>', '<C-w>h', opts)
vim.keymap.set('n', '<C-j>', '<C-w>j', opts)
vim.keymap.set('n', '<C-k>', '<C-w>k', opts)
vim.keymap.set('n', '<C-l>', '<C-w>l', opts)
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>', opts)

22
lua/plugins/aerial.lua Normal file
View File

@@ -0,0 +1,22 @@
return {
'stevearc/aerial.nvim',
opts = {
backends = { "treesitter", "lsp", "markdown", "asciidoc", "man" },
layout = {
min_width = 0.9
},
float = {
relative = "win",
min_height = 0.9
},
},
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons"
},
keys = {
{ "\\", "<Cmd>AerialToggle float<CR>", desc = "Aerial toggle floating" }
},
}

View File

@@ -1,60 +1,83 @@
return {
'saghen/blink.cmp',
-- optional: provides snippets for the snippet source
dependencies = { 'rafamadriz/friendly-snippets' },
'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',
-- 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' },
---@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 }
appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono'
},
},
-- 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) 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 }
},
accept = {
auto_brackets = {
enabled = true,
semantic_token_resolution = {
enabled = true,
timeout_ms = 400,
},
},
},
},
-- (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" }
-- 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' },
providers = {
path = {
module = 'blink.cmp.sources.path',
score_offset = 3,
fallbacks = { 'buffer' },
opts = {
trailing_slash = true,
label_trailing_slash = true,
get_cwd = function(context) return vim.fn.expand(('#%d:p:h'):format(context.bufnr)) end,
show_hidden_files_by_default = true,
ignore_root_slash = true,
}
}
},
},
-- (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" }
}

View File

@@ -1,46 +0,0 @@
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,
}
}

View File

@@ -1,36 +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',
},
'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 },
}
-- 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 = false },
cmp = { enabled = true },
pairs = { enabled = true },
}
}

View File

@@ -0,0 +1,17 @@
return {
"kimpure/cmdhistory.nvim",
opts = {
mute = {
"q",
"qa",
"wq",
"wqa",
"wincmd h",
"wincmd j",
"wincmd k",
"wincmd l",
"w",
"wa",
},
}
}

13
lua/plugins/comment.lua Normal file
View File

@@ -0,0 +1,13 @@
return {
'numToStr/Comment.nvim',
opts = {
toggler = {
line = '<leader>/',
-- block = '<leader>/'
},
opleader = {
line = '<leader>/',
-- block = '<leader>/'
}
},
}

10
lua/plugins/diffview.lua Normal file
View File

@@ -0,0 +1,10 @@
return {
"sindrets/diffview.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
keys = {
{ "<leader>dvo", "<Cmd>DiffviewOpen<CR>", desc = "Open Diff view" },
{ "<leader>dvc", "<Cmd>DiffviewClose<CR>", desc = "Close Diff view" },
{ "<leader>dvf", "<Cmd>DiffviewFocusFiles<CR>", desc = "Focus file in Diff view" },
},
}

View File

@@ -4,5 +4,8 @@ return {
dependencies = { "nvim-tree/nvim-web-devicons" },
-- or if using mini.icons/mini.nvim
-- dependencies = { "echasnovski/mini.icons" },
opts = {}
opts = {},
keys = {
{ "<leader>fg", "<Cmd>FzfLua live_grep<CR>", desc = "FZF Live Grep" },
},
}

10
lua/plugins/glance.lua Normal file
View File

@@ -0,0 +1,10 @@
return {
'dnlhc/glance.nvim',
cmd = 'Glance',
keys = {
{ "gd", "<CMD>Glance definitions<CR>", desc = "Glance definitions" },
{ "gr", "<CMD>Glance references<CR>", desc = "Glance references" },
{ "gy", "<CMD>Glance type_definitions<CR>", desc = "Glance type definitions" },
{ "gm", "<CMD>Glance implementations<CR>", desc = "Glance implementations" },
},
}

6
lua/plugins/hardtime.lua Normal file
View File

@@ -0,0 +1,6 @@
return {
"m4xshen/hardtime.nvim",
lazy = false,
dependencies = { "MunifTanjim/nui.nvim" },
opts = {},
}

View File

@@ -0,0 +1,12 @@
local prod = {
"mincomk/haskell-mod.nvim",
config = true
}
local dev = {
dir = "~/projects/haskell-mod.nvim/",
name = "haskell-mod.nvim",
config = true
}
return prod

View File

@@ -3,7 +3,7 @@ return {
keys = {
-- lazy load on 한영전환
{
"<f12>",
"<f9>",
function()
require("korean_ime").change_mode()
end,
@@ -14,7 +14,7 @@ return {
config = function()
require("korean_ime").setup()
vim.keymap.set("i", "<f9>", function()
vim.keymap.set("i", "<f12>", function()
require("korean_ime").convert_hanja()
end, { noremap = true, silent = true, desc = "한자" })
end,

11
lua/plugins/lazydev.lua Normal file
View File

@@ -0,0 +1,11 @@
return {
"folke/lazydev.nvim",
ft = "lua", -- only load on lua files
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
}

20
lua/plugins/lazygit.lua Normal file
View File

@@ -0,0 +1,20 @@
return {
"kdheepak/lazygit.nvim",
lazy = true,
cmd = {
"LazyGit",
"LazyGitConfig",
"LazyGitCurrentFile",
"LazyGitFilter",
"LazyGitFilterCurrentFile",
},
-- optional for floating window border decoration
dependencies = {
"nvim-lua/plenary.nvim",
},
-- setting the keybinding for LazyGit with 'keys' is recommended in
-- order to load the plugin when the command is run for the first time
keys = {
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" }
}
}

View File

@@ -1,32 +1,31 @@
return {
'neovim/nvim-lspconfig',
dependencies = { 'saghen/blink.cmp' },
'neovim/nvim-lspconfig',
dependencies = { 'saghen/blink.cmp' },
lazy = false,
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
-- example using `opts` for defining servers
opts = {
inlay_hints = { enabled = true },
servers = {
lua_ls = {}
}
},
config = function(_, opts)
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)
vim.lsp.config(server, config)
end
end,
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- example calling setup directly for each LSP
config = function()
local capabilities = require('blink.cmp').get_lsp_capabilities()
local lspconfig = require('lspconfig')
vim.lsp.config("clangd", {
capabilities = capabilities,
cmd = { vim.fn.stdpath("config") .. "/shell/clangd-direnv.sh" }
})
lspconfig['lua_ls'].setup({ capabilities = capabilities })
end
vim.lsp.enable("hls")
end,
}

View File

@@ -2,6 +2,7 @@ return {
"mason-org/mason-lspconfig.nvim",
opts = {
ensure_installed = { "lua_ls", "rust_analyzer", "ts_ls" },
automatic_enable = { exclude = { "clangd" } }
},
lazy = false,
dependencies = {

20
lua/plugins/molten.lua Normal file
View File

@@ -0,0 +1,20 @@
return {
"benlubas/molten-nvim",
build = ":UpdateRemotePlugins",
lazy = false,
dependencies = {
"3rd/image.nvim",
},
keys = {
{ "<leader>mi", "<Cmd>MoltenInit<CR>", desc = "Molten Init" },
{ "<leader>me", "<Cmd>MoltenEvaluateOperator<CR>", desc = "Molten Evaluate Operator" },
{ "<leader>ml", "<Cmd>MoltenEvaluateLine<CR>", desc = "Molten Evaluate Line" },
{ "<leader>mr", "<Cmd>MoltenReevaluateCell<CR>", desc = "Molten Re-evaluate Cell" },
},
config = function()
vim.g.molten_auto_open_output = true
vim.g.molten_image_provider = "image.nvim"
vim.g.molten_output_win_max_height = 20
vim.g.molten_wrap_output = true
end,
}

9
lua/plugins/neotest.lua Normal file
View File

@@ -0,0 +1,9 @@
return {
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter"
}
}

14
lua/plugins/neotree.lua Normal file
View File

@@ -0,0 +1,14 @@
return
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons", -- optional, but recommended
},
lazy = false, -- neo-tree will lazily load itself
keys = {
--[[ { '<leader>e', '<cmd>Neotree<cr>', desc = 'Neotree Toggle' } ]]
}
}

View File

@@ -0,0 +1,5 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
config = true
}

67
lua/plugins/nvim-tree.lua Normal file
View File

@@ -0,0 +1,67 @@
return {
"nvim-tree/nvim-tree.lua",
dependencies = {
{
"JMarkin/nvim-tree.lua-float-preview",
lazy = true,
-- default
opts = {
-- Whether the float preview is enabled by default. When set to false, it has to be "toggled" on.
toggled_on = true,
-- wrap nvimtree commands
wrap_nvimtree_commands = true,
-- lines for scroll
scroll_lines = 20,
-- window config
window = {
style = "minimal",
relative = "win",
border = "rounded",
wrap = false,
},
mapping = {
-- scroll down float buffer
down = { "<C-d>" },
-- scroll up float buffer
up = { "<C-e>", "<C-u>" },
-- enable/disable float windows
toggle = { "<C-x>" },
},
-- hooks if return false preview doesn't shown
hooks = {
pre_open = function(path)
-- if file > 5 MB or not text -> not preview
local size = require("float-preview.utils").get_size(path)
if type(size) ~= "number" then
return false
end
local is_text = require("float-preview.utils").is_text(path)
return size < 5 and is_text
end,
post_open = function(bufnr)
return true
end,
},
},
},
},
opts = {
view = {
relativenumber = true,
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = false,
},
actions = {
open_file = {
quit_on_open = true
}
}
},
keys = {
{ ";", function() require("nvim-tree.api").tree.toggle({ focus = true }) end, desc = "Toggle nvim tree" }
},
}

15
lua/plugins/peek.lua Normal file
View File

@@ -0,0 +1,15 @@
return {
"toppair/peek.nvim",
event = { "VeryLazy" },
build = "deno task --quiet build:fast",
config = function()
require("peek").setup({
app = "firefox",
})
vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {})
vim.api.nvim_create_user_command("PeekClose", require("peek").close, {})
end,
keys = {
{ "<leader>md", "<cmd>PeekOpen<CR>", desc = "Open peek markdown" },
},
}

View File

@@ -5,7 +5,8 @@ return
config = true,
lazy = false,
keys = {
{ "<leader>th", "<Cmd>ToggleTerm<CR>", desc = "ToggleTerm Horizontal" },
{ "<leader>tv", "<Cmd>ToggleTerm<CR>", desc = "ToggleTerm Vertical" }
--[[ { "<leader>th", "<Cmd>ToggleTerm direction=horizontal size=10<CR>", desc = "ToggleTerm Horizontal" }, ]]
--[[ { "<leader>tv", "<Cmd>ToggleTerm direction=vertical size=80<CR>", desc = "ToggleTerm Vertical" } ]]
{ "'", "<Cmd>ToggleTerm direction=float<CR>", desc = "ToggleTerm Float" }
}
}

View File

@@ -0,0 +1,7 @@
return {
"samjwill/nvim-unception",
init = function()
-- Optional settings go here!
vim.g.unception_open_buffer_in_new_tab = true
end
}

45
lua/plugins/yazi.lua Normal file
View File

@@ -0,0 +1,45 @@
return {}
-- ---@type LazySpec
-- return {
-- "mikavilpas/yazi.nvim",
-- version = "*", -- use the latest stable version
-- event = "VeryLazy",
-- dependencies = {
-- { "nvim-lua/plenary.nvim", lazy = true },
-- },
-- keys = {
-- -- 👇 in this section, choose your own keymappings!
-- {
-- "<leader>-",
-- mode = { "n", "v" },
-- "<cmd>Yazi<cr>",
-- desc = "Open yazi at the current file",
-- },
-- {
-- -- Open in the current working directory
-- "<leader>cw",
-- "<cmd>Yazi cwd<cr>",
-- desc = "Open the file manager in nvim's working directory",
-- },
-- {
-- ";",
-- "<cmd>Yazi toggle<cr>",
-- desc = "Resume the last yazi session",
-- },
-- },
-- ---@type YaziConfig | {}
-- opts = {
-- -- if you want to open yazi instead of netrw, see below for more info
-- open_for_directories = false,
-- keymaps = {
-- show_help = "<f1>",
-- },
-- },
-- -- 👇 if you use `open_for_directories=true`, this is recommended
-- init = function()
-- -- mark netrw as loaded so it's not loaded at all.
-- --
-- -- More details: https://github.com/mikavilpas/yazi.nvim/issues/802
-- vim.g.loaded_netrwPlugin = 1
-- end,
-- }

8
shell/clangd-direnv.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if command -v direnv >/dev/null 2>&1; then
direnv exec . clangd "$@"
else
clangd "$@"
fi