1
Fork 0
satellite/dotfiles/neovim/lua/my/plugins/jupytext.lua

44 lines
1,012 B
Lua

local env = require("my.helpers.env")
local M = {
"goerz/jupytext.vim",
ft = "ipynb",
cond = env.vscode.not_active(),
}
function M.config()
-- Use %% as cell delimiter
vim.g.jupytext_fmt = "py:percent"
end
function M.init()
vim.cmd([[
function GetJupytextFold(linenum)
if getline(a:linenum) =~ "^#\\s%%"
" start fold
return ">1"
elseif getline(a:linenum + 1) =~ "^#\\s%%"
return "<1"
else
return "-1"
endif
endfunction
]])
-- Set the correct foldexpr
vim.api.nvim_create_autocmd("BufEnter", {
pattern = { "*.ipynb" },
group = vim.api.nvim_create_augroup("JupytextFoldExpr", {}),
callback = function()
vim.cmd([[
setlocal foldexpr=GetJupytextFold(v:lnum)
setlocal foldmethod=expr
" Deletes and pastes all text. Used to refresh folds.
:norm ggVGdpggdd
]])
end,
})
end
return M