local session = require 'bugabinga.pivi.session' local help = require 'bugabinga.pivi.help' local command = require 'bugabinga.pivi.command' local status = require 'bugabinga.pivi.status' local publish = require 'bugabinga.pivi.publish' local transcript = require 'bugabinga.pivi.transcript' local activity = require 'bugabinga.pivi.activity' local edit = require 'bugabinga.pivi.edit' local follow = require 'bugabinga.pivi.follow' local dialog = require 'bugabinga.pivi.dialog' local context = require 'bugabinga.pivi.context' local bridge = require 'bugabinga.pivi.bridge' local docs = require 'bugabinga.pivi.docs' local runtime = require 'bugabinga.pivi.runtime' local entry = require 'bugabinga.pivi.entry' local render = require 'bugabinga.pivi.render' local fold = require 'bugabinga.pivi.fold' local navigate = require 'bugabinga.pivi.navigate' local detail = require 'bugabinga.pivi.detail' local tool = require 'bugabinga.pivi.tool' local comparison = require 'bugabinga.pivi.diff' local guide = require 'bugabinga.pivi.guide' local layout = require 'bugabinga.pivi.layout' --- Reads cached status only. Safe to call from a statusline. local summary = function( name ) return publish.summary( name ) end local reset = function() session.stop_all() follow.reset() dialog.reset() transcript.forget_all() publish.reset() end _G.BugabingaPivi = { session = session, help = help, command = command, status = status, publish = publish, transcript = transcript, activity = activity, edit = edit, follow = follow, dialog = dialog, context = context, bridge = bridge, docs = docs, runtime = runtime, entry = entry, render = render, fold = fold, navigate = navigate, detail = detail, tool = tool, comparison = comparison, guide = guide, layout = layout, summary = summary, reset = reset, } command.setup() vim.api.nvim_create_autocmd( 'VimResized', { group = vim.api.nvim_create_augroup( 'pivi_layout', { clear = true, } ), desc = 'Resize pivi windows to suit the new editor size.', callback = function() pcall( layout.apply ) end, } ) vim.api.nvim_create_autocmd( 'VimLeavePre', { group = vim.api.nvim_create_augroup( 'pivi_shutdown', { clear = true, } ), desc = 'End every Pi process when Neovim exits.', callback = function() pcall( session.stop_all ) end, } ) return _G.BugabingaPivi