Compare commits
34 Commits
308ece13f1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| cf16908e4f | |||
| 185887d20d | |||
| 9399fde789 | |||
| b261344f4a | |||
| e4afa6b707 | |||
| 14aaf99bca | |||
| 341bf54dbf | |||
| 893583838f | |||
| 7074c72cb0 | |||
| 459c767e92 | |||
| 34439c0c91 | |||
| 3aec645b22 | |||
| c7955f36e5 | |||
| 0b08441563 | |||
| 08274e8ad8 | |||
| df2acf298b | |||
| 3e5e0c52cd | |||
| f087fd2bdb | |||
| 6af119073f | |||
| 9bd0c15301 | |||
| 582f657423 | |||
| f3dcabed0e | |||
| fc66dfa97b | |||
| 3a7e793589 | |||
| 0dfd6219da | |||
| cf1208e613 | |||
| 41240fd961 | |||
| f9025afecd | |||
| 1c6921f5a4 | |||
| f085be7085 | |||
| d52234a409 | |||
| bb61d3e5af | |||
| a5265bd3ba | |||
| 51da8e6e1d |
9
after/lsp/hls.lua
Normal file
9
after/lsp/hls.lua
Normal 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
50
autoload/pop_punk.vim
Normal 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
263
colors/pop-punk.vim
Normal 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
61
flake.lock
generated
Normal 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
24
flake.nix
Normal 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
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
27
init.lua
27
init.lua
@@ -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")
|
||||
|
||||
@@ -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
13
lua/config/hpack.lua
Normal 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,
|
||||
})
|
||||
@@ -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
22
lua/plugins/aerial.lua
Normal 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" }
|
||||
},
|
||||
}
|
||||
@@ -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" }
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
@@ -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 },
|
||||
}
|
||||
}
|
||||
|
||||
17
lua/plugins/cmdhistory.lua
Normal file
17
lua/plugins/cmdhistory.lua
Normal 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
13
lua/plugins/comment.lua
Normal 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
10
lua/plugins/diffview.lua
Normal 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" },
|
||||
},
|
||||
}
|
||||
@@ -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
10
lua/plugins/glance.lua
Normal 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
6
lua/plugins/hardtime.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
"m4xshen/hardtime.nvim",
|
||||
lazy = false,
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
opts = {},
|
||||
}
|
||||
12
lua/plugins/haskell-mod.lua
Normal file
12
lua/plugins/haskell-mod.lua
Normal 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
|
||||
@@ -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
11
lua/plugins/lazydev.lua
Normal 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
20
lua/plugins/lazygit.lua
Normal 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" }
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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
20
lua/plugins/molten.lua
Normal 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
9
lua/plugins/neotest.lua
Normal 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
14
lua/plugins/neotree.lua
Normal 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' } ]]
|
||||
}
|
||||
}
|
||||
5
lua/plugins/nvim-autopairs.lua
Normal file
5
lua/plugins/nvim-autopairs.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = "InsertEnter",
|
||||
config = true
|
||||
}
|
||||
67
lua/plugins/nvim-tree.lua
Normal file
67
lua/plugins/nvim-tree.lua
Normal 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
15
lua/plugins/peek.lua
Normal 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" },
|
||||
},
|
||||
}
|
||||
@@ -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" }
|
||||
}
|
||||
}
|
||||
|
||||
7
lua/plugins/unception.lua
Normal file
7
lua/plugins/unception.lua
Normal 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
45
lua/plugins/yazi.lua
Normal 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
8
shell/clangd-direnv.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v direnv >/dev/null 2>&1; then
|
||||
direnv exec . clangd "$@"
|
||||
else
|
||||
clangd "$@"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user