feat(neovim): migrate most vimscript to lua
This commit is contained in:
parent
09d1037a2a
commit
a102a8000b
|
@ -1,9 +0,0 @@
|
|||
nnoremap <leader>dc <cmd>lua require'dap'.continue()<CR>
|
||||
nnoremap <leader>db <cmd>lua require'dap'.toggle_breakpoint()<CR>
|
||||
nnoremap <leader>do <cmd>lua require'dap'.step_over()<CR>
|
||||
nnoremap <leader>di <cmd>lua require'dap'.step_into()<CR>
|
||||
nnoremap <leader>dO <cmd>lua require'dap'.step_out()<CR>
|
||||
nnoremap <leader>dh <cmd>lua require'dap'.goto()<CR>
|
||||
nnoremap <leader>dk <cmd>lua require'dap.ui.variables'.hover()<CR>
|
||||
nnoremap <leader>dr <cmd>lua require'dap'.repl.open()<CR>
|
||||
nnoremap <leader>dl <cmd>lua require'dap'.repl.run_last()<CR>
|
11
home/editors/neovim/dap/mappings.lua
Normal file
11
home/editors/neovim/dap/mappings.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
local map = vim.api.nvim_set_keymap
|
||||
|
||||
map("n", "<leader>dc", "<cmd>lua require'dap'.continue()<CR>", { noremap = true })
|
||||
map("n", "<leader>db", "<cmd>lua require'dap'.toggle_breakpoint()<CR>", { noremap = true })
|
||||
map("n", "<leader>do", "<cmd>lua require'dap'.step_over()<CR>", { noremap = true })
|
||||
map("n", "<leader>di", "<cmd>lua require'dap'.step_into()<CR>", { noremap = true })
|
||||
map("n", "<leader>dO", "<cmd>lua require'dap'.step_out()<CR>", { noremap = true })
|
||||
map("n", "<leader>dh", "<cmd>lua require'dap'.goto()<CR>", { noremap = true })
|
||||
map("n", "<leader>dk", "<cmd>lua require'dap.ui.variables'.hover()<CR>", { noremap = true })
|
||||
map("n", "<leader>dr", "<cmd>lua require'dap'.repl.open()<CR>", { noremap = true })
|
||||
map("n", "<leader>dl", "<cmd>lua require'dap'.repl.run_last()<CR>", { noremap = true })
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
vimLua = lua: ''
|
||||
|
@ -20,6 +20,7 @@ in {
|
|||
fzf-vim
|
||||
lightline-vim
|
||||
nerdtree
|
||||
toggleterm-nvim
|
||||
vim-startify
|
||||
vim-visual-multi
|
||||
vim-surround
|
||||
|
@ -55,12 +56,21 @@ in {
|
|||
vim-orgmode
|
||||
];
|
||||
extraConfig = with builtins;
|
||||
readFile ./init.vim # + readFile ./vim-surround-fix.vim
|
||||
+ vimLua (readFile ./which-key.lua) + vimLua (readFile ./gitsigns.lua)
|
||||
+ readFile ./test.vim + vimLua (readFile ./lsp/extensions.lua)
|
||||
+ readFile ./lsp/lsp.vim + vimLua (readFile ./lsp/lsp.lua)
|
||||
+ readFile ./dap/dap.vim + vimLua (readFile ./dap/dap.lua)
|
||||
+ vimLua (readFile ./treesitter.lua);
|
||||
# readFile ./vim-surround-fix.vim +
|
||||
vimLua (lib.foldl (r: f: r + "\n" + readFile f) "" [
|
||||
./init.lua
|
||||
./startify.lua
|
||||
./lightline.lua
|
||||
./which-key.lua
|
||||
./gitsigns.lua
|
||||
./test.lua
|
||||
./lsp/extensions.lua
|
||||
./lsp/lsp.lua
|
||||
./lsp/mappings.lua
|
||||
./dap/dap.lua
|
||||
./dap/mappings.lua
|
||||
./treesitter.lua
|
||||
]);
|
||||
withNodeJs = false;
|
||||
withPython3 = false;
|
||||
};
|
||||
|
|
48
home/editors/neovim/init.lua
Normal file
48
home/editors/neovim/init.lua
Normal file
|
@ -0,0 +1,48 @@
|
|||
-- vim.opt.shell = "/bin/sh"
|
||||
|
||||
vim.opt.title = true
|
||||
vim.opt.titlestring = "%t - nvim"
|
||||
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.timeoutlen = 500
|
||||
|
||||
-- reduce CursorHold delay
|
||||
vim.opt.updatetime = 500
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
vim.g.camelcasemotion_key = "<leader>"
|
||||
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
vim.g.nvcode_termcolors = 256
|
||||
vim.cmd("syntax on")
|
||||
vim.cmd("colorscheme nvcode")
|
||||
vim.cmd("hi TSCurrentScope guifg=NONE ctermfg=NONE guibg=#252526 ctermbg=235 gui=NONE cterm=NONE")
|
||||
|
||||
-- vim-closetag
|
||||
vim.g.closetag_filenames = "*.html,*.jsx,*.tsx,*.vue,*.xhml,*.xml"
|
||||
vim.g.closetag_regions = {
|
||||
["typescript.tsx"] = "jsxRegion,tsxRegion",
|
||||
["javascript.jsx"] = "jsxRegion",
|
||||
}
|
||||
|
||||
local map = vim.api.nvim_set_keymap
|
||||
|
||||
map("", ";", ":Files<CR>", {})
|
||||
map("n", "<C-p>", ":NERDTreeToggle<CR>", {})
|
||||
-- map("n", "<C-p>" ":Lexplore<CR>", { silent = true })
|
||||
|
||||
vim.g.netrw_banner = 0
|
||||
vim.g.netrw_liststyle = 3
|
||||
vim.g.netrw_browse_split = 4
|
||||
vim.g.netrw_altv = 1
|
||||
vim.g.netrw_winsize = 20
|
||||
|
||||
require("toggleterm").setup{
|
||||
open_mapping = "<A-t>",
|
||||
}
|
|
@ -1,144 +0,0 @@
|
|||
" set shell=/bin/sh
|
||||
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
set termguicolors
|
||||
set timeoutlen=500
|
||||
|
||||
" reduce CursorHold delay
|
||||
set updatetime=500
|
||||
|
||||
let g:nvcode_termcolors=256
|
||||
syntax on
|
||||
colorscheme nvcode
|
||||
hi TSCurrentScope guifg=NONE ctermfg=NONE guibg=#252526 ctermbg=235 gui=NONE cterm=NONE
|
||||
|
||||
function! s:gitModified()
|
||||
let files = systemlist('git ls-files -m 2>/dev/null')
|
||||
return map(files, "{'line': v:val, 'path': v:val}")
|
||||
endfunction
|
||||
|
||||
function! s:gitUntracked()
|
||||
let files = systemlist('git ls-files -o --exclude-standard 2>/dev/null')
|
||||
return map(files, "{'line': v:val, 'path': v:val}")
|
||||
endfunction
|
||||
|
||||
function! s:list_projects() abort
|
||||
return map(['/etc/nixos/'] + finddir('.git', $HOME . '/dev/**4', -1),
|
||||
\ {_, dir -> {
|
||||
\ 'line': fnamemodify(dir, ':h:s?' . $HOME . '??'),
|
||||
\ 'path': fnamemodify(dir, ':h')}})
|
||||
endfunction
|
||||
|
||||
let g:startify_commands = [
|
||||
\ {'h': ['Vim Help', 'help']},
|
||||
\ {'r': ['Vim Reference', 'help reference']},
|
||||
\ ]
|
||||
|
||||
let g:startify_lists = [
|
||||
\ { 'header': [' Sessions'], 'type': 'sessions' },
|
||||
\ { 'header': [' git modified'], 'type': function('s:gitModified') },
|
||||
\ { 'header': [' git untracked'], 'type': function('s:gitUntracked') },
|
||||
\ { 'header': [' Projects'], 'type': function('s:list_projects') },
|
||||
\ { 'header': [' Recent files'], 'type': 'files' },
|
||||
\ { 'header': [' Commands'], 'type': 'commands' },
|
||||
\ ]
|
||||
|
||||
let mapleader=" "
|
||||
let maplocalleader=","
|
||||
let g:camelcasemotion_key = '<leader>'
|
||||
|
||||
function! LspStatus() abort
|
||||
let sl = ''
|
||||
if luaeval('not vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
|
||||
let errors = luaeval("#vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })")
|
||||
let warnings = luaeval("#vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })")
|
||||
let infos = luaeval("#vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })")
|
||||
let hints = luaeval("#vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })")
|
||||
if (errors || warnings || infos || hints)
|
||||
if errors
|
||||
let sl .= 'E' . errors
|
||||
endif
|
||||
if warnings
|
||||
let sl .= ' W' . warnings
|
||||
endif
|
||||
if infos
|
||||
let sl .= ' I' . infos
|
||||
endif
|
||||
if hints
|
||||
let sl .= ' H' . hints
|
||||
endif
|
||||
else
|
||||
let sl .= '🗸'
|
||||
endif
|
||||
endif
|
||||
return trim(sl)
|
||||
endfunction
|
||||
|
||||
function! GitStatus()
|
||||
return get(b:,'gitsigns_status','')
|
||||
endfunction
|
||||
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'powerline',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ],
|
||||
\ [ 'lspstatus', 'readonly', 'filename', 'gitstatus', 'modified' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'lspstatus': 'LspStatus',
|
||||
\ 'gitstatus': 'GitStatus'
|
||||
\ },
|
||||
\ }
|
||||
|
||||
set relativenumber
|
||||
set splitbelow
|
||||
|
||||
map ; :Files<CR>
|
||||
nmap <C-p> :NERDTreeToggle<CR>
|
||||
" nmap <silent> <C-p> :Lexplore<CR>
|
||||
|
||||
let g:netrw_banner = 0
|
||||
let g:netrw_liststyle = 3
|
||||
let g:netrw_browse_split = 4
|
||||
let g:netrw_altv = 1
|
||||
let g:netrw_winsize = 20
|
||||
|
||||
" Terminal Function
|
||||
let g:term_buf = 0
|
||||
let g:term_win = 0
|
||||
function! TermToggle(height)
|
||||
if win_gotoid(g:term_win)
|
||||
hide
|
||||
else
|
||||
botright new
|
||||
exec "resize " . a:height
|
||||
try
|
||||
exec "buffer " . g:term_buf
|
||||
catch
|
||||
call termopen($SHELL, {"detach": 0})
|
||||
let g:term_buf = bufnr("")
|
||||
set nonumber
|
||||
set norelativenumber
|
||||
set signcolumn=no
|
||||
endtry
|
||||
startinsert!
|
||||
let g:term_win = win_getid()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Toggle terminal on/off (neovim)
|
||||
nnoremap <A-t> :call TermToggle(12)<CR>
|
||||
inoremap <A-t> <Esc>:call TermToggle(12)<CR>
|
||||
tnoremap <A-t> <C-\><C-n>:call TermToggle(12)<CR>
|
||||
|
||||
" Terminal go back to normal mode
|
||||
tnoremap :q! <C-\><C-n>:q!<CR>
|
||||
|
||||
" vim-closetag
|
||||
let g:closetag_filenames = "*.html,*.jsx,*.tsx,*.vue,*.xhml,*.xml"
|
||||
let g:closetag_regions = {
|
||||
\ 'typescript.tsx': 'jsxRegion,tsxRegion',
|
||||
\ 'javascript.jsx': 'jsxRegion',
|
||||
\ }
|
54
home/editors/neovim/lightline.lua
Normal file
54
home/editors/neovim/lightline.lua
Normal file
|
@ -0,0 +1,54 @@
|
|||
function LspStatus()
|
||||
local sl = ""
|
||||
if not vim.tbl_isempty(vim.lsp.buf_get_clients(0)) then
|
||||
local errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
|
||||
local warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
|
||||
local infos = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
|
||||
local hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
|
||||
if (errors > 0 or warnings > 0 or infos > 0 or hints > 0) then
|
||||
if errors > 0 then
|
||||
sl = sl .. "E" .. errors
|
||||
end
|
||||
if warnings > 0 then
|
||||
sl = sl .. " W" .. warnings
|
||||
end
|
||||
if infos > 0 then
|
||||
sl = sl .. " I" .. infos
|
||||
end
|
||||
if hints > 0 then
|
||||
sl = sl .. " H" .. hints
|
||||
end
|
||||
else
|
||||
sl = sl .. "🗸"
|
||||
end
|
||||
end
|
||||
return sl
|
||||
end
|
||||
|
||||
function GitStatus()
|
||||
local status = vim.b.gitsigns_status
|
||||
return status ~= nil and status or ""
|
||||
end
|
||||
|
||||
vim.g.lightline = {
|
||||
colorscheme = "powerline",
|
||||
active = {
|
||||
left = {
|
||||
{ "mode", "paste" },
|
||||
{ "lspstatus", "readonly", "filename", "gitstatus", "modified" },
|
||||
},
|
||||
},
|
||||
component_expand = {
|
||||
lspstatus = "{ -> luaeval('LspStatus()')}",
|
||||
gitstatus = "{ -> luaeval('GitStatus()')}",
|
||||
},
|
||||
}
|
||||
|
||||
-- update on lsp status changes
|
||||
vim.cmd([[
|
||||
augroup lightline_diagnostics
|
||||
autocmd!
|
||||
autocmd User LspProgressUpdate call lightline#update()
|
||||
autocmd DiagnosticChanged * call lightline#update()
|
||||
augroup END
|
||||
]])
|
|
@ -1,4 +1,18 @@
|
|||
local config = require'lspconfig'
|
||||
-- autocomplete config
|
||||
vim.opt.completeopt="menuone,noinsert"
|
||||
vim.opt.shortmess:append("c")
|
||||
|
||||
require'compe'.setup {
|
||||
enabled = true,
|
||||
preselect = "always",
|
||||
allow_prefix_unmatch = true,
|
||||
source = {
|
||||
path = true,
|
||||
calc = true,
|
||||
nvim_lsp = true,
|
||||
vsnip = true,
|
||||
},
|
||||
}
|
||||
|
||||
local pid = vim.fn.getpid()
|
||||
|
||||
|
@ -21,6 +35,8 @@ end
|
|||
require('lspfuzzy').setup {}
|
||||
|
||||
-- enable lsp snippets for nvim-compe
|
||||
|
||||
local config = require'lspconfig'
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
local servers = {
|
||||
|
@ -32,6 +48,7 @@ local servers = {
|
|||
"dockerls",
|
||||
"rnix",
|
||||
"tsserver",
|
||||
"graphql",
|
||||
"pylsp",
|
||||
"terraformls",
|
||||
"hls",
|
||||
|
@ -222,7 +239,7 @@ config.diagnosticls.setup {
|
|||
}
|
||||
|
||||
-- nvim-autoclose & nvim-compe compatibility
|
||||
local remap = vim.api.nvim_set_keymap
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local npairs = require('nvim-autopairs')
|
||||
|
||||
npairs.setup({
|
||||
|
@ -244,4 +261,4 @@ MUtils.completion_confirm=function()
|
|||
end
|
||||
end
|
||||
|
||||
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
|
||||
map('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
" autocomplete config
|
||||
set completeopt=menuone,noinsert
|
||||
set shortmess+=c
|
||||
|
||||
let g:compe = {}
|
||||
let g:compe.enabled = v:true
|
||||
let g:compe.preselect = 'always'
|
||||
let g:compe.allow_prefix_unmatch = v:true
|
||||
let g:compe.source = {}
|
||||
let g:compe.source.path = v:true
|
||||
let g:compe.source.calc = v:true
|
||||
let g:compe.source.nvim_lsp = v:true
|
||||
let g:compe.source.vsnip = v:true
|
||||
|
||||
inoremap <silent><expr> <C-Space> compe#complete()
|
||||
inoremap <silent><expr> <CR> compe#confirm('<CR>')
|
||||
inoremap <silent><expr> <C-e> compe#close('<C-e>')
|
||||
inoremap <silent><expr> <C-f> compe#scroll({ 'delta': +4 })
|
||||
inoremap <silent><expr> <C-d> compe#scroll({ 'delta': -4 })
|
||||
|
||||
" Use <Tab> and <S-Tab> to navigate through popup menu
|
||||
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
||||
|
||||
" maps
|
||||
nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>
|
||||
nnoremap <silent> gp <cmd>lua peek_definition()<CR>
|
||||
nnoremap <silent> gy <cmd>lua vim.lsp.buf.type_definition()<CR>
|
||||
nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR>
|
||||
nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR>
|
||||
nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>
|
||||
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
|
||||
nnoremap <silent> <c-k> <cmd>lua vim.lsp.buf.signature_help()<CR>
|
||||
nnoremap <silent> <leader>sd <cmd>lua vim.lsp.buf.document_symbol()<CR>
|
||||
nnoremap <silent> <leader>sw <cmd>lua vim.lsp.buf.workspace_symbol()<CR>
|
||||
nnoremap <silent> <leader>f <cmd>lua vim.lsp.buf.formatting_seq_sync(nil, nil, { 'tsserver', 'diagnosticls' })<CR>
|
||||
nnoremap <silent> <leader>a <cmd>lua vim.lsp.buf.code_action()<CR>
|
||||
nnoremap <silent> <leader>r <cmd>lua vim.lsp.buf.rename()<CR>
|
||||
nnoremap <silent> <leader>i <cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
|
||||
nnoremap <silent> <leader>q <cmd>lua vim.lsp.diagnostic.set_loclist()<CR>
|
||||
nnoremap <silent> [d <cmd>lua vim.lsp.diagnostic.goto_prev()<CR>
|
||||
nnoremap <silent> ]d <cmd>lua vim.lsp.diagnostic.goto_next()<CR>
|
30
home/editors/neovim/lsp/mappings.lua
Normal file
30
home/editors/neovim/lsp/mappings.lua
Normal file
|
@ -0,0 +1,30 @@
|
|||
local map = vim.api.nvim_set_keymap
|
||||
|
||||
map("i", "<C-Space>", "compe#complete()", { noremap = true, expr = true, silent = true })
|
||||
map("i", "<CR>", "compe#confirm('<CR>')", { noremap = true, expr = true, silent = true })
|
||||
map("i", "<C-e>", "compe#close('<C-e>')", { noremap = true, expr = true, silent = true })
|
||||
map("i", "<C-f>", "compe#scroll({ 'delta': +4 })", { noremap = true, expr = true, silent = true })
|
||||
map("i", "<C-d>", "compe#scroll({ 'delta': -4 })", { noremap = true, expr = true, silent = true })
|
||||
|
||||
-- Use <Tab> and <S-Tab> to navigate through popup menu
|
||||
map("i", "<Tab>", "pumvisible() ? '<C-n>' : '<Tab>'", { noremap = true, expr = true })
|
||||
map("i", "<S-Tab>", "pumvisible() ? '<C-p>' : '<S-Tab>'", { noremap = true, expr = true })
|
||||
|
||||
-- maps
|
||||
map("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", { noremap = true, silent = true })
|
||||
map("n", "gp", "<cmd>lua peek_definition()<CR>", { noremap = true, silent = true })
|
||||
map("n", "gy", "<cmd>lua vim.lsp.buf.type_definition()<CR>", { noremap = true, silent = true })
|
||||
map("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", { noremap = true, silent = true })
|
||||
map("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", { noremap = true, silent = true })
|
||||
map("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", { noremap = true, silent = true })
|
||||
map("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<c-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>sd", "<cmd>lua vim.lsp.buf.document_symbol()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>sw", "<cmd>lua vim.lsp.buf.workspace_symbol()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>f", "<cmd>lua vim.lsp.buf.formatting_seq_sync(nil, nil, { 'tsserver', 'diagnosticls' })<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>a", "<cmd>lua vim.lsp.buf.code_action()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>r", "<cmd>lua vim.lsp.buf.rename()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>i", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", { noremap = true, silent = true })
|
||||
map("n", "<leader>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", { noremap = true, silent = true })
|
||||
map("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", { noremap = true, silent = true })
|
||||
map("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", { noremap = true, silent = true })
|
49
home/editors/neovim/startify.lua
Normal file
49
home/editors/neovim/startify.lua
Normal file
|
@ -0,0 +1,49 @@
|
|||
local function formatDirs(files)
|
||||
local results = {}
|
||||
for _, file in ipairs(files) do
|
||||
table.insert(results, { line = file, path = file })
|
||||
end
|
||||
return results
|
||||
end
|
||||
|
||||
local function gitModified()
|
||||
local files = vim.fn.systemlist("git ls-files -m 2>/dev/null")
|
||||
return formatDirs(files)
|
||||
end
|
||||
|
||||
local function gitUntracked()
|
||||
local files = vim.fn.systemlist("git ls-files -o --exclude-standard 2>/dev/null")
|
||||
return formatDirs(files)
|
||||
end
|
||||
|
||||
local function escapePattern(text)
|
||||
return text:gsub("([^%w])", "%%%1")
|
||||
end
|
||||
|
||||
local function listProjects()
|
||||
local gitDirs = vim.fn.finddir(".git", vim.env.HOME .. "/dev/**4", -1)
|
||||
table.insert(gitDirs, 1, "/etc/nixos")
|
||||
return vim.fn.map(gitDirs, function(_, gitDir)
|
||||
local dir = gitDir:gsub(escapePattern(".git"), "")
|
||||
dir = dir == "" and "." or dir
|
||||
local line = dir:gsub(escapePattern(vim.env.HOME), "~")
|
||||
return {
|
||||
line = line,
|
||||
path = dir,
|
||||
} end
|
||||
)
|
||||
end
|
||||
|
||||
vim.g.startify_commands = {
|
||||
{h = {"Vim Help", "help"}},
|
||||
{r = {"Vim Reference", "help reference"}},
|
||||
}
|
||||
|
||||
vim.g.startify_lists = {
|
||||
{ header = {" Sessions"}, type = "sessions" },
|
||||
{ header = {" git modified"}, type = gitModified },
|
||||
{ header = {" git untracked"}, type = gitUntracked },
|
||||
{ header = {" Projects"}, type = listProjects },
|
||||
{ header = {" Recent files"}, type = "files" },
|
||||
{ header = {" Commands"}, type = "commands" },
|
||||
}
|
3
home/editors/neovim/test.lua
Normal file
3
home/editors/neovim/test.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
vim.g["test#strategy"] = "neovim"
|
||||
vim.g["test#csharp#runner"] = "dotnettest"
|
||||
-- vim.g["test#csharp#dotnettest#options"] = "-v q"
|
|
@ -1,3 +0,0 @@
|
|||
let g:test#strategy = 'neovim'
|
||||
let g:test#csharp#runner = 'dotnettest'
|
||||
" let test#csharp#dotnettest#options = '-v q'
|
Loading…
Reference in a new issue