Initial import
This commit is contained in:
commit
a40e6a9735
57 changed files with 2634 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
1
config/nvim/after/ftplugin/NvimTree.vim
Normal file
1
config/nvim/after/ftplugin/NvimTree.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
setlocal signcolumn=no
|
6
config/nvim/after/ftplugin/elixir.vim
Normal file
6
config/nvim/after/ftplugin/elixir.vim
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
setlocal comments=:#
|
||||||
|
setlocal commentstring=#\ %s
|
||||||
|
|
||||||
|
setlocal spell
|
||||||
|
setlocal textwidth=120
|
||||||
|
setlocal colorcolumn=+1
|
1
config/nvim/after/ftplugin/erlang.vim
Normal file
1
config/nvim/after/ftplugin/erlang.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
iabbrev <buffer> <= =<
|
2
config/nvim/after/ftplugin/gitcommit.vim
Normal file
2
config/nvim/after/ftplugin/gitcommit.vim
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
setlocal spell
|
||||||
|
setlocal colorcolumn=+1
|
6
config/nvim/after/ftplugin/list.vim
Normal file
6
config/nvim/after/ftplugin/list.vim
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
setlocal nonumber norelativenumber
|
||||||
|
|
||||||
|
nnoremap <buffer> <silent> <esc> :q!<CR>
|
||||||
|
nnoremap <buffer> <silent> q :q!<CR>
|
||||||
|
|
||||||
|
let b:toggle_line_style = v:false
|
3
config/nvim/after/ftplugin/make.vim
Normal file
3
config/nvim/after/ftplugin/make.vim
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
setlocal noexpandtab
|
||||||
|
setlocal shiftwidth=2
|
||||||
|
setlocal softtabstop=0
|
1
config/nvim/after/ftplugin/markdown.vim
Normal file
1
config/nvim/after/ftplugin/markdown.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
setlocal spell
|
1
config/nvim/after/ftplugin/pandoc.vim
Normal file
1
config/nvim/after/ftplugin/pandoc.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
setlocal spell
|
6
config/nvim/after/ftplugin/qf.vim
Normal file
6
config/nvim/after/ftplugin/qf.vim
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
setlocal nonumber norelativenumber
|
||||||
|
|
||||||
|
nnoremap <buffer> <silent> <esc> :q!<CR>
|
||||||
|
nnoremap <buffer> <silent> q :q!<CR>
|
||||||
|
|
||||||
|
let b:toggle_line_style = v:false
|
1
config/nvim/after/ftplugin/text.vim
Normal file
1
config/nvim/after/ftplugin/text.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
setlocal spell
|
36
config/nvim/after/queries/elixir/matchup.scm
Normal file
36
config/nvim/after/queries/elixir/matchup.scm
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
; Function definition
|
||||||
|
(call target: ((identifier) @open.def (#any-of? @open.def "def" "defp"))
|
||||||
|
(do_block
|
||||||
|
[(rescue_block "rescue" @mid.def.1)
|
||||||
|
(catch_block "catch" @mid.def.2)]?
|
||||||
|
"end" @close.def)) @scope.def
|
||||||
|
|
||||||
|
; case/cond clause
|
||||||
|
(call target: ((identifier) @open.case (#any-of? @open.case "case" "cond"))
|
||||||
|
(do_block
|
||||||
|
"end" @close.case)) @scope.case
|
||||||
|
|
||||||
|
; if/with clause
|
||||||
|
(call target: ((identifier) @open.if (#any-of? @open.if "if" "with"))
|
||||||
|
(do_block
|
||||||
|
(else_block "else" @mid.else.1)?
|
||||||
|
"end" @close.if)) @scope.if
|
||||||
|
|
||||||
|
; try clause
|
||||||
|
(call target: ((identifier) @open.try (#eq? @open.try "try"))
|
||||||
|
(do_block
|
||||||
|
[(rescue_block "rescue" @mid.try.1)
|
||||||
|
(catch_block "catch" @mid.try.2)
|
||||||
|
(after_block "after" @mid.try.3)]?
|
||||||
|
"end" @close.try)) @scope.try
|
||||||
|
|
||||||
|
; receive clause
|
||||||
|
(call target: ((identifier) @open.receive (#eq? @open.receive "receive"))
|
||||||
|
(do_block
|
||||||
|
(after_block "after" @mid.receive.1)?
|
||||||
|
"end" @close.receive)) @scope.receive
|
||||||
|
|
||||||
|
; for comprehension
|
||||||
|
(call target: ((identifier) @open.for (#eq? @open.for "for"))
|
||||||
|
(do_block
|
||||||
|
"end" @close.for)) @scope.for
|
78
config/nvim/efm.yml
Normal file
78
config/nvim/efm.yml
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
version: 2
|
||||||
|
root-markers:
|
||||||
|
- .git/
|
||||||
|
- flake.nix
|
||||||
|
lint-debounce: '200ms'
|
||||||
|
|
||||||
|
tools:
|
||||||
|
dockerfile-hadolint: &dockerfile-hadolint
|
||||||
|
lint-command: 'efm-hadolint'
|
||||||
|
lint-formats:
|
||||||
|
- '%f:%l:%trror: %m'
|
||||||
|
- '%f:%l:%tarning: %m'
|
||||||
|
- '%f:%l:%tnfo: %m'
|
||||||
|
- '%f:%l:%ttyle: %m'
|
||||||
|
|
||||||
|
elixir-credo: &elixir-credo
|
||||||
|
lint-command: >
|
||||||
|
mix credo suggest --all-priorities --format flycheck --read-from-stdin ${INPUT} |
|
||||||
|
sed "s/ R:/ H:/; s/ D:/ I:/; s/ C:/ W:/"
|
||||||
|
lint-stdin: true
|
||||||
|
lint-formats:
|
||||||
|
- '%f:%l:%c: %t: %m'
|
||||||
|
- '%f:%l: %t: %m'
|
||||||
|
root-markers:
|
||||||
|
- mix.lock
|
||||||
|
- mix.exs
|
||||||
|
|
||||||
|
eruby-erb: &eruby-erb
|
||||||
|
lint-command: 'erb -x -T - | ruby -c'
|
||||||
|
lint-stdin: true
|
||||||
|
lint-offset: 1
|
||||||
|
|
||||||
|
fish-indent: &fish-indent
|
||||||
|
format-command: 'fish_indent'
|
||||||
|
format-stdin: true
|
||||||
|
|
||||||
|
javascript-eslint: &javascript-eslint
|
||||||
|
lint-command: 'eslint_d -f visualstudio --stdin --stdin-filename ${INPUT}'
|
||||||
|
lint-ignore-exit-code: true
|
||||||
|
lint-stdin: true
|
||||||
|
lint-formats:
|
||||||
|
- "%f(%l,%c): %tarning %m"
|
||||||
|
- "%f(%l,%c): %rror %m"
|
||||||
|
format-command: 'eslint_d --fix-to-stdout --stdin --stdin-filename=${INPUT}'
|
||||||
|
format-stdin: true
|
||||||
|
root-markers:
|
||||||
|
- .eslintrc.js
|
||||||
|
|
||||||
|
sh-shfmt: &sh-shfmt
|
||||||
|
format-command: 'shfmt -i 2'
|
||||||
|
format-stdin: true
|
||||||
|
|
||||||
|
sh-shellcheck: &sh-shellcheck
|
||||||
|
lint-command: 'shellcheck -f gcc -x'
|
||||||
|
lint-formats:
|
||||||
|
- '%f:%l:%c: %trror: %m'
|
||||||
|
- '%f:%l:%c: %tarning: %m'
|
||||||
|
- '%f:%l:%c: %tote: %m'
|
||||||
|
|
||||||
|
languages:
|
||||||
|
dockerfile:
|
||||||
|
- <<: *dockerfile-hadolint
|
||||||
|
|
||||||
|
elixir:
|
||||||
|
- <<: *elixir-credo
|
||||||
|
|
||||||
|
eruby:
|
||||||
|
- <<: *eruby-erb
|
||||||
|
|
||||||
|
fish:
|
||||||
|
- <<: *fish-indent
|
||||||
|
|
||||||
|
javascript:
|
||||||
|
- <<: *javascript-eslint
|
||||||
|
|
||||||
|
sh:
|
||||||
|
- <<: *sh-shellcheck
|
||||||
|
- <<: *sh-shfmt
|
5
config/nvim/lua/nifoc/config/autopairs.lua
Normal file
5
config/nvim/lua/nifoc/config/autopairs.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
local npairs = require('nvim-autopairs')
|
||||||
|
|
||||||
|
npairs.setup({
|
||||||
|
check_ts = true,
|
||||||
|
})
|
5
config/nvim/lua/nifoc/config/bufferline.lua
Normal file
5
config/nvim/lua/nifoc/config/bufferline.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
require('bufferline').setup{
|
||||||
|
options = {
|
||||||
|
show_close_icon = false,
|
||||||
|
}
|
||||||
|
}
|
7
config/nvim/lua/nifoc/config/colorizer.lua
Normal file
7
config/nvim/lua/nifoc/config/colorizer.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require('colorizer').setup {
|
||||||
|
'css';
|
||||||
|
'html';
|
||||||
|
'lua';
|
||||||
|
'svelte';
|
||||||
|
'vim'
|
||||||
|
}
|
3
config/nvim/lua/nifoc/config/comments.lua
Normal file
3
config/nvim/lua/nifoc/config/comments.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
require('Comment').setup {
|
||||||
|
padding = true,
|
||||||
|
}
|
132
config/nvim/lua/nifoc/config/completion.lua
Normal file
132
config/nvim/lua/nifoc/config/completion.lua
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
local cmp = require('cmp')
|
||||||
|
local luasnip = require('luasnip')
|
||||||
|
local lspkind = require('lspkind')
|
||||||
|
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||||
|
|
||||||
|
-- Helper functions
|
||||||
|
local has_words_before = function()
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match('%s') == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
cmp.setup {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
{ name = 'nvim_lua' },
|
||||||
|
}, {
|
||||||
|
{ name = 'treesitter' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
{ name = 'path' },
|
||||||
|
}),
|
||||||
|
|
||||||
|
mapping = {
|
||||||
|
['<C-e>'] = cmp.mapping({
|
||||||
|
i = cmp.mapping.abort(),
|
||||||
|
c = cmp.mapping.close(),
|
||||||
|
}),
|
||||||
|
|
||||||
|
['<Tab>'] = cmp.mapping({
|
||||||
|
c = function()
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item({ behavior = cmp.SelectBehavior.Insert })
|
||||||
|
else
|
||||||
|
cmp.complete()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
i = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
s = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}),
|
||||||
|
|
||||||
|
['<S-Tab>'] = cmp.mapping({
|
||||||
|
c = function()
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Insert })
|
||||||
|
else
|
||||||
|
cmp.complete()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
i = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
s = function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}),
|
||||||
|
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||||
|
},
|
||||||
|
|
||||||
|
completion = {
|
||||||
|
keyword_length = 2,
|
||||||
|
completeopt = 'menu,menuone,noinsert',
|
||||||
|
},
|
||||||
|
|
||||||
|
documentation = {
|
||||||
|
border = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' },
|
||||||
|
},
|
||||||
|
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
formatting = {
|
||||||
|
format = lspkind.cmp_format(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp.setup.cmdline('/', {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp_document_symbol' }
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
cmp.setup.cmdline(':', {
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'path' }
|
||||||
|
}, {
|
||||||
|
{ name = 'cmdline' }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
5
config/nvim/lua/nifoc/config/cursorline.lua
Normal file
5
config/nvim/lua/nifoc/config/cursorline.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
vim.cmd('augroup nifoc_cusorline')
|
||||||
|
vim.cmd('autocmd!')
|
||||||
|
vim.cmd('autocmd FileType TelescopePrompt setlocal nocursorline')
|
||||||
|
vim.cmd('autocmd FileType NvimTree let b:auto_cursorline_disabled = 1')
|
||||||
|
vim.cmd('augroup end')
|
3
config/nvim/lua/nifoc/config/fterm.lua
Normal file
3
config/nvim/lua/nifoc/config/fterm.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
require('FTerm').setup {
|
||||||
|
border = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' }
|
||||||
|
}
|
24
config/nvim/lua/nifoc/config/gitsigns.lua
Normal file
24
config/nvim/lua/nifoc/config/gitsigns.lua
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
local ns = require('nifoc.utils.statusline')
|
||||||
|
|
||||||
|
--local theme_config = require('tokyonight.config')
|
||||||
|
--local theme_colors = require('tokyonight.colors').setup(theme_config)
|
||||||
|
|
||||||
|
--vim.cmd('highlight GitSignsStatuslineAdd guifg=' .. theme_colors.git.add .. ' guibg=#3b4261')
|
||||||
|
--vim.cmd('highlight GitSignsStatuslineChange guifg=' .. theme_colors.git.change .. ' guibg=#3b4261')
|
||||||
|
--vim.cmd('highlight GitSignsStatuslineDelete guifg=' .. theme_colors.red .. ' guibg=#3b4261')
|
||||||
|
|
||||||
|
require('gitsigns').setup {
|
||||||
|
signs = {
|
||||||
|
add = {hl = 'GitSignsAdd', text = '│', numhl='GitSignsAddNr', linehl='GitSignsAddLn'},
|
||||||
|
change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||||
|
delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||||
|
topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
||||||
|
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
||||||
|
},
|
||||||
|
numhl = false,
|
||||||
|
linehl = false,
|
||||||
|
status_formatter = ns.gitsigns_formatter,
|
||||||
|
diff_opts = {
|
||||||
|
internal = true,
|
||||||
|
},
|
||||||
|
}
|
6
config/nvim/lua/nifoc/config/illuminate.lua
Normal file
6
config/nvim/lua/nifoc/config/illuminate.lua
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
vim.g.Illuminate_ftblacklist = {
|
||||||
|
'minimap',
|
||||||
|
'netrw',
|
||||||
|
'NvimTree',
|
||||||
|
'packer',
|
||||||
|
}
|
25
config/nvim/lua/nifoc/config/indent_line.lua
Normal file
25
config/nvim/lua/nifoc/config/indent_line.lua
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
require('indent_blankline').setup {
|
||||||
|
char = '¦',
|
||||||
|
show_first_indent_level = false,
|
||||||
|
use_treesitter = true,
|
||||||
|
show_current_context = true,
|
||||||
|
|
||||||
|
context_patterns = {
|
||||||
|
'class',
|
||||||
|
'function',
|
||||||
|
'method',
|
||||||
|
'do_block',
|
||||||
|
'stab_clause',
|
||||||
|
},
|
||||||
|
|
||||||
|
buftype_exclude = {
|
||||||
|
'help',
|
||||||
|
'nofile',
|
||||||
|
'terminal',
|
||||||
|
},
|
||||||
|
|
||||||
|
filetype_exclude = {
|
||||||
|
'minimap',
|
||||||
|
'packer',
|
||||||
|
},
|
||||||
|
}
|
184
config/nvim/lua/nifoc/config/lsp.lua
Normal file
184
config/nvim/lua/nifoc/config/lsp.lua
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
local lsp = require('lspconfig')
|
||||||
|
local lsp_status = require('lsp-status')
|
||||||
|
local illuminate = require('illuminate')
|
||||||
|
local keymap = require('nifoc.keymap')
|
||||||
|
|
||||||
|
local function enable_lsp_fixer(_)
|
||||||
|
vim.cmd [[
|
||||||
|
augroup nifoc_lsp_formatting
|
||||||
|
autocmd! * <buffer>
|
||||||
|
autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync(nil, 1000)
|
||||||
|
augroup end
|
||||||
|
]]
|
||||||
|
end
|
||||||
|
|
||||||
|
local function custom_attach(client, bufnr)
|
||||||
|
-- Plugin attachments
|
||||||
|
lsp_status.on_attach(client)
|
||||||
|
keymap.lsp_attach(client, bufnr)
|
||||||
|
|
||||||
|
if client.resolved_capabilities.document_highlight then
|
||||||
|
illuminate.on_attach(client)
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.b.nifoc_lsp_enabled == nil then
|
||||||
|
vim.api.nvim_buf_set_var(bufnr, 'nifoc_lsp_enabled', 1)
|
||||||
|
vim.cmd("setlocal omnifunc=v:lua.vim.lsp.omnifunc")
|
||||||
|
end
|
||||||
|
|
||||||
|
if client.resolved_capabilities.document_formatting and vim.b.nifoc_fixer_enabled == nil then
|
||||||
|
vim.api.nvim_buf_set_var(bufnr, 'nifoc_fixer_enabled', 1)
|
||||||
|
|
||||||
|
enable_lsp_fixer(client)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_command('doautocmd <nomodeline> User NifocLspAttached')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Setup
|
||||||
|
|
||||||
|
vim.cmd('sign define LspDiagnosticsSignError text= texthl=LspDiagnosticsSignError linehl= numhl=')
|
||||||
|
vim.cmd('sign define LspDiagnosticsSignWarning text= texthl=LspDiagnosticsSignWarning linehl= numhl=')
|
||||||
|
vim.cmd('sign define LspDiagnosticsSignInformation text= texthl=LspDiagnosticsSignInformation linehl= numhl=')
|
||||||
|
vim.cmd('sign define LspDiagnosticsSignHint text= texthl=LspDiagnosticsSignHint linehl= numhl=')
|
||||||
|
|
||||||
|
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||||
|
vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||||
|
underline = true,
|
||||||
|
virtual_text = {
|
||||||
|
prefix = '■ ',
|
||||||
|
spacing = 4,
|
||||||
|
},
|
||||||
|
signs = false,
|
||||||
|
update_in_insert = false,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
lsp_status.register_progress()
|
||||||
|
|
||||||
|
-- Default configuration
|
||||||
|
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
|
||||||
|
capabilities = vim.tbl_extend('keep', capabilities, lsp_status.capabilities)
|
||||||
|
|
||||||
|
local flags = {
|
||||||
|
allow_incremental_sync = true,
|
||||||
|
debounce_text_changes = 700,
|
||||||
|
}
|
||||||
|
|
||||||
|
local default_config = {
|
||||||
|
on_attach = custom_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
flags = flags,
|
||||||
|
}
|
||||||
|
|
||||||
|
local default_servers = {
|
||||||
|
'angularls',
|
||||||
|
'bashls',
|
||||||
|
'cssls',
|
||||||
|
'dockerls',
|
||||||
|
'html',
|
||||||
|
'rnix',
|
||||||
|
'sqls',
|
||||||
|
'taplo',
|
||||||
|
'yamlls'
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, name in ipairs(default_servers) do
|
||||||
|
lsp[name].setup(default_config)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Default configuration without formatting
|
||||||
|
|
||||||
|
local default_servers_no_formatting = {
|
||||||
|
'tsserver'
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, name in ipairs(default_servers_no_formatting) do
|
||||||
|
lsp[name].setup(vim.tbl_extend('force', default_config, {
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
client.resolved_capabilities.document_formatting = false
|
||||||
|
custom_attach(client, bufnr)
|
||||||
|
end,
|
||||||
|
}))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Custom configuration
|
||||||
|
|
||||||
|
lsp.elixirls.setup(vim.tbl_extend('force', default_config, {
|
||||||
|
cmd = { 'elixir-ls' },
|
||||||
|
}))
|
||||||
|
|
||||||
|
lsp.jsonls.setup(vim.tbl_extend('force', default_config, {
|
||||||
|
cmd = { 'vscode-json-language-server', '--stdio' },
|
||||||
|
}))
|
||||||
|
|
||||||
|
lsp.solargraph.setup(vim.tbl_extend('force', default_config, {
|
||||||
|
settings = {
|
||||||
|
solargraph = {
|
||||||
|
diagnostics = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
lsp.sumneko_lua.setup(vim.tbl_extend('force', default_config, {
|
||||||
|
cmd = {
|
||||||
|
vim.fn.globpath('~', 'Code/LSP/lua/bin/macOS/lua-language-server'),
|
||||||
|
'-E',
|
||||||
|
vim.fn.globpath('~', 'Code/LSP/lua/main.lua')
|
||||||
|
},
|
||||||
|
root_dir = lsp.util.root_pattern("init.vim", "init.lua", ".git") or vim.loop.os_homedir(),
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
path = vim.split(package.path, ';'),
|
||||||
|
},
|
||||||
|
diagnostics = {
|
||||||
|
globals = {'vim', 'use'},
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
library = {
|
||||||
|
[vim.fn.expand('$VIMRUNTIME/lua')] = true,
|
||||||
|
[vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
telemetry = {enable = false},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
|
||||||
|
-- Try to start efm as the last language server
|
||||||
|
|
||||||
|
lsp.efm.setup(vim.tbl_extend('force', default_config, {
|
||||||
|
cmd = {
|
||||||
|
'efm-langserver',
|
||||||
|
'-c',
|
||||||
|
vim.fn.globpath('~', '.config/nvim/efm.yml'),
|
||||||
|
},
|
||||||
|
filetypes = {
|
||||||
|
'dockerfile',
|
||||||
|
'elixir',
|
||||||
|
'fish',
|
||||||
|
'javascript',
|
||||||
|
'sh',
|
||||||
|
},
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
local disable_formatter_ft = { 'dockerfile', 'elixir' }
|
||||||
|
local slow_ft = {}
|
||||||
|
|
||||||
|
if vim.tbl_contains(disable_formatter_ft, vim.bo.filetype) then
|
||||||
|
client.resolved_capabilities.document_formatting = false
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.tbl_contains(slow_ft, vim.bo.filetype) then
|
||||||
|
client.resolved_capabilities.text_document_did_change = vim.lsp.protocol.TextDocumentSyncKind.None
|
||||||
|
end
|
||||||
|
|
||||||
|
client.resolved_capabilities.document_symbol = false
|
||||||
|
client.resolved_capabilities.workspace_symbol = false
|
||||||
|
|
||||||
|
custom_attach(client, bufnr)
|
||||||
|
end,
|
||||||
|
}))
|
7
config/nvim/lua/nifoc/config/lsp_trouble.lua
Normal file
7
config/nvim/lua/nifoc/config/lsp_trouble.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require('trouble').setup {
|
||||||
|
action_keys = {
|
||||||
|
previous = "<Up>",
|
||||||
|
next = "<Down>",
|
||||||
|
},
|
||||||
|
use_lsp_diagnostic_signs = true
|
||||||
|
}
|
37
config/nvim/lua/nifoc/config/lualine.lua
Normal file
37
config/nvim/lua/nifoc/config/lualine.lua
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
local ns = require('nifoc.utils.statusline')
|
||||||
|
|
||||||
|
--local theme_config = require('tokyonight.config')
|
||||||
|
--local theme_colors = require('tokyonight.colors').setup(theme_config)
|
||||||
|
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
theme = 'dracula-nvim',
|
||||||
|
-- section_separators = {'', ''},
|
||||||
|
section_separators = '',
|
||||||
|
-- component_separators = {'', ''},
|
||||||
|
component_separators = '|',
|
||||||
|
icons_enabled = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = {
|
||||||
|
'b:gitsigns_status',
|
||||||
|
{
|
||||||
|
'diagnostics',
|
||||||
|
sources = {'nvim_lsp'},
|
||||||
|
--color_error = {fg =theme_colors.error},
|
||||||
|
--color_warn = {fg = theme_colors.warning},
|
||||||
|
--color_info = {fg = theme_colors.info},
|
||||||
|
symbols = {error = ' ', warn = ' ', info = ' '}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lualine_c = {ns.current_function},
|
||||||
|
|
||||||
|
lualine_x = {'filetype', ns.lsp_enabled, ns.treesitter_enabled, ns.fixer_enabled, ns.spell_enabled},
|
||||||
|
lualine_y = {ns.current_line_percent},
|
||||||
|
lualine_z = {ns.line_column},
|
||||||
|
},
|
||||||
|
|
||||||
|
extensions = { 'nvim-tree' },
|
||||||
|
}
|
5
config/nvim/lua/nifoc/config/matchup.lua
Normal file
5
config/nvim/lua/nifoc/config/matchup.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
vim.g.matchup_matchparen_deferred = true
|
||||||
|
|
||||||
|
vim.g.matchup_matchparen_offscreen = {
|
||||||
|
method = 'popup',
|
||||||
|
}
|
30
config/nvim/lua/nifoc/config/nvim_tree.lua
Normal file
30
config/nvim/lua/nifoc/config/nvim_tree.lua
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
require('nvim-tree').setup {
|
||||||
|
open_on_setup = false,
|
||||||
|
auto_close = true,
|
||||||
|
|
||||||
|
update_cwd = true,
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true,
|
||||||
|
update_cwd = true
|
||||||
|
},
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true,
|
||||||
|
ignore = true,
|
||||||
|
timeout = 500,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.g.nvim_tree_quit_on_open = 0
|
||||||
|
vim.g.nvim_tree_respect_buf_cwd = 1
|
||||||
|
vim.g.nvim_tree_git_hl = 1
|
||||||
|
vim.g.nvim_tree_show_icons = {
|
||||||
|
git = 1,
|
||||||
|
folders = 1,
|
||||||
|
files = 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.cmd('augroup nifoc_nvim_tree_telescope')
|
||||||
|
vim.cmd('autocmd!')
|
||||||
|
vim.cmd('autocmd User TelescopeFindPre NvimTreeClose')
|
||||||
|
vim.cmd('augroup end')
|
17
config/nvim/lua/nifoc/config/project.lua
Normal file
17
config/nvim/lua/nifoc/config/project.lua
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
require('project_nvim').setup {
|
||||||
|
detection_methods = { "pattern", "lsp" },
|
||||||
|
|
||||||
|
patterns = {
|
||||||
|
".git",
|
||||||
|
"_darcs",
|
||||||
|
".hg",
|
||||||
|
".bzr",
|
||||||
|
".svn",
|
||||||
|
".gitlab-ci.yml",
|
||||||
|
"flake.nix",
|
||||||
|
"init.lua",
|
||||||
|
"Makefile",
|
||||||
|
"mix.exs",
|
||||||
|
"package.json",
|
||||||
|
},
|
||||||
|
}
|
41
config/nvim/lua/nifoc/config/telescope.lua
Normal file
41
config/nvim/lua/nifoc/config/telescope.lua
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
local telescope = require('telescope')
|
||||||
|
local actions = require('telescope.actions')
|
||||||
|
|
||||||
|
telescope.setup {
|
||||||
|
defaults = {
|
||||||
|
prompt_prefix = ' ',
|
||||||
|
selection_caret = ' ',
|
||||||
|
set_env = { ['COLORTERM'] = 'truecolor' },
|
||||||
|
|
||||||
|
layout_strategy = 'horizontal',
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
preview_width = 0.50,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
path_display = {'smart', 'absolute'},
|
||||||
|
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<esc>"] = actions.close
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
extensions = {
|
||||||
|
fzf = {
|
||||||
|
fuzzy = true,
|
||||||
|
override_generic_sorter = true,
|
||||||
|
override_file_sorter = true,
|
||||||
|
case_mode = 'smart_case',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
telescope.load_extension('fzf')
|
||||||
|
|
||||||
|
vim.cmd('augroup nifoc_telescope')
|
||||||
|
vim.cmd('autocmd!')
|
||||||
|
vim.cmd('autocmd User TelescopePreviewerLoaded let w:is_telescope=v:true')
|
||||||
|
vim.cmd('augroup end')
|
9
config/nvim/lua/nifoc/config/themes.lua
Normal file
9
config/nvim/lua/nifoc/config/themes.lua
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-- tokyonight
|
||||||
|
|
||||||
|
vim.g.tokyonight_style = 'night'
|
||||||
|
vim.g.tokyonight_hide_inactive_statusline = true
|
||||||
|
vim.g.tokyonight_sidebars = { "qf", "packer" }
|
||||||
|
|
||||||
|
-- dracula
|
||||||
|
|
||||||
|
vim.g.dracula_show_end_of_buffer = false
|
3
config/nvim/lua/nifoc/config/todo_comments.lua
Normal file
3
config/nvim/lua/nifoc/config/todo_comments.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
require('todo-comments').setup {
|
||||||
|
signs = false,
|
||||||
|
}
|
48
config/nvim/lua/nifoc/config/treesitter.lua
Normal file
48
config/nvim/lua/nifoc/config/treesitter.lua
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
local treesitter = require('nvim-treesitter')
|
||||||
|
local treesitter_config = require('nvim-treesitter.configs')
|
||||||
|
|
||||||
|
-- Custom module
|
||||||
|
treesitter.define_modules {
|
||||||
|
nifoc_hooks = {
|
||||||
|
enable = false,
|
||||||
|
attach = function(bufnr)
|
||||||
|
vim.api.nvim_buf_set_var(bufnr, 'nifoc_treesitter_enabled', 1)
|
||||||
|
end,
|
||||||
|
detach = function(bufnr)
|
||||||
|
vim.api.nvim_buf_set_var(bufnr, 'nifoc_treesitter_enabled', 0)
|
||||||
|
end,
|
||||||
|
is_supported = function()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
treesitter_config.setup {
|
||||||
|
ensure_installed = "maintained",
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
textobjects = {
|
||||||
|
select = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
["af"] = "@function.outer",
|
||||||
|
["if"] = "@function.inner",
|
||||||
|
["ac"] = "@conditional.outer",
|
||||||
|
["ic"] = "@conditional.inner",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
matchup = {enable = true},
|
||||||
|
autopairs = {enable = true},
|
||||||
|
autotag = {enable = true},
|
||||||
|
context_commentstring = {
|
||||||
|
enable = true,
|
||||||
|
enable_autocmd = false,
|
||||||
|
},
|
||||||
|
playground = {enable = true},
|
||||||
|
nifoc_hooks = {enable = true},
|
||||||
|
}
|
1
config/nvim/lua/nifoc/config/virt_column.lua
Normal file
1
config/nvim/lua/nifoc/config/virt_column.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require('virt-column').setup()
|
20
config/nvim/lua/nifoc/config/visual_eof.lua
Normal file
20
config/nvim/lua/nifoc/config/visual_eof.lua
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
require('visual-eof').setup {
|
||||||
|
text_EOL = '↵',
|
||||||
|
text_NOEOL = '✗↵',
|
||||||
|
ft_ng = {
|
||||||
|
'fugitive.*',
|
||||||
|
'git.*',
|
||||||
|
'LspTrouble',
|
||||||
|
'minimap',
|
||||||
|
'netrw',
|
||||||
|
'NvimTree',
|
||||||
|
'packer',
|
||||||
|
'TelescopePrompt',
|
||||||
|
};
|
||||||
|
buf_filter = function(bufnr)
|
||||||
|
local disable_buftypes = {'terminal', 'nofile'}
|
||||||
|
local buftype = vim.api.nvim_buf_get_option(bufnr, 'buftype')
|
||||||
|
|
||||||
|
return not vim.tbl_contains(disable_buftypes, buftype)
|
||||||
|
end;
|
||||||
|
}
|
1
config/nvim/lua/nifoc/config/whichkey.lua
Normal file
1
config/nvim/lua/nifoc/config/whichkey.lua
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require('which-key').setup {}
|
193
config/nvim/lua/nifoc/keymap.lua
Normal file
193
config/nvim/lua/nifoc/keymap.lua
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
local wk = require('which-key')
|
||||||
|
local npairs = require('nvim-autopairs')
|
||||||
|
|
||||||
|
local telescope = require('telescope')
|
||||||
|
local telescope_builtin = require('telescope.builtin')
|
||||||
|
local telescope_themes = require('telescope.themes')
|
||||||
|
|
||||||
|
-- Global key function
|
||||||
|
_G.nifoc_keymap_cr_complete = function()
|
||||||
|
return npairs.autopairs_cr()
|
||||||
|
end
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>', '<nop>', {noremap = true})
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
vim.opt.timeoutlen = 500
|
||||||
|
|
||||||
|
-- <leader> mappings
|
||||||
|
local leader = {
|
||||||
|
n = {
|
||||||
|
"<cmd>NvimTreeToggle<CR>",
|
||||||
|
"Toggle nvim-tree"
|
||||||
|
},
|
||||||
|
o = {
|
||||||
|
function() require('nifoc.utils.telescope').project_files() end,
|
||||||
|
"Find Files"
|
||||||
|
},
|
||||||
|
s = {
|
||||||
|
function() telescope_builtin.live_grep(telescope_themes.get_ivy()) end,
|
||||||
|
"Live Grep"
|
||||||
|
},
|
||||||
|
["ut"] = {
|
||||||
|
"<cmd>UndotreeToggle<CR>",
|
||||||
|
"Undotree"
|
||||||
|
},
|
||||||
|
f = {
|
||||||
|
name = "file",
|
||||||
|
n = {
|
||||||
|
"<cmd>enew<cr>",
|
||||||
|
"New File"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
b = {
|
||||||
|
name = "buffer",
|
||||||
|
l = {
|
||||||
|
function() telescope_builtin.buffers(telescope_themes.get_dropdown()) end,
|
||||||
|
"List Buffers"
|
||||||
|
},
|
||||||
|
n = {
|
||||||
|
"<cmd>BufferLineCycleNext<CR>",
|
||||||
|
"Next Buffer"
|
||||||
|
},
|
||||||
|
p = {
|
||||||
|
"<cmd>BufferLineCyclePrev<CR>",
|
||||||
|
"Previous Buffer"
|
||||||
|
},
|
||||||
|
f = {
|
||||||
|
function() telescope_builtin.current_buffer_fuzzy_find(telescope_themes.get_dropdown()) end,
|
||||||
|
"Find In Buffer"
|
||||||
|
},
|
||||||
|
t = {
|
||||||
|
function() telescope_builtin.treesitter(telescope_themes.get_dropdown()) end,
|
||||||
|
"Find Via Treesitter"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
p = {
|
||||||
|
name = "project",
|
||||||
|
t = {
|
||||||
|
"<cmd>TodoTelescope<CR>",
|
||||||
|
"TODO Comments"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
v = {
|
||||||
|
name = "vcs",
|
||||||
|
s = {
|
||||||
|
function() telescope_builtin.git_status(telescope_themes.get_ivy()) end,
|
||||||
|
"Status"
|
||||||
|
},
|
||||||
|
b = {
|
||||||
|
function() telescope_builtin.git_branches(telescope_themes.get_ivy()) end,
|
||||||
|
"List Branches"
|
||||||
|
},
|
||||||
|
l = {
|
||||||
|
function() require('gitsigns').blame_line() end,
|
||||||
|
"Blame Line"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
d = {
|
||||||
|
name = "debug",
|
||||||
|
l = {
|
||||||
|
name = "lsp",
|
||||||
|
i = {
|
||||||
|
"<cmd>LspInfo<CR>",
|
||||||
|
"Info"
|
||||||
|
},
|
||||||
|
r = {
|
||||||
|
"<cmd>LspRestart<CR>",
|
||||||
|
"Restart"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
t = {
|
||||||
|
"<cmd>TSPlaygroundToggle<CR>",
|
||||||
|
"TS Playground"
|
||||||
|
},
|
||||||
|
n = {
|
||||||
|
function() telescope.extensions.notify.notify() end,
|
||||||
|
"Notifications"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Register which-key mappings
|
||||||
|
wk.register(leader, {prefix = "<leader>", noremap = false, silent = true})
|
||||||
|
|
||||||
|
-- Other mappings
|
||||||
|
vim.api.nvim_set_keymap('n', '<CR>', ':noh<CR><CR>', {noremap = true, silent = true})
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('i', '<CR>', 'v:lua.nifoc_keymap_cr_complete()', {noremap = true, expr = true, silent = true})
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<A-Left>', 'b', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('n', '<A-Right>', 'w', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('n', '<S-Left>', '^', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('n', '<S-Right>', '$', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<A-Left>', '<C-o>b', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<A-Right>', '<C-o>w', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<S-Left>', '<C-o>^', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<S-Right>', '<C-o>$', {noremap = true})
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('v', 'p', '"_dP', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('n', 'd', '"_d', {noremap = true})
|
||||||
|
vim.api.nvim_set_keymap('v', 'd', '"_d', {noremap = true})
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-t>', '<cmd>lua require("FTerm").toggle()<CR>', {noremap = true, silent = true})
|
||||||
|
vim.api.nvim_set_keymap('t', '<C-t>', '<C-\\><C-n><cmd>lua require("FTerm").toggle()<CR>', {noremap = true, silent = true})
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.lsp_attach(client, bufnr)
|
||||||
|
-- <leader> mappings
|
||||||
|
local leader = {
|
||||||
|
t = {
|
||||||
|
"<cmd>Telescope lsp_document_symbols theme=get_dropdown<CR>",
|
||||||
|
"LSP Document Tags"
|
||||||
|
},
|
||||||
|
l = {
|
||||||
|
name = "lsp",
|
||||||
|
d = {
|
||||||
|
name = "diagnostics",
|
||||||
|
d = {
|
||||||
|
"<cmd>LspTroubleToggle lsp_document_diagnostics<CR>",
|
||||||
|
"Document Diagnostics"
|
||||||
|
},
|
||||||
|
w = {
|
||||||
|
"<cmd>LspTroubleToggle lsp_workspace_diagnostics<CR>",
|
||||||
|
"Workspace Diagnostics"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
c = {
|
||||||
|
name = "code action",
|
||||||
|
a = {
|
||||||
|
"<cmd>Telescope lsp_code_actions theme=get_dropdown<CR>",
|
||||||
|
"Code Action"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
f = {
|
||||||
|
name = "find",
|
||||||
|
r = {
|
||||||
|
"<cmd>LspTroubleToggle lsp_references<CR>",
|
||||||
|
"References"
|
||||||
|
},
|
||||||
|
d = {
|
||||||
|
"<cmd>LspTroubleToggle lsp_definitions<CR>",
|
||||||
|
"Definitions"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Top-level mappings
|
||||||
|
local top = {
|
||||||
|
K = {
|
||||||
|
"<cmd>lua vim.lsp.buf.hover()<CR>",
|
||||||
|
"Show Documentation"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Register which-key mappings
|
||||||
|
wk.register(leader, {prefix = "<leader>", noremap = true, silent = true, buffer = bufnr})
|
||||||
|
wk.register(top, {noremap = true, silent = true, buffer = bufnr})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
69
config/nvim/lua/nifoc/plugins.lua
Normal file
69
config/nvim/lua/nifoc/plugins.lua
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
-- Disable some built-in plugins
|
||||||
|
vim.g.loaded_matchit = 1
|
||||||
|
vim.g.loaded_matchparen = 1
|
||||||
|
vim.g.loaded_gzip = 1
|
||||||
|
vim.g.loaded_rrhelper = 1
|
||||||
|
vim.g.loaded_tarPlugin = 1
|
||||||
|
vim.g.loaded_zipPlugin = 1
|
||||||
|
vim.g.loaded_netrwPlugin = 1
|
||||||
|
vim.g.loaded_netrwFileHandlers = 1
|
||||||
|
vim.g.loaded_netrwSettings = 1
|
||||||
|
vim.g.loaded_2html_plugin = 1
|
||||||
|
vim.g.loaded_vimballPlugin = 1
|
||||||
|
vim.g.loaded_getscriptPlugin = 1
|
||||||
|
vim.g.loaded_logipat = 1
|
||||||
|
vim.g.loaded_tutor_mode_plugin = 1
|
||||||
|
|
||||||
|
vim.g.loaded_python_provider = 0
|
||||||
|
vim.g.loaded_python3_provider = 0
|
||||||
|
vim.g.loaded_ruby_provider = 0
|
||||||
|
vim.g.loaded_node_provider = 0
|
||||||
|
vim.g.loaded_perl_provider = 0
|
||||||
|
|
||||||
|
-- Require Plugin Configuration
|
||||||
|
|
||||||
|
-- Fixes
|
||||||
|
require('nifoc.config.cursorline')
|
||||||
|
|
||||||
|
-- Keybindings
|
||||||
|
require('nifoc.config.whichkey')
|
||||||
|
|
||||||
|
-- Syntax
|
||||||
|
require('nifoc.config.treesitter')
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
require('nifoc.config.telescope')
|
||||||
|
require('nifoc.config.project')
|
||||||
|
require('nifoc.config.todo_comments')
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
require('nifoc.config.lsp')
|
||||||
|
require('nifoc.config.lsp_trouble')
|
||||||
|
require('nifoc.config.illuminate')
|
||||||
|
|
||||||
|
-- cmp
|
||||||
|
require('nifoc.config.completion')
|
||||||
|
|
||||||
|
-- Pairs
|
||||||
|
require('nifoc.config.autopairs')
|
||||||
|
require('nvim-ts-autotag').setup()
|
||||||
|
require('nifoc.config.matchup')
|
||||||
|
|
||||||
|
-- Comments
|
||||||
|
require('nifoc.config.comments')
|
||||||
|
|
||||||
|
-- Textobjects
|
||||||
|
require('surround').setup({})
|
||||||
|
|
||||||
|
-- UI
|
||||||
|
require('nifoc.config.lualine')
|
||||||
|
require('nifoc.config.bufferline')
|
||||||
|
require('nifoc.config.nvim_tree')
|
||||||
|
require('nifoc.config.indent_line')
|
||||||
|
require('nifoc.config.virt_column')
|
||||||
|
require('nifoc.config.colorizer')
|
||||||
|
require('nifoc.config.gitsigns')
|
||||||
|
require('spellsitter').setup()
|
||||||
|
vim.notify = require('notify')
|
||||||
|
require('nifoc.config.visual_eof')
|
||||||
|
require('nifoc.config.fterm')
|
37
config/nvim/lua/nifoc/utils/line_style.lua
Normal file
37
config/nvim/lua/nifoc/utils/line_style.lua
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local check_disable = function()
|
||||||
|
local buftype = vim.bo.buftype
|
||||||
|
return buftype == 'terminal' or buftype == 'nofile'
|
||||||
|
end
|
||||||
|
|
||||||
|
local check_toggle = function()
|
||||||
|
if check_disable() then
|
||||||
|
return false
|
||||||
|
elseif vim.w.is_telescope then
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
local toggle_line_style = vim.b.toggle_line_style
|
||||||
|
return toggle_line_style == nil or toggle_line_style == 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.maybe_set_special_style()
|
||||||
|
if check_disable() then
|
||||||
|
vim.opt_local.number = false
|
||||||
|
vim.opt_local.relativenumber = false
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.w.is_telescope then
|
||||||
|
vim.opt_local.number = true
|
||||||
|
vim.opt_local.relativenumber = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.maybe_set_relativenumber(value)
|
||||||
|
if check_toggle() then
|
||||||
|
vim.opt_local.relativenumber = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
135
config/nvim/lua/nifoc/utils/statusline.lua
Normal file
135
config/nvim/lua/nifoc/utils/statusline.lua
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local buffer_not_empty = function()
|
||||||
|
if vim.fn.empty(vim.fn.expand('%:t')) ~= 1 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local buffer_variable_exists = function(key)
|
||||||
|
return buffer_not_empty() and vim.b[key] ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local buffer_has_lsp = function()
|
||||||
|
return buffer_not_empty() and #vim.lsp.buf_get_clients() > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.line_column()
|
||||||
|
local line = tostring(vim.fn.line('.'))
|
||||||
|
local column = tostring(vim.fn.col('.'))
|
||||||
|
|
||||||
|
return string.format("%3s:%-3s", line, column)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.current_line_percent()
|
||||||
|
local current_line = vim.fn.line('.')
|
||||||
|
local total_line = vim.fn.line('$')
|
||||||
|
|
||||||
|
if current_line == 1 then
|
||||||
|
return 'Top'
|
||||||
|
elseif current_line == total_line then
|
||||||
|
return 'Bot'
|
||||||
|
end
|
||||||
|
|
||||||
|
return [[%2p%%]]
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.filetype()
|
||||||
|
local f_name = vim.fn.expand('%:t')
|
||||||
|
local f_extension = vim.fn.expand('%:e')
|
||||||
|
local f_type = vim.bo.filetype
|
||||||
|
|
||||||
|
if f_type:len() > 0 then
|
||||||
|
return f_type .. ' ' .. require('nvim-web-devicons').get_icon(f_name, f_extension, {default = true})
|
||||||
|
else
|
||||||
|
return 'no ft'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.diagnostics_status()
|
||||||
|
if buffer_has_lsp() then
|
||||||
|
local status = require('lsp-status').diagnostics()
|
||||||
|
local errors, warnings, info, hints = status.errors, status.warnings, status.info, status.hints
|
||||||
|
local status_txt = {}
|
||||||
|
|
||||||
|
if errors > 0 then table.insert(status_txt, ' ' .. errors) end
|
||||||
|
if warnings > 0 then table.insert(status_txt, ' ' .. warnings) end
|
||||||
|
if info > 0 then table.insert(status_txt, ' ' .. info) end
|
||||||
|
if hints > 0 then table.insert(status_txt, ' ' .. hints) end
|
||||||
|
|
||||||
|
local formatted_status = table.concat(status_txt, ' ')
|
||||||
|
|
||||||
|
if formatted_status:len() > 0 then
|
||||||
|
return formatted_status
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.gitsigns_formatter(status)
|
||||||
|
local added, changed, removed = status.added, status.changed, status.removed
|
||||||
|
local result = {}
|
||||||
|
|
||||||
|
if added ~= nil and added > 0 then
|
||||||
|
table.insert(result, string.format("%%#GitSignsStatuslineAdd# %s", added))
|
||||||
|
end
|
||||||
|
|
||||||
|
if changed ~= nil and changed > 0 then
|
||||||
|
table.insert(result, string.format("%%#GitSignsStatuslineChange# %s", changed))
|
||||||
|
end
|
||||||
|
|
||||||
|
if removed ~= nil and removed > 0 then
|
||||||
|
table.insert(result, string.format("%%#GitSignsStatuslineDelete# %s", removed))
|
||||||
|
end
|
||||||
|
|
||||||
|
return table.concat(result, ' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.current_function()
|
||||||
|
local fn = vim.b.lsp_current_function
|
||||||
|
|
||||||
|
if fn ~= nil and fn:len() > 0 then
|
||||||
|
return ' ' .. fn
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.spell_enabled()
|
||||||
|
if buffer_not_empty() and vim.wo.spell then
|
||||||
|
return 'ﮒ'
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.fixer_enabled()
|
||||||
|
if buffer_variable_exists('nifoc_fixer_enabled') then
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.treesitter_enabled()
|
||||||
|
if buffer_variable_exists('nifoc_treesitter_enabled') then
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.lsp_enabled()
|
||||||
|
if buffer_variable_exists('nifoc_lsp_enabled') then
|
||||||
|
return ''
|
||||||
|
else
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
18
config/nvim/lua/nifoc/utils/telescope.lua
Normal file
18
config/nvim/lua/nifoc/utils/telescope.lua
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
local telescope_themes = require('telescope.themes')
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.project_files = function()
|
||||||
|
local git_opts = telescope_themes.get_ivy()
|
||||||
|
local ok = pcall(require'telescope.builtin'.git_files, git_opts)
|
||||||
|
|
||||||
|
if not ok then
|
||||||
|
local find_opts = telescope_themes.get_ivy({
|
||||||
|
find_command = { 'rg', '--files', '--hidden', '-L', '-g', '!.git/*' }
|
||||||
|
})
|
||||||
|
|
||||||
|
require('telescope.builtin').find_files(find_opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
116
config/nvim/lua/nix_init.lua
Normal file
116
config/nvim/lua/nix_init.lua
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
-- Preamble
|
||||||
|
pcall(require, 'impatient')
|
||||||
|
vim.cmd('syntax enable')
|
||||||
|
vim.cmd('filetype plugin indent on')
|
||||||
|
vim.opt.compatible = false
|
||||||
|
vim.opt.hidden = true
|
||||||
|
vim.opt.shell = '/bin/sh'
|
||||||
|
|
||||||
|
-- Options
|
||||||
|
vim.opt.encoding = 'utf-8'
|
||||||
|
vim.opt.synmaxcol = 500
|
||||||
|
vim.opt.showmode = false
|
||||||
|
vim.opt.ruler = false
|
||||||
|
vim.opt.ttyfast = true
|
||||||
|
vim.opt.lazyredraw = true
|
||||||
|
vim.opt.cursorline = true
|
||||||
|
vim.opt.list = true
|
||||||
|
vim.opt.listchars = {tab = '»·', trail = '·'}
|
||||||
|
vim.opt.showbreak = '↪ '
|
||||||
|
vim.opt.backspace = {'indent', 'eol', 'start'}
|
||||||
|
vim.opt.showtabline = 2
|
||||||
|
vim.opt.signcolumn = 'yes:1'
|
||||||
|
vim.opt.wildoptions = 'pum'
|
||||||
|
vim.opt.modeline = false
|
||||||
|
vim.opt.startofline = false
|
||||||
|
vim.opt.synmaxcol = 300
|
||||||
|
|
||||||
|
vim.opt.incsearch = true
|
||||||
|
vim.opt.grepprg = 'rg --vimgrep --no-heading'
|
||||||
|
vim.opt.grepformat = '%f:%l:%c:%m,%f:%l:%m'
|
||||||
|
vim.opt.inccommand = 'nosplit'
|
||||||
|
|
||||||
|
vim.opt.completeopt = {'menu', 'menuone', 'noselect'}
|
||||||
|
|
||||||
|
vim.opt.wrap = true
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
|
vim.opt.softtabstop = 2
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
|
||||||
|
vim.opt.viewoptions = {'cursor', 'folds', 'slash', 'unix'}
|
||||||
|
|
||||||
|
vim.opt.foldenable = false
|
||||||
|
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
vim.opt.splitright = true
|
||||||
|
|
||||||
|
vim.opt.autoread = true
|
||||||
|
|
||||||
|
vim.opt.diffopt = {'filler', 'internal', 'algorithm:histogram', 'indent-heuristic'}
|
||||||
|
|
||||||
|
vim.opt.spelllang = {'en', 'de'}
|
||||||
|
|
||||||
|
-- UI
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
vim.opt.conceallevel = 2
|
||||||
|
vim.opt.concealcursor = 'niv'
|
||||||
|
|
||||||
|
-- See: https://github.com/antoinemadec/FixCursorHold.nvim
|
||||||
|
vim.opt.updatetime = 750
|
||||||
|
vim.g.cursorhold_updatetime = 100
|
||||||
|
|
||||||
|
vim.opt.shortmess:append('c')
|
||||||
|
vim.opt.shortmess:remove('S')
|
||||||
|
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
vim.cmd('set mouse=a mousemodel=popup_setpos')
|
||||||
|
|
||||||
|
-- Plugins
|
||||||
|
require('nifoc.config.themes')
|
||||||
|
require('nifoc.plugins')
|
||||||
|
|
||||||
|
-- Theme
|
||||||
|
vim.opt.background = 'dark'
|
||||||
|
vim.cmd('colorscheme dracula')
|
||||||
|
|
||||||
|
-- Backups
|
||||||
|
vim.opt.backup = false
|
||||||
|
vim.opt.swapfile = false
|
||||||
|
vim.opt.undofile = true
|
||||||
|
vim.opt.undodir = os.getenv('HOME') .. '/.local/share/nvim/undo//'
|
||||||
|
|
||||||
|
-- Clipboard
|
||||||
|
vim.g.clipboard = {
|
||||||
|
name = 'pbcopy',
|
||||||
|
copy = {
|
||||||
|
['+'] = 'pbcopy',
|
||||||
|
['*'] = 'pbcopy',
|
||||||
|
},
|
||||||
|
paste = {
|
||||||
|
['+'] = 'pbpaste',
|
||||||
|
['*'] = 'pbpaste',
|
||||||
|
},
|
||||||
|
cache_enabled = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.cmd('set clipboard+=unnamedplus')
|
||||||
|
|
||||||
|
-- Keymap
|
||||||
|
require('nifoc.keymap').setup()
|
||||||
|
|
||||||
|
-- Autocmds
|
||||||
|
vim.cmd('augroup nifoc_numbertoggle')
|
||||||
|
vim.cmd('autocmd!')
|
||||||
|
vim.cmd("autocmd BufEnter,BufWinEnter * lua require('nifoc.utils.line_style').maybe_set_special_style()")
|
||||||
|
vim.cmd('autocmd TermOpen * setlocal nonumber norelativenumber')
|
||||||
|
vim.cmd("autocmd BufEnter,InsertLeave * lua require('nifoc.utils.line_style').maybe_set_relativenumber(true)")
|
||||||
|
vim.cmd("autocmd BufLeave,InsertEnter * lua require('nifoc.utils.line_style').maybe_set_relativenumber(false)")
|
||||||
|
vim.cmd('augroup end')
|
||||||
|
|
||||||
|
vim.cmd('augroup nifoc_yank')
|
||||||
|
vim.cmd('autocmd!')
|
||||||
|
vim.cmd('autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=500}')
|
||||||
|
vim.cmd('augroup end')
|
6
config/yt-dlp.nix
Normal file
6
config/yt-dlp.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
xdg.configFile.yt-dlp = {
|
||||||
|
source = ./yt-dlp;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
}
|
21
config/yt-dlp/config
Normal file
21
config/yt-dlp/config
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Add metadata and other things to the video
|
||||||
|
--add-metadata
|
||||||
|
--embed-subs
|
||||||
|
#--embed-thumbnail
|
||||||
|
--xattrs
|
||||||
|
|
||||||
|
# Prefer best mp4 video
|
||||||
|
-f 'bestvideo+bestaudio/best'
|
||||||
|
|
||||||
|
# Subtitles
|
||||||
|
--write-sub
|
||||||
|
--sub-format best
|
||||||
|
--sub-lang en,de
|
||||||
|
|
||||||
|
# Download using aria2
|
||||||
|
#--external-downloader aria2c
|
||||||
|
#--external-downloader-args "-j 8 -s 8 -x 8 -k 1M --file-allocation none"
|
||||||
|
|
||||||
|
# Other
|
||||||
|
--no-overwrites
|
||||||
|
--no-call-home
|
140
flake.lock
Normal file
140
flake.lock
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1627913399,
|
||||||
|
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1629481132,
|
||||||
|
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "997f7efcb746a9c140ce1f13c72263189225f482",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638571010,
|
||||||
|
"narHash": "sha256-KSO7u13VRLdklQTKYJaBSfVcurEvw+HifAsHR7V2i5E=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "781d25b315def05cd7ede3765226c54216f0b1fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neovim-flake": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"neovim-nightly-overlay",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "contrib",
|
||||||
|
"lastModified": 1638765202,
|
||||||
|
"narHash": "sha256-eW/ZDUrfP8rD8a5Rotqo8i5PKiK7UFWe75DgMLAtenY=",
|
||||||
|
"owner": "neovim",
|
||||||
|
"repo": "neovim",
|
||||||
|
"rev": "523f03b506bf577811c0e136bc852cdb89f92c00",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "contrib",
|
||||||
|
"owner": "neovim",
|
||||||
|
"repo": "neovim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neovim-nightly-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"neovim-flake": "neovim-flake",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638778450,
|
||||||
|
"narHash": "sha256-C5UoHcRk5YjKNz9bVv+Kp28PjT/A+R49rUlpa1hFxvU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "neovim-nightly-overlay",
|
||||||
|
"rev": "740f1503ca2e5c066507e836bac13aa21c87da3b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "neovim-nightly-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638535497,
|
||||||
|
"narHash": "sha256-tk5LNbdkUhALp00+r5ZmQ3t7n2d5M7YUQB+MznWvVOg=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c71f061c68ba8ce53471b767d5049cbd0f3d8490",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638761670,
|
||||||
|
"narHash": "sha256-LywnGCbjfMHp4lwAmIXozB/rAqPkCG0J8HhMPwXsR1U=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "02336c5c5f719cd6bd4cfc5a091a1ccee6f06b1d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
38
flake.nix
Normal file
38
flake.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs@{ self, nixpkgs, home-manager, ... }: {
|
||||||
|
homeConfigurations = {
|
||||||
|
daniel = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
|
system = "x86_64-darwin";
|
||||||
|
homeDirectory = "/Users/daniel";
|
||||||
|
username = "daniel";
|
||||||
|
stateVersion = "21.11";
|
||||||
|
|
||||||
|
configuration = { config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
overlay-neovim = inputs.neovim-nightly-overlay.overlay;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
overlay-neovim
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
allowBroken = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [ ./home.nix ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
55
home.nix
Normal file
55
home.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./programs/fish.nix
|
||||||
|
./programs/starship.nix
|
||||||
|
|
||||||
|
./programs/nvim
|
||||||
|
|
||||||
|
./programs/git.nix
|
||||||
|
|
||||||
|
./programs/bat.nix
|
||||||
|
|
||||||
|
./programs/jq.nix
|
||||||
|
|
||||||
|
# ./config/nvim.nix
|
||||||
|
./config/yt-dlp.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
aria2
|
||||||
|
arp-scan
|
||||||
|
atomicparsley
|
||||||
|
cachix
|
||||||
|
dogdns
|
||||||
|
exa
|
||||||
|
fd
|
||||||
|
ffmpeg
|
||||||
|
fzf
|
||||||
|
gallery-dl
|
||||||
|
hexyl
|
||||||
|
hyperfine
|
||||||
|
# neovim-nightly
|
||||||
|
nix-prefetch-github
|
||||||
|
parallel
|
||||||
|
procs
|
||||||
|
ripgrep
|
||||||
|
rtmpdump
|
||||||
|
tokei
|
||||||
|
yt-dlp
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zoxide.enable = true;
|
||||||
|
};
|
||||||
|
}
|
9
programs/bat.nix
Normal file
9
programs/bat.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
theme = "Dracula";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
67
programs/fish.nix
Normal file
67
programs/fish.nix
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "foreign-env";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "plugin-foreign-env";
|
||||||
|
rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc";
|
||||||
|
sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "dracula";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "dracula";
|
||||||
|
repo = "fish";
|
||||||
|
rev = "28db361b55bb49dbfd7a679ebec9140be8c2d593";
|
||||||
|
sha256 = "vdqYlEyYvlPVgTkwXbE8GVZo0UBBT88JyMSWYykhfx4=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
hmsw = "home-manager switch --flake ~/.config/nixpkgs/#$USER";
|
||||||
|
j = "z";
|
||||||
|
ji = "zi";
|
||||||
|
la = "exa --long --all --group --header --group-directories-first --sort=type --icons";
|
||||||
|
lg = "exa --long --all --group --header --git";
|
||||||
|
lt = "exa --long --all --group --header --tree --level ";
|
||||||
|
upa = "nix flake update ~/.config/nixpkgs -v";
|
||||||
|
upp = "nix flake update ./ -v";
|
||||||
|
upn = "$HOME/.config/nixpkgs/programs/nvim/update-plugins.sh";
|
||||||
|
ucl = "nix-collect-garbage -d && nix-store --gc && nix-store --optimise -v";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellInit = ''
|
||||||
|
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
|
fenv source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -d "$HOME/bin"
|
||||||
|
set -gx PATH "$HOME/bin" $PATH
|
||||||
|
end
|
||||||
|
|
||||||
|
# Vendor Configuration
|
||||||
|
if test -d "$HOME/.nix-profile/share/fish/vendor_conf.d"
|
||||||
|
for vendor_conf in $HOME/.nix-profile/share/fish/vendor_conf.d/*.fish
|
||||||
|
source "$vendor_conf"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# Custom Scripts
|
||||||
|
if test -d "$HOME/.config/fish/custom-scripts"
|
||||||
|
for custom_script in $HOME/.config/fish/custom-scripts/*.fish
|
||||||
|
source "$custom_script"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
57
programs/git.nix
Normal file
57
programs/git.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
delta.enable = true;
|
||||||
|
|
||||||
|
userName = "Daniel Kempkens";
|
||||||
|
userEmail = "daniel+git@kempkens.io";
|
||||||
|
|
||||||
|
aliases = {
|
||||||
|
lg = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
core = {
|
||||||
|
editor = "nvim";
|
||||||
|
whitespace = "trailing-space,space-before-tab";
|
||||||
|
autocrlf = "input";
|
||||||
|
};
|
||||||
|
|
||||||
|
pull = {
|
||||||
|
rebase = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
push = {
|
||||||
|
default = "simple";
|
||||||
|
};
|
||||||
|
|
||||||
|
diff = {
|
||||||
|
indentheuristic = true;
|
||||||
|
algorithm = "histogram";
|
||||||
|
};
|
||||||
|
|
||||||
|
apply = {
|
||||||
|
whitespace = "fix";
|
||||||
|
};
|
||||||
|
|
||||||
|
rerere = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
color = {
|
||||||
|
ui = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ignores = [
|
||||||
|
"*~"
|
||||||
|
"*.swp"
|
||||||
|
".DS_Store"
|
||||||
|
];
|
||||||
|
|
||||||
|
delta.options = {
|
||||||
|
theme = "Dracula";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
programs/jq.nix
Normal file
15
programs/jq.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
programs.jq = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
null = "1;32";
|
||||||
|
false = "1;35";
|
||||||
|
true = "1;35";
|
||||||
|
numbers = "0;35";
|
||||||
|
strings = "0;33";
|
||||||
|
arrays = "1;37";
|
||||||
|
objects = "1;37";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
115
programs/nvim/default.nix
Normal file
115
programs/nvim/default.nix
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
customPlugins = import ./plugins.nix { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.neovim-nightly;
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
lua require('nix_init')
|
||||||
|
'';
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
tree-sitter
|
||||||
|
|
||||||
|
# LSP
|
||||||
|
efm-langserver
|
||||||
|
nodePackages.bash-language-server
|
||||||
|
nodePackages.dockerfile-language-server-nodejs
|
||||||
|
nodePackages.vscode-langservers-extracted
|
||||||
|
nodePackages.yaml-language-server
|
||||||
|
rnix-lsp
|
||||||
|
sqls
|
||||||
|
taplo-lsp
|
||||||
|
|
||||||
|
# LSP Tools
|
||||||
|
hadolint
|
||||||
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins = with customPlugins; [
|
||||||
|
# Fixes
|
||||||
|
impatient-nvim
|
||||||
|
FixCursorHold-nvim
|
||||||
|
vim-auto-cursorline
|
||||||
|
|
||||||
|
# Utils
|
||||||
|
popup-nvim
|
||||||
|
plenary-nvim
|
||||||
|
nvim-web-devicons
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
which-key-nvim
|
||||||
|
|
||||||
|
# Themes
|
||||||
|
tokyonight-nvim
|
||||||
|
dracula-nvim
|
||||||
|
|
||||||
|
# Syntax
|
||||||
|
nvim-treesitter
|
||||||
|
playground
|
||||||
|
Jenkinsfile-vim-syntax
|
||||||
|
|
||||||
|
# Telescope
|
||||||
|
telescope-nvim
|
||||||
|
telescope-fzf-native-nvim
|
||||||
|
project-nvim
|
||||||
|
todo-comments-nvim
|
||||||
|
|
||||||
|
# LSP
|
||||||
|
nvim-lspconfig
|
||||||
|
lsp-trouble-nvim
|
||||||
|
lspkind-nvim
|
||||||
|
lsp-status-nvim
|
||||||
|
vim-illuminate
|
||||||
|
|
||||||
|
# cmp
|
||||||
|
nvim-cmp
|
||||||
|
cmp-nvim-lsp
|
||||||
|
LuaSnip
|
||||||
|
cmp_luasnip
|
||||||
|
cmp-nvim-lua
|
||||||
|
cmp-path
|
||||||
|
cmp-buffer
|
||||||
|
cmp-treesitter
|
||||||
|
cmp-cmdline
|
||||||
|
cmp-nvim-lsp-document-symbol
|
||||||
|
|
||||||
|
# Pairs
|
||||||
|
nvim-autopairs
|
||||||
|
nvim-ts-autotag
|
||||||
|
vim-matchup
|
||||||
|
|
||||||
|
# Comments
|
||||||
|
Comment-nvim
|
||||||
|
|
||||||
|
# Textobjects
|
||||||
|
nvim-treesitter-textobjects
|
||||||
|
surround-nvim
|
||||||
|
|
||||||
|
# UI
|
||||||
|
undotree
|
||||||
|
lualine-nvim
|
||||||
|
nvim-bufferline-lua
|
||||||
|
nvim-tree-lua
|
||||||
|
indent-blankline-nvim
|
||||||
|
virt-column-nvim
|
||||||
|
nvim-colorizer-lua
|
||||||
|
gitsigns-nvim
|
||||||
|
spellsitter-nvim
|
||||||
|
nvim-notify
|
||||||
|
nvim-visual-eof-lua
|
||||||
|
FTerm-nvim
|
||||||
|
editorconfig-vim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile.nvim = {
|
||||||
|
source = ../../config/nvim;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
}
|
605
programs/nvim/plugins.nix
Normal file
605
programs/nvim/plugins.nix
Normal file
|
@ -0,0 +1,605 @@
|
||||||
|
# This file has been auto-generated
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
impatient-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "impatient.nvim";
|
||||||
|
version = "282b99b";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lewis6991";
|
||||||
|
repo = "impatient.nvim";
|
||||||
|
rev = "282b99b817d61e6c6860addf5629b641925a937a";
|
||||||
|
sha256 = "RtXtmtfpPAtZuDSn/eKaX12w1BybqUeWoKVGV2yEMCM=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/lewis6991/impatient.nvim";
|
||||||
|
};
|
||||||
|
FixCursorHold-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "FixCursorHold.nvim";
|
||||||
|
version = "0e4e22d";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "antoinemadec";
|
||||||
|
repo = "FixCursorHold.nvim";
|
||||||
|
rev = "0e4e22d21975da60b0fd2d302285b3b603f9f71e";
|
||||||
|
sha256 = "v56qtPGa8MkEPpQpzA+XHH/TsV1q4p65wSuvF140LuM=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/antoinemadec/FixCursorHold.nvim";
|
||||||
|
};
|
||||||
|
vim-auto-cursorline = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "vim-auto-cursorline";
|
||||||
|
version = "ee22b15";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "delphinus";
|
||||||
|
repo = "vim-auto-cursorline";
|
||||||
|
rev = "ee22b1589809f1b1aaaaef15997a0a84585d667f";
|
||||||
|
sha256 = "+ajtZm9pJrl49fI7zFqBJ49SL1XqfOoTp0ICelEknYc=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/delphinus/vim-auto-cursorline";
|
||||||
|
};
|
||||||
|
which-key-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "which-key.nvim";
|
||||||
|
version = "d3032b6";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "folke";
|
||||||
|
repo = "which-key.nvim";
|
||||||
|
rev = "d3032b6d3e0adb667975170f626cb693bfc66baa";
|
||||||
|
sha256 = "mgLmwP8ci9VjRiwBedZDPXi6CjNtJy3iOJDbmSXtisk=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/folke/which-key.nvim";
|
||||||
|
};
|
||||||
|
tokyonight-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "tokyonight.nvim";
|
||||||
|
version = "b3a829d";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "folke";
|
||||||
|
repo = "tokyonight.nvim";
|
||||||
|
rev = "b3a829d2ba6344b5364fda71b5b7501f707d1bdf";
|
||||||
|
sha256 = "n00mEFtTbN8XAmlOcjtToagaUqROJ8Id4E4kAPXpEVk=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/folke/tokyonight.nvim";
|
||||||
|
};
|
||||||
|
dracula-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "dracula.nvim";
|
||||||
|
version = "aa9d195";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "Mofiqul";
|
||||||
|
repo = "dracula.nvim";
|
||||||
|
rev = "aa9d195ab856b1c8e9d3afca0768cdc2d992a4a7";
|
||||||
|
sha256 = "qRwhrXwpcasr8JC2W7oBiKLsywUzYgSDL8n9rAeQWkk=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/Mofiqul/dracula.nvim";
|
||||||
|
};
|
||||||
|
nvim-treesitter = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-treesitter";
|
||||||
|
version = "d6a0a26";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-treesitter";
|
||||||
|
repo = "nvim-treesitter";
|
||||||
|
rev = "d6a0a26b8563409d4660def7320a4f4bc23954df";
|
||||||
|
sha256 = "WqTxPlN39/IoDh7/nWbY+yArkkDYD8IRADhSt0X0yZs=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter";
|
||||||
|
};
|
||||||
|
playground = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "playground";
|
||||||
|
version = "787a7a8";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-treesitter";
|
||||||
|
repo = "playground";
|
||||||
|
rev = "787a7a8d4444e58467d6b3d4b88a497e7d494643";
|
||||||
|
sha256 = "YMINv064VzuzZLuQNY6HN3oCZvYjNQi6IMliQPTijfg=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-treesitter/playground";
|
||||||
|
};
|
||||||
|
Jenkinsfile-vim-syntax = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "Jenkinsfile-vim-syntax";
|
||||||
|
version = "0d05729";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "martinda";
|
||||||
|
repo = "Jenkinsfile-vim-syntax";
|
||||||
|
rev = "0d05729168ea44d60862f17cffa80024ab30bcc9";
|
||||||
|
sha256 = "/qUlzGfo2OhHEBGaoTH8K4VVT0Zg9ocJBb84orMD4xc=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax";
|
||||||
|
};
|
||||||
|
popup-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "popup.nvim";
|
||||||
|
version = "b7404d3";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-lua";
|
||||||
|
repo = "popup.nvim";
|
||||||
|
rev = "b7404d35d5d3548a82149238289fa71f7f6de4ac";
|
||||||
|
sha256 = "dNWz/xovUg55fDZUpVs/2kLphk3lqQyvPtc9ATwbeSQ=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-lua/popup.nvim";
|
||||||
|
};
|
||||||
|
plenary-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "plenary.nvim";
|
||||||
|
version = "5d4a65a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-lua";
|
||||||
|
repo = "plenary.nvim";
|
||||||
|
rev = "5d4a65a84d2eb2ee035c667d01ef8e7cafb8a549";
|
||||||
|
sha256 = "ctluRYRvuOR/LmRmtQoztY1BuOezU1zdTlKrARuN/J0=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-lua/plenary.nvim";
|
||||||
|
};
|
||||||
|
telescope-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "telescope.nvim";
|
||||||
|
version = "82e3cc3";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-telescope";
|
||||||
|
repo = "telescope.nvim";
|
||||||
|
rev = "82e3cc322ad87b262aef092cb7475e769740e83a";
|
||||||
|
sha256 = "72Ff7d4f7EHRG9+r/U9BV5XbN1vMkyVoZcfrZ6uVQuA=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim";
|
||||||
|
};
|
||||||
|
telescope-fzf-native-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "telescope-fzf-native.nvim";
|
||||||
|
version = "b8662b0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-telescope";
|
||||||
|
repo = "telescope-fzf-native.nvim";
|
||||||
|
rev = "b8662b076175e75e6497c59f3e2799b879d7b954";
|
||||||
|
sha256 = "gd/nNgMhvHdJWOlHMdYxY8Hi8Qo4F66TjKSewNKNR3I=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
buildPhase = "make";
|
||||||
|
meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim";
|
||||||
|
};
|
||||||
|
project-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "project.nvim";
|
||||||
|
version = "71d0e23";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "ahmedkhalf";
|
||||||
|
repo = "project.nvim";
|
||||||
|
rev = "71d0e23dcfc43cfd6bb2a97dc5a7de1ab47a6538";
|
||||||
|
sha256 = "RUPbmMPfa1lT2fIslC9vZR3e23IkOyPpYnWDytxkvUs=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/ahmedkhalf/project.nvim";
|
||||||
|
};
|
||||||
|
nvim-lspconfig = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-lspconfig";
|
||||||
|
version = "22b21bc";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "neovim";
|
||||||
|
repo = "nvim-lspconfig";
|
||||||
|
rev = "22b21bc000a8320675ea10f4f50f1bbd48d09ff2";
|
||||||
|
sha256 = "9SrA6rsrpjVZC2OuEaC1faYXqpT8rrDsZ4Sqz60D7Y4=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/neovim/nvim-lspconfig";
|
||||||
|
};
|
||||||
|
nvim-web-devicons = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-web-devicons";
|
||||||
|
version = "8df4988";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "kyazdani42";
|
||||||
|
repo = "nvim-web-devicons";
|
||||||
|
rev = "8df4988ecf8599fc1f8f387bbf2eae790e4c5ffb";
|
||||||
|
sha256 = "a6vlRuNAa5oJy5AFp0SjqNUwSE/kc8jaII7T9IcG+Kw=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons";
|
||||||
|
};
|
||||||
|
lsp-trouble-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "lsp-trouble.nvim";
|
||||||
|
version = "4a45782";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "folke";
|
||||||
|
repo = "lsp-trouble.nvim";
|
||||||
|
rev = "4a45782db943f95500b61ffce187bf4cada954ae";
|
||||||
|
sha256 = "qkJkMPxmUVytymwgXI8BW3OPMZcGRT9pSA4LzXhOlZg=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/folke/lsp-trouble.nvim";
|
||||||
|
};
|
||||||
|
lspkind-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "lspkind-nvim";
|
||||||
|
version = "f3b5efa";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "onsails";
|
||||||
|
repo = "lspkind-nvim";
|
||||||
|
rev = "f3b5efa11f0665accb7bd0258260b9d08dd4956e";
|
||||||
|
sha256 = "qIs65OIV0m5Y3pe5ozG6sYa1yIx0vXpkNC0Gkkm9amw=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/onsails/lspkind-nvim";
|
||||||
|
};
|
||||||
|
lsp-status-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "lsp-status.nvim";
|
||||||
|
version = "e8e5303";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-lua";
|
||||||
|
repo = "lsp-status.nvim";
|
||||||
|
rev = "e8e5303f9ee3d8dc327c97891eaa1257ba5d4eee";
|
||||||
|
sha256 = "otDFYc9Sl1OYmkrWFCzgAG0XkXyvR/ebRe2zAOwQ1IA=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim";
|
||||||
|
};
|
||||||
|
nvim-cmp = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-cmp";
|
||||||
|
version = "edc2a50";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "nvim-cmp";
|
||||||
|
rev = "edc2a503ee33e2a62e94a2257e9e3bbd50fa6feb";
|
||||||
|
sha256 = "5/ZvonFG65i+bBKAdlgD0+zI87BgIaEGFwocsPkbmS0=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/nvim-cmp";
|
||||||
|
};
|
||||||
|
cmp-nvim-lsp = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-nvim-lsp";
|
||||||
|
version = "1341172";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-nvim-lsp";
|
||||||
|
rev = "134117299ff9e34adde30a735cd8ca9cf8f3db81";
|
||||||
|
sha256 = "jLfW4xoYnEOWa7oWSmkB7vNxu9Jgttbme+nTiAC92so=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp";
|
||||||
|
};
|
||||||
|
LuaSnip = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "LuaSnip";
|
||||||
|
version = "0528072";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "L3MON4D3";
|
||||||
|
repo = "LuaSnip";
|
||||||
|
rev = "052807223ba4d9babb412f12f08da0b34bc083cf";
|
||||||
|
sha256 = "rA6c/Yq3Vk9Pqrm38vIJJLufPNB1uHkuu5wATlkcBD0=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/L3MON4D3/LuaSnip";
|
||||||
|
};
|
||||||
|
cmp_luasnip = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp_luasnip";
|
||||||
|
version = "75bf643";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "saadparwaiz1";
|
||||||
|
repo = "cmp_luasnip";
|
||||||
|
rev = "75bf6434f175206cd219f9d2bbcae154a009346c";
|
||||||
|
sha256 = "j26ufCjpIAaoaK2Dp9fI0oaEW05tC0a89omz6k3lpis=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip";
|
||||||
|
};
|
||||||
|
cmp-nvim-lua = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-nvim-lua";
|
||||||
|
version = "d276254";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-nvim-lua";
|
||||||
|
rev = "d276254e7198ab7d00f117e88e223b4bd8c02d21";
|
||||||
|
sha256 = "/xUfw5adjXu8ySZBBFrLVJ1FCNJzfh79wf+wJsW6sIY=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lua";
|
||||||
|
};
|
||||||
|
cmp-path = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-path";
|
||||||
|
version = "d83839a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-path";
|
||||||
|
rev = "d83839ae510d18530c6d36b662a9e806d4dceb73";
|
||||||
|
sha256 = "6WCIwAmCjOaBh1jrmeVttGQVNLZTPeWY2T7+X8wD9W4=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-path";
|
||||||
|
};
|
||||||
|
cmp-buffer = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-buffer";
|
||||||
|
version = "a706dc6";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-buffer";
|
||||||
|
rev = "a706dc69c49110038fe570e5c9c33d6d4f67015b";
|
||||||
|
sha256 = "FdWs15eTad4igwN5F5+CKxSMQi9eX07BXjM/HgTIURc=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-buffer";
|
||||||
|
};
|
||||||
|
cmp-treesitter = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-treesitter";
|
||||||
|
version = "a6b4c95";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "ray-x";
|
||||||
|
repo = "cmp-treesitter";
|
||||||
|
rev = "a6b4c95ee922cace635b5a46c7fcc691d2559fbb";
|
||||||
|
sha256 = "Skdb113mgJqPJGUCk08ymo2IrnCyMO2KY36rOIxFHRk=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/ray-x/cmp-treesitter";
|
||||||
|
};
|
||||||
|
cmp-cmdline = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-cmdline";
|
||||||
|
version = "29ca81a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-cmdline";
|
||||||
|
rev = "29ca81a6f0f288e6311b3377d9d9684d22eac2ec";
|
||||||
|
sha256 = "BkMvtwkLnT0tnLn9F+vt3vtmAQOBVFwFC3YF7ZsE8Hs=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-cmdline";
|
||||||
|
};
|
||||||
|
cmp-nvim-lsp-document-symbol = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "cmp-nvim-lsp-document-symbol";
|
||||||
|
version = "29d12e5";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "hrsh7th";
|
||||||
|
repo = "cmp-nvim-lsp-document-symbol";
|
||||||
|
rev = "29d12e55cf49ee07b829114ad39b161cad2544ab";
|
||||||
|
sha256 = "i3lc1u+ml1Zh6bx+uaiIYZZbQhAhJyMbeWzIYwgZlXA=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol";
|
||||||
|
};
|
||||||
|
nvim-autopairs = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-autopairs";
|
||||||
|
version = "18fe311";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "windwp";
|
||||||
|
repo = "nvim-autopairs";
|
||||||
|
rev = "18fe311bb967d16ddf2cc28e7e71f234c37d3e26";
|
||||||
|
sha256 = "Pln8qhfjEJ2VXcDPZ0P6UNQHTcY3Xw58B4X56IVr008=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/windwp/nvim-autopairs";
|
||||||
|
};
|
||||||
|
nvim-ts-autotag = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-ts-autotag";
|
||||||
|
version = "80d427a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "windwp";
|
||||||
|
repo = "nvim-ts-autotag";
|
||||||
|
rev = "80d427af7b898768c8d8538663d52dee133da86f";
|
||||||
|
sha256 = "8SINCRoarkkQdrKzq4xujn197G4BRHQ7HYJQj929nME=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/windwp/nvim-ts-autotag";
|
||||||
|
};
|
||||||
|
Comment-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "Comment.nvim";
|
||||||
|
version = "00aff9f";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "numToStr";
|
||||||
|
repo = "Comment.nvim";
|
||||||
|
rev = "00aff9f0fb75328c686a8484cd090ad72c355cb1";
|
||||||
|
sha256 = "l84IFDOiqfPBdWxKbp51JJZZG6iTv/uBHtV5vFHU+gc=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/numToStr/Comment.nvim";
|
||||||
|
};
|
||||||
|
nvim-treesitter-textobjects = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-treesitter-textobjects";
|
||||||
|
version = "eb8ff2f";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-treesitter";
|
||||||
|
repo = "nvim-treesitter-textobjects";
|
||||||
|
rev = "eb8ff2f55915a0b02167315e72fe7f60cbd7f16d";
|
||||||
|
sha256 = "R5ie5E+AMCOTwYedXeIN0ltOxE9iKpAhwHd9X91TPRw=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects";
|
||||||
|
};
|
||||||
|
surround-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "surround.nvim";
|
||||||
|
version = "a21c3ee";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "blackCauldron7";
|
||||||
|
repo = "surround.nvim";
|
||||||
|
rev = "a21c3eeee2f139d20694ff70135b3557cadece1c";
|
||||||
|
sha256 = "U0Kz99O7Vi9OAIxSFnqOfVtlVRvHlX2ExhPZnG0KSnE=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/blackCauldron7/surround.nvim";
|
||||||
|
};
|
||||||
|
vim-matchup = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "vim-matchup";
|
||||||
|
version = "ef044ee";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "andymass";
|
||||||
|
repo = "vim-matchup";
|
||||||
|
rev = "ef044ee012baa01d6f4ad79a04eeb5edb5bc7d84";
|
||||||
|
sha256 = "HhNvaiVYR8sI4UItJVZDYodZjQYmV1ZJ0NmMDiN5DqY=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/andymass/vim-matchup";
|
||||||
|
};
|
||||||
|
undotree = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "undotree";
|
||||||
|
version = "bdd7153";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mbbill";
|
||||||
|
repo = "undotree";
|
||||||
|
rev = "bdd715338a3a0c82674153108a3deaf827d36cfb";
|
||||||
|
sha256 = "J4qQS000SJ/CTElLhpEV0dVXGQ5XRg6SnENtpQCExrw=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/mbbill/undotree";
|
||||||
|
};
|
||||||
|
lualine-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "lualine.nvim";
|
||||||
|
version = "d68631d";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvim-lualine";
|
||||||
|
repo = "lualine.nvim";
|
||||||
|
rev = "d68631d2c02bd31d937349d739c625cc81dd9ac1";
|
||||||
|
sha256 = "5DYBCXS+DLsoK5yNlcGVcKUYd/gbAOYuLIQbUVd2YGw=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvim-lualine/lualine.nvim";
|
||||||
|
};
|
||||||
|
nvim-bufferline-lua = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-bufferline.lua";
|
||||||
|
version = "463637a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "akinsho";
|
||||||
|
repo = "nvim-bufferline.lua";
|
||||||
|
rev = "463637a3ac86dcaacbcd47aa608f53aaad749696";
|
||||||
|
sha256 = "CBWRJiPYhNR86imNHt79P24uthMW09kRBQ53pCew8Fo=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua";
|
||||||
|
};
|
||||||
|
nvim-tree-lua = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-tree.lua";
|
||||||
|
version = "2e33b16";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "kyazdani42";
|
||||||
|
repo = "nvim-tree.lua";
|
||||||
|
rev = "2e33b1654384921ec1cc9656a2018744f3f1ce81";
|
||||||
|
sha256 = "VFiZJt6vCzSyK1BL9UYYKj3nBKMrthiC0GR3mEhma5E=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua";
|
||||||
|
};
|
||||||
|
indent-blankline-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "indent-blankline.nvim";
|
||||||
|
version = "0f8df7e";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lukas-reineke";
|
||||||
|
repo = "indent-blankline.nvim";
|
||||||
|
rev = "0f8df7e43f0cae4c44e0e8383436ad602f333419";
|
||||||
|
sha256 = "8sELQ8TY3DN9V+pG6Li0wXb5/xe5uhPymL/JSAplWI4=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim";
|
||||||
|
};
|
||||||
|
virt-column-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "virt-column.nvim";
|
||||||
|
version = "7b013a2";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lukas-reineke";
|
||||||
|
repo = "virt-column.nvim";
|
||||||
|
rev = "7b013a2c873df8e1ec9412532b5ac7592d35a61d";
|
||||||
|
sha256 = "CmexkPZnguQc0597h1jWIgxrrUOOevQV7TXsLKSveIE=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/lukas-reineke/virt-column.nvim";
|
||||||
|
};
|
||||||
|
nvim-colorizer-lua = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-colorizer.lua";
|
||||||
|
version = "36c610a";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "norcalli";
|
||||||
|
repo = "nvim-colorizer.lua";
|
||||||
|
rev = "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6";
|
||||||
|
sha256 = "6YrnItxExL2C8pNIdLd+hXCjsB2MbZANwWkah6dreD8=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/norcalli/nvim-colorizer.lua";
|
||||||
|
};
|
||||||
|
gitsigns-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "gitsigns.nvim";
|
||||||
|
version = "5eb87a0";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lewis6991";
|
||||||
|
repo = "gitsigns.nvim";
|
||||||
|
rev = "5eb87a0b05914d3763277ebe257bd5bafcdde8cd";
|
||||||
|
sha256 = "jT01Opd/PEqXs80ZLCRqVcs0H28df+rNNp3n5wZ7lQk=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/lewis6991/gitsigns.nvim";
|
||||||
|
};
|
||||||
|
spellsitter-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "spellsitter.nvim";
|
||||||
|
version = "3b378cf";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "lewis6991";
|
||||||
|
repo = "spellsitter.nvim";
|
||||||
|
rev = "3b378cfb74dcdd159f52d6506401915f65c51fd5";
|
||||||
|
sha256 = "oFx5/IU3T8iHQY6lFnMBynyU8btQgn9cXyOR53C5E0o=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/lewis6991/spellsitter.nvim";
|
||||||
|
};
|
||||||
|
nvim-notify = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-notify";
|
||||||
|
version = "ef027e3";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "rcarriga";
|
||||||
|
repo = "nvim-notify";
|
||||||
|
rev = "ef027e34b618eac42fb0111c1db670ba01793039";
|
||||||
|
sha256 = "PBySkhxwqrVrUECsaqW6JXtDwfQXSwLn3xHcrESH0R0=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/rcarriga/nvim-notify";
|
||||||
|
};
|
||||||
|
nvim-visual-eof-lua = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "nvim-visual-eof.lua";
|
||||||
|
version = "3c001c6";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "LumaKernel";
|
||||||
|
repo = "nvim-visual-eof.lua";
|
||||||
|
rev = "3c001c6cda4db5bf62ba33344e61e30230acd9eb";
|
||||||
|
sha256 = "azT2Cv3G5/HHsu/PkW/vW0CmrnZ/T7Q6x9Mlypr6pFY=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/LumaKernel/nvim-visual-eof.lua";
|
||||||
|
};
|
||||||
|
vim-illuminate = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "vim-illuminate";
|
||||||
|
version = "2beae05";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "RRethy";
|
||||||
|
repo = "vim-illuminate";
|
||||||
|
rev = "2beae0581caa66cf8c09fad7c7c557f92d49d2bd";
|
||||||
|
sha256 = "GwuMmUZTGk0hlB1dqXGosNRua+Y8woR6SvqqoRI6LOM=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/RRethy/vim-illuminate";
|
||||||
|
};
|
||||||
|
FTerm-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "FTerm.nvim";
|
||||||
|
version = "0911ab9";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "numToStr";
|
||||||
|
repo = "FTerm.nvim";
|
||||||
|
rev = "0911ab93b488fdd8032e695ab56d14357e14e836";
|
||||||
|
sha256 = "MThp2SSzDbK3edKfOtnAHy2NCkuLQs3FCs6h5ox5bl0=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/numToStr/FTerm.nvim";
|
||||||
|
};
|
||||||
|
todo-comments-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "todo-comments.nvim";
|
||||||
|
version = "6570fd2";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "folke";
|
||||||
|
repo = "todo-comments.nvim";
|
||||||
|
rev = "6570fd271d17fec1966522f3a19cc6f4c88824c4";
|
||||||
|
sha256 = "1sRrDNQ8OuWcN/yKTIQ1It3UkUDfe2Ln9d2CCuR0xS4=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/folke/todo-comments.nvim";
|
||||||
|
};
|
||||||
|
editorconfig-vim = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
|
pname = "editorconfig-vim";
|
||||||
|
version = "3078cd1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "editorconfig";
|
||||||
|
repo = "editorconfig-vim";
|
||||||
|
rev = "3078cd10b28904e57d878c0d0dab42aa0a9fdc89";
|
||||||
|
sha256 = "HFHrm+V296IJh27yJW76DD09ehYc8hMxnnvR9+ddP2M=";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/editorconfig/editorconfig-vim";
|
||||||
|
};
|
||||||
|
}
|
50
programs/nvim/plugins.txt
Normal file
50
programs/nvim/plugins.txt
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
lewis6991/impatient.nvim
|
||||||
|
antoinemadec/FixCursorHold.nvim
|
||||||
|
delphinus/vim-auto-cursorline
|
||||||
|
folke/which-key.nvim
|
||||||
|
folke/tokyonight.nvim
|
||||||
|
Mofiqul/dracula.nvim
|
||||||
|
nvim-treesitter/nvim-treesitter
|
||||||
|
nvim-treesitter/playground
|
||||||
|
martinda/Jenkinsfile-vim-syntax
|
||||||
|
nvim-lua/popup.nvim
|
||||||
|
nvim-lua/plenary.nvim
|
||||||
|
nvim-telescope/telescope.nvim
|
||||||
|
nvim-telescope/telescope-fzf-native.nvim/make
|
||||||
|
ahmedkhalf/project.nvim
|
||||||
|
neovim/nvim-lspconfig
|
||||||
|
kyazdani42/nvim-web-devicons
|
||||||
|
folke/lsp-trouble.nvim
|
||||||
|
onsails/lspkind-nvim
|
||||||
|
nvim-lua/lsp-status.nvim
|
||||||
|
hrsh7th/nvim-cmp
|
||||||
|
hrsh7th/cmp-nvim-lsp
|
||||||
|
L3MON4D3/LuaSnip
|
||||||
|
saadparwaiz1/cmp_luasnip
|
||||||
|
hrsh7th/cmp-nvim-lua
|
||||||
|
hrsh7th/cmp-path
|
||||||
|
hrsh7th/cmp-buffer
|
||||||
|
ray-x/cmp-treesitter
|
||||||
|
hrsh7th/cmp-cmdline
|
||||||
|
hrsh7th/cmp-nvim-lsp-document-symbol
|
||||||
|
windwp/nvim-autopairs
|
||||||
|
windwp/nvim-ts-autotag
|
||||||
|
numToStr/Comment.nvim
|
||||||
|
nvim-treesitter/nvim-treesitter-textobjects
|
||||||
|
blackCauldron7/surround.nvim
|
||||||
|
andymass/vim-matchup
|
||||||
|
mbbill/undotree
|
||||||
|
nvim-lualine/lualine.nvim
|
||||||
|
akinsho/nvim-bufferline.lua
|
||||||
|
kyazdani42/nvim-tree.lua
|
||||||
|
lukas-reineke/indent-blankline.nvim
|
||||||
|
lukas-reineke/virt-column.nvim
|
||||||
|
norcalli/nvim-colorizer.lua
|
||||||
|
lewis6991/gitsigns.nvim
|
||||||
|
lewis6991/spellsitter.nvim
|
||||||
|
rcarriga/nvim-notify
|
||||||
|
LumaKernel/nvim-visual-eof.lua
|
||||||
|
RRethy/vim-illuminate
|
||||||
|
numToStr/FTerm.nvim
|
||||||
|
folke/todo-comments.nvim
|
||||||
|
editorconfig/editorconfig-vim
|
45
programs/nvim/update-plugins.sh
Executable file
45
programs/nvim/update-plugins.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell update-shell.nix -i bash
|
||||||
|
|
||||||
|
script_dir="$(dirname "$(realpath "$0")")"
|
||||||
|
plugins="${script_dir}/plugins.txt"
|
||||||
|
nix_new_file="${script_dir}/plugins_new.nix"
|
||||||
|
nix_file="${script_dir}/plugins.nix"
|
||||||
|
|
||||||
|
echo '# This file has been auto-generated' > "$nix_new_file"
|
||||||
|
echo '{ pkgs, ... }:' >> "$nix_new_file"
|
||||||
|
|
||||||
|
echo "{" >> "$nix_new_file"
|
||||||
|
while IFS='' read -r LINE || [ -n "${LINE}" ]; do
|
||||||
|
owner="$(echo "$LINE" | cut -d'/' -f1)"
|
||||||
|
repo="$(echo "$LINE" | cut -d'/' -f2)"
|
||||||
|
build="$(echo "$LINE" | cut -d'/' -f3)"
|
||||||
|
name="$(echo "$repo" | tr [.] '-')"
|
||||||
|
src="$(nix-prefetch-github --nix --no-fetch-submodules "$owner" "$repo" 2> /dev/null | tail -n +4)"
|
||||||
|
rev="$(echo "$src" | grep rev | cut -d '"' -f 2)"
|
||||||
|
|
||||||
|
echo "Updating ${owner}/${repo} ..."
|
||||||
|
|
||||||
|
echo "${name} = pkgs.vimUtils.buildVimPluginFrom2Nix {" >> "$nix_new_file"
|
||||||
|
echo "pname = \"${repo}\";" >> "$nix_new_file"
|
||||||
|
echo "version = \"${rev:0:7}\";" >> "$nix_new_file"
|
||||||
|
echo "src = ${src};" >> "$nix_new_file"
|
||||||
|
|
||||||
|
if [ -n "$build" ]; then
|
||||||
|
echo "buildPhase = \"${build}\";" >> "$nix_new_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "meta.homepage = \"https://github.com/${owner}/${repo}\";" >> "$nix_new_file"
|
||||||
|
echo '};' >> "$nix_new_file"
|
||||||
|
done < "$plugins"
|
||||||
|
echo "}" >> "$nix_new_file"
|
||||||
|
|
||||||
|
nixpkgs-fmt "$nix_new_file"
|
||||||
|
|
||||||
|
if test -f "$nix_file"; then
|
||||||
|
diff -U 4 "$nix_file" "$nix_new_file" | bat --paging=never -ldiff
|
||||||
|
mv "$nix_new_file" "$nix_file"
|
||||||
|
else
|
||||||
|
mv "$nix_new_file" "$nix_file"
|
||||||
|
bat --paging=never "$nix_file"
|
||||||
|
fi
|
9
programs/nvim/update-shell.nix
Normal file
9
programs/nvim/update-shell.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs ? import <nixpkgs> { } }:
|
||||||
|
|
||||||
|
pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
bat
|
||||||
|
nix-prefetch-github
|
||||||
|
nixpkgs-fmt
|
||||||
|
];
|
||||||
|
}
|
73
programs/starship.nix
Normal file
73
programs/starship.nix
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
add_newline = true;
|
||||||
|
|
||||||
|
cmd_duration = {
|
||||||
|
format = "\\[[ $duration]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
docker_context = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol$context]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
elixir = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version \\(OTP $otp_version\\))]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
erlang = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version)]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_branch = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol$branch]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
java = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version)]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix_shell = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol$state( \\($name\\))]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
nodejs = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version)]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
package = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol$version]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
php = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version)]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
python = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[\${symbol}\${pyenv_prefix}(\${version})(\\($virtualenv\\))]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
ruby = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "\\[[$symbol($version)]($style)\\]";
|
||||||
|
};
|
||||||
|
|
||||||
|
time = {
|
||||||
|
format = "\\[[$time]($style)\\]";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue