remove mini.sessions/jj

This commit is contained in:
iofq 2025-10-05 13:08:24 -05:00
parent 27ce531531
commit 31f7ee21e8
6 changed files with 26 additions and 111 deletions

30
flake.lock generated
View file

@ -6,14 +6,17 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1758080529, "lastModified": 1757895736,
"narHash": "sha256-Sup4+HacL6Xe6mTk23N6sD4uXoU9dcoqRgc9Mu0oQ5E=", "narHash": "sha256-BBjs+YCOzgb6N2lew4vEmyS6s70y0z5xStKjGQaf55g=",
"path": "/home/e/dev/dart.nvim", "owner": "iofq",
"type": "path" "repo": "dart.nvim",
"rev": "f059335a22811374d5a7e22c97889ea712db58d7",
"type": "github"
}, },
"original": { "original": {
"path": "/home/e/dev/dart.nvim", "owner": "iofq",
"type": "path" "repo": "dart.nvim",
"type": "github"
} }
}, },
"flake-compat": { "flake-compat": {
@ -448,14 +451,17 @@
"nvim-treesitter-textobjects": "nvim-treesitter-textobjects" "nvim-treesitter-textobjects": "nvim-treesitter-textobjects"
}, },
"locked": { "locked": {
"lastModified": 1759555972, "lastModified": 1759559567,
"narHash": "sha256-vdIHsEjpZUdTYVzoJKsDsXjIlCyyIXMsBubg3dIp+cE=", "narHash": "sha256-cNu8MIRumBeW1HJK8c8IM6ge1yalz4xS5j5RCDbhf0Y=",
"path": "/home/e/dev/nvim-treesitter-main", "owner": "iofq",
"type": "path" "repo": "nvim-treesitter-main",
"rev": "1f19cc0a907328d8dbf467ee9fe216277628d366",
"type": "github"
}, },
"original": { "original": {
"path": "/home/e/dev/nvim-treesitter-main", "owner": "iofq",
"type": "path" "repo": "nvim-treesitter-main",
"type": "github"
} }
}, },
"nvim-treesitter-textobjects": { "nvim-treesitter-textobjects": {

View file

@ -10,10 +10,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
dart = { dart = {
url = "path:/home/e/dev/dart.nvim"; url = "github:iofq/dart.nvim";
}; };
nvim-treesitter-main = { nvim-treesitter-main = {
url = "path:/home/e/dev/nvim-treesitter-main"; url = "github:iofq/nvim-treesitter-main";
}; };
# Add bleeding-edge plugins here. # Add bleeding-edge plugins here.
# They can be updated with `nix flake update` (make sure to commit the generated flake.lock) # They can be updated with `nix flake update` (make sure to commit the generated flake.lock)

View file

@ -38,10 +38,10 @@ vim.api.nvim_create_autocmd('FileType', {
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
pcall(vim.treesitter.start, bufnr) pcall(vim.treesitter.start, bufnr)
vim.keymap.set({'v','n'}, ']f', function() vim.keymap.set({'v','n'}, ']]', function()
require('nvim-treesitter-textobjects.move').goto_next_start('@function.outer', 'textobjects') require('nvim-treesitter-textobjects.move').goto_next_start('@function.outer', 'textobjects')
end, { buffer = bufnr, desc = 'next function def' }) end, { buffer = bufnr, desc = 'next function def' })
vim.keymap.set({'v','n'}, '[f', function() vim.keymap.set({'v','n'}, '[[', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@function.outer', 'textobjects') require('nvim-treesitter-textobjects.move').goto_previous_start('@function.outer', 'textobjects')
end, { buffer = bufnr, desc = 'prev function def' }) end, { buffer = bufnr, desc = 'prev function def' })
vim.keymap.set({'v','n'}, ']a', function() vim.keymap.set({'v','n'}, ']a', function()
@ -50,10 +50,10 @@ vim.api.nvim_create_autocmd('FileType', {
vim.keymap.set({'v','n'}, '[a', function() vim.keymap.set({'v','n'}, '[a', function()
require('nvim-treesitter-textobjects.move').goto_previous_start('@parameter.inner', 'textobjects') require('nvim-treesitter-textobjects.move').goto_previous_start('@parameter.inner', 'textobjects')
end, { buffer = bufnr, desc = 'prev param def' }) end, { buffer = bufnr, desc = 'prev param def' })
vim.keymap.set({'v','n'}, 'a]', function() vim.keymap.set({'v','n'}, ']A', function()
require('nvim-treesitter-textobjects.swap').swap_next('@parameter.inner') require('nvim-treesitter-textobjects.swap').swap_next('@parameter.inner')
end, { buffer = bufnr, desc = 'swap next arg' }) end, { buffer = bufnr, desc = 'swap next arg' })
vim.keymap.set({'v','n'}, 'a[', function() vim.keymap.set({'v','n'}, '[A', function()
require('nvim-treesitter-textobjects.swap').swap_previous('@parameter.inner') require('nvim-treesitter-textobjects.swap').swap_previous('@parameter.inner')
end, { buffer = bufnr, desc = 'swap prev arg' }) end, { buffer = bufnr, desc = 'swap prev arg' })
end, end,

View file

@ -32,7 +32,5 @@ vim.diagnostic.config {
source = 'if_many', source = 'if_many',
}, },
} }
vim.schedule(function()
require('config.autocmd') require('config.autocmd')
require('config.keymaps') require('config.keymaps')
end)

View file

@ -1,70 +0,0 @@
local M = {}
M.setup = function()
local id = M.get_id()
if M.check_exists(id) then
vim.notify('Existing session for ' .. id)
end
vim.keymap.set('n', '<leader>fs', function()
M.load()
end, { noremap = true, desc = 'mini session select' })
end
M.get_id = function()
local jj_root = vim.system({ 'jj', 'workspace', 'root' }):wait()
if jj_root.code ~= 0 then
return
end
local result = vim
.system({
'jj',
'log',
'-r',
'latest(heads(::@ & bookmarks()))',
'--template',
'bookmarks',
'--no-pager',
'--no-graph',
})
:wait()
local branch = vim.trim(string.gsub(result.stdout, '[\n*]', '')) -- trim newlines and unpushed indicator
local root = vim.trim(string.gsub(jj_root.stdout, '\n', ''))
local id = string.gsub(string.format('jj:%s:%s', root, branch), '[./]', '-') -- slugify
return id
end
M.check_exists = function(id)
for name, _ in pairs(MiniSessions.detected) do
if name == id then
return true
end
end
return false
end
M.load = function()
local id = M.get_id()
if id == '' then
return
end
if M.check_exists(id) then
vim.ui.select({
'Yes',
'No',
}, { prompt = 'Session found at ' .. id .. ', load it?' }, function(c)
if c == 'Yes' then
-- load session (buffers, etc) as well as shada (marks)
vim.opt.shadafile = vim.fn.stdpath('data') .. '/myshada/' .. id .. '.shada'
MiniSessions.read(id)
vim.notify('loaded jj session: ' .. id)
end
end)
else
MiniSessions.write(id)
end
end
return M

View file

@ -34,7 +34,6 @@ return {
n_lines = 300, n_lines = 300,
custom_textobjects = { custom_textobjects = {
i = require('mini.extra').gen_ai_spec.indent(), i = require('mini.extra').gen_ai_spec.indent(),
u = ai.gen_spec.function_call(),
a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' }, a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' },
f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' }, f = ai.gen_spec.treesitter { a = '@function.outer', i = '@function.inner' },
}, },
@ -45,24 +44,6 @@ return {
require('mini.surround').setup() require('mini.surround').setup()
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } } require('mini.splitjoin').setup { detect = { separator = '[,;\n]' } }
require('mini.sessions').setup {
file = '',
autowrite = true,
hooks = {
pre = {
read = function(session) -- load Dart state *before* buffers are loaded
vim.cmd('rshada')
Dart.read_session(session['name'])
end,
write = function(session)
vim.cmd('wshada')
Dart.write_session(session['name'])
end,
},
},
}
require('plugins.lib.session_jj').setup()
local jump = require('mini.jump2d') local jump = require('mini.jump2d')
jump.setup { jump.setup {
view = { n_steps_ahead = 1, dim = true }, view = { n_steps_ahead = 1, dim = true },