mirror of
https://github.com/tiyn/dotfiles.git
synced 2026-04-15 19:54:48 +02:00
Nvim: Moved autocmds into plugins
This commit is contained in:
@@ -4,113 +4,3 @@ vim.api.nvim_create_autocmd("TextYankPost", {
|
|||||||
vim.highlight.on_yank({ higroup = "YankHighlight" })
|
vim.highlight.on_yank({ higroup = "YankHighlight" })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- gnikdroy/projections.nvim
|
|
||||||
local Session = require("projections.session")
|
|
||||||
vim.api.nvim_create_autocmd({ "VimLeavePre" }, {
|
|
||||||
callback = function()
|
|
||||||
Session.store(vim.loop.cwd())
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
|
||||||
callback = function()
|
|
||||||
if vim.fn.argc() ~= 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local session_info = Session.info(vim.loop.cwd())
|
|
||||||
if session_info ~= nil then
|
|
||||||
Session.restore(vim.loop.cwd())
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
desc = "Restore last session automatically",
|
|
||||||
})
|
|
||||||
|
|
||||||
-- benlubas/molten-nvim
|
|
||||||
local imb = function(e)
|
|
||||||
vim.schedule(function()
|
|
||||||
local kernels = vim.fn.MoltenAvailableKernels()
|
|
||||||
local try_kernel_name = function()
|
|
||||||
local metadata = vim.json.decode(io.open(e.file, "r"):read("a"))["metadata"]
|
|
||||||
return metadata.kernelspec.name
|
|
||||||
end
|
|
||||||
local ok, kernel_name = pcall(try_kernel_name)
|
|
||||||
if not ok or not vim.tbl_contains(kernels, kernel_name) then
|
|
||||||
kernel_name = nil
|
|
||||||
local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX")
|
|
||||||
if venv ~= nil then
|
|
||||||
kernel_name = string.match(venv, "/.+/(.+)")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if kernel_name ~= nil and vim.tbl_contains(kernels, kernel_name) then
|
|
||||||
vim.cmd(("MoltenInit %s"):format(kernel_name))
|
|
||||||
end
|
|
||||||
vim.cmd("MoltenImportOutput")
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("BufAdd", {
|
|
||||||
pattern = { "*.ipynb" },
|
|
||||||
callback = imb,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
|
||||||
pattern = { "*.ipynb" },
|
|
||||||
callback = function(e)
|
|
||||||
if vim.api.nvim_get_vvar("vim_did_enter") ~= 1 then
|
|
||||||
imb(e)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
local default_notebook = [[
|
|
||||||
{
|
|
||||||
"cells": [
|
|
||||||
{
|
|
||||||
"cell_type": "markdown",
|
|
||||||
"metadata": {},
|
|
||||||
"source": [
|
|
||||||
""
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"kernelspec": {
|
|
||||||
"display_name": "Python 3",
|
|
||||||
"language": "python",
|
|
||||||
"name": "python3"
|
|
||||||
},
|
|
||||||
"language_info": {
|
|
||||||
"codemirror_mode": {
|
|
||||||
"name": "ipython"
|
|
||||||
},
|
|
||||||
"file_extension": ".py",
|
|
||||||
"mimetype": "text/x-python",
|
|
||||||
"name": "python",
|
|
||||||
"nbconvert_exporter": "python",
|
|
||||||
"pygments_lexer": "ipython3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nbformat": 4,
|
|
||||||
"nbformat_minor": 5
|
|
||||||
}
|
|
||||||
]]
|
|
||||||
|
|
||||||
local function new_notebook(filename)
|
|
||||||
local path = filename .. ".ipynb"
|
|
||||||
local file = io.open(path, "w")
|
|
||||||
if file then
|
|
||||||
file:write(default_notebook)
|
|
||||||
file:close()
|
|
||||||
vim.cmd("edit " .. path)
|
|
||||||
else
|
|
||||||
print("Error: Could not open new notebook file for writing.")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_create_user_command("NewNotebook", function(opts)
|
|
||||||
new_notebook(opts.args)
|
|
||||||
end, {
|
|
||||||
nargs = 1,
|
|
||||||
complete = "file",
|
|
||||||
})
|
|
||||||
|
|||||||
@@ -17,4 +17,93 @@ return {
|
|||||||
vim.g.molten_image_provider = "image.nvim"
|
vim.g.molten_image_provider = "image.nvim"
|
||||||
vim.g.molten_output_win_max_height = 20
|
vim.g.molten_output_win_max_height = 20
|
||||||
end,
|
end,
|
||||||
|
config = function()
|
||||||
|
local imb = function(e)
|
||||||
|
vim.schedule(function()
|
||||||
|
local kernels = vim.fn.MoltenAvailableKernels()
|
||||||
|
local try_kernel_name = function()
|
||||||
|
local metadata = vim.json.decode(io.open(e.file, "r"):read("a"))["metadata"]
|
||||||
|
return metadata.kernelspec.name
|
||||||
|
end
|
||||||
|
local ok, kernel_name = pcall(try_kernel_name)
|
||||||
|
if not ok or not vim.tbl_contains(kernels, kernel_name) then
|
||||||
|
kernel_name = nil
|
||||||
|
local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX")
|
||||||
|
if venv ~= nil then
|
||||||
|
kernel_name = string.match(venv, "/.+/(.+)")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if kernel_name ~= nil and vim.tbl_contains(kernels, kernel_name) then
|
||||||
|
vim.cmd(("MoltenInit %s"):format(kernel_name))
|
||||||
|
end
|
||||||
|
vim.cmd("MoltenImportOutput")
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufAdd", {
|
||||||
|
pattern = { "*.ipynb" },
|
||||||
|
callback = imb,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufEnter", {
|
||||||
|
pattern = { "*.ipynb" },
|
||||||
|
callback = function(e)
|
||||||
|
if vim.api.nvim_get_vvar("vim_did_enter") ~= 1 then
|
||||||
|
imb(e)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
local default_notebook = [[
|
||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython"
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
|
]]
|
||||||
|
|
||||||
|
local function new_notebook(filename)
|
||||||
|
local path = filename .. ".ipynb"
|
||||||
|
local file = io.open(path, "w")
|
||||||
|
if file then
|
||||||
|
file:write(default_notebook)
|
||||||
|
file:close()
|
||||||
|
vim.cmd("edit " .. path)
|
||||||
|
else
|
||||||
|
print("Error: Could not open new notebook file for writing.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("NewNotebook", function(opts)
|
||||||
|
new_notebook(opts.args)
|
||||||
|
end, {
|
||||||
|
nargs = 1,
|
||||||
|
complete = "file",
|
||||||
|
})
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,31 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
require("projections").setup(opts)
|
local projections = require("projections")
|
||||||
|
local session = require("projections.session")
|
||||||
|
|
||||||
|
projections.setup(opts)
|
||||||
require("telescope").load_extension("projections")
|
require("telescope").load_extension("projections")
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimLeavePre", {
|
||||||
|
callback = function()
|
||||||
|
session.store(vim.loop.cwd())
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
callback = function()
|
||||||
|
if vim.fn.argc() ~= 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
vim.schedule(function()
|
||||||
|
local session_info = session.info(vim.loop.cwd())
|
||||||
|
if session_info ~= nil then
|
||||||
|
session.restore(vim.loop.cwd())
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
desc = "Restore last session automatically",
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user