Modularice diagnostico, statuscolumn, tabbar, y mejore statusbar para que funcione siempre con o sin iconos. Borre cosas viejas o que ya no se usaban.
This commit is contained in:
parent
186dd8672a
commit
1458e6aebc
|
@ -6,16 +6,16 @@ marks : /home/corpse/.config/fzf-marks
|
|||
mpv : /home/corpse/.config/mpv/mpv.conf
|
||||
dunst : /home/corpse/.config/dunst/dunstrc
|
||||
lfview : /home/corpse/.local/bin/lfview
|
||||
git : /home/corpse/.config/git/config
|
||||
correo : /home/corpse/.config/neomutt
|
||||
keys : /home/corpse/.config/sxhkd/sxhkdrc
|
||||
zsh : /home/corpse/.config/zsh
|
||||
alias : /home/corpse/.config/zsh/conf/03_aliases.zsh
|
||||
polybar : /home/corpse/.config/polybar/config
|
||||
xinit : /home/corpse/.config/X11/xinitrc
|
||||
terminal : /home/corpse/.config/alacritty.yml
|
||||
tmux : /home/corpse/.config/tmux/tmux.conf
|
||||
bspwm : /home/corpse/.config/bspwm/bspwmrc
|
||||
zshenv : /home/corpse/.zshenv
|
||||
nvim : /home/corpse/.config/nvim
|
||||
lf : /home/corpse/.config/lf/lfrc
|
||||
git : /home/corpse/.config/git/config
|
||||
nvim : /home/corpse/.config/nvim
|
||||
alias : /home/corpse/.config/zsh/conf/03_aliases.zsh
|
||||
zshenv : /home/corpse/.zshenv
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
autocrlf = input
|
||||
whitespace = warn
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
attributesFile = ~/.config/git/gitattributes
|
||||
pager = "{ \
|
||||
COLUMNS=$(tput cols); \
|
||||
if [ $COLUMNS -ge 80 ] && [ -z $FZF_PREVIEW_COLUMNS ]; then \
|
||||
|
@ -73,7 +74,7 @@
|
|||
conflictstyle = diff3
|
||||
|
||||
[mergetool "nvimerge"]
|
||||
cmd = nvim -d \"$LOCAL\" \"$MERGED\" \"$BASE\" \"$REMOTE\" -c \"wincmd w\" -c \"wincmd J\"
|
||||
cmd = nvim --cmd \":lua vim.g.noplugins=1\" -d \"$LOCAL\" \"$MERGED\" \"$BASE\" \"$REMOTE\" -c \"wincmd w\" -c \"wincmd J\"
|
||||
|
||||
[mergetool]
|
||||
prompt = false
|
||||
|
@ -88,7 +89,7 @@
|
|||
compactionHeuristic = true
|
||||
|
||||
[difftool "nvimdiff"]
|
||||
cmd = nvim -d \"$LOCAL\" \"$REMOTE\" -c \"wincmd w\" -c \"wincmd L\"
|
||||
cmd = nvim --cmd \":lua vim.g.noplugins=1\" -d \"$LOCAL\" \"$REMOTE\" -c \"wincmd w\" -c \"wincmd L\"
|
||||
trustexitcode = true
|
||||
|
||||
[commit]
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
au BufRead,BufNewFile *.rpy set filetype=renpy
|
|
@ -1,3 +0,0 @@
|
|||
vim.wo.number = false
|
||||
vim.wo.relativenumber = false
|
||||
vim.wo.signcolumn = 'no'
|
|
@ -1,5 +0,0 @@
|
|||
vim.wo.list = false
|
||||
vim.bo.expandtab = false
|
||||
vim.bo.shiftwidth = 2
|
||||
vim.bo.tabstop = 2
|
||||
vim.bo.bufhidden = 'delete'
|
|
@ -1,5 +0,0 @@
|
|||
vim.opt.shiftwidth = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.textwidth = 120
|
||||
vim.opt.formatoptions = vim.opt.formatoptions - 'o'
|
|
@ -1,8 +0,0 @@
|
|||
vim.bo.textwidth = 80
|
||||
vim.wo.conceallevel = 2
|
||||
vim.opt_local.shiftwidth = 2
|
||||
|
||||
-- SPELL
|
||||
vim.opt_local.spell = true
|
||||
vim.bo.spelllang = 'en_us'
|
||||
vim.keymap.set('i', '<M-l>', '<C-g>u<Esc>[s1z=`]a<C-g>u', { buffer = true, desc = 'Fix Last Miss-Spelling' })
|
|
@ -1,2 +0,0 @@
|
|||
vim.wo.relativenumber = false
|
||||
vim.wo.signcolumn = 'no'
|
|
@ -1,23 +0,0 @@
|
|||
" ftplugin/rasi.vim
|
||||
|
||||
" Vim Plugin: {{{1
|
||||
" File: rasi.vim
|
||||
" Author: Marco Cantoro <marco.cantoro92@outlook.it>
|
||||
" Description: Rofi Advanced Style Information
|
||||
" Last Modified: 2020-11-09
|
||||
" }}}
|
||||
|
||||
" File Type Plugin Guards: {{{1
|
||||
if exists('g:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
" }}}
|
||||
|
||||
" Filetype Options: {{{1
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal iskeyword+=-
|
||||
" }}}
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo< spell< fdm< ts< sts< et< sw< tw< "
|
|
@ -1,19 +0,0 @@
|
|||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl et< sts< fo< com< cms< inc<"
|
||||
|
||||
" Make sure a hard tab is used, required for most make programs
|
||||
setlocal noexpandtab softtabstop=0
|
||||
|
||||
" Set 'formatoptions' to break comment lines but not other lines,
|
||||
" and insert the comment leader when hitting <CR> or using "o".
|
||||
setlocal fo-=t fo+=croql
|
||||
|
||||
" Set 'comments' to format dashed lists in comments
|
||||
setlocal com=sO:#\ -,mO:#\ \ ,b:#
|
||||
|
||||
" Set 'commentstring' to put the marker after a #.
|
||||
setlocal commentstring=#\ %s
|
|
@ -1,41 +0,0 @@
|
|||
-- Basic Options
|
||||
vim.wo.spell = true
|
||||
vim.bo.expandtab = false
|
||||
vim.bo.smartindent = false
|
||||
vim.bo.textwidth = 80
|
||||
vim.wo.colorcolumn = "80"
|
||||
vim.bo.spelllang = "es,cjk"
|
||||
vim.bo.complete = "kspell"
|
||||
|
||||
-- Spellcheck
|
||||
vim.keymap.set("n", "<F7>", "[s", { silent = true, buffer = true })
|
||||
vim.keymap.set("n", "<F8>", "]s", { silent = true, buffer = true })
|
||||
vim.keymap.set("n", "<F9>", "z=1<CR><CR>", { silent = true, buffer = true })
|
||||
vim.keymap.set("n", "<F10>", "z=", { silent = true, buffer = true })
|
||||
vim.keymap.set("i", "<C-l>", "<C-g>u<Esc>[s1z=`]a<C-g>u", { buffer = true, desc = "Fix Last Miss-Spelling" })
|
||||
|
||||
-- Abbreviations
|
||||
vim.cmd("iabbrev <buffer> _- –")
|
||||
vim.cmd("iabbrev <buffer> -- —")
|
||||
vim.cmd("iabbrev <buffer> << «")
|
||||
vim.cmd("iabbrev <buffer> >> »")
|
||||
vim.cmd("iabbrev <buffer> __ …")
|
||||
vim.cmd("iabbrev <buffer> qq “")
|
||||
vim.cmd("iabbrev <buffer> QQ ”")
|
||||
|
||||
-- Formatting
|
||||
vim.api.nvim_create_augroup("Pencil", { clear = true })
|
||||
vim.api.nvim_create_autocmd("InsertEnter", {
|
||||
callback = function()
|
||||
vim.bo.formatoptions = "awt1p"
|
||||
end,
|
||||
group = "Pencil",
|
||||
buffer = 0,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("InsertLeave", {
|
||||
callback = function()
|
||||
vim.bo.formatoptions = "wt1p"
|
||||
end,
|
||||
group = "Pencil",
|
||||
buffer = 0,
|
||||
})
|
|
@ -1,31 +0,0 @@
|
|||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetIndentSXHKD()
|
||||
|
||||
" Only define the function once:
|
||||
if exists("*GetIndentSXHKD")
|
||||
finish
|
||||
endif
|
||||
|
||||
function GetIndentSXHKD()
|
||||
" Find a non-blank line above the current line:
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
|
||||
" No indent for the start of the file:
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prev_line = getline(lnum)
|
||||
if prev_line =~ '^\s*#'
|
||||
return 0
|
||||
elseif prev_line =~ '\v^\s+'
|
||||
return 0
|
||||
else
|
||||
return &sw
|
||||
endif
|
||||
endfunction
|
|
@ -1,19 +0,0 @@
|
|||
require('nvim-autopairs').setup {
|
||||
disable_filetype = { 'TelescopePrompt', 'text', 'mail' },
|
||||
check_ts = true,
|
||||
ts_config = {
|
||||
lua = { 'string', 'source' }, -- it will not add pair on that treesitter node
|
||||
javascript = { 'string', 'template_string' },
|
||||
},
|
||||
fast_wrap = {
|
||||
map = '<M-e>',
|
||||
chars = { '{', '[', '(', '"', "'" },
|
||||
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], '%s+', ''),
|
||||
offset = 0, -- Offset from pattern match
|
||||
end_key = '$',
|
||||
keys = 'qwertyuiopzxcvbnmasdfghjkl',
|
||||
check_comma = true,
|
||||
highlight = 'Search',
|
||||
highlight_grey = 'Comment',
|
||||
},
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
-- nvim-cmp setup
|
||||
local cmp = require 'cmp'
|
||||
local luasnip = require 'luasnip'
|
||||
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
||||
|
||||
cmp.setup {
|
||||
enabled = function()
|
||||
if
|
||||
vim.api.nvim_buf_get_option(0, 'buftype') == 'prompt'
|
||||
or vim.api.nvim_buf_get_option(0, 'filetype') == 'text'
|
||||
or vim.api.nvim_buf_get_option(0, 'filetype') == 'mail'
|
||||
or require('cmp.config.context').in_syntax_group 'Comment'
|
||||
then
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end,
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping(function(_)
|
||||
return vim.fn.pumvisible() == 1 and cmp.close() or cmp.complete()
|
||||
end),
|
||||
['<C-e>'] = cmp.mapping {
|
||||
i = cmp.mapping.abort(),
|
||||
c = cmp.mapping.close(),
|
||||
},
|
||||
['<CR>'] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
},
|
||||
window = {
|
||||
documentation = {
|
||||
border = { '┌', '─', '┐', '│', '┘', '─', '└', '│' },
|
||||
winhighlight = 'Normal:CmpPmenu,FloatBorder:CmpPmenuBorder,CursorLine:PmenuSel,Search:None',
|
||||
side_padding = 1,
|
||||
},
|
||||
completion = {
|
||||
winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,Search:None',
|
||||
col_offset = -3,
|
||||
side_padding = 0,
|
||||
},
|
||||
},
|
||||
formatting = {
|
||||
fields = { 'kind', 'abbr', 'menu' },
|
||||
format = function(entry, vim_item)
|
||||
local kind = require('lspkind').cmp_format { maxwidth = 50, mode = 'symbol_text' }(entry, vim_item)
|
||||
local strings = vim.split(kind.kind, '%s', { trimempty = true })
|
||||
kind.kind = ' ' .. strings[1] .. ' '
|
||||
kind.menu = ' (' .. strings[2] .. ')'
|
||||
return kind
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'nvim_lua' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'buffer', keyword_length = 5 },
|
||||
{ name = 'path' },
|
||||
},
|
||||
}
|
||||
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done { map_char = { tex = '' } })
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'path' },
|
||||
},
|
||||
})
|
|
@ -1,58 +0,0 @@
|
|||
require('gitsigns').setup {
|
||||
numhl = true,
|
||||
signcolumn = false,
|
||||
on_attach = function(bufnr)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
-- Navigation
|
||||
map('n', '}c', function()
|
||||
if vim.wo.diff then
|
||||
return '}c'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.next_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true })
|
||||
|
||||
map('n', '{c', function()
|
||||
if vim.wo.diff then
|
||||
return '{c'
|
||||
end
|
||||
vim.schedule(function()
|
||||
gs.prev_hunk()
|
||||
end)
|
||||
return '<Ignore>'
|
||||
end, { expr = true })
|
||||
|
||||
-- Actions
|
||||
map({ 'n', 'v' }, '<leader>gs', ':Gitsigns stage_hunk<CR>')
|
||||
map({ 'n', 'v' }, '<leader>gr', ':Gitsigns reset_hunk<CR>')
|
||||
map('n', '<leader>gS', gs.stage_buffer)
|
||||
map('n', '<leader>gu', gs.undo_stage_hunk)
|
||||
map('n', '<leader>gr', gs.reset_buffer)
|
||||
map('n', '<leader>gp', gs.preview_hunk)
|
||||
map('n', '<leader>gb', function()
|
||||
gs.blame_line { full = true }
|
||||
end)
|
||||
map('n', '<leader>tb', gs.toggle_current_line_blame)
|
||||
map('n', '<leader>gd', gs.diffthis)
|
||||
map('n', '<leader>gD', function()
|
||||
gs.diffthis '~'
|
||||
end)
|
||||
map('n', '<leader>td', gs.toggle_deleted)
|
||||
|
||||
-- Text object
|
||||
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||
end,
|
||||
}
|
||||
vim.keymap.set('n', 'gh', ':diffget //2<CR>')
|
||||
vim.keymap.set('n', 'gl', ':diffget //3<CR>')
|
||||
vim.keymap.set({ 'n', 'x' }, '<leader>g}', ':diffput<CR>')
|
||||
vim.keymap.set({ 'n', 'x' }, '<leader>{g', ':diffget<CR>')
|
|
@ -1,190 +0,0 @@
|
|||
local builtin = require 'telescope.builtin'
|
||||
|
||||
local on_attach = function(client, bufnr)
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then
|
||||
desc = 'LSP: ' .. desc
|
||||
end
|
||||
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
|
||||
if client.server_capabilities.documentHighlightProvider then
|
||||
vim.api.nvim_create_augroup('lsp_document_highlight', { clear = true })
|
||||
vim.api.nvim_clear_autocmds { buffer = bufnr, group = 'lsp_document_highlight' }
|
||||
vim.api.nvim_create_autocmd('CursorHold', {
|
||||
callback = vim.lsp.buf.document_highlight,
|
||||
buffer = bufnr,
|
||||
group = 'lsp_document_highlight',
|
||||
desc = 'Document Highlight',
|
||||
})
|
||||
vim.api.nvim_create_autocmd('CursorMoved', {
|
||||
callback = vim.lsp.buf.clear_references,
|
||||
buffer = bufnr,
|
||||
group = 'lsp_document_highlight',
|
||||
desc = 'Clear All the References',
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
nmap('gd', builtin.lsp_definitions, '[G]oto [D]efinition')
|
||||
nmap('gr', builtin.lsp_references, '[G]oto [R]eferences')
|
||||
nmap('gI', builtin.lsp_implementations, '[G]oto [I]mplementation')
|
||||
nmap('<leader>D', builtin.lsp_type_definitions, 'Type [D]efinition')
|
||||
nmap('<leader>ds', builtin.lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||
nmap('<leader>ws', builtin.lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
|
||||
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
||||
|
||||
-- Lesser used LSP functionality
|
||||
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
|
||||
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
|
||||
nmap('<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, '[W]orkspace [L]ist Folders')
|
||||
|
||||
-- Diagnostic keymaps
|
||||
nmap('{d', vim.diagnostic.goto_prev, 'Previous [D]iagnostic')
|
||||
nmap('}d', vim.diagnostic.goto_next, 'Next [D]iagnostic')
|
||||
nmap('<leader>e', vim.diagnostic.open_float, 'View [E]rror')
|
||||
nmap('<leader>ll', vim.diagnostic.setloclist, 'View [L]ocal [L]ist')
|
||||
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignError',
|
||||
{ text = ' ', texthl = 'DiagnosticSignError', linehl = 'LspDiagnosticsLineNrError' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignWarn',
|
||||
{ text = ' ', texthl = 'DiagnosticSignWarn', linehl = 'LspDiagnosticsLineNrWarn' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignInfo',
|
||||
{ text = ' ', texthl = 'DiagnosticSignInfo', linehl = 'LspDiagnosticsLineNrInfo' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignHint',
|
||||
{ text = ' ', texthl = 'LspDiagnosticsLineNrHint', linehl = 'LspDiagnosticsLineNrHint' }
|
||||
)
|
||||
|
||||
vim.diagnostic.config {
|
||||
virtual_text = false,
|
||||
severity_sort = true,
|
||||
float = {
|
||||
focusable = false,
|
||||
close_events = { 'BufLeave', 'CursorMoved', 'InsertEnter', 'FocusLost' },
|
||||
border = 'single',
|
||||
source = 'always',
|
||||
prefix = '',
|
||||
header = '',
|
||||
format = function(diagnostic)
|
||||
return string.format(
|
||||
'%s (%s) [%s]',
|
||||
diagnostic.message,
|
||||
diagnostic.source,
|
||||
diagnostic.code or diagnostic.user_data.lsp.code
|
||||
)
|
||||
end,
|
||||
},
|
||||
}
|
||||
-- Show diagnostic popup on cursor hover
|
||||
local diag_float_grp = vim.api.nvim_create_augroup('DiagnosticFloat', { clear = true })
|
||||
vim.api.nvim_create_autocmd('CursorHold', {
|
||||
callback = function()
|
||||
return vim.diagnostic.open_float(0, { scope = 'line' })
|
||||
end,
|
||||
group = diag_float_grp,
|
||||
})
|
||||
|
||||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = 'single',
|
||||
})
|
||||
|
||||
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = 'single',
|
||||
})
|
||||
|
||||
-- Create a command `:Format` local to the LSP buffer
|
||||
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
|
||||
vim.lsp.buf.format()
|
||||
end, { desc = 'Format current buffer with LSP' })
|
||||
end
|
||||
|
||||
-- Setup Rust configuration
|
||||
local rust_opts = {
|
||||
tools = {
|
||||
runnables = {
|
||||
use_telescope = true,
|
||||
hover_wtih_actions = true,
|
||||
},
|
||||
inlay_hints = {
|
||||
auto = true,
|
||||
show_parameter_hints = false,
|
||||
parameter_hints_prefix = '',
|
||||
other_hints_prefix = '',
|
||||
},
|
||||
},
|
||||
server = {
|
||||
on_attach = on_attach,
|
||||
settings = {
|
||||
-- to enable rust-analyzer settings visit:
|
||||
-- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc
|
||||
['rust-analyzer'] = {
|
||||
-- enable clippy on save
|
||||
checkOnSave = {
|
||||
command = 'clippy',
|
||||
},
|
||||
diagnostics = {
|
||||
experimental = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
require('rust-tools').setup(rust_opts)
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
local servers = { 'html', 'cssls', 'tailwindcss', 'emmet_ls', 'jsonls' }
|
||||
for _, server in ipairs(servers) do
|
||||
require('lspconfig')[server].setup { capabilities = capabilities, on_attach = on_attach }
|
||||
end
|
||||
|
||||
require('lspconfig').rust_analyzer.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
cmd = { 'rustup', 'run', 'stable', 'rust-analyzer' },
|
||||
}
|
||||
|
||||
require('lspconfig').sumneko_lua.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = 'LuaJIT',
|
||||
},
|
||||
completion = {
|
||||
workspaceWord = true,
|
||||
callSnippet = 'Both',
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
format = {
|
||||
enable = false,
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file('', true),
|
||||
checkThirdParty = false,
|
||||
},
|
||||
telemetry = { enable = false },
|
||||
},
|
||||
},
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
require('luasnip').config.setup {
|
||||
update_events = 'TextChanged,TextChangedI',
|
||||
history = false,
|
||||
enable_autosnippets = true,
|
||||
store_selection_keys = '<Tab>',
|
||||
region_check_events = 'InsertEnter',
|
||||
delete_check_events = 'InsertLeave',
|
||||
ext_opts = {
|
||||
[require('luasnip.util.types').choiceNode] = {
|
||||
active = {
|
||||
virt_text = { { '<- Current Choice', 'NonText' } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
require('luasnip.loaders.from_lua').lazy_load()
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
|
@ -1,2 +0,0 @@
|
|||
require('Comment').setup()
|
||||
require('nvim-surround').setup()
|
|
@ -1,53 +0,0 @@
|
|||
local nulls = require 'null-ls'
|
||||
local fmt = nulls.builtins.formatting
|
||||
local dgn = nulls.builtins.diagnostics
|
||||
local cda = nulls.builtins.code_actions
|
||||
nulls.setup {
|
||||
sources = {
|
||||
-- # FORMATTING #
|
||||
fmt.trim_whitespace.with {
|
||||
filetypes = { 'sh', 'zsh', 'yaml', 'toml', 'make', 'conf', 'python' },
|
||||
},
|
||||
-- NOTE:
|
||||
-- 1. both needs to be enabled to so prettier can apply eslint fixes
|
||||
-- 2. and prettierd should come first
|
||||
fmt.prettierd,
|
||||
fmt.eslint_d,
|
||||
fmt.rustywind,
|
||||
fmt.shfmt.with { filetypes = { 'sh', 'bash', 'zsh' } },
|
||||
fmt.stylua,
|
||||
fmt.jq,
|
||||
-- # DIAGNOSTICS #
|
||||
dgn.eslint_d,
|
||||
dgn.tidy,
|
||||
dgn.shellcheck,
|
||||
dgn.zsh,
|
||||
dgn.luacheck,
|
||||
-- # CODE ACTIONS #
|
||||
cda.gitsigns.with {
|
||||
condition = function(util)
|
||||
return util.root_has_file { '.git' }
|
||||
end,
|
||||
},
|
||||
cda.eslint_d,
|
||||
cda.shellcheck,
|
||||
cda.gitrebase,
|
||||
},
|
||||
on_attach = function(client, bufnr)
|
||||
if client.supports_method 'textDocument/formatting' then
|
||||
vim.api.nvim_create_augroup('LspFormatting', { clear = true })
|
||||
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
group = 'LspFormatting',
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format {
|
||||
bufnr = bufnr,
|
||||
filter = function()
|
||||
return client.name == 'null-ls'
|
||||
end,
|
||||
}
|
||||
end,
|
||||
})
|
||||
end
|
||||
end,
|
||||
}
|
|
@ -1,163 +0,0 @@
|
|||
local themes = require 'telescope.themes'
|
||||
local actions = require 'telescope.actions'
|
||||
local previewers = require 'telescope.previewers'
|
||||
local builtin = require 'telescope.builtin'
|
||||
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
dynamic_preview_title = true,
|
||||
wrap_results = true,
|
||||
preview = {
|
||||
filesize_limit = 5,
|
||||
timeout = 150,
|
||||
treesitter = true,
|
||||
},
|
||||
pickers = {
|
||||
find_files = {
|
||||
find_command = { 'fd', '--strip-cwd-prefix' },
|
||||
},
|
||||
},
|
||||
borderchars = { '─', '│', '─', '│', '┌', '┐', '┘', '└' },
|
||||
selection_caret = ' ',
|
||||
file_ignore_patterns = { '%.jpeg$', '%.jpg$', '%.png$', '%.pdf$', 'node_modules', '.git/', 'dist/' },
|
||||
mappings = {
|
||||
i = {
|
||||
['<C-o>'] = actions.select_horizontal,
|
||||
['<TAB>'] = actions.toggle_selection + actions.move_selection_next,
|
||||
['<M-space>'] = actions.to_fuzzy_refine,
|
||||
},
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
file_browser = {
|
||||
hidden = true,
|
||||
hijack_netrw = true,
|
||||
theme = 'ivy',
|
||||
borderchars = { '─', ' ', ' ', ' ', ' ', ' ', ' ', ' ' },
|
||||
grouped = true,
|
||||
initial_mode = 'normal',
|
||||
sorting_strategy = 'ascending',
|
||||
},
|
||||
undo = {
|
||||
side_by_side = true,
|
||||
layout_strategy = 'vertical',
|
||||
layout_config = {
|
||||
preview_height = 0.4,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
local extensions = {
|
||||
'fzf',
|
||||
'file_browser',
|
||||
'undo',
|
||||
'ui-select',
|
||||
}
|
||||
for _, ext in ipairs(extensions) do
|
||||
require('telescope').load_extension(ext)
|
||||
end
|
||||
|
||||
local delta_bcommits = previewers.new_termopen_previewer {
|
||||
get_command = function(entry)
|
||||
return {
|
||||
'git',
|
||||
'-c',
|
||||
'core.pager=delta',
|
||||
'-c',
|
||||
'delta.side-by-side=false',
|
||||
'diff',
|
||||
entry.value .. '^!',
|
||||
'--',
|
||||
entry.current_file,
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
local delta = previewers.new_termopen_previewer {
|
||||
get_command = function(entry)
|
||||
return { 'git', '-c', 'core.pager=delta', '-c', 'delta.side-by-side=false', 'diff', entry.value .. '^!' }
|
||||
end,
|
||||
}
|
||||
|
||||
Delta_git_commits = function(opts)
|
||||
opts = opts or {}
|
||||
opts = {
|
||||
layout_strategy = 'vertical',
|
||||
layout_config = {
|
||||
vertical = {
|
||||
mirror = true,
|
||||
width = 0.9,
|
||||
height = 0.9,
|
||||
preview_height = 0.6,
|
||||
preview_cutoff = 0,
|
||||
},
|
||||
},
|
||||
}
|
||||
opts.previewer = {
|
||||
delta,
|
||||
previewers.git_commit_message.new(opts),
|
||||
previewers.git_commit_diff_as_was.new(opts),
|
||||
}
|
||||
builtin.git_commits(opts)
|
||||
end
|
||||
|
||||
Delta_git_bcommits = function(opts)
|
||||
opts = opts or {}
|
||||
opts = {
|
||||
layout_strategy = 'vertical',
|
||||
layout_config = {
|
||||
vertical = {
|
||||
mirror = true,
|
||||
width = 0.9,
|
||||
height = 0.9,
|
||||
preview_height = 0.6,
|
||||
preview_cutoff = 0,
|
||||
},
|
||||
},
|
||||
}
|
||||
opts.previewer = {
|
||||
delta_bcommits,
|
||||
previewers.git_commit_message.new(opts),
|
||||
previewers.git_commit_diff_as_was.new(opts),
|
||||
}
|
||||
builtin.git_bcommits(opts)
|
||||
end
|
||||
|
||||
Project_files = function()
|
||||
local opts = { show_untracked = false } -- define here if you want to define something
|
||||
local ok = pcall(builtin.git_files, opts)
|
||||
if not ok then
|
||||
builtin.find_files(opts)
|
||||
end
|
||||
end
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set('n', '<leader>u', '<cmd>Telescope undo<cr>', { desc = 'Telescope [U]ndo' })
|
||||
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
|
||||
vim.keymap.set('n', '<leader>?', builtin.oldfiles, { desc = '[?] Find recently opened files' })
|
||||
vim.keymap.set('n', '<leader>P', builtin.commands, { desc = 'Command [P]allete' })
|
||||
vim.keymap.set('n', '<leader>f', function()
|
||||
builtin.current_buffer_fuzzy_find(themes.get_dropdown {
|
||||
results_height = 50,
|
||||
borderchars = { '─', '│', '─', '│', '┌', '┐', '┘', '└' },
|
||||
previewer = false,
|
||||
})
|
||||
end, { desc = '[F]uzzily search in current buffer]' })
|
||||
|
||||
vim.keymap.set('n', '<F1>', builtin.help_tags, { desc = 'Search Help' })
|
||||
vim.keymap.set('n', '<F2>', '<cmd>lua Project_files()<CR>', { desc = 'Project Files' })
|
||||
vim.keymap.set('n', '<F3>', '<cmd>Telescope file_browser<CR>', { desc = 'File Browser' })
|
||||
vim.keymap.set('n', '<F5>', '<cmd>lua Delta_git_commits()<CR>', { desc = 'Project Commits' })
|
||||
vim.keymap.set('n', '<F6>', '<cmd>lua Delta_git_bcommits()<CR>', { desc = 'Buffer Commits' })
|
||||
vim.keymap.set('n', '<F11>', builtin.live_grep, { desc = 'Search by Grep' })
|
||||
vim.keymap.set('n', '<F12>', '<cmd>Telescope diagnostics bufnr=0<CR>', { desc = 'Search Diagnostics' })
|
||||
vim.keymap.set('n', '<F4>', function()
|
||||
builtin.buffers(themes.get_dropdown {
|
||||
sort_lastused = true,
|
||||
previewer = false,
|
||||
results_height = 20,
|
||||
disable_devicons = true,
|
||||
borderchars = { '─', '│', '─', '│', '┌', '┐', '┘', '└' },
|
||||
})
|
||||
end, { desc = 'Find existing buffers' })
|
|
@ -1,79 +0,0 @@
|
|||
-- [[ Configure Treesitter ]]
|
||||
-- See `:help nvim-treesitter`
|
||||
require('nvim-treesitter.configs').setup {
|
||||
-- Add languages to be installed here that you want installed for treesitter
|
||||
ensure_installed = {
|
||||
'bash',
|
||||
'css',
|
||||
'help',
|
||||
'html',
|
||||
'json',
|
||||
'json5',
|
||||
'jsonc',
|
||||
'lua',
|
||||
'make',
|
||||
'python',
|
||||
'rasi',
|
||||
'regex',
|
||||
'rust',
|
||||
'scss',
|
||||
'toml',
|
||||
'yaml',
|
||||
},
|
||||
highlight = { enable = true, addtional_vim_regex_highlighting = false },
|
||||
indent = { enable = true, disable = { 'python' } },
|
||||
autopairs = { enable = true },
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = '<c-space>',
|
||||
node_incremental = '<c-space>',
|
||||
scope_incremental = '<c-s>',
|
||||
node_decremental = '<c-backspace>',
|
||||
},
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
['aa'] = '@parameter.outer',
|
||||
['ia'] = '@parameter.inner',
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['ac'] = '@class.outer',
|
||||
['ic'] = '@class.inner',
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
[']m'] = '@function.outer',
|
||||
[']]'] = '@class.outer',
|
||||
},
|
||||
goto_next_end = {
|
||||
[']M'] = '@function.outer',
|
||||
[']['] = '@class.outer',
|
||||
},
|
||||
goto_previous_start = {
|
||||
['[m'] = '@function.outer',
|
||||
['[['] = '@class.outer',
|
||||
},
|
||||
goto_previous_end = {
|
||||
['[M'] = '@function.outer',
|
||||
['[]'] = '@class.outer',
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
['<leader>a'] = '@parameter.inner',
|
||||
},
|
||||
swap_previous = {
|
||||
['<leader>A'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
|
@ -1,344 +0,0 @@
|
|||
" Vim syntax file
|
||||
" Language: Renpy script
|
||||
" Maintainer: Chaim-Leib Halbert <chaim.leib.halbert@gmail.com>
|
||||
" Last Change: 2015 Feb 25
|
||||
" Features: Spell-checking (must enable), auto-indenting, TODOs, string tags and interpolations
|
||||
|
||||
" Based on work by Spiky Caterpillar, http://spikycaterpillar.com/renpy.vim
|
||||
" Contributions from:
|
||||
" Civa Lin
|
||||
" Dimitry Solovyov
|
||||
" Jezeniel Zapanta
|
||||
|
||||
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn include @Python syntax/python.vim
|
||||
unlet b:current_syntax
|
||||
"runtime! syntax/python.vim
|
||||
|
||||
|
||||
" Hitting return in an indented section should autoindent four spaces
|
||||
set tabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
|
||||
|
||||
"Comments
|
||||
syn match renpyComment "#.*$" contains=renpyTodo,@Spell
|
||||
syn keyword renpyTodo FIXME TODO NOTE NOTES XXX contained
|
||||
|
||||
" Numbers
|
||||
syn match renpyNumber "-\?\d\+\(\.\d\+\)\?"
|
||||
syn match renpyNumber "-\?\.\d\+"
|
||||
|
||||
" Variable and label names
|
||||
syn match renpyIdentifier "[_a-zA-Z][_a-zA-Z0-9]*"
|
||||
|
||||
" String commands and escaped characters
|
||||
syn match renpyEscape +\\['"%]+ contained
|
||||
syn match renpyEscape +{/\?[ibsu]}+ contained
|
||||
syn match renpyEscape +{/\?plain}+ contained
|
||||
syn match renpyEscape +{\(p\|fast\|nw\|w\)}+ contained
|
||||
syn match renpyEscape +{\(font\|a\|color\|w\)=[^}]*}+ contained
|
||||
syn match renpyEscape +{/\(font\|a\|color\|w\)}+ contained
|
||||
syn match renpyEscape +{/\?=[^}]*}+ contained
|
||||
syn match renpyEscape +{{+ contained
|
||||
|
||||
" Additions for Python strings
|
||||
syn match pythonEscape +{/\?[ibsu]}+ contained
|
||||
syn match pythonEscape +{/\?plain}+ contained
|
||||
syn match pythonEscape +{\(p\|fast\|nw\|w\)}+ contained
|
||||
syn match pythonEscape +{\(font\|a\|color\|w\)=[^}]*}+ contained
|
||||
syn match pythonEscape +{/\(font\|a\|color\|w\)}+ contained
|
||||
syn match pythonEscape +{/\?=[^}]*}+ contained
|
||||
syn match pythonEscape +{{+ contained
|
||||
|
||||
" New in Renpy 6.13: square-bracket string interpolation
|
||||
syn region renpyEscape start=+\[+ end=+\]+ contained
|
||||
syn match renpyEscape +\[\[+ contained
|
||||
|
||||
" Strings
|
||||
syn region renpyString start=+'+ end=+'+ skip=+\\'+ contains=renpyEscape,@Spell
|
||||
syn region renpyString start=+"+ end=+"+ skip=+\\"+ contains=renpyEscape,@Spell
|
||||
|
||||
" Operators, keywords and special functions
|
||||
""" Block
|
||||
syn keyword renpyStatement transform screen
|
||||
""" Text
|
||||
syn keyword renpyFunction Style Text
|
||||
""" Image
|
||||
syn keyword renpyStatement image hide show scene
|
||||
syn keyword renpyOperator with
|
||||
syn keyword renpyOperator as at behind onlayer zorder
|
||||
""" Flow Control
|
||||
syn match renpyStatement /\s*jump/ nextgroup=renpyIdentifier skipwhite
|
||||
syn keyword renpyStatement menu return
|
||||
syn match renpyStatementCall /^\s*call/ skipwhite nextgroup=renpyStatementCallFrom,renpyIdentifier
|
||||
syn keyword renpyStatementCallFrom from skipwhite nextgroup=renpyIdentifier
|
||||
|
||||
syn keyword renpyStatement if elif else
|
||||
""" Sound Voice & Music
|
||||
syn keyword renpyStatement play stop queue
|
||||
syn keyword renpyOperator channel frames loop
|
||||
syn keyword renpyStatement voice sustain
|
||||
syn keyword renpyOperator sound music
|
||||
syn keyword renpyOperator fadein fadeout
|
||||
""" Other
|
||||
syn keyword renpyStatement define
|
||||
syn keyword renpyOperator expression
|
||||
|
||||
" ATL
|
||||
|
||||
""" ATL: on & event Statenent
|
||||
syn keyword renpyStatement event
|
||||
syn keyword renpyStatement on nextgroup=renpyEvent skipwhite
|
||||
syn keyword renpyEvent start show hide contained
|
||||
syn keyword renpyEvent replace replaced
|
||||
syn keyword renpyEvent hover idle selected_hover selected_idle contained
|
||||
""" ATL: Interpolation Statemant & Warpers
|
||||
syn keyword renpyStatement pause linear ease easein easeout
|
||||
""" ATL: Circular Motion
|
||||
syn keyword renpyOperator warp knot clockwise counterclockwise circles
|
||||
""" ATL: Block (complex) Statement
|
||||
syn keyword renpyStatement choice function parallel block
|
||||
syn keyword renpyStatement contains
|
||||
""" ATL: simple Statement
|
||||
syn keyword renpyStatement time pass repeat
|
||||
""" ATL: Displayable Transform Properties
|
||||
syn keyword renpyOperator pos xpos ypos
|
||||
syn keyword renpyOperator anchor xanchor yanchor
|
||||
syn keyword renpyOperator align xalign yalign
|
||||
syn keyword renpyOperator xcenter ycenter
|
||||
syn keyword renpyOperator flip rotate rotate_pad
|
||||
syn keyword renpyOperator zoom xzoom yzoom
|
||||
syn keyword renpyOperator alpha
|
||||
syn keyword renpyOperator around alignaround
|
||||
syn keyword renpyOperator angle radius
|
||||
syn keyword renpyOperator crop corner1 corner2
|
||||
syn keyword renpyOperator size
|
||||
syn keyword renpyOperator subpixel
|
||||
syn keyword renpyOperator delay
|
||||
|
||||
" Screen
|
||||
|
||||
""" Screen: UI Statement properties
|
||||
syn keyword renpyOperator at default id style style_group focus
|
||||
""" Screen: UI Statement
|
||||
syn keyword renpyStatement add
|
||||
syn keyword renpyStatement bar vbar
|
||||
syn keyword renpyStatement button textbutton imagebutton mousearea imagemap
|
||||
syn keyword renpyStatement fixed frame grid hbox vbox side window null
|
||||
syn keyword renpyStatement input key timer transform
|
||||
syn keyword renpyStatement viewport hotspot hotbar
|
||||
syn keyword renpyStatement text
|
||||
syn keyword renpyStatement has
|
||||
""" Screen: Control Statement
|
||||
syn keyword renpyStatement default for if elif else use on
|
||||
syn keyword renpyOperator in not
|
||||
|
||||
|
||||
" Function
|
||||
|
||||
""" Transition Function
|
||||
syn keyword renpyFunction AlphaDissolve ComposeTransition CropMove Dissolve
|
||||
syn keyword renpyFunction Fade ImageDissolve MoveTransition MultipleTransition
|
||||
syn keyword renpyFunction Pause Pixellate
|
||||
syn keyword renpyFunction Position RotoZoom
|
||||
syn keyword renpyFunction SplineMotion
|
||||
""" Displayable Function
|
||||
syn keyword renpyFunction Image Frame LiveCrop LiveTile Null Solid
|
||||
syn keyword renpyFunction ConditionSwitch DynamicDisplayable ShowingSwitch
|
||||
syn keyword renpyFunction Fixed HBox VBox
|
||||
""" Other Image Function
|
||||
syn keyword renpyFunction At AlphaBlend
|
||||
|
||||
" Special variables
|
||||
|
||||
""" Default Transforms
|
||||
syn keyword renpyBuiltin left right center truecenter topleft top topright
|
||||
syn keyword renpyBuiltin offscreenleft offscreenright default reset
|
||||
""" Pre-Defined Transitions
|
||||
syn keyword renpyBuiltin fade dissolve pixellate
|
||||
syn keyword renpyBuiltin move moveinright moveinleft moveintop moveinbottom
|
||||
syn keyword renpyBuiltin moveoutright moveoutleft moveouttop moveoutbottom
|
||||
syn keyword renpyBuiltin ease easeinright easeinleft easeintop easeinbottom
|
||||
syn keyword renpyBuiltin easeoutright easeoutleft easeouttop easeoutbottom
|
||||
syn keyword renpyBuiltin zoomin zoomout zoominout
|
||||
syn keyword renpyBuiltin vpunch hpunch
|
||||
syn keyword renpyBuiltin blinds squares
|
||||
syn keyword renpyBuiltin wipeleft wiperight wipeup wipedown
|
||||
syn keyword renpyBuiltin slideleft slideright slideup slidedown
|
||||
syn keyword renpyBuiltin slideawayleft slideawayright slideawayup slideawaydown
|
||||
syn keyword renpyBuiltin irisin irisout
|
||||
""" Pre-Defined Displayable
|
||||
syn keyword renpyBuiltin bg black text pause linear
|
||||
|
||||
|
||||
" Python lines ($)
|
||||
syn region renpyPythonStatement start="^ *\$" end="$" contains=@Python,renpyPythonStatementMarker
|
||||
syn match renpyPythonStatementMarker /^ *\$/
|
||||
|
||||
|
||||
" Renpy-specific Python functions and variables
|
||||
syn keyword pythonFunction Animation Character Null
|
||||
syn keyword pythonFunction ShowingSwitch
|
||||
syn keyword pythonBuiltin config
|
||||
syn match pythonFunction "anim\.\(Edge\|SMAnimation\|State\|TransitionAnimation\)"
|
||||
syn match pythonFunction "anim\.Filmstrip"
|
||||
syn match pythonFunction "im\.Composite"
|
||||
syn match pythonFunction "im\.Crop"
|
||||
syn match pythonFunction "im\.\(FactorScale\|Flip\|Grayscale\)"
|
||||
syn match pythonFunction "im\.Image"
|
||||
syn match pythonFunction "im\.MatrixColor"
|
||||
syn match pythonFunction "im\.matrix\.\(brightness\|contrast\|hue\|invert\|saturation\)"
|
||||
syn match pythonFunction "im\.Scale"
|
||||
syn match pythonFunction "layout\.imagemap_main_menu"
|
||||
syn match pythonFunction "layout\.button_menu"
|
||||
syn match pythonFunction "renpy\.block_rollback"
|
||||
syn match pythonFunction "renpy\.\(call_in_new_context\|curry\)"
|
||||
syn match pythonFunction "renpy\.hide"
|
||||
syn match pythonFunction "renpy\.\(jump_out_of_context\|jump\)"
|
||||
syn match pythonFunction "renpy\.music\.\(play\|stop\|queue\|register_channel\|set_volume\)"
|
||||
syn match pythonFunction "renpy\.pause"
|
||||
syn match pythonFunction "renpy\.redraw"
|
||||
syn match pythonFunction "renpy\.random\.\(choice\|randint\)"
|
||||
syn match pythonFunction "renpy\.restart_interaction"
|
||||
syn match pythonFunction "renpy\.\(scene\|show\)"
|
||||
syn match pythonFunction "renpy\.showing"
|
||||
syn match pythonFunction "renpy\.transition"
|
||||
syn match pythonFunction "theme\.roundrect"
|
||||
syn match pythonFunction "ui\.add"
|
||||
syn match pythonFunction "ui\.\(bar\|button\)"
|
||||
syn match pythonFunction "ui\.clear"
|
||||
syn match pythonFunction "ui\.close"
|
||||
syn match pythonFunction "ui\.\(fixed\|frame\|grid\)"
|
||||
syn match pythonFunction "ui\.hbox"
|
||||
syn match pythonFunction "ui\.image"
|
||||
syn match pythonFunction "ui\.imagebutton"
|
||||
syn match pythonFunction "ui\.imagemap"
|
||||
syn match pythonFunction "ui\.interact"
|
||||
syn match pythonFunction "ui\.\(keymap\|layer\)"
|
||||
syn match pythonFunction "ui\.null"
|
||||
syn match pythonFunction "ui\.remove"
|
||||
syn match pythonFunction "ui\.returns"
|
||||
syn match pythonFunction "ui\.text"
|
||||
syn match pythonFunction "ui\.textbutton"
|
||||
syn match pythonFunction "ui\.timer"
|
||||
syn match pythonFunction "ui\.\(vbox\|window\)"
|
||||
|
||||
|
||||
"Renpy block headers
|
||||
syn region renpyHeader oneline keepend
|
||||
\ start="^\s*\(init\|early\|transform\|label\|animate\)"
|
||||
\ end=":"
|
||||
\ contains=renpyHeaderFByPriority,renpyHeaderFById,renpyHeaderPriority,renpyIdentifier, renpyArgs
|
||||
|
||||
""label/transform <identifier> <args>
|
||||
syn keyword renpyHeaderFById label transform animate contained skipwhite
|
||||
\ nextgroup=renpyHeaderIdentifier
|
||||
|
||||
syn match renpyHeaderIdentifier contained transparent /[_a-zA-Z][_a-zA-Z0-9]*/
|
||||
\ nextgroup=renpyHeaderArgs
|
||||
|
||||
syn region renpyHeaderArgs contained
|
||||
\ start="("
|
||||
\ end=")"
|
||||
\ contains=renpyIdentifier,renpyNumber,renpyString
|
||||
|
||||
syn match renpyHeaderFByPriority /init\|early/ contained skipwhite
|
||||
\ nextgroup=renpyHeaderPriority
|
||||
|
||||
syn match renpyHeaderPriority /-\?\d\+/ contained skipwhite
|
||||
\ nextgroup=renpyHeaderPython
|
||||
|
||||
|
||||
"Python blocks
|
||||
"TODO: find better way to handle indents
|
||||
""Indent level 0
|
||||
syn region renpyPythonBlock0 keepend
|
||||
\ start="^\(\(init\|early\)\s\+\(-\?\d\+\s\+\)\?\)\?python.*:"
|
||||
\ end="^[^ ]"me=s-1
|
||||
\ skip="^ *#.*$"
|
||||
\ contains=@Python,renpyPythonHeader0,pythonComment
|
||||
|
||||
syn region renpyPythonHeader0 oneline contained
|
||||
\ start="^\([^ ]\+ \+\)*python"
|
||||
\ end=":"
|
||||
\ contains=renpyHeaderFByPriority,renpyHeaderPriority,renpyHeaderPython,renpyHeaderModifier
|
||||
|
||||
"Indent level 1
|
||||
syn region renpyPythonBlock1 keepend
|
||||
\ start="^ \(\(init\|early\)\s\+\(-\?\d\+\s\+\)\?\)\?python.*:"
|
||||
\ end="^ [^ ]"me=s-1
|
||||
\ skip="^ *#.*$"
|
||||
\ contains=@Python,renpyPythonHeader1,pythonComment
|
||||
|
||||
syn region renpyPythonHeader1 oneline contained
|
||||
\ start="^ \([^ ]\+ \+\)*python"
|
||||
\ end=":"
|
||||
\ contains=renpyHeaderFByPriority,renpyHeaderPriority,renpyHeaderPython,renpyHeaderModifier
|
||||
|
||||
"Indent level 2
|
||||
syn region renpyPythonBlock2 keepend
|
||||
\ start="^ \(\(init\|early\)\s\+\(-\?\d\+\s\+\)\?\)\?python.*:"
|
||||
\ end="^ [^ ]"me=s-1
|
||||
\ skip="^ *#.*$"
|
||||
\ contains=@Python,renpyPythonHeader2,pythonComment
|
||||
|
||||
syn region renpyPythonHeader2 oneline contained
|
||||
\ start="^ \([^ ]\+ \+\)*python"
|
||||
\ end=":"
|
||||
\ contains=renpyHeaderFByPriority,renpyHeaderPriority,renpyHeaderPython,renpyHeaderModifier
|
||||
|
||||
"Indent level 3
|
||||
syn region renpyPythonBlock3 keepend
|
||||
\ start="^ \(\(init\|early\)\s\+\(-\?\d\+\s\+\)\?\)\?python.*:"
|
||||
\ end="^ [^ ]"me=s-1
|
||||
\ skip="^ *#.*$"
|
||||
\ contains=@Python,renpyPythonHeader3,pythonComment
|
||||
|
||||
syn region renpyPythonHeader3 oneline contained
|
||||
\ start="^ \([^ ]\+ \+\)*python"
|
||||
\ end=":"
|
||||
\ contains=renpyHeaderFByPriority,renpyHeaderPriority,renpyHeaderPython,renpyHeaderModifier
|
||||
|
||||
|
||||
syn keyword renpyHeaderPython python nextgroup=renpyHeaderModifier
|
||||
syn keyword renpyHeaderModifier hide early
|
||||
|
||||
"Highlight clusters for headers
|
||||
hi def link renpyHeaderFByPriority renpyHeaderKeyword
|
||||
hi def link renpyHeaderFById renpyHeaderKeyword
|
||||
hi def link renpyHeaderModifier renpyHeaderKeyword
|
||||
|
||||
"Header highlighting
|
||||
hi def link renpyHeaderPython Statement
|
||||
hi def link renpyHeaderKeyword Statement
|
||||
hi def link renpyHeaderLabel Statement
|
||||
hi def link renpyHeaderPriority Number
|
||||
|
||||
"Statements
|
||||
hi def link renpyStatementCall renpyStatement
|
||||
hi def link renpyStatementCallFrom renpyOperator
|
||||
hi def link renpyPythonStatementMarker renpyStatement
|
||||
|
||||
"Token highlighting
|
||||
hi def link renpyNumber Number
|
||||
hi def link renpyString String
|
||||
hi def link renpyEscape Special
|
||||
hi def link renpyComment Comment
|
||||
hi def link renpyTodo Todo
|
||||
hi def link renpyStatement Statement
|
||||
hi def link renpyFunction Function
|
||||
hi def link renpyBuiltin Identifier
|
||||
hi def link renpyOperator Operator
|
||||
hi def link renpySpaceError Error
|
||||
hi def link renpyEvent Identifier
|
||||
|
||||
let b:current_syntax = "renpy"
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let b:current_syntax = "sxhkd"
|
||||
|
||||
syntax match sxhkd_binding "\v^.*$" contains=sxhkd_on_release,sxhkd_binding_pass
|
||||
syntax match sxhkd_on_release "\v^\@" contained
|
||||
syntax match sxhkd_binding_pass "\v^\~" contained
|
||||
syntax match sxhkd_exec "\v^\s+.*" contains=@sxhkd_shell
|
||||
syntax match sxhkd_comment "\v#.*$"
|
||||
|
||||
highlight link sxhkd_comment Comment
|
||||
highlight link sxhkd_binding Identifier
|
||||
highlight link sxhkd_binding_on_release Conditional
|
||||
highlight link sxhkd_binding_pass Constant
|
||||
highlight link sxhkd_exec Macro
|
||||
|
||||
" match shell command
|
||||
let s:current_syntax = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
|
||||
syntax include @sxhkd_shell syntax/sh.vim
|
||||
let b:current_syntax = s:current_syntax
|
||||
|
||||
syntax region shLine matchgroup=sxhkd_exec start=/\v^\s+\s/ end=/\v$/ contains=@sxhkd_shell
|
|
@ -1,2 +0,0 @@
|
|||
" Set filetype to conf for files with .conf extension.
|
||||
autocmd BufNewFile,BufRead *.conf setfiletype conf
|
|
@ -1 +0,0 @@
|
|||
autocmd BufNewFile,BufRead .eslintignore,.gitignore,.prettierignore set filetype=ignore
|
|
@ -1 +0,0 @@
|
|||
au BufNewFile,BufRead neomutt-*-\w\+,neomutt[[:alnum:]_-]\\\{6\} set filetype=mail
|
|
@ -1 +0,0 @@
|
|||
au BufRead,BufNewFile .mbsyncrc set filetype=mbsync
|
|
@ -1,4 +0,0 @@
|
|||
" ftdetect/rasi.vim
|
||||
" Rofi Advanced Style Information
|
||||
|
||||
autocmd BufNewFile,BufRead *.rasi setfiletype rasi
|
|
@ -1,2 +0,0 @@
|
|||
" Set filetype to ssh for files with .ssh extension.
|
||||
autocmd BufNewFile,BufRead *.ssh setfiletype sshconfig
|
|
@ -1 +0,0 @@
|
|||
au BufNewFile,BufRead sxhkdrc set filetype=sxhkd
|
|
@ -1,58 +0,0 @@
|
|||
" Snippets from vim-help
|
||||
" Credits: https://github.com/dahu/vim-help
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpoptions
|
||||
set cpoptions&vim
|
||||
|
||||
let b:undo_ftplugin = 'setlocal spell<'
|
||||
setlocal nospell
|
||||
|
||||
setlocal nohidden
|
||||
setlocal iskeyword+=:
|
||||
setlocal iskeyword+=#
|
||||
setlocal iskeyword+=-
|
||||
setlocal nonumber
|
||||
setlocal noruler
|
||||
setlocal colorcolumn=0
|
||||
setlocal signcolumn=no
|
||||
|
||||
set statusline=%#User1#%f
|
||||
set statusline+=%=
|
||||
set statusline+=%h
|
||||
|
||||
wincmd L
|
||||
|
||||
" Quick close
|
||||
nnoremap <silent><buffer> q :helpclose<CR>
|
||||
|
||||
" Jump to links with enter
|
||||
nmap <buffer> <CR> <C-]>
|
||||
|
||||
" Jump back with backspace
|
||||
nmap <buffer> <BS> <C-T>
|
||||
|
||||
" Skip to next option link
|
||||
nmap <buffer> o /'[a-z]\{2,\}'<CR>
|
||||
|
||||
" Skip to previous option link
|
||||
nmap <buffer> O ?'[a-z]\{2,\}'<CR>
|
||||
|
||||
" Skip to next subject link
|
||||
nmap <buffer><nowait> s /\|\S\+\|<CR>l
|
||||
|
||||
" Skip to previous subject link
|
||||
nmap <buffer> S h?\|\S\+\|<CR>l
|
||||
|
||||
" Skip to next tag (subject anchor)
|
||||
nmap <buffer> t /\*\S\+\*<CR>l
|
||||
|
||||
" Skip to previous tag (subject anchor)
|
||||
nmap <buffer> T h?\*\S\+\*<CR>l
|
||||
|
||||
let &cpoptions = s:save_cpo
|
||||
" vim: set ts=2 sw=2 tw=80 noet :
|
|
@ -1,8 +0,0 @@
|
|||
if !exists("b:sh_indent_options")
|
||||
let b:sh_indent_options = {}
|
||||
endif
|
||||
|
||||
let b:sh_indent_options['continuation-line'] = 2
|
||||
|
||||
" allow for commands with - in the name
|
||||
set iskeyword+=-
|
|
@ -1 +0,0 @@
|
|||
setlocal shiftwidth=2
|
|
@ -1,42 +0,0 @@
|
|||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ','
|
||||
|
||||
local disabled_builtin_plugins = {
|
||||
'man',
|
||||
'gzip',
|
||||
'zip',
|
||||
'zipPlugin',
|
||||
'tar',
|
||||
'tarPlugin',
|
||||
'getscript',
|
||||
'getscriptPlugin',
|
||||
'vimball',
|
||||
'vimballPlugin',
|
||||
'2html_plugin',
|
||||
'tohtml',
|
||||
'matchit',
|
||||
'logiPat',
|
||||
'rrhelper',
|
||||
'netrw',
|
||||
'netrwPlugin',
|
||||
'netrwSettings',
|
||||
'netrwFileHandlers',
|
||||
'tutor',
|
||||
'rplugin',
|
||||
'optwin',
|
||||
'compiler',
|
||||
}
|
||||
for _, plugin in pairs(disabled_builtin_plugins) do
|
||||
vim.g['loaded_' .. plugin] = 1
|
||||
end
|
||||
|
||||
local disabled_providers = {
|
||||
'ruby',
|
||||
'node',
|
||||
'python',
|
||||
'python3',
|
||||
'perl',
|
||||
}
|
||||
for _, provider in pairs(disabled_providers) do
|
||||
vim.g['loaded_' .. provider .. '_provider'] = 0
|
||||
end
|
|
@ -1,87 +0,0 @@
|
|||
vim.api.nvim_create_augroup('HighlightYank', { clear = true })
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
callback = function()
|
||||
vim.highlight.on_yank { timeout = 120, on_visual = true }
|
||||
end,
|
||||
group = 'HighlightYank',
|
||||
desc = 'Highlight the yanked text',
|
||||
})
|
||||
|
||||
vim.api.nvim_create_augroup('cursor_statusline', { clear = true })
|
||||
vim.api.nvim_create_autocmd({ 'WinEnter', 'BufEnter' }, {
|
||||
callback = function()
|
||||
vim.wo.cursorline = true
|
||||
end,
|
||||
group = 'cursor_statusline',
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ 'WinLeave', 'BufLeave' }, {
|
||||
callback = function()
|
||||
vim.wo.cursorline = false
|
||||
end,
|
||||
group = 'cursor_statusline',
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ 'FileType' }, {
|
||||
callback = function()
|
||||
vim.wo.cursorline = false
|
||||
end,
|
||||
pattern = 'TelescopePrompt',
|
||||
group = 'cursor_statusline',
|
||||
})
|
||||
|
||||
vim.api.nvim_create_augroup('Miscs', { clear = true })
|
||||
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||
callback = function()
|
||||
vim.cmd 'silent !pkill -USR1 sxhkd'
|
||||
end,
|
||||
pattern = 'sxhkdrc',
|
||||
group = 'Miscs',
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
|
||||
callback = function()
|
||||
vim.cmd 'silent !xrdb %'
|
||||
end,
|
||||
pattern = 'xresources',
|
||||
group = 'Miscs',
|
||||
})
|
||||
vim.api.nvim_create_autocmd('BufEnter', {
|
||||
callback = function()
|
||||
vim.cmd 'silent! lcd %:p:h'
|
||||
end,
|
||||
group = 'Miscs',
|
||||
desc = 'change the working directory',
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ 'VimResized' }, {
|
||||
callback = function()
|
||||
vim.cmd 'tabdo wincmd ='
|
||||
end,
|
||||
group = 'Miscs',
|
||||
})
|
||||
|
||||
vim.api.nvim_create_augroup('Terms', { clear = true })
|
||||
vim.api.nvim_create_autocmd('TermOpen', {
|
||||
callback = function()
|
||||
vim.wo.statusline = '%{b:term_title}'
|
||||
vim.wo.number = false
|
||||
vim.wo.signcolumn = 'no'
|
||||
end,
|
||||
group = 'Terms',
|
||||
})
|
||||
vim.api.nvim_create_autocmd('BufEnter', {
|
||||
callback = function()
|
||||
vim.wo.statusline = '%= %{b:term_title} %='
|
||||
vim.wo.number = true
|
||||
vim.wo.signcolumn = 'no'
|
||||
vim.cmd 'startinsert'
|
||||
end,
|
||||
group = 'Terms',
|
||||
pattern = 'term:\\/\\/*',
|
||||
})
|
||||
vim.api.nvim_create_autocmd('BufLeave', {
|
||||
callback = function()
|
||||
vim.wo.number = true
|
||||
vim.wo.signcolumn = 'auto:9'
|
||||
vim.cmd 'stopinsert'
|
||||
end,
|
||||
group = 'Terms',
|
||||
pattern = 'term:\\/\\/*',
|
||||
})
|
|
@ -1,144 +0,0 @@
|
|||
-- Ñ master race
|
||||
vim.keymap.set('n', 'ñ', ';')
|
||||
vim.keymap.set('n', 'Ñ', ',')
|
||||
vim.keymap.set('n', '{q', ':cprev<CR>', { silent = true })
|
||||
vim.keymap.set('n', '{Q', ':cfirst<CR>', { silent = true })
|
||||
vim.keymap.set('n', '{l', ':lprevious<CR>', { silent = true })
|
||||
vim.keymap.set('n', '{o', ':call append(line(".")-1, "")<CR>', { silent = true })
|
||||
vim.keymap.set('n', '{b', ':bprev<CR>', { silent = true, desc = 'Previous buffer' })
|
||||
vim.keymap.set('n', '{t', ':tabfirst<CR>', { silent = true, desc = 'First Tab' })
|
||||
vim.keymap.set('n', '}q', ':cnext<CR>', { silent = true })
|
||||
vim.keymap.set('n', '}Q', ':clast<CR>', { silent = true })
|
||||
vim.keymap.set('n', '}l', ':lnext<CR>', { silent = true })
|
||||
vim.keymap.set('n', '}o', ':call append(line("."), "")<CR>', { silent = true })
|
||||
vim.keymap.set('n', '}b', ':bnext<CR>', { silent = true, desc = 'Next buffer' })
|
||||
vim.keymap.set('n', '}t', ':tablast<CR>', { silent = true, desc = 'Last Tab' })
|
||||
vim.keymap.set('i', '<C-}>', '<C-]>', { silent = true })
|
||||
|
||||
-- Splits
|
||||
vim.keymap.set('n', '<M-h>', '<C-w>h', { desc = 'Go to left window' })
|
||||
vim.keymap.set('n', '<M-l>', '<C-w>l', { desc = 'Go to right window' })
|
||||
vim.keymap.set('n', '<M-j>', '<C-w>j', { desc = 'Go to lower window' })
|
||||
vim.keymap.set('n', '<M-k>', '<C-w>k', { desc = 'Go to upper window' })
|
||||
vim.keymap.set('n', '<S-Left>', '<C-w>H', { silent = true, desc = 'Move window to the left' })
|
||||
vim.keymap.set('n', '<S-Right>', '<C-w>L', { silent = true, desc = 'Move window to the right' })
|
||||
vim.keymap.set('n', '<S-Down>', '<C-w>J', { silent = true, desc = 'Move window to the bottom' })
|
||||
vim.keymap.set('n', '<S-Up>', '<C-w>K', { silent = true, desc = 'Move window to the top' })
|
||||
vim.keymap.set('n', '<Left>', ':vertical resize -1<CR>', { silent = true, desc = 'Decrease window width' })
|
||||
vim.keymap.set('n', '<Right>', ':vertical resize +1<CR>', { silent = true, desc = 'Increase window width' })
|
||||
vim.keymap.set('n', '<Down>', ':resize +1<CR>', { silent = true, desc = 'Decrease window height' })
|
||||
vim.keymap.set('n', '<Up>', ':resize -1<CR>', { silent = true, desc = 'Increase window height' })
|
||||
vim.keymap.set('n', '<leader>|', ':vnew<CR>', { silent = true, desc = 'Split window below' })
|
||||
vim.keymap.set('n', '<leader>-', ':new<CR>', { silent = true, desc = 'Split window right' })
|
||||
vim.keymap.set('i', '<M-h>', '<Esc><C-w>h', { desc = 'Go to left window' })
|
||||
vim.keymap.set('i', '<M-l>', '<Esc><C-w>l', { desc = 'Go to right window' })
|
||||
vim.keymap.set('i', '<M-j>', '<Esc><C-w>j', { desc = 'Go to lower window' })
|
||||
vim.keymap.set('i', '<M-k>', '<Esc><C-w>k', { desc = 'Go to upper window' })
|
||||
|
||||
-- Faster
|
||||
vim.keymap.set('n', '<leader>s', ':w!<CR>', { silent = true, desc = 'Save' })
|
||||
vim.keymap.set('n', '<leader>q', ':q!<CR>', { silent = true, desc = 'Quit' })
|
||||
vim.keymap.set('n', '<leader>Q', ':qa!<CR>', { silent = true, desc = 'Quit all' })
|
||||
vim.keymap.set('n', '<Leader>p', ':PackerSync<CR>', { silent = true, desc = 'Packer Sync' })
|
||||
vim.keymap.set({ 'n', 'v' }, '<Bar>', 'gg', { silent = true, desc = 'Go to top of the file' })
|
||||
vim.keymap.set({ 'n', 'v' }, '¿', 'G', { silent = true, desc = 'Go to bottom of the file' })
|
||||
vim.keymap.set('n', '<leader>xl', '<cmd>lopen<cr>', { desc = 'Open Location List' })
|
||||
vim.keymap.set('n', '<leader>xq', '<cmd>copen<cr>', { desc = 'Open Quickfix List' })
|
||||
|
||||
-- Centering
|
||||
vim.keymap.set({ 'n', 'v' }, 'J', 'mzJ`z')
|
||||
|
||||
local center_keys = { 'n', 'N', '{', '}', '*', '[g', ']g', '[s', ']s', '[m', ']m' }
|
||||
for _, key in ipairs(center_keys) do
|
||||
vim.keymap.set({ 'n', 'x' }, key, key .. 'zzzv', { desc = 'center after ' .. key })
|
||||
end
|
||||
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'n', "'Nn'[v:searchforward]", { expr = true, desc = 'Next search result' })
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'N', "'nN'[v:searchforward]", { expr = true, desc = 'Next search result' })
|
||||
|
||||
-- Formatting
|
||||
vim.keymap.set('n', '<leader>=', 'ggVGgq', { silent = true })
|
||||
vim.keymap.set('n', '<leader>0', 'vapJgqap', { silent = true })
|
||||
vim.keymap.set('n', 'Q', 'gqap', { silent = true })
|
||||
vim.keymap.set('x', 'Q', 'gq', { silent = true })
|
||||
|
||||
-- Line movements
|
||||
vim.keymap.set('n', '<leader>j', ':m .+1<CR>==', { silent = true })
|
||||
vim.keymap.set('n', '<leader>k', ':m .-2<CR>==', { silent = true })
|
||||
vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
vim.keymap.set({ 'n', 'v' }, '<Home>', 'g<Home>', { silent = true })
|
||||
vim.keymap.set({ 'n', 'v' }, '<End>', 'g<End>', { silent = true })
|
||||
vim.keymap.set({ 'n', 'v' }, '<leader>y', 'y$', { silent = true })
|
||||
vim.keymap.set({ 'n', 'v' }, 'Y', 'yg_', { silent = true })
|
||||
vim.keymap.set({ 'n', 'x' }, 'H', 'g^', { silent = true })
|
||||
vim.keymap.set({ 'n', 'x' }, 'L', 'g$', { silent = true })
|
||||
vim.keymap.set('i', '<C-j>', '<Esc>:m .+1<CR>==gi')
|
||||
vim.keymap.set('i', '<C-k>', '<Esc>:m .-2<CR>==gi')
|
||||
vim.keymap.set('i', '<Home>', '<C-o>g<Home>', { silent = true })
|
||||
vim.keymap.set('i', '<End>', '<C-o>g<End>', { silent = true })
|
||||
vim.keymap.set('v', '<C-j>', ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set('v', '<C-k>', ':m <-2<CR>gv=gv')
|
||||
|
||||
-- Reverse ctrl+u
|
||||
vim.keymap.set('i', '<C-u>', '<C-g>u<C-u>')
|
||||
vim.keymap.set('i', '<C-w>', '<C-g>u<C-w>')
|
||||
vim.keymap.set('i', ',', ',<C-g>u')
|
||||
vim.keymap.set('i', '.', '.<C-g>u')
|
||||
vim.keymap.set('i', ':', ':<C-g>u')
|
||||
vim.keymap.set('i', ';', ';<C-g>u')
|
||||
vim.keymap.set('i', '!', '!<C-g>u')
|
||||
vim.keymap.set('i', '?', '?<C-g>u')
|
||||
|
||||
-- Visual indentation
|
||||
vim.keymap.set('v', '>', '>gv', { silent = true })
|
||||
vim.keymap.set('v', '<', '<gv', { silent = true })
|
||||
vim.keymap.set('n', '>', '>>', { silent = true })
|
||||
vim.keymap.set('n', '<', '<<', { silent = true })
|
||||
|
||||
-- Keep cursor at the bottom of the visual selection after you yank it.
|
||||
vim.keymap.set('v', 'y', 'ygv<Esc>', { remap = true })
|
||||
|
||||
-- Don't overwrite register when pasting over visual selection.
|
||||
vim.keymap.set('x', 'p', function()
|
||||
return 'pgv"' .. vim.v.register .. 'y'
|
||||
end, { remap = false, expr = true })
|
||||
|
||||
-- Allow for repeating commands in visual mode
|
||||
vim.keymap.set('x', '.', ':normal.<CR>', { silent = true })
|
||||
|
||||
-- Select all
|
||||
vim.keymap.set('n', '<C-a>', 'ggVG', { silent = true })
|
||||
vim.keymap.set('i', '<C-a>', '<Esc>ggVG', { silent = true })
|
||||
|
||||
-- Terminal
|
||||
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')
|
||||
vim.keymap.set('t', '<M-h>', '<C-\\><C-n><C-w>h')
|
||||
vim.keymap.set('t', '<M-j>', '<C-\\><C-n><C-w>j')
|
||||
vim.keymap.set('t', '<M-k>', '<C-\\><C-n><C-w>k')
|
||||
vim.keymap.set('t', '<M-l>', '<C-\\><C-n><C-w>l')
|
||||
vim.keymap.set('t', '<S-Space>', '<Space>')
|
||||
vim.keymap.set('t', '<C-Space>', '<Space>')
|
||||
|
||||
-- Map <C-j> and <C-k> to scroll up and down autocompletion list in command mode
|
||||
vim.keymap.set('c', '<C-j>', '<C-n>', { remap = true, silent = true })
|
||||
vim.keymap.set('c', '<C-k>', '<C-p>', { remap = true, silent = true })
|
||||
|
||||
-- Loupe
|
||||
vim.keymap.set({ 'n', 'x' }, '/', '/\\v')
|
||||
vim.keymap.set({ 'n', 'x' }, '?', '?\\v')
|
||||
|
||||
-- Write and quit typos
|
||||
local typos = { 'W', 'Wq', 'WQ', 'Wqa', 'WQa', 'WQA', 'WqA', 'Q', 'Qa', 'QA' }
|
||||
for _, cmd in ipairs(typos) do
|
||||
vim.api.nvim_create_user_command(cmd, function(opts)
|
||||
vim.api.nvim_cmd({
|
||||
cmd = cmd:lower(),
|
||||
bang = opts.bang,
|
||||
mods = { noautocmd = true },
|
||||
}, {})
|
||||
end, { bang = true })
|
||||
end
|
||||
|
||||
-- Bye
|
||||
vim.api.nvim_set_keymap('', 'q', '', {})
|
|
@ -1,38 +0,0 @@
|
|||
local options = {
|
||||
title = true,
|
||||
undofile = true,
|
||||
autowrite = true,
|
||||
smartindent = true,
|
||||
splitbelow = true,
|
||||
splitright = true,
|
||||
ignorecase = true,
|
||||
smartcase = true,
|
||||
breakindent = true,
|
||||
termguicolors = true,
|
||||
cursorline = true,
|
||||
linebreak = true,
|
||||
number = true,
|
||||
ruler = false,
|
||||
hlsearch = false,
|
||||
scrolloff = 5,
|
||||
pumheight = 10,
|
||||
updatetime = 100,
|
||||
showbreak = string.rep(' ', 3),
|
||||
whichwrap = 'b,h,l,s,<,>,[,],~',
|
||||
viewoptions = 'cursor,folds',
|
||||
clipboard = 'unnamedplus',
|
||||
signcolumn = 'no',
|
||||
completeopt = { 'menu', 'menuone', 'noselect', 'noinsert' },
|
||||
titlestring = '%(%m%) %(%{expand("%:~")}%)',
|
||||
formatlistpat = '^\\s*\\(\\d\\+[\\]:.)}\\t ]\\|[*-][\\t ]\\)\\s*',
|
||||
fillchars = { diff = ' ', eob = ' ', stlnc = ' ', stl = ' ', vert = '│', msgsep = '‾' },
|
||||
}
|
||||
|
||||
vim.opt.nrformats:append 'alpha'
|
||||
vim.opt.diffopt:append { 'vertical', 'iwhite', 'indent-heuristic', algorithm = 'patience', foldcolumn = 0 }
|
||||
|
||||
vim.opt.formatoptions = vim.opt.formatoptions - 'a' - 't' + 'c' + 'q' - 'o' - 'r' + 'n' + 'j' - '2'
|
||||
|
||||
for k, v in pairs(options) do
|
||||
vim.opt[k] = v
|
||||
end
|
|
@ -1,123 +0,0 @@
|
|||
local install_path = vim.fn.stdpath 'data' .. '/site/pack/packer/start/packer.nvim'
|
||||
local is_bootstrap = false
|
||||
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
|
||||
is_bootstrap = true
|
||||
vim.fn.system { 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
end
|
||||
|
||||
require('packer').init {
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require('packer.util').float { border = 'single' }
|
||||
end,
|
||||
prompt_border = 'single',
|
||||
},
|
||||
profile = {
|
||||
enable = true,
|
||||
threshold = 1,
|
||||
},
|
||||
autoremove = true,
|
||||
}
|
||||
|
||||
require('packer').startup(function(use)
|
||||
use 'wbthomason/packer.nvim'
|
||||
use { -- LSP Configuration & Plugins
|
||||
'neovim/nvim-lspconfig',
|
||||
ft = { 'lua', 'rust', 'html', 'css', 'javascript' },
|
||||
requires = {
|
||||
-- Additional rust configuration
|
||||
'simrat39/rust-tools.nvim',
|
||||
},
|
||||
}
|
||||
use {
|
||||
'jose-elias-alvarez/null-ls.nvim',
|
||||
ft = { 'lua', 'rust', 'html', 'css', 'javascript', 'zsh', 'toml', 'sh', 'bash', 'make', 'python' },
|
||||
}
|
||||
use { -- Autocompletion
|
||||
'hrsh7th/nvim-cmp',
|
||||
ft = { 'lua', 'rust', 'html', 'css', 'javascript', 'zsh', 'toml' },
|
||||
requires = {
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-nvim-lua',
|
||||
'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-buffer',
|
||||
'hrsh7th/cmp-cmdline',
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
'onsails/lspkind.nvim',
|
||||
},
|
||||
}
|
||||
use {
|
||||
'L3MON4D3/LuaSnip',
|
||||
requires = { 'rafamadriz/friendly-snippets' },
|
||||
ft = { 'lua', 'rust', 'html', 'css', 'javascript' },
|
||||
}
|
||||
use { -- Highlight, edit, and navigate code
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
run = function()
|
||||
pcall(require('nvim-treesitter.install').update { with_sync = true })
|
||||
end,
|
||||
}
|
||||
use { -- Additional text objects via treesitter
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
after = 'nvim-treesitter',
|
||||
}
|
||||
|
||||
-- Fuzzy Finder (files, lsp, etc)
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
branch = '0.1.x',
|
||||
requires = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons' },
|
||||
}
|
||||
-- Fuzzy Finder Algorithm which requires local dependencies to be built. Only load if `make` is available
|
||||
use {
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
run = 'make',
|
||||
cond = vim.fn.executable 'make' == 1,
|
||||
after = 'nvim-telescope',
|
||||
}
|
||||
-- File browser
|
||||
use { 'nvim-telescope/telescope-file-browser.nvim', after = 'nvim-telescope' }
|
||||
use { 'nvim-telescope/telescope-ui-select.nvim', after = 'nvim-telescope' }
|
||||
use { 'debugloop/telescope-undo.nvim', after = 'nvim-telescope' }
|
||||
|
||||
use {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
cond = function()
|
||||
local branch = vim.fn.system "git branch --show-current 2> /dev/null | tr -d '\n'"
|
||||
if branch ~= '' then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end,
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
}
|
||||
use 'ellisonleao/gruvbox.nvim'
|
||||
use 'numToStr/Comment.nvim' -- "gc" to comment visual regions/lines
|
||||
use 'tpope/vim-sleuth' -- Detect tabstop and shiftwidth automatically
|
||||
use 'kylechui/nvim-surround'
|
||||
use { 'windwp/nvim-autopairs', event = 'InsertEnter' }
|
||||
|
||||
if is_bootstrap then
|
||||
require('packer').sync()
|
||||
end
|
||||
end)
|
||||
|
||||
if is_bootstrap then
|
||||
print '=================================='
|
||||
print ' Plugins are being installed'
|
||||
print ' Wait until Packer completes,'
|
||||
print ' then restart nvim'
|
||||
print '=================================='
|
||||
return
|
||||
end
|
||||
|
||||
-- Automatically source and re-compile packer whenever you save this file
|
||||
local packer_group = vim.api.nvim_create_augroup('Packer', { clear = true })
|
||||
vim.api.nvim_create_autocmd('BufWritePost', {
|
||||
command = 'source <afile> | silent! LspStop | silent! LspStart | PackerCompile',
|
||||
group = packer_group,
|
||||
pattern = vim.fn.expand '%',
|
||||
})
|
|
@ -1,201 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
-- custom highlights
|
||||
vim.api.nvim_set_hl(0, 'User1', { fg = '#458588', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User2', { fg = '#fe8019', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User3', { fg = '#fb4934', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User4', { fg = '#fabd2f', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User5', { fg = '#83a598', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User6', { fg = '#d3869b', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User8', { fg = '#ebdbb2', bg = '#282828' })
|
||||
|
||||
-- statusline colors
|
||||
M.colors = {
|
||||
flags = '%#User8#',
|
||||
inactive = '%#StatusLineNC#',
|
||||
line_col = '%#User1#',
|
||||
git = '%#User2#',
|
||||
diag = {
|
||||
err = '%#User3#',
|
||||
warn = '%#User4#',
|
||||
nfo = '%#User5#',
|
||||
hnt = '%#User6#',
|
||||
},
|
||||
}
|
||||
|
||||
-- diagnostics symbol config
|
||||
M.lsp_icon = {
|
||||
hint = ' ',
|
||||
info = ' ',
|
||||
warn = ' ',
|
||||
error = ' ',
|
||||
git = '',
|
||||
serv = ' ',
|
||||
}
|
||||
|
||||
-- setup truncation limits
|
||||
M.trunc_width = setmetatable({
|
||||
git_status = 90,
|
||||
lsp_name = 100,
|
||||
filename = 140,
|
||||
line_col = 60,
|
||||
}, {
|
||||
__index = function()
|
||||
return 80
|
||||
end,
|
||||
})
|
||||
|
||||
-- is buffer horizontally truncated
|
||||
M.is_truncated = function(_, width)
|
||||
local current_width = vim.api.nvim_win_get_width(0)
|
||||
return current_width < width
|
||||
end
|
||||
|
||||
M.get_lsp_name = function(self)
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then
|
||||
return ''
|
||||
end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
if self:is_truncated(self.trunc_width.lsp_name) then
|
||||
return self.lsp_icon.serv
|
||||
else
|
||||
return self.lsp_icon.serv .. client.name .. ' '
|
||||
end
|
||||
end
|
||||
end
|
||||
return ''
|
||||
end
|
||||
|
||||
-- get git information of current file
|
||||
M.get_git_status = function(self)
|
||||
local signs = vim.b.gitsigns_status_dict or { head = '' }
|
||||
local is_head_empty = signs.head ~= ''
|
||||
|
||||
if self:is_truncated(self.trunc_width.git_status) then
|
||||
return is_head_empty and signs.head or ''
|
||||
end
|
||||
|
||||
return is_head_empty and string.format(' %s %s', self.lsp_icon.git, signs.head) or ''
|
||||
end
|
||||
|
||||
-- get current file name
|
||||
M.get_filename = function(self)
|
||||
local filename = vim.fn.expand '%:t'
|
||||
local extension = vim.fn.expand '%:e'
|
||||
local fullname = '%<%F'
|
||||
if filename == '' then
|
||||
return ''
|
||||
end
|
||||
local icon, icon_color = require('nvim-web-devicons').get_icon_color(filename, extension, { default = true })
|
||||
vim.api.nvim_set_hl(0, 'User7', { fg = icon_color, bg = '#282828' })
|
||||
self.colors.filename = '%#User7#'
|
||||
if self:is_truncated(self.trunc_width.filename) then
|
||||
return ' ' .. icon .. ' ' .. filename
|
||||
else
|
||||
return ' ' .. icon .. ' ' .. fullname
|
||||
end
|
||||
end
|
||||
|
||||
-- get current line/col
|
||||
M.get_line_col = function(self)
|
||||
if self:is_truncated(self.trunc_width.line_col) then
|
||||
return ' %l:%c'
|
||||
else
|
||||
return ' :%l :%c %p%%'
|
||||
end
|
||||
end
|
||||
|
||||
M.get_flags = function()
|
||||
return '%h%w%m'
|
||||
end
|
||||
|
||||
-- get current file diagnostics
|
||||
M.get_diagnostics = function(self)
|
||||
if #vim.lsp.buf_get_clients(0) == 0 then
|
||||
return ''
|
||||
end
|
||||
|
||||
local status_parts = {}
|
||||
local warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
|
||||
local hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
|
||||
local infos = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
|
||||
local errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
|
||||
|
||||
if errors > 0 then
|
||||
table.insert(status_parts, self.colors.diag.err .. self.lsp_icon.error .. errors)
|
||||
end
|
||||
if warnings > 0 then
|
||||
table.insert(status_parts, self.colors.diag.warn .. self.lsp_icon.warn .. warnings)
|
||||
end
|
||||
if infos > 0 then
|
||||
table.insert(status_parts, self.colors.diag.nfo .. self.lsp_icon.info .. infos)
|
||||
end
|
||||
if hints > 0 then
|
||||
table.insert(status_parts, self.colors.diag.hnt .. self.lsp_icon.hint .. hints)
|
||||
end
|
||||
local status_diagnostics = vim.trim(table.concat(status_parts, ' '))
|
||||
if status_diagnostics ~= '' then
|
||||
return status_diagnostics .. ' '
|
||||
end
|
||||
return ''
|
||||
end
|
||||
|
||||
-- get wordcount. only used in plaintext files
|
||||
M.get_words = function()
|
||||
if vim.o.filetype == 'text' then
|
||||
if vim.fn.has_key(vim.fn.wordcount(), 'visual_words') == 1 then
|
||||
return 'W:' .. vim.fn.wordcount().visual_words .. '/' .. vim.fn.wordcount().words .. ' '
|
||||
else
|
||||
return 'W:' .. vim.fn.wordcount().cursor_words .. '/' .. vim.fn.wordcount().words .. ' '
|
||||
end
|
||||
else
|
||||
return ''
|
||||
end
|
||||
end
|
||||
|
||||
-- create active statusline
|
||||
M.set_active = function(self)
|
||||
local lsp = self:get_diagnostics()
|
||||
local servs = self.colors.line_col .. self:get_lsp_name()
|
||||
local palabras = self.colors.flags .. self:get_words()
|
||||
local flags = self.colors.flags .. self:get_flags()
|
||||
local filename = string.format('%s%s', self.colors.filename, self:get_filename())
|
||||
local git = self.colors.git .. self:get_git_status()
|
||||
local line_col = self.colors.line_col .. self:get_line_col()
|
||||
|
||||
return table.concat {
|
||||
lsp,
|
||||
servs,
|
||||
palabras,
|
||||
flags,
|
||||
'%=',
|
||||
filename,
|
||||
'%=',
|
||||
git,
|
||||
line_col,
|
||||
}
|
||||
end
|
||||
|
||||
-- create inactive statusline
|
||||
M.set_inactive = function(self)
|
||||
return self.colors.inactive .. '%= %m %F %='
|
||||
end
|
||||
|
||||
-- set statusline
|
||||
Statusline = setmetatable(M, {
|
||||
__call = function(self, mode)
|
||||
return self['set_' .. mode](self)
|
||||
end,
|
||||
})
|
||||
|
||||
vim.cmd [[
|
||||
augroup Statusline
|
||||
au!
|
||||
au WinEnter,BufEnter * setlocal statusline=%!v:lua.Statusline('active')
|
||||
au WinLeave,BufLeave * setlocal statusline=%!v:lua.Statusline('inactive')
|
||||
augroup END
|
||||
]]
|
|
@ -1,248 +0,0 @@
|
|||
APFS
|
||||
API
|
||||
APIs
|
||||
AgileBits
|
||||
Ansible
|
||||
BFS
|
||||
BeOS
|
||||
CDN
|
||||
CLI
|
||||
CentOS
|
||||
Clojure
|
||||
Codespaces
|
||||
CoffeeScript
|
||||
Colemak
|
||||
DFS
|
||||
DXP
|
||||
Dropbox
|
||||
EC2
|
||||
ES6
|
||||
ESPP
|
||||
Ephemerality
|
||||
FB
|
||||
Facebook
|
||||
Facebook's
|
||||
FileMaker
|
||||
Firefox
|
||||
FreeBSD
|
||||
GitHub
|
||||
Gmail
|
||||
GnuPG
|
||||
GraphQL
|
||||
GraphiQL
|
||||
GraphiQL's
|
||||
HFS
|
||||
Hammerspoon
|
||||
Heroku
|
||||
Homebrew
|
||||
Hurrell
|
||||
IDE
|
||||
IRC
|
||||
JS
|
||||
JSON
|
||||
JSP
|
||||
JSPs
|
||||
Karabiner
|
||||
Keychain
|
||||
LSP
|
||||
LastPass
|
||||
Liferay
|
||||
Liferay's
|
||||
Lua
|
||||
LuaJIT
|
||||
MVC
|
||||
MacVim
|
||||
MailMate
|
||||
MongoDB
|
||||
Monoid
|
||||
Monoids
|
||||
MySQL
|
||||
Neovim
|
||||
OCaml
|
||||
PHP
|
||||
PRs
|
||||
Perf
|
||||
Phabricator
|
||||
PowerPC
|
||||
README
|
||||
REPL
|
||||
RESTful
|
||||
RVM
|
||||
React's
|
||||
Realforce
|
||||
Recurse
|
||||
Redis
|
||||
Redux
|
||||
SDK
|
||||
SLOC
|
||||
TOTP
|
||||
TypeScript
|
||||
UI
|
||||
URLs
|
||||
UX
|
||||
Undux
|
||||
WebSockets
|
||||
Wincent
|
||||
Xcode
|
||||
YAML
|
||||
YubiKey
|
||||
abandonware
|
||||
admin
|
||||
app
|
||||
applicatives
|
||||
apps
|
||||
async
|
||||
auth
|
||||
autocompletes
|
||||
autocompletion
|
||||
backend
|
||||
backticks
|
||||
bitmask
|
||||
bitmasks
|
||||
blog
|
||||
cheatsheet
|
||||
checkboxes
|
||||
chruby
|
||||
codebase
|
||||
codepath
|
||||
colocated
|
||||
colocating
|
||||
colocation
|
||||
committer
|
||||
composability
|
||||
composable
|
||||
concerningly
|
||||
config
|
||||
configs
|
||||
cron
|
||||
declutter
|
||||
dedupes
|
||||
destructuring
|
||||
diff
|
||||
diffs
|
||||
discoverability
|
||||
dotfile
|
||||
dotfiles
|
||||
eg
|
||||
endorphin
|
||||
etc
|
||||
fallback
|
||||
filesystem
|
||||
filetype
|
||||
folksonomy
|
||||
foo
|
||||
foobar
|
||||
gitignore
|
||||
globbing
|
||||
gzip
|
||||
hacky
|
||||
heterogenous
|
||||
homogenous
|
||||
hostnames
|
||||
iCloud
|
||||
iOS
|
||||
iPhone
|
||||
iTerm
|
||||
iTerm2
|
||||
iframe
|
||||
impactful
|
||||
inbox
|
||||
infocmp
|
||||
inline
|
||||
introspection
|
||||
jQuery
|
||||
keychain
|
||||
keychains
|
||||
linter
|
||||
linting
|
||||
loadview
|
||||
macOS
|
||||
memcached
|
||||
memoization
|
||||
memoize
|
||||
memoized
|
||||
memoizing
|
||||
mergeable
|
||||
metadata
|
||||
metastisizing
|
||||
microservice
|
||||
middleware
|
||||
misclick
|
||||
mkview
|
||||
modeline
|
||||
monit
|
||||
monoid
|
||||
monoids
|
||||
monorepo
|
||||
namespace
|
||||
nginx
|
||||
npm
|
||||
nvALT
|
||||
octothorpe
|
||||
offline
|
||||
ok
|
||||
onboarding
|
||||
outsized
|
||||
overpromising
|
||||
passphrases
|
||||
perf
|
||||
performant
|
||||
permalinks
|
||||
prescan
|
||||
proactively
|
||||
programmatically
|
||||
prototypal
|
||||
quicksort
|
||||
rbenv
|
||||
rebase
|
||||
rebased
|
||||
recurse
|
||||
recursed
|
||||
recursing
|
||||
refactor
|
||||
reflows
|
||||
repo
|
||||
repos
|
||||
reservior
|
||||
screencasts
|
||||
screenful
|
||||
screensaver
|
||||
screenshot
|
||||
screenshots
|
||||
segfaults
|
||||
shows
|
||||
spellfile
|
||||
stateful
|
||||
struct
|
||||
submodule
|
||||
submodules
|
||||
subtree
|
||||
symlink
|
||||
templated
|
||||
terminfo
|
||||
timestamp
|
||||
tmux
|
||||
toolchain
|
||||
toolset
|
||||
transpile
|
||||
transpiled
|
||||
typeahead
|
||||
typeclass
|
||||
unarchive
|
||||
underdelivered
|
||||
underdelivering
|
||||
uninstalling
|
||||
unsetting
|
||||
unstyled
|
||||
unsubscribe
|
||||
unsubscription
|
||||
upvote
|
||||
versioned
|
||||
viewport
|
||||
vim
|
||||
webpack
|
||||
webviews
|
||||
whitespace
|
||||
wiki
|
||||
wikitext
|
||||
zsh
|
Binary file not shown.
Binary file not shown.
|
@ -1,24 +0,0 @@
|
|||
plugins
|
||||
repos
|
||||
dotfiles
|
||||
repo
|
||||
Github
|
||||
Ok
|
||||
plugin
|
||||
irc
|
||||
javascript
|
||||
Jardón
|
||||
apps
|
||||
freenode
|
||||
gopherholes
|
||||
gopherhole
|
||||
github
|
||||
pandemia
|
||||
cositas
|
||||
Gemini
|
||||
gopher
|
||||
hardware
|
||||
shell
|
||||
markdown
|
||||
html
|
||||
tabs
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -12,53 +12,12 @@ for _, provider in pairs(disabled_providers) do
|
|||
vim.g['loaded_' .. provider .. '_provider'] = 0
|
||||
end
|
||||
|
||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system {
|
||||
'git',
|
||||
'clone',
|
||||
'--filter=blob:none',
|
||||
'https://github.com/folke/lazy.nvim.git',
|
||||
'--branch=stable', -- latest stable release
|
||||
lazypath,
|
||||
if vim.g.noplugins == nil then
|
||||
require 'pereza'
|
||||
else
|
||||
require('gruvbox').setup {
|
||||
contrast = 'hard',
|
||||
transparent_mode = true,
|
||||
}
|
||||
vim.cmd.colorscheme 'gruvbox'
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local lazy_opts = {
|
||||
install = { colorscheme = { 'gruvbox' } },
|
||||
ui = {
|
||||
border = 'single',
|
||||
wrap = true,
|
||||
},
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
'man',
|
||||
'gzip',
|
||||
'zip',
|
||||
'zipPlugin',
|
||||
'tar',
|
||||
'tarPlugin',
|
||||
'getscript',
|
||||
'getscriptPlugin',
|
||||
'vimball',
|
||||
'vimballPlugin',
|
||||
'2html_plugin',
|
||||
'tohtml',
|
||||
'logiPat',
|
||||
'rrhelper',
|
||||
'netrw',
|
||||
'netrwPlugin',
|
||||
'netrwSettings',
|
||||
'netrwFileHandlers',
|
||||
'tutor',
|
||||
'rplugin',
|
||||
'optwin',
|
||||
'compiler',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
require('lazy').setup('vago', lazy_opts)
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "d0cbbfb539898a275dc4398446ab0ae3b94819bf" },
|
||||
"LuaSnip": { "branch": "master", "commit": "99a94cc35ec99bf06263d0346128e908a204575c" },
|
||||
"catppuccin": { "branch": "main", "commit": "057c34f849cf21059487d849e2f3b3efcd4ee0eb" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "bc38057e513458cb2486b6cd82d365fa294ee398" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "5d73da785a3c05fd63ac31769079db05169a6ec7" },
|
||||
"kiwi.nvim": { "branch": "master", "commit": "a19716890802415094d4ae6c776334849bbe9732" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "dac844ed617dda4f9ec85eb88e9629ad2add5e05" },
|
||||
"lsp_lines.nvim": { "branch": "main", "commit": "f53af96d4789eef39a082dbcce078d2bfc384ece" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" },
|
||||
"null-ls.nvim": { "branch": "main", "commit": "db09b6c691def0038c456551e4e2772186449f35" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "c4e491a87eeacf0408902c32f031d802c7eafce8" },
|
||||
"nvim-dap": { "branch": "master", "commit": "1c63f37f95cd4fb54512898168138d9a75d1516a" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "37b4cba02e337a95cb62ad1609b3d1dccb2e5d42" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "c0de180ddb3df36feef8ac3607670894d0e7497f" },
|
||||
"nvim-surround": { "branch": "main", "commit": "10b20ca7d9da1ac8df8339e140ffef94f9ab3b18" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "6c93c86272633937090806fedb2a20fe11025876" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "9e519b6146512c8e2e702faf8ac48420f4f5deec" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "efbfed0567ef4bfac3ce630524a0f6c8451c5534" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "267282a9ce242bbb0c5dc31445b6d353bed978bb" },
|
||||
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
|
||||
"telescope-file-browser.nvim": { "branch": "master", "commit": "6fe423eea6604c2fcbb906ff5f7e27f748a6ed87" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" },
|
||||
"telescope-live-grep-args.nvim": { "branch": "master", "commit": "0f75ea809c46af8997c64f49c52e3c641d887885" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "62ea5e58c7bbe191297b983a9e7e89420f581369" },
|
||||
"telescope-undo.nvim": { "branch": "main", "commit": "3dec002ea3e7952071d26fbb5d01e2038a58a554" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "d2e17ba18a6840b7e7079764b282616c3188e0de" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "40aad004f53ae1d1ba91bcc5c29d59f07c5f01d3" },
|
||||
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system {
|
||||
'git',
|
||||
'clone',
|
||||
'--filter=blob:none',
|
||||
'https://github.com/folke/lazy.nvim.git',
|
||||
'--branch=stable', -- latest stable release
|
||||
lazypath,
|
||||
}
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local status_ok, lazy = pcall(require, 'lazy')
|
||||
if not status_ok then
|
||||
print 'lazy just installed, please restart neovim'
|
||||
return
|
||||
end
|
||||
|
||||
local lazy_opts = {
|
||||
lockfile = vim.fn.stdpath 'config' .. '/lua/lazy-lock.json',
|
||||
ui = {
|
||||
border = 'single',
|
||||
},
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
'man',
|
||||
'gzip',
|
||||
'zip',
|
||||
'zipPlugin',
|
||||
'tar',
|
||||
'tarPlugin',
|
||||
'getscript',
|
||||
'getscriptPlugin',
|
||||
'vimball',
|
||||
'vimballPlugin',
|
||||
'2html_plugin',
|
||||
'tohtml',
|
||||
'logiPat',
|
||||
'rrhelper',
|
||||
'netrw',
|
||||
'netrwPlugin',
|
||||
'netrwSettings',
|
||||
'netrwFileHandlers',
|
||||
'tutor',
|
||||
'rplugin',
|
||||
'optwin',
|
||||
'compiler',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
lazy.setup('vago', lazy_opts)
|
|
@ -17,15 +17,17 @@ return {
|
|||
ensure_installed = {
|
||||
'bash',
|
||||
'c',
|
||||
'comment',
|
||||
'css',
|
||||
'help',
|
||||
'html',
|
||||
'json',
|
||||
'json5',
|
||||
'jsonc',
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'git_config',
|
||||
'git_rebase',
|
||||
'gitattributes',
|
||||
'gitcommit',
|
||||
'lua',
|
||||
'make',
|
||||
'markdown',
|
||||
|
@ -38,8 +40,12 @@ return {
|
|||
'scss',
|
||||
'toml',
|
||||
'vim',
|
||||
'vimdoc'
|
||||
'vimdoc',
|
||||
},
|
||||
sync_install = false,
|
||||
auto_install = false,
|
||||
ignore_install = {},
|
||||
modules = {},
|
||||
highlight = { enable = true, addtional_vim_regex_highlighting = false },
|
||||
indent = { enable = true, disable = { 'python' } },
|
||||
autopairs = { enable = true },
|
||||
|
@ -52,6 +58,7 @@ return {
|
|||
node_decremental = '<c-backspace>',
|
||||
},
|
||||
},
|
||||
matchup = { enable = true },
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
|
|
|
@ -7,11 +7,21 @@ return {
|
|||
require('catppuccin').setup {
|
||||
term_colors = true,
|
||||
transparent_background = true,
|
||||
styles = {
|
||||
comments = { 'italic' },
|
||||
conditionals = {},
|
||||
loops = {},
|
||||
functions = {},
|
||||
keywords = { 'bold' },
|
||||
strings = {},
|
||||
variables = {},
|
||||
numbers = {},
|
||||
booleans = {},
|
||||
properties = {},
|
||||
types = { 'italic,bold' },
|
||||
},
|
||||
color_overrides = {
|
||||
mocha = {
|
||||
-- base = '#000000',
|
||||
-- mantle = '#000000',
|
||||
-- crust = '#000000',
|
||||
rosewater = '#ffc9c9',
|
||||
flamingo = '#ff9f9a',
|
||||
pink = '#ffa9c9',
|
||||
|
@ -40,56 +50,48 @@ return {
|
|||
crust = '#080808',
|
||||
},
|
||||
},
|
||||
styles = {
|
||||
comments = { 'italic' },
|
||||
conditionals = {},
|
||||
loops = {},
|
||||
functions = {},
|
||||
keywords = { 'bold' },
|
||||
strings = {},
|
||||
variables = {},
|
||||
numbers = {},
|
||||
booleans = {},
|
||||
properties = {},
|
||||
types = { 'italic,bold' },
|
||||
},
|
||||
custom_highlights = function(colors)
|
||||
return {
|
||||
LspDiagnosticsLineNrError = { fg = '#FF0000', bg = '#51202A', style = { 'bold' } },
|
||||
LspDiagnosticsLineNrWarn = { fg = '#FFA500', bg = '#51412A', style = { 'bold' } },
|
||||
LspDiagnosticsLineNrInfo = { fg = '#00FFFF', bg = '#1E535D', style = { 'bold' } },
|
||||
LspDiagnosticsLineNrHint = { fg = '#008bbd', bg = '#1E205D', style = { 'bold' } },
|
||||
NormalFloat = { bg = '#000000' },
|
||||
CmpPmenuBorder = { fg = '#615750' },
|
||||
PmenuSel = { bg = '#282C34', fg = colors.none },
|
||||
Pmenu = { fg = '#C5CDD9', bg = '#22252A' },
|
||||
CmpItemAbbrDeprecated = { fg = '#076678', bg = colors.none, style = { 'strikethrough' } },
|
||||
CmpItemAbbrMatch = { fg = '#82AAFF', bg = colors.none, style = { 'bold' } },
|
||||
CmpItemAbbrMatchFuzzy = { fg = '#82AAFF', bg = colors.none, style = { 'bold' } },
|
||||
CmpItemMenu = { fg = '#C792EA', bg = colors.none, style = { 'italic' } },
|
||||
CmpItemKindField = { fg = '#EED8DA', bg = '#af3a03' },
|
||||
CmpItemKindProperty = { fg = '#EED8DA', bg = '#af3a03' },
|
||||
CmpItemKindEvent = { fg = '#EED8DA', bg = '#af3a03' },
|
||||
CmpItemKindText = { fg = '#C3E88D', bg = '#79740e' },
|
||||
CmpItemKindEnum = { fg = '#C3E88D', bg = '#79740e' },
|
||||
CmpItemKindKeyword = { fg = '#C3E88D', bg = '#79740e' },
|
||||
CmpItemKindConstant = { fg = '#FFE082', bg = '#d65d0e' },
|
||||
CmpItemKindConstructor = { fg = '#FFE082', bg = '#d65d0e' },
|
||||
CmpItemKindReference = { fg = '#FFE082', bg = '#d65d0e' },
|
||||
CmpItemKindFunction = { fg = '#EADFF0', bg = '#8f3f71' },
|
||||
CmpItemKindStruct = { fg = '#EADFF0', bg = '#8f3f71' },
|
||||
CmpItemKindClass = { fg = '#EADFF0', bg = '#8f3f71' },
|
||||
CmpItemKindModule = { fg = '#EADFF0', bg = '#8f3f71' },
|
||||
CmpItemKindOperator = { fg = '#EADFF0', bg = '#8f3f71' },
|
||||
CmpItemKindVariable = { fg = '#C5CDD9', bg = '#076678' },
|
||||
CmpItemKindFile = { fg = '#C5CDD9', bg = '#076678' },
|
||||
CmpItemKindUnit = { fg = '#F5EBD9', bg = '#b57614' },
|
||||
CmpItemKindSnippet = { fg = '#F5EBD9', bg = '#b57614' },
|
||||
CmpItemKindFolder = { fg = '#F5EBD9', bg = '#b57614' },
|
||||
CmpItemKindMethod = { fg = '#DDE5F5', bg = '#34608d' },
|
||||
CmpItemKindValue = { fg = '#DDE5F5', bg = '#34608d' },
|
||||
CmpItemKindEnumMember = { fg = '#DDE5F5', bg = '#34608d' },
|
||||
CmpItemKindInterface = { fg = '#D8EEEB', bg = '#427b58' },
|
||||
CmpItemKindColor = { fg = '#D8EEEB', bg = '#427b58' },
|
||||
CmpItemKindTypeParameter = { fg = '#D8EEEB', bg = '#427b58' },
|
||||
}
|
||||
end,
|
||||
}
|
||||
vim.cmd.colorscheme 'catppuccin'
|
||||
vim.api.nvim_set_hl(0, 'LspDiagnosticsLineNrError', { fg = '#FF0000', bg = '#51202A', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'LspDiagnosticsLineNrWarn', { fg = '#FFA500', bg = '#51412A', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'LspDiagnosticsLineNrInfo', { fg = '#00FFFF', bg = '#1E535D', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'LspDiagnosticsLineNrHint', { fg = '#008bbd', bg = '#1E205D', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'CmpPmenuBorder', { fg = '#615750' })
|
||||
vim.api.nvim_set_hl(0, 'PmenuSel', { bg = '#282C34', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'Pmenu', { fg = '#C5CDD9', bg = '#22252A' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemAbbrDeprecated', { fg = '#076678', bg = 'NONE', strikethrough = true })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemAbbrMatch', { fg = '#82AAFF', bg = 'NONE', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemAbbrMatchFuzzy', { fg = '#82AAFF', bg = 'NONE', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemMenu', { fg = '#C792EA', bg = 'NONE', italic = true })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindField', { fg = '#EED8DA', bg = '#af3a03' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindProperty', { fg = '#EED8DA', bg = '#af3a03' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindEvent', { fg = '#EED8DA', bg = '#af3a03' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindText', { fg = '#C3E88D', bg = '#79740e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindEnum', { fg = '#C3E88D', bg = '#79740e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindKeyword', { fg = '#C3E88D', bg = '#79740e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindConstant', { fg = '#FFE082', bg = '#d65d0e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindConstructor', { fg = '#FFE082', bg = '#d65d0e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindReference', { fg = '#FFE082', bg = '#d65d0e' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindFunction', { fg = '#EADFF0', bg = '#8f3f71' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindStruct', { fg = '#EADFF0', bg = '#8f3f71' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindClass', { fg = '#EADFF0', bg = '#8f3f71' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindModule', { fg = '#EADFF0', bg = '#8f3f71' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindOperator', { fg = '#EADFF0', bg = '#8f3f71' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindVariable', { fg = '#C5CDD9', bg = '#076678' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindFile', { fg = '#C5CDD9', bg = '#076678' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindUnit', { fg = '#F5EBD9', bg = '#b57614' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindSnippet', { fg = '#F5EBD9', bg = '#b57614' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindFolder', { fg = '#F5EBD9', bg = '#b57614' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindMethod', { fg = '#DDE5F5', bg = '#34608d' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindValue', { fg = '#DDE5F5', bg = '#34608d' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindEnumMember', { fg = '#DDE5F5', bg = '#34608d' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindInterface', { fg = '#D8EEEB', bg = '#427b58' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindColor', { fg = '#D8EEEB', bg = '#427b58' })
|
||||
vim.api.nvim_set_hl(0, 'CmpItemKindTypeParameter', { fg = '#D8EEEB', bg = '#427b58' })
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -3,15 +3,16 @@ return {
|
|||
config = function()
|
||||
require('gruvbox').setup {
|
||||
contrast = 'hard',
|
||||
transparent_mode = true,
|
||||
overrides = {
|
||||
SignColumn = { bg = 'none' },
|
||||
GruvboxRedSign = { fg = '#cc241d', bg = '#1d2021', reverse = false },
|
||||
GruvboxGreenSign = { fg = '#98971a', bg = '#1d2021', reverse = false },
|
||||
GruvboxYellowSign = { fg = '#d79921', bg = '#1d2021', reverse = false },
|
||||
GruvboxBlueSign = { fg = '#458588', bg = '#1d2021', reverse = false },
|
||||
GruvboxPurpleSign = { fg = '#b16286', bg = '#1d2021', reverse = false },
|
||||
GruvboxAquaSign = { fg = '#689d6a', bg = '#1d2021', reverse = false },
|
||||
GruvboxOrangeSign = { fg = '#d65d0e', bg = '#1d2021', reverse = false },
|
||||
GruvboxRedSign = { fg = '#cc241d', bg = 'none', reverse = false },
|
||||
GruvboxGreenSign = { fg = '#98971a', bg = 'none', reverse = false },
|
||||
GruvboxYellowSign = { fg = '#d79921', bg = 'none', reverse = false },
|
||||
GruvboxBlueSign = { fg = '#458588', bg = 'none', reverse = false },
|
||||
GruvboxPurpleSign = { fg = '#b16286', bg = 'none', reverse = false },
|
||||
GruvboxAquaSign = { fg = '#689d6a', bg = 'none', reverse = false },
|
||||
GruvboxOrangeSign = { fg = '#d65d0e', bg = 'none', reverse = false },
|
||||
},
|
||||
}
|
||||
vim.cmd 'colorscheme gruvbox'
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
'hrsh7th/nvim-cmp',
|
||||
ft = { 'lua', 'rust', 'python', 'zsh', 'toml' },
|
||||
ft = { 'lua', 'rust', 'python' },
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-nvim-lua',
|
||||
|
@ -73,11 +73,13 @@ return {
|
|||
winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,Search:None',
|
||||
col_offset = -3,
|
||||
side_padding = 0,
|
||||
scrollbar = '║',
|
||||
},
|
||||
},
|
||||
view = {
|
||||
entries = 'bordered',
|
||||
},
|
||||
experimental = { ghost_text = true },
|
||||
formatting = {
|
||||
fields = { 'kind', 'abbr', 'menu' },
|
||||
format = function(entry, vim_item)
|
||||
|
|
|
@ -14,12 +14,12 @@ return {
|
|||
border = 'single',
|
||||
}
|
||||
|
||||
vim.diagnostic.config {
|
||||
virtual_text = false,
|
||||
virtual_lines = { only_current_line = true },
|
||||
}
|
||||
|
||||
local builtin = require 'telescope.builtin'
|
||||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = 'single',
|
||||
})
|
||||
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = 'single',
|
||||
})
|
||||
|
||||
local on_attach = function(client, bufnr)
|
||||
local nmap = function(keys, func, desc)
|
||||
|
@ -46,6 +46,8 @@ return {
|
|||
end
|
||||
end
|
||||
|
||||
local builtin = require 'telescope.builtin'
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
nmap('gd', builtin.lsp_definitions, '[G]oto [D]efinition')
|
||||
|
@ -66,36 +68,6 @@ return {
|
|||
nmap('<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, '[W]orkspace [L]ist Folders')
|
||||
|
||||
-- Diagnostic keymaps
|
||||
nmap('{d', vim.diagnostic.goto_prev, 'Previous [D]iagnostic')
|
||||
nmap('}d', vim.diagnostic.goto_next, 'Next [D]iagnostic')
|
||||
nmap('<leader>e', vim.diagnostic.open_float, 'View [E]rror')
|
||||
nmap('<leader>ll', vim.diagnostic.setloclist, 'View [L]ocal [L]ist')
|
||||
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignError',
|
||||
{ text = ' ', texthl = 'DiagnosticSignError', linehl = 'LspDiagnosticsLineNrError' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignWarn',
|
||||
{ text = ' ', texthl = 'DiagnosticSignWarn', linehl = 'LspDiagnosticsLineNrWarn' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignInfo',
|
||||
{ text = ' ', texthl = 'DiagnosticSignInfo', linehl = 'LspDiagnosticsLineNrInfo' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignHint',
|
||||
{ text = ' ', texthl = 'LspDiagnosticsLineNrHint', linehl = 'LspDiagnosticsLineNrHint' }
|
||||
)
|
||||
|
||||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = 'single',
|
||||
})
|
||||
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = 'single',
|
||||
})
|
||||
end
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
'jose-elias-alvarez/null-ls.nvim',
|
||||
-- ft = { 'lua', 'rust', 'zsh', 'toml', 'sh', 'bash', 'make', 'python' },
|
||||
ft = { 'lua', 'rust', 'zsh', 'toml', 'sh', 'bash', 'make', 'python' },
|
||||
config = function()
|
||||
local nulls = require 'null-ls'
|
||||
local fmt = nulls.builtins.formatting
|
||||
|
@ -18,7 +18,6 @@ return {
|
|||
fmt.isort,
|
||||
fmt.black,
|
||||
-- # DIAGNOSTICS #
|
||||
dgn.tidy,
|
||||
dgn.shellcheck,
|
||||
dgn.zsh,
|
||||
dgn.luacheck,
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
return {
|
||||
'serenevoid/kiwi.nvim',
|
||||
ft = { 'markdown', 'text' },
|
||||
config = function()
|
||||
require('kiwi').setup {
|
||||
{
|
||||
name = 'jp',
|
||||
path = '/home/corpse/doc/jp/本',
|
||||
},
|
||||
}
|
||||
vim.keymap.set('n', '<leader>ww', require('kiwi').open_wiki_index, { desc = 'Open [W]iki Index' })
|
||||
vim.keymap.set('n', '<leader>wd', require('kiwi').open_diary_index, { desc = 'Open [D]iary Index' })
|
||||
vim.keymap.set('n', '<leader>wn', require('kiwi').open_diary_new, { desc = 'Open [N]ew Diary' })
|
||||
end,
|
||||
}
|
|
@ -2,8 +2,7 @@ return {
|
|||
'simrat39/rust-tools.nvim',
|
||||
ft = 'rust',
|
||||
config = function()
|
||||
local rt = require 'rust-tools'
|
||||
rt.setup {
|
||||
require('rust-tools').setup {
|
||||
tools = {
|
||||
runnables = {
|
||||
use_telescope = true,
|
||||
|
@ -23,12 +22,15 @@ return {
|
|||
server = {
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(),
|
||||
on_attach = function(_, bufnr)
|
||||
vim.keymap.set('n', '<Leader>k', rt.hover_actions.hover_actions, { buffer = bufnr })
|
||||
vim.keymap.set('n', '<Leader>a', rt.code_action_group.code_action_group, { buffer = bufnr })
|
||||
vim.keymap.set('n', '<Leader>k', require('rust-tools').hover_actions.hover_actions, { buffer = bufnr })
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<Leader>a',
|
||||
require('rust-tools').code_action_group.code_action_group,
|
||||
{ buffer = bufnr }
|
||||
)
|
||||
end,
|
||||
settings = {
|
||||
-- to enable rust-analyzer settings visit:
|
||||
-- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc
|
||||
['rust-analyzer'] = {
|
||||
checkOnSave = {
|
||||
command = 'clippy',
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
return {
|
||||
'folke/trouble.nvim',
|
||||
ft = { 'lua', 'rust', 'python' },
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
opts = {
|
||||
use_diagnostic_signs = true,
|
||||
height = 15,
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
return {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
event = 'VeryLazy',
|
||||
dependencies = {
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
'nvim-telescope/telescope-file-browser.nvim',
|
||||
'nvim-telescope/telescope-live-grep-args.nvim',
|
||||
'debugloop/telescope-undo.nvim',
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make', cond = vim.fn.executable 'make' == 1 },
|
||||
},
|
||||
|
@ -13,8 +15,17 @@ return {
|
|||
local builtin = require 'telescope.builtin'
|
||||
local trouble = require 'trouble.providers.telescope'
|
||||
|
||||
local vimgrep_arguments = { unpack(require('telescope.config').values.vimgrep_arguments) }
|
||||
|
||||
-- I want to search in hidden/dot files.
|
||||
table.insert(vimgrep_arguments, '--hidden')
|
||||
-- I don't want to search in the `.git` directory.
|
||||
table.insert(vimgrep_arguments, '--glob')
|
||||
table.insert(vimgrep_arguments, '!**/.git/*')
|
||||
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
vimgrep_arguments = vimgrep_arguments,
|
||||
dynamic_preview_title = true,
|
||||
wrap_results = true,
|
||||
layout_strategy = 'flex',
|
||||
|
@ -36,12 +47,15 @@ return {
|
|||
selection_caret = ' ',
|
||||
file_ignore_patterns = { '%.jpeg$', '%.jpg$', '%.png$', '%.pdf$', 'node_modules', '.git/', 'dist/' },
|
||||
mappings = {
|
||||
n = { ['<c-t>'] = trouble.open_with_trouble },
|
||||
n = { ['<c-s-t>'] = trouble.open_with_trouble },
|
||||
i = {
|
||||
['<C-j>'] = actions.cycle_history_next,
|
||||
['<C-k>'] = actions.cycle_history_prev,
|
||||
['<C-o>'] = actions.select_horizontal,
|
||||
['<TAB>'] = actions.toggle_selection + actions.move_selection_next,
|
||||
['<M-space>'] = actions.to_fuzzy_refine,
|
||||
['<c-t>'] = trouble.open_with_trouble,
|
||||
['<c-s-t>'] = trouble.open_with_trouble,
|
||||
['<esc>'] = actions.close,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -59,6 +73,7 @@ return {
|
|||
side_by_side = true,
|
||||
use_delta = true,
|
||||
entry_format = ' #$ID, $STAT, $TIME',
|
||||
diff_context_lines = vim.o.scrolloff,
|
||||
layout_strategy = 'flex',
|
||||
layout_config = {
|
||||
preview_height = 0.4,
|
||||
|
@ -71,6 +86,7 @@ return {
|
|||
'file_browser',
|
||||
'undo',
|
||||
'ui-select',
|
||||
'live_grep_args',
|
||||
}
|
||||
for _, ext in ipairs(extensions) do
|
||||
require('telescope').load_extension(ext)
|
||||
|
@ -167,10 +183,6 @@ return {
|
|||
vim.keymap.set('n', '<F1>', builtin.help_tags, { desc = 'Search Help' })
|
||||
vim.keymap.set('n', '<F2>', '<cmd>lua Project_files()<CR>', { desc = 'Project Files' })
|
||||
vim.keymap.set('n', '<F3>', '<cmd>Telescope file_browser<CR>', { desc = 'File Browser' })
|
||||
vim.keymap.set('n', '<F5>', '<cmd>lua Delta_git_commits()<CR>', { desc = 'Project Commits' })
|
||||
vim.keymap.set('n', '<F6>', '<cmd>lua Delta_git_bcommits()<CR>', { desc = 'Buffer Commits' })
|
||||
vim.keymap.set('n', '<F11>', builtin.live_grep, { desc = 'Search by Grep' })
|
||||
vim.keymap.set('n', '<F12>', '<cmd>Telescope diagnostics bufnr=0<CR>', { desc = 'Search Diagnostics' })
|
||||
vim.keymap.set('n', '<F4>', function()
|
||||
builtin.buffers(themes.get_dropdown {
|
||||
sort_lastused = true,
|
||||
|
@ -180,5 +192,14 @@ return {
|
|||
borderchars = { '─', '│', '─', '│', '┌', '┐', '┘', '└' },
|
||||
})
|
||||
end, { desc = 'Find existing buffers' })
|
||||
vim.keymap.set('n', '<F5>', '<cmd>lua Delta_git_commits()<CR>', { desc = 'Project Commits' })
|
||||
vim.keymap.set('n', '<F6>', '<cmd>lua Delta_git_bcommits()<CR>', { desc = 'Buffer Commits' })
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<F11>',
|
||||
"<cmd>lua require('telescope').extensions.live_grep_args.live_grep_args()<CR>",
|
||||
{ desc = 'Grep with args' }
|
||||
)
|
||||
vim.keymap.set('n', '<F12>', '<cmd>Telescope diagnostics bufnr=0<CR>', { desc = 'Search Diagnostics' })
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
local gitsigns_bar = '│'
|
||||
|
||||
local gitsigns_hl_pool = {
|
||||
GitSignsAdd = 'DiagnosticOk',
|
||||
GitSignsChange = 'DiagnosticWarn',
|
||||
GitSignsChangedelete = 'DiagnosticWarn',
|
||||
GitSignsDelete = 'DiagnosticError',
|
||||
GitSignsTopdelete = 'DiagnosticError',
|
||||
GitSignsUntracked = 'NonText',
|
||||
}
|
||||
|
||||
local diag_signs_icons = {
|
||||
DiagnosticSignError = ' ',
|
||||
DiagnosticSignWarn = ' ',
|
||||
DiagnosticSignInfo = ' ',
|
||||
DiagnosticSignHint = ' ',
|
||||
DiagnosticSignOk = ' ',
|
||||
}
|
||||
|
||||
local function get_sign_name(cur_sign)
|
||||
if cur_sign == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
cur_sign = cur_sign[1]
|
||||
|
||||
if cur_sign == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
cur_sign = cur_sign.signs
|
||||
|
||||
if cur_sign == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
cur_sign = cur_sign[1]
|
||||
|
||||
if cur_sign == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
return cur_sign['name']
|
||||
end
|
||||
|
||||
local function mk_hl(group, sym)
|
||||
return table.concat { '%#', group, '#', sym, '%*' }
|
||||
end
|
||||
|
||||
local function get_name_from_group(bufnum, lnum, group)
|
||||
local cur_sign_tbl = vim.fn.sign_getplaced(bufnum, {
|
||||
group = group,
|
||||
lnum = lnum,
|
||||
})
|
||||
|
||||
return get_sign_name(cur_sign_tbl)
|
||||
end
|
||||
|
||||
_G.get_statuscol_gitsign = function(bufnr, lnum)
|
||||
local cur_sign_nm = get_name_from_group(bufnr, lnum, 'gitsigns_vimfn_signs_')
|
||||
|
||||
if cur_sign_nm ~= nil then
|
||||
return mk_hl(gitsigns_hl_pool[cur_sign_nm], gitsigns_bar)
|
||||
else
|
||||
return ' '
|
||||
end
|
||||
end
|
||||
|
||||
_G.get_statuscol_diag = function(bufnum, lnum)
|
||||
local cur_sign_nm = get_name_from_group(bufnum, lnum, '*')
|
||||
|
||||
if cur_sign_nm ~= nil and vim.startswith(cur_sign_nm, 'DiagnosticSign') then
|
||||
return mk_hl(cur_sign_nm, diag_signs_icons[cur_sign_nm])
|
||||
else
|
||||
return ' '
|
||||
end
|
||||
end
|
||||
|
||||
_G.get_statuscol = function()
|
||||
local str_table = {}
|
||||
|
||||
local parts = {
|
||||
['diagnostics'] = '%{%v:lua.get_statuscol_diag(bufnr(), v:lnum)%}',
|
||||
['fold'] = '%C',
|
||||
['gitsigns'] = '%{%v:lua.get_statuscol_gitsign(bufnr(), v:lnum)%}',
|
||||
['num'] = '%{v:lnum}',
|
||||
['sep'] = '%=',
|
||||
['signcol'] = '%s',
|
||||
['space'] = ' ',
|
||||
}
|
||||
|
||||
local order = {
|
||||
'diagnostics',
|
||||
'sep',
|
||||
'num',
|
||||
'space',
|
||||
'gitsigns',
|
||||
'fold',
|
||||
'space',
|
||||
}
|
||||
|
||||
for _, val in ipairs(order) do
|
||||
table.insert(str_table, parts[val])
|
||||
end
|
||||
|
||||
return table.concat(str_table)
|
||||
end
|
||||
|
||||
vim.o.statuscolumn = '%!v:lua.get_statuscol()'
|
|
@ -0,0 +1,35 @@
|
|||
vim.diagnostic.config {
|
||||
virtual_text = false,
|
||||
virtual_lines = { only_current_line = true },
|
||||
float = {
|
||||
border = 'single',
|
||||
focus = false,
|
||||
focusable = false,
|
||||
source = 'always',
|
||||
format = function(d)
|
||||
return ('%s (%s) [%s]'):format(d.message, d.source, d.code or d.user_data.lsp.code)
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignError',
|
||||
{ text = ' ', texthl = 'DiagnosticSignError', linehl = 'LspDiagnosticsLineNrError' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignWarn',
|
||||
{ text = ' ', texthl = 'DiagnosticSignWarn', linehl = 'LspDiagnosticsLineNrWarn' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignInfo',
|
||||
{ text = ' ', texthl = 'DiagnosticSignInfo', linehl = 'LspDiagnosticsLineNrInfo' }
|
||||
)
|
||||
vim.fn.sign_define(
|
||||
'DiagnosticSignHint',
|
||||
{ text = ' ', texthl = 'LspDiagnosticsLineNrHint', linehl = 'LspDiagnosticsLineNrHint' }
|
||||
)
|
||||
|
||||
vim.keymap.set('n', '{d', vim.diagnostic.goto_prev, {desc ='Previous [D]iagnostic'})
|
||||
vim.keymap.set('n', '}d', vim.diagnostic.goto_next, {desc ='Next [D]iagnostic'})
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, {desc='View [E]rror'})
|
||||
vim.keymap.set('n', '<leader>ll', vim.diagnostic.setloclist, {desc='View [L]ocal [L]ist'})
|
|
@ -54,6 +54,9 @@ end
|
|||
vim.keymap.set({ 'n', 'x', 'o' }, 'n', "'Nn'[v:searchforward]", { expr = true, desc = 'Next search result' })
|
||||
vim.keymap.set({ 'n', 'x', 'o' }, 'N', "'nN'[v:searchforward]", { expr = true, desc = 'Next search result' })
|
||||
|
||||
vim.keymap.set('n', '<C-d>', '<C-d>zz')
|
||||
vim.keymap.set('n', '<C-u>', '<C-u>zz')
|
||||
|
||||
-- Formatting
|
||||
vim.keymap.set('n', '<leader>=', 'ggVGgq', { silent = true })
|
||||
vim.keymap.set('n', '<leader>0', 'vapJgqap', { silent = true })
|
||||
|
|
|
@ -22,6 +22,7 @@ local options = {
|
|||
whichwrap = 'b,h,l,s,<,>,[,],~',
|
||||
viewoptions = 'cursor,folds',
|
||||
clipboard = 'unnamedplus',
|
||||
foldmethod = 'marker',
|
||||
signcolumn = 'no',
|
||||
completeopt = { 'menu', 'menuone', 'noselect', 'noinsert' },
|
||||
titlestring = '%(%m%) %(%{expand("%:~")}%)',
|
||||
|
@ -30,7 +31,15 @@ local options = {
|
|||
}
|
||||
|
||||
vim.opt.nrformats:append 'alpha'
|
||||
vim.opt.diffopt:append { 'vertical', 'iwhite', 'indent-heuristic', algorithm = 'patience', foldcolumn = 0 }
|
||||
vim.opt.shortmess:append { s = true, I = true }
|
||||
vim.opt.diffopt:append {
|
||||
'vertical',
|
||||
'iwhite',
|
||||
'indent-heuristic',
|
||||
algorithm = 'patience',
|
||||
foldcolumn = 0,
|
||||
'linematch:60',
|
||||
}
|
||||
vim.opt.formatoptions = vim.opt.formatoptions - 'a' - 't' + 'c' + 'q' - 'o' - 'r' + 'n' + 'j' - '2'
|
||||
|
||||
for k, v in pairs(options) do
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
local M = {}
|
||||
|
||||
local status_ok, devicons = pcall(require, 'nvim-web-devicons')
|
||||
if not status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
-- custom highlights
|
||||
vim.api.nvim_set_hl(0, 'User1', { fg = '#458588', bg = '#1d2021' })
|
||||
vim.api.nvim_set_hl(0, 'User2', { fg = '#fe8019', bg = '#1d2021' })
|
||||
|
@ -87,24 +82,6 @@ M.get_git_status = function(self)
|
|||
return is_head_empty and string.format(' %s %s', self.lsp_icon.git, signs.head) or ''
|
||||
end
|
||||
|
||||
-- get current file name
|
||||
M.get_filename = function(self)
|
||||
local filename = vim.fn.expand '%:t'
|
||||
local extension = vim.fn.expand '%:e'
|
||||
local fullname = '%<%F'
|
||||
if filename == '' then
|
||||
return ''
|
||||
end
|
||||
local icon, icon_color = devicons.get_icon_color(filename, extension, { default = true })
|
||||
vim.api.nvim_set_hl(0, 'User7', { fg = icon_color, bg = '#282828' })
|
||||
self.colors.filename = '%#User7#'
|
||||
if self:is_truncated(self.trunc_width.filename) then
|
||||
return ' ' .. icon .. ' ' .. filename
|
||||
else
|
||||
return ' ' .. icon .. ' ' .. fullname
|
||||
end
|
||||
end
|
||||
|
||||
-- get current line/col
|
||||
M.get_line_col = function(self)
|
||||
if self:is_truncated(self.trunc_width.line_col) then
|
||||
|
@ -162,13 +139,43 @@ M.get_words = function()
|
|||
end
|
||||
end
|
||||
|
||||
-- get current file name
|
||||
M.get_filename = function(self)
|
||||
local filename = vim.fn.expand '%:t'
|
||||
local extension = vim.fn.expand '%:e'
|
||||
local fullname = '%<%F'
|
||||
if filename == '' then
|
||||
return ''
|
||||
end
|
||||
|
||||
local status_ok, devicons = pcall(require, 'nvim-web-devicons')
|
||||
|
||||
if not status_ok then
|
||||
if self:is_truncated(self.trunc_width.filename) then
|
||||
return filename
|
||||
else
|
||||
return fullname
|
||||
end
|
||||
else
|
||||
local icon, icon_color = devicons.get_icon_color(filename, extension, { default = true })
|
||||
vim.api.nvim_set_hl(0, 'User7', { fg = icon_color, bg = '#282828' })
|
||||
self.colors.filename = '%#User7#'
|
||||
|
||||
if self:is_truncated(self.trunc_width.filename) then
|
||||
return ' ' .. icon .. ' ' .. filename
|
||||
else
|
||||
return ' ' .. icon .. ' ' .. fullname
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- create active statusline
|
||||
M.set_active = function(self)
|
||||
local lsp = self:get_diagnostics()
|
||||
local servs = self.colors.line_col .. self:get_lsp_name()
|
||||
local palabras = self.colors.flags .. self:get_words()
|
||||
local flags = self.colors.flags .. self:get_flags()
|
||||
local filename = string.format('%s%s', self.colors.filename, self:get_filename())
|
||||
local filename = string.format('%s%s', self.colors.filename or '', self:get_filename())
|
||||
local git = self.colors.git .. self:get_git_status()
|
||||
local line_col = self.colors.line_col .. self:get_line_col()
|
||||
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
local noname = '[unnamed]'
|
||||
|
||||
local function extract_filename(win)
|
||||
local b = vim.api.nvim_win_get_buf(win)
|
||||
local fullname = vim.api.nvim_buf_get_name(b)
|
||||
local mod = vim.api.nvim_buf_get_option(b, 'modified') and '◈ ' or ''
|
||||
if fullname ~= '' then
|
||||
local shortname = vim.fn.fnamemodify(fullname, ':~:.:gs%(.?[^/])[^/]*/%\1/%')
|
||||
if #shortname > 30 then
|
||||
shortname = vim.fn.fnamemodify(fullname, ':t')
|
||||
end
|
||||
return mod .. shortname
|
||||
end
|
||||
end
|
||||
|
||||
local function get_best_window_filename(tabpage, window)
|
||||
local filename = extract_filename(window)
|
||||
if filename == nil then
|
||||
local wins = vim.api.nvim_tabpage_list_wins(tabpage)
|
||||
if #wins > 1 then
|
||||
for _, win in ipairs(wins) do
|
||||
filename = extract_filename(win)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if filename == nil then
|
||||
return noname
|
||||
end
|
||||
return filename
|
||||
end
|
||||
|
||||
local function is_float_win(win)
|
||||
local config = vim.api.nvim_win_get_config(win)
|
||||
return config.zindex and config.zindex > 0
|
||||
end
|
||||
|
||||
local function getname(tabpage)
|
||||
-- vim.F.npcall(vim.api.nvim_tabpage_get_var, tabpage, "tab_title")
|
||||
local title = vim.t[tabpage].tab_title
|
||||
if title ~= nil then
|
||||
return title
|
||||
end
|
||||
|
||||
local window = vim.api.nvim_tabpage_get_win(tabpage)
|
||||
-- don't replace the last filename-buffer w/ floating windows
|
||||
if is_float_win(window) then
|
||||
return vim.t[tabpage].last_buffer_filename
|
||||
end
|
||||
|
||||
local filename = get_best_window_filename(tabpage, window)
|
||||
vim.t[tabpage].last_buffer_filename = filename
|
||||
return filename
|
||||
end
|
||||
|
||||
function Tabline()
|
||||
local tl = {}
|
||||
local current = vim.api.nvim_get_current_tabpage()
|
||||
for i, tabpage in ipairs(vim.api.nvim_list_tabpages()) do
|
||||
local hi = tabpage == current and '%#TabLineSel#' or '%#TabLine#'
|
||||
local hiSep = tabpage == current and '%#TabLineSelSep#' or '%#TabLineSep#'
|
||||
table.insert(tl, '%' .. i .. 'T') -- mouse click target region
|
||||
table.insert(tl, hi .. ' ' .. getname(tabpage) .. ' ')
|
||||
table.insert(tl, hiSep .. '▓▒░' .. hi)
|
||||
end
|
||||
table.insert(tl, '%T') -- end mouse click region(s).
|
||||
table.insert(tl, '%#TabLineFill#')
|
||||
return table.concat(tl, '')
|
||||
end
|
||||
|
||||
vim.opt.tabline = [[%!v:lua.Tabline()]]
|
|
@ -1,43 +0,0 @@
|
|||
[Connection]
|
||||
password =
|
||||
username =
|
||||
port = 9091
|
||||
host = localhost
|
||||
path = /transmission/rpc
|
||||
ssl = False
|
||||
|
||||
[Sorting]
|
||||
order = name
|
||||
|
||||
[Filtering]
|
||||
filter =
|
||||
invert = False
|
||||
|
||||
[Misc]
|
||||
compact_list = False
|
||||
torrentname_is_progressbar = True
|
||||
file_viewer = xdg-open %%s
|
||||
file_open_in_terminal = True
|
||||
|
||||
[Colors]
|
||||
header = bg:default,fg:default
|
||||
multi_filter_status = bg:default,fg:default
|
||||
title_seed = bg:green,fg:black
|
||||
title_download = bg:blue,fg:black
|
||||
title_idle = bg:cyan,fg:black
|
||||
title_verify = bg:magenta,fg:black
|
||||
title_paused = bg:black,fg:white
|
||||
title_error = bg:red,fg:white
|
||||
download_rate = bg:black,fg:blue
|
||||
upload_rate = bg:black,fg:red
|
||||
eta+ratio = bg:black,fg:white
|
||||
filter_status = bg:red,fg:black
|
||||
dialog = bg:black,fg:white
|
||||
dialog_important = bg:red,fg:black
|
||||
button = bg:white,fg:black
|
||||
button_focused = bg:black,fg:white
|
||||
file_prio_high = bg:red,fg:black
|
||||
file_prio_normal = bg:black,fg:white
|
||||
file_prio_low = bg:yellow,fg:black
|
||||
file_prio_off = bg:blue,fg:black
|
||||
|
43
xbpaketes
43
xbpaketes
|
@ -10,13 +10,15 @@ alsa-plugins-jack-1.2.7.1_1
|
|||
alsa-plugins-pulseaudio-1.2.7.1_1
|
||||
alsa-plugins-pulseaudio-32bit-1.2.7.1_1
|
||||
alsa-utils-1.2.9_1
|
||||
android-tools-34.0.1_1
|
||||
android-tools-34.0.1_2
|
||||
android-udev-rules-20230614_1
|
||||
audacious-4.3.1_1
|
||||
audacious-plugins-4.3.1_1
|
||||
base-devel-20181003_2
|
||||
base-system-0.114_1
|
||||
bat-0.23.0_2
|
||||
black-23.7.0_1
|
||||
blender-3.6.1_1
|
||||
blueman-2.3.5_1
|
||||
bluez-5.68_1
|
||||
bluez-alsa-3.1.0_1
|
||||
|
@ -32,7 +34,7 @@ evtest-qt-0.2.0_1
|
|||
exiftool-12.64_1
|
||||
fcitx-4.2.9.9_1
|
||||
fcitx-configtool-0.4.10_2
|
||||
fcitx-mozc-2.28.4800.102_1
|
||||
fcitx-mozc-2.28.4800.102_2
|
||||
fd-8.7.0_1
|
||||
feh-3.10_1
|
||||
ffmpeg-4.4.4_2
|
||||
|
@ -43,7 +45,7 @@ fzf-0.42.0_1
|
|||
gamemode-1.7_1
|
||||
git-2.41.0_1
|
||||
git-libsecret-2.41.0_1
|
||||
gnome-ssh-askpass-9.3p1_1
|
||||
gnome-ssh-askpass-9.3p2_1
|
||||
gnupg2-2.4.3_1
|
||||
grub-x86_64-efi-2.06_3
|
||||
hidapi-0.13.1_1
|
||||
|
@ -60,13 +62,14 @@ libdrm-32bit-2.4.115_1
|
|||
libfcitx-gtk-4.2.9.9_1
|
||||
libfcitx-gtk3-4.2.9.9_1
|
||||
libgamemode-32bit-1.7_1
|
||||
libgcc-32bit-12.2.0_2
|
||||
libgcc-32bit-12.2.0_3
|
||||
libglvnd-32bit-1.6.0_1
|
||||
libstdc++-32bit-12.2.0_2
|
||||
libstdc++-32bit-12.2.0_3
|
||||
libunrar-6.2.5_1
|
||||
linux-firmware-20230515_1
|
||||
lldb-15.0.7_1
|
||||
lm_sensors-3.6.0_1
|
||||
lua-language-server-3.6.23_1
|
||||
lua-language-server-3.6.24_1
|
||||
luarocks-lua54-3.9.1_1
|
||||
maim-5.7.4_7
|
||||
megatools-1.11.1_1
|
||||
|
@ -75,11 +78,11 @@ mesa-dri-32bit-23.1.3_1
|
|||
mesa-vulkan-radeon-23.1.3_1
|
||||
mesa-vulkan-radeon-32bit-23.1.3_1
|
||||
mlocate-0.26_7
|
||||
mosh-1.4.0_3
|
||||
mozc-2.28.4800.102_1
|
||||
mpv-0.35.1_2
|
||||
mosh-1.4.0_4
|
||||
mozc-2.28.4800.102_2
|
||||
mpv-0.35.1_3
|
||||
msmtp-1.8.24_1
|
||||
mumble-1.4.287_3
|
||||
mumble-1.4.287_5
|
||||
ncurses-devel-6.4_1
|
||||
neomutt-20230517_1
|
||||
neovim-0.9.1_1
|
||||
|
@ -91,22 +94,26 @@ noto-fonts-emoji-2.038_1
|
|||
noto-fonts-ttf-23.7.1_1
|
||||
nsxiv-31_1
|
||||
opendoas-6.8.2_1
|
||||
openjdk11-11.0.12+7_3
|
||||
openjdk11-11.0.20+8_1
|
||||
openssl-devel-1.1.1t_1
|
||||
p7zip-22.01_2
|
||||
pass-1.7.4_3
|
||||
pd-0.54.0_1
|
||||
perl-File-MimeInfo-0.33_1
|
||||
perl-Text-CharWidth-0.04_8
|
||||
pinentry-gtk-1.2.1_1
|
||||
pipe-viewer-0.4.6_1
|
||||
polybar-3.6.3_1
|
||||
polybar-3.6.3_2
|
||||
protontricks-1.10.2_1
|
||||
pulseaudio-15.0_4
|
||||
pulsemixer-1.5.1_2
|
||||
python3-BeautifulSoup4-4.12.2_1
|
||||
python3-pip-23.1.2_1
|
||||
python3-isort-5.12.0_1
|
||||
python3-language-server-1.7.4_1
|
||||
python3-mypy-1.3.0_1
|
||||
python3-pip-23.2_1
|
||||
python3-pysdl2-0.9.6_5
|
||||
python3-virtualenv-20.23.1_1
|
||||
python3-virtualenv-20.24.1_1
|
||||
qjackctl-0.9.9_1
|
||||
ripgrep-13.0.0_2
|
||||
rofi-1.7.5_1
|
||||
|
@ -120,6 +127,7 @@ slop-7.6_4
|
|||
snooze-0.5_1
|
||||
socklog-void-20200115_2
|
||||
steam-1.0.0.78_1
|
||||
stig-0.12.3a0_2
|
||||
supercollider-3.11.1_6
|
||||
sv-netmount-0.1_3
|
||||
sxhkd-0.6.2_1
|
||||
|
@ -127,7 +135,6 @@ texlive-bin-2023_1
|
|||
tidy5-5.8.0_1
|
||||
tmux-3.3a_2
|
||||
transmission-4.0.3_2
|
||||
tremc-0.9.3_1
|
||||
udevil-0.4.4_5
|
||||
unclutter-xfixes-1.6_1
|
||||
unrar-6.2.5_1
|
||||
|
@ -136,16 +143,16 @@ vkBasalt-32bit-0.3.2.10_1
|
|||
void-repo-multilib-6_4
|
||||
void-repo-multilib-nonfree-6_4
|
||||
void-repo-nonfree-9_6
|
||||
wine-8.11_1
|
||||
wine-8.13_1
|
||||
wine-mono-8.0.0_1
|
||||
xclip-0.13_2
|
||||
xcompmgr-1.1.9_1
|
||||
xdg-utils-1.1.3_5
|
||||
xdo-0.5.7_3
|
||||
xev-1.2.5_1
|
||||
xf86-video-amdgpu-22.0.0_1
|
||||
xf86-video-amdgpu-23.0.0_1
|
||||
xf86-video-fbdev-0.5.0_2
|
||||
xf86-video-vesa-2.5.0_2
|
||||
xf86-video-vesa-2.6.0_1
|
||||
xinput-1.6.4_1
|
||||
xkill-1.0.6_1
|
||||
xorg-minimal-1.2_2
|
||||
|
|
11
zsh/.zshenv
11
zsh/.zshenv
|
@ -1,4 +1,4 @@
|
|||
# Programas y Opciones del Sistema {{{
|
||||
# Opciones del Sistema {{{
|
||||
export EDITOR="nvim"
|
||||
export EXINIT="set ai ic nu sm smd sw=4 ts=4 ruler para=BlBdPpIt sect=ShSs | map gg 1G"
|
||||
export VISUAL="$EDITOR"
|
||||
|
@ -13,6 +13,8 @@ export GREP_COLORS="mt=0;32"
|
|||
export TIME_STYLE="long-iso"
|
||||
export BLOCK_SIZE="'1"
|
||||
export QUOTING_STYLE=literal
|
||||
# export MANPAGER='nvim --cmd \":lua vim.g.noplugins=1\" +Man!'
|
||||
# export MANWIDTH=999
|
||||
|
||||
export XAUTHORITY="${XDG_CONFIG_HOME:-$HOME/.config}/X11/Xauthority"
|
||||
export XDG_DATA_HOME="$HOME/.local/share"
|
||||
|
@ -22,10 +24,13 @@ export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/X11/xinitrc"
|
|||
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
# }}}
|
||||
# Programas {{{
|
||||
export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg"
|
||||
export SSH_ASKPASS="/bin/gnome-ssh-askpass"
|
||||
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/pass"
|
||||
eval $(keychain --dir ~/.local/share/keychain --quiet --eval --noask --clear --agents ssh,gpg id_ed25519)
|
||||
export MOSH_TITLE_NOPREFIX=1
|
||||
|
||||
export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config"
|
||||
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
|
||||
|
@ -62,13 +67,13 @@ export BL2_HOME=/mnt/wd1tb/catacombs/code/blockout
|
|||
# }}}
|
||||
# FZF {{{
|
||||
export FZF_DEFAULT_OPTS="--cycle \
|
||||
--color=bg:-1,bg+:-1,spinner:#fb4934,hl:#928374,fg:#ebdbb2,header:#928374,info:#8ec07c,pointer:#fb4934,marker:#fb4934,fg+:#ebdbb2,prompt:#fb4934,hl+:#fb4934,border:#080808 \
|
||||
--color=bg+:#1d2021,bg:-1,border:#080808,spinner:#E6DB74,hl:#7E8E91,fg:#ebdbb2,header:#7E8E91,info:#A6E22E,pointer:#A6E22E,marker:#ae81ff,fg+:#F8F8F2,prompt:#F4bf75,hl+:#Ff9700 \
|
||||
--reverse \
|
||||
--info=inline \
|
||||
--no-bold \
|
||||
--ansi \
|
||||
--pointer='→' \
|
||||
--marker='∙' \
|
||||
--marker='·' \
|
||||
--preview-window :wrap:sharp"
|
||||
|
||||
export FZF_DEFAULT_COMMAND="fd -t f -c always -H --strip-cwd-prefix"
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
# Programas
|
||||
alias \
|
||||
v='$EDITOR' \
|
||||
v='$EDITOR ' \
|
||||
x='xui' \
|
||||
m='neomutt' \
|
||||
z='zathura' \
|
||||
g='git' \
|
||||
vv='nvi' \
|
||||
bc='bc -iq' \
|
||||
se='doas nvim' \
|
||||
vc='nvim --cmd ":lua vim.g.noplugins=1" ' \
|
||||
se='doas nvim ' \
|
||||
am='alsamixer' \
|
||||
pm='pulsemixer' \
|
||||
nb='newsboat -q' \
|
||||
py='python ' \
|
||||
irc='catgirl' \
|
||||
ytv='pipe-viewer' \
|
||||
vdf='nvim -d' \
|
||||
vdf='nvim -d ' \
|
||||
vkl='vkpurge list' \
|
||||
gdl='gallery-dl --zip -q' \
|
||||
jpl='nvim -u ~/.config/nvim/wikinit.lua -c VimwikiIndex' \
|
||||
sxiv='sxiv-rifle' \
|
||||
news='neomutt -G' \
|
||||
pyserv='python -m http.server' \
|
||||
|
|
Loading…
Reference in New Issue