mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
snacks + tabline changes
This commit is contained in:
parent
97d6553252
commit
ac39b0585d
11 changed files with 120 additions and 70 deletions
|
|
@ -49,6 +49,7 @@
|
||||||
stylua
|
stylua
|
||||||
luajitPackages.luacheck
|
luajitPackages.luacheck
|
||||||
alejandra
|
alejandra
|
||||||
|
nvim-dev
|
||||||
];
|
];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
# symlink the .luarc.json generated in the overlay
|
# symlink the .luarc.json generated in the overlay
|
||||||
|
|
|
||||||
|
|
@ -385,10 +385,11 @@ hi(0, 'MiniDepsTitle', { link = 'Title' })
|
||||||
hi(0, 'MiniDepsTitleError', { bg = '#e85c51', fg = '#0f1c1e' })
|
hi(0, 'MiniDepsTitleError', { bg = '#e85c51', fg = '#0f1c1e' })
|
||||||
hi(0, 'MiniDepsTitleSame', { link = 'DiffText' })
|
hi(0, 'MiniDepsTitleSame', { link = 'DiffText' })
|
||||||
hi(0, 'MiniDepsTitleUpdate', { bg = '#7aa4a1', fg = '#0f1c1e' })
|
hi(0, 'MiniDepsTitleUpdate', { bg = '#7aa4a1', fg = '#0f1c1e' })
|
||||||
hi(0, 'MiniDiffOverAdd', { link = 'DiffAdd' })
|
hi(0, 'MiniDiffOverAdd', { bg = '#31474b' })
|
||||||
hi(0, 'MiniDiffOverChange', { link = 'DiffText' })
|
hi(0, 'MiniDiffOverChange', { bg = '#466066' })
|
||||||
hi(0, 'MiniDiffOverContext', { link = 'DiffChange' })
|
hi(0, 'MiniDiffOverChangeBuf', { bg = '#466066' })
|
||||||
hi(0, 'MiniDiffOverDelete', { link = 'DiffDelete' })
|
hi(0, 'MiniDiffOverContext', { bg = '#31474b' })
|
||||||
|
hi(0, 'MiniDiffOverDelete', { fg = 'red' })
|
||||||
hi(0, 'MiniDiffSignAdd', { fg = 'green', bold = true })
|
hi(0, 'MiniDiffSignAdd', { fg = 'green', bold = true })
|
||||||
hi(0, 'MiniDiffSignChange', { fg = 'green', bold = true })
|
hi(0, 'MiniDiffSignChange', { fg = 'green', bold = true })
|
||||||
hi(0, 'MiniDiffSignDelete', { fg = 'red', bold = true })
|
hi(0, 'MiniDiffSignDelete', { fg = 'red', bold = true })
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,8 @@ vim.keymap.set('n', '<S-l>', vim.cmd.bnext, { noremap = true, silent = true })
|
||||||
vim.keymap.set('n', '<S-h>', vim.cmd.bprev, { noremap = true, silent = true })
|
vim.keymap.set('n', '<S-h>', vim.cmd.bprev, { noremap = true, silent = true })
|
||||||
vim.keymap.set('v', '<', '<gv')
|
vim.keymap.set('v', '<', '<gv')
|
||||||
vim.keymap.set('v', '>', '>gv')
|
vim.keymap.set('v', '>', '>gv')
|
||||||
|
vim.keymap.set('v', '<A-j>', ":m '>+1<CR>gv=gv", { desc = 'move selection down' })
|
||||||
|
vim.keymap.set('v', '<A-k>', ":m '<-2<CR>gv=gv", { desc = 'move selection up' })
|
||||||
vim.keymap.set({ 'v', 'n' }, 'q:', '<nop>')
|
vim.keymap.set({ 'v', 'n' }, 'q:', '<nop>')
|
||||||
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { noremap = true, silent = true, desc = 'close buffer' })
|
vim.keymap.set('n', 'gq', vim.cmd.bdelete, { noremap = true, silent = true, desc = 'close buffer' })
|
||||||
vim.keymap.set('n', 'gQ', function()
|
vim.keymap.set('n', 'gQ', function()
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,13 @@ return {
|
||||||
snippets = {
|
snippets = {
|
||||||
score_offset = -10,
|
score_offset = -10,
|
||||||
},
|
},
|
||||||
|
path = {
|
||||||
|
opts = {
|
||||||
|
get_cwd = function(_)
|
||||||
|
return vim.fn.getcwd()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
ripgrep = {
|
ripgrep = {
|
||||||
module = 'blink-ripgrep',
|
module = 'blink-ripgrep',
|
||||||
name = 'rg',
|
name = 'rg',
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
local diff = require('mini.diff')
|
local diff = require('mini.diff')
|
||||||
local M = {
|
local M = {
|
||||||
cache = {},
|
cache = {},
|
||||||
jj_cache = {},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
M.get_buf_realpath = function(buf_id)
|
M.get_buf_realpath = function(buf_id)
|
||||||
|
|
@ -20,10 +19,10 @@ M.jj_start_watching_tree_state = function(buf_id, path)
|
||||||
local on_not_in_jj = vim.schedule_wrap(function()
|
local on_not_in_jj = vim.schedule_wrap(function()
|
||||||
if not vim.api.nvim_buf_is_valid(buf_id) then
|
if not vim.api.nvim_buf_is_valid(buf_id) then
|
||||||
M.cache[buf_id] = nil
|
M.cache[buf_id] = nil
|
||||||
return
|
return false
|
||||||
end
|
end
|
||||||
diff.fail_attach(buf_id)
|
diff.fail_attach(buf_id)
|
||||||
M.jj_cache[buf_id] = {}
|
M.cache[buf_id] = {}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
local process, stdout_feed = nil, {}
|
local process, stdout_feed = nil, {}
|
||||||
|
|
@ -61,12 +60,11 @@ M.jj_setup_tree_state_watch = function(buf_id, jj_dir_path)
|
||||||
timer:stop()
|
timer:stop()
|
||||||
timer:start(50, 0, buf_jj_set_ref_text)
|
timer:start(50, 0, buf_jj_set_ref_text)
|
||||||
end
|
end
|
||||||
buf_fs_event:start(jj_dir_path, { recursive = false }, watch_tree_state)
|
buf_fs_event:start(jj_dir_path, { stat = true }, watch_tree_state)
|
||||||
|
|
||||||
M.jj_invalidate_cache(M.jj_cache[buf_id])
|
M.jj_invalidate_cache(M.cache[buf_id])
|
||||||
M.jj_cache[buf_id] = { fs_event = buf_fs_event, timer = timer }
|
M.cache[buf_id] = { fs_event = buf_fs_event, timer = timer }
|
||||||
end
|
end
|
||||||
|
|
||||||
M.jj_set_ref_text = vim.schedule_wrap(function(buf_id)
|
M.jj_set_ref_text = vim.schedule_wrap(function(buf_id)
|
||||||
if not vim.api.nvim_buf_is_valid(buf_id) then
|
if not vim.api.nvim_buf_is_valid(buf_id) then
|
||||||
return
|
return
|
||||||
|
|
@ -86,13 +84,13 @@ M.jj_set_ref_text = vim.schedule_wrap(function(buf_id)
|
||||||
-- Set
|
-- Set
|
||||||
local stdout = vim.loop.new_pipe()
|
local stdout = vim.loop.new_pipe()
|
||||||
local spawn_opts = {
|
local spawn_opts = {
|
||||||
args = { 'file', 'show', '--ignore-working-copy', '-r', '@-', './' .. basename },
|
args = { 'file', 'show', '--no-pager', '--ignore-working-copy', '-r', '@-', './' .. basename },
|
||||||
cwd = cwd,
|
cwd = cwd,
|
||||||
stdio = { nil, stdout, nil },
|
stdio = { nil, stdout, nil },
|
||||||
}
|
}
|
||||||
|
|
||||||
local process, stdout_feed = nil, {}
|
local process, stdout_feed = nil, {}
|
||||||
local on_exit = function(exit_code)
|
process = vim.loop.spawn('jj', spawn_opts, function(exit_code)
|
||||||
process:close()
|
process:close()
|
||||||
|
|
||||||
if exit_code ~= 0 or stdout_feed[1] == nil then
|
if exit_code ~= 0 or stdout_feed[1] == nil then
|
||||||
|
|
@ -102,9 +100,8 @@ M.jj_set_ref_text = vim.schedule_wrap(function(buf_id)
|
||||||
-- Set reference text accounting for possible 'crlf' end of line in index
|
-- Set reference text accounting for possible 'crlf' end of line in index
|
||||||
local text = table.concat(stdout_feed, ''):gsub('\r\n', '\n')
|
local text = table.concat(stdout_feed, ''):gsub('\r\n', '\n')
|
||||||
buf_set_ref_text(text)
|
buf_set_ref_text(text)
|
||||||
end
|
end)
|
||||||
|
|
||||||
process = vim.loop.spawn('jj', spawn_opts, on_exit)
|
|
||||||
M.jj_read_stream(stdout, stdout_feed)
|
M.jj_read_stream(stdout, stdout_feed)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
@ -132,7 +129,7 @@ end
|
||||||
M.gen_source = function()
|
M.gen_source = function()
|
||||||
local attach = function(buf_id)
|
local attach = function(buf_id)
|
||||||
-- Try attaching to a buffer only once
|
-- Try attaching to a buffer only once
|
||||||
if M.jj_cache[buf_id] ~= nil then
|
if M.cache[buf_id] ~= nil then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
-- - Possibly resolve symlinks to get data from the original repo
|
-- - Possibly resolve symlinks to get data from the original repo
|
||||||
|
|
@ -141,13 +138,13 @@ M.gen_source = function()
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
M.jj_cache[buf_id] = {}
|
M.cache[buf_id] = {}
|
||||||
M.jj_start_watching_tree_state(buf_id, path)
|
M.jj_start_watching_tree_state(buf_id, path)
|
||||||
end
|
end
|
||||||
|
|
||||||
local detach = function(buf_id)
|
local detach = function(buf_id)
|
||||||
local cache = M.jj_cache[buf_id]
|
local cache = M.cache[buf_id]
|
||||||
M.jj_cache[buf_id] = nil
|
M.cache[buf_id] = nil
|
||||||
M.jj_invalidate_cache(cache)
|
M.jj_invalidate_cache(cache)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ M.load = function()
|
||||||
-- load session (buffers, etc) as well as shada (marks)
|
-- load session (buffers, etc) as well as shada (marks)
|
||||||
sessions.read(id)
|
sessions.read(id)
|
||||||
vim.cmd('rshada')
|
vim.cmd('rshada')
|
||||||
vim.notify('loaded jj session: ' .. id)
|
Snacks.notify('loaded jj session: ' .. id)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
M = {}
|
M = {}
|
||||||
M.marks = function()
|
M.marks = function()
|
||||||
return {
|
Snacks.picker.marks {
|
||||||
finder = 'vim_marks',
|
|
||||||
format = 'file',
|
|
||||||
['local'] = false,
|
['local'] = false,
|
||||||
global = true,
|
on_show = function()
|
||||||
|
vim.cmd.delmarks { args = { '0-9' } }
|
||||||
|
end,
|
||||||
actions = {
|
actions = {
|
||||||
markdel = function(picker)
|
markdel = function(picker)
|
||||||
for _, item in ipairs(picker:selected()) do
|
for _, item in ipairs(picker:selected()) do
|
||||||
|
|
@ -17,10 +17,42 @@ M.marks = function()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
win = {
|
win = {
|
||||||
list = {
|
input = {
|
||||||
keys = { ['dd'] = 'markdel' },
|
keys = { ['<c-x>'] = 'markdel' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
M.diagnostics = function(filter)
|
||||||
|
Snacks.picker.diagnostics {
|
||||||
|
filter = filter,
|
||||||
|
focus = 'list',
|
||||||
|
format = function(item, picker)
|
||||||
|
P = require('snacks.picker.format')
|
||||||
|
local ret = {} ---@type snacks.picker.Highlight[]
|
||||||
|
vim.list_extend(ret, P.filename(item, picker))
|
||||||
|
|
||||||
|
local diag = item.item ---@type vim.Diagnostic
|
||||||
|
if item.severity then
|
||||||
|
vim.list_extend(ret, P.severity(item, picker))
|
||||||
|
end
|
||||||
|
|
||||||
|
local message = diag.message
|
||||||
|
ret[#ret + 1] = { message }
|
||||||
|
Snacks.picker.highlight.markdown(ret)
|
||||||
|
ret[#ret + 1] = { ' ' }
|
||||||
|
|
||||||
|
if diag.source then
|
||||||
|
ret[#ret + 1] = { diag.source, 'SnacksPickerDiagnosticSource' }
|
||||||
|
ret[#ret + 1] = { ' ' }
|
||||||
|
end
|
||||||
|
|
||||||
|
if diag.code then
|
||||||
|
ret[#ret + 1] = { ('(%s)'):format(diag.code), 'SnacksPickerDiagnosticCode' }
|
||||||
|
ret[#ret + 1] = { ' ' }
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,22 @@
|
||||||
return {
|
return {
|
||||||
{
|
|
||||||
'folke/trouble.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
opts = {
|
|
||||||
pinned = true,
|
|
||||||
focus = true,
|
|
||||||
follow = false,
|
|
||||||
auto_close = false,
|
|
||||||
win = {
|
|
||||||
size = 0.33,
|
|
||||||
position = 'right',
|
|
||||||
type = 'split',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
'gre',
|
|
||||||
'<cmd>Trouble diagnostics toggle<CR>',
|
|
||||||
desc = 'Trouble diagnostics',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
|
dependencies = {
|
||||||
|
'folke/trouble.nvim',
|
||||||
|
event = 'VeryLazy',
|
||||||
|
opts = {
|
||||||
|
pinned = true,
|
||||||
|
focus = true,
|
||||||
|
follow = false,
|
||||||
|
auto_close = false,
|
||||||
|
win = {
|
||||||
|
size = 0.33,
|
||||||
|
position = 'right',
|
||||||
|
type = 'split',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
config = function()
|
config = function()
|
||||||
vim.lsp.enable {
|
vim.lsp.enable {
|
||||||
'nil_ls',
|
'nil_ls',
|
||||||
|
|
@ -40,23 +33,35 @@ return {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
vim.keymap.set('n', 'grg', '<cmd>Trouble lsp toggle<CR>', { buffer = ev.buf, desc = 'Trouble LSP' })
|
vim.keymap.set('n', 'grg', '<cmd>Trouble lsp toggle<CR>', { buffer = ev.buf, desc = 'Trouble LSP' })
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
vim.keymap.set('n', 'gO', function()
|
||||||
'gO',
|
Snacks.picker.lsp_symbols { focus = 'list' }
|
||||||
'<cmd>Trouble lsp_document_symbols win.position=left<CR>',
|
end, { buffer = ev.buf, desc = 'LSP symbols' })
|
||||||
{ buffer = ev.buf, desc = 'Trouble LSP symbols' }
|
vim.keymap.set('n', '<C-]>', function()
|
||||||
)
|
|
||||||
vim.keymap.set('n', 'grd', function()
|
|
||||||
Snacks.picker.lsp_definitions { focus = 'list' }
|
Snacks.picker.lsp_definitions { focus = 'list' }
|
||||||
end, { buffer = ev.buf, desc = 'LSP definition' })
|
end, { buffer = ev.buf, desc = 'LSP definition' })
|
||||||
|
vim.keymap.set('n', 'grt', function()
|
||||||
|
Snacks.picker.lsp_type_definitions { focus = 'list' }
|
||||||
|
end, { buffer = ev.buf, desc = 'LSP type definition' })
|
||||||
vim.keymap.set('n', 'grr', function()
|
vim.keymap.set('n', 'grr', function()
|
||||||
Snacks.picker.lsp_references { focus = 'list' }
|
Snacks.picker.lsp_references { focus = 'list' }
|
||||||
end, { buffer = ev.buf, desc = 'LSP definition' })
|
end, { buffer = ev.buf, desc = 'LSP refrences' })
|
||||||
|
vim.keymap.set('n', 'gri', function()
|
||||||
|
Snacks.picker.lsp_implementations { focus = 'list' }
|
||||||
|
end, { buffer = ev.buf, desc = 'LSP implementations' })
|
||||||
|
|
||||||
vim.keymap.set('n', 'grh', function()
|
vim.keymap.set('n', 'grh', function()
|
||||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||||
end, { buffer = ev.buf, desc = 'LSP hints toggle' })
|
end, { buffer = ev.buf, desc = 'LSP hints toggle' })
|
||||||
vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf, desc = 'vim.lsp.codelens.run()' })
|
vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf, desc = 'vim.lsp.codelens.run()' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', 'gre', function()
|
||||||
|
require('plugins.lib.snacks').diagnostics { buf = true }
|
||||||
|
end, { buffer = ev.buf, desc = 'LSP buffer diagnostics' })
|
||||||
|
vim.keymap.set('n', 'grE', function()
|
||||||
|
require('plugins.lib.snacks').diagnostics { cwd = false }
|
||||||
|
end, { buffer = ev.buf, desc = 'LSP diagnostics' })
|
||||||
|
|
||||||
-- Auto-refresh code lenses
|
-- Auto-refresh code lenses
|
||||||
if client.server_capabilities.codeLensProvider then
|
if client.server_capabilities.codeLensProvider then
|
||||||
vim.api.nvim_create_autocmd({ 'InsertLeave', 'TextChanged' }, {
|
vim.api.nvim_create_autocmd({ 'InsertLeave', 'TextChanged' }, {
|
||||||
|
|
@ -81,6 +86,7 @@ return {
|
||||||
'\\f',
|
'\\f',
|
||||||
function()
|
function()
|
||||||
vim.b.disable_autoformat = not vim.b.disable_autoformat
|
vim.b.disable_autoformat = not vim.b.disable_autoformat
|
||||||
|
Snacks.notify(string.format('Buffer formatting disabled: %s', vim.b.disable_autoformat))
|
||||||
end,
|
end,
|
||||||
mode = { 'n', 'x' },
|
mode = { 'n', 'x' },
|
||||||
desc = 'toggle buffer formatting',
|
desc = 'toggle buffer formatting',
|
||||||
|
|
@ -89,6 +95,7 @@ return {
|
||||||
'\\F',
|
'\\F',
|
||||||
function()
|
function()
|
||||||
vim.g.disable_autoformat = not vim.g.disable_autoformat
|
vim.g.disable_autoformat = not vim.g.disable_autoformat
|
||||||
|
Snacks.notify(string.format('Global formatting disabled: %s', vim.g.disable_autoformat))
|
||||||
end,
|
end,
|
||||||
mode = { 'n', 'x' },
|
mode = { 'n', 'x' },
|
||||||
desc = 'toggle global formatting',
|
desc = 'toggle global formatting',
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,17 @@ return {
|
||||||
require('mini.tabline').setup {
|
require('mini.tabline').setup {
|
||||||
tabpage_section = 'right',
|
tabpage_section = 'right',
|
||||||
show_icons = false,
|
show_icons = false,
|
||||||
|
format = function(buf_id, label) -- show global marks in tab
|
||||||
|
local default = MiniTabline.default_format(buf_id, label)
|
||||||
|
for _, mark in ipairs(vim.fn.getmarklist()) do
|
||||||
|
if mark.pos[1] == buf_id then
|
||||||
|
if mark.mark:match("^'[A-Z]$") then
|
||||||
|
return ' [' .. mark.mark:sub(2) .. ']' .. default
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return default
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
require('mini.statusline').setup {
|
require('mini.statusline').setup {
|
||||||
content = {
|
content = {
|
||||||
|
|
@ -175,15 +186,10 @@ return {
|
||||||
width_preview = 50,
|
width_preview = 50,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
vim.keymap.set(
|
vim.keymap.set('n', '<leader>nc', function()
|
||||||
'n',
|
files.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
|
||||||
'<leader>nc',
|
files.reveal_cwd()
|
||||||
function()
|
end, { desc = 'minifiles open' })
|
||||||
files.open(vim.api.nvim_buf_get_name(0), false) -- open current buffer's dir
|
|
||||||
files.reveal_cwd()
|
|
||||||
end,
|
|
||||||
{ desc = 'minifiles open' }
|
|
||||||
)
|
|
||||||
vim.api.nvim_create_autocmd('User', {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
pattern = 'MiniFilesBufferCreate',
|
pattern = 'MiniFilesBufferCreate',
|
||||||
callback = function(args)
|
callback = function(args)
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ return {
|
||||||
},
|
},
|
||||||
smart = {
|
smart = {
|
||||||
multi = {
|
multi = {
|
||||||
require('plugins.lib.snacks').marks(),
|
'marks',
|
||||||
{ source = 'buffers', current = false },
|
{ source = 'buffers', current = false },
|
||||||
'recent',
|
'recent',
|
||||||
{ source = 'files', hidden = true },
|
{ source = 'files', hidden = true },
|
||||||
|
|
@ -178,8 +178,7 @@ return {
|
||||||
{
|
{
|
||||||
'<leader>fm',
|
'<leader>fm',
|
||||||
function()
|
function()
|
||||||
vim.cmd.delmarks { args = { '0-9' } }
|
require('plugins.lib.snacks').marks()
|
||||||
Snacks.picker.pick(require('plugins.lib.snacks').marks())
|
|
||||||
end,
|
end,
|
||||||
desc = 'pick global marks',
|
desc = 'pick global marks',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -32,12 +32,10 @@ return {
|
||||||
goto_next_start = {
|
goto_next_start = {
|
||||||
[']a'] = '@parameter.inner',
|
[']a'] = '@parameter.inner',
|
||||||
[']f'] = '@function.outer',
|
[']f'] = '@function.outer',
|
||||||
[']t'] = '@statement.outer',
|
|
||||||
},
|
},
|
||||||
goto_previous_start = {
|
goto_previous_start = {
|
||||||
['[a'] = '@parameter.inner',
|
['[a'] = '@parameter.inner',
|
||||||
['[f'] = '@function.outer',
|
['[f'] = '@function.outer',
|
||||||
['[t'] = '@statement.outer',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
swap = {
|
swap = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue