Closed bodby closed 2 weeks ago
There's probably a race condition in there.
Could you provide a minimal init that I could just use as init.lua? I'm not sure how rocks-config.nvim
works.
Also, when you open up neovim with org loaded, what does this command return:
:lua= vim.api.nvim_get_runtime_file('parser/org.so', true)
I'm curious if it installed the rocks dependency first or not.
I'm outside right now so I can't check the command output, but here's the init.lua from the rocks.nvim page:
do
-- Specifies where to install/use rocks.nvim
local install_location = vim.fs.joinpath(vim.fn.stdpath("data"), "rocks")
-- Set up configuration options related to rocks.nvim (recommended to leave as default)
local rocks_config = {
rocks_path = vim.fs.normalize(install_location),
}
vim.g.rocks_nvim = rocks_config
-- Configure the package path (so that plugin code can be found)
local luarocks_path = {
vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?.lua"),
vim.fs.joinpath(rocks_config.rocks_path, "share", "lua", "5.1", "?", "init.lua"),
}
package.path = package.path .. ";" .. table.concat(luarocks_path, ";")
-- Configure the C path (so that e.g. tree-sitter parsers can be found)
local luarocks_cpath = {
vim.fs.joinpath(rocks_config.rocks_path, "lib", "lua", "5.1", "?.so"),
vim.fs.joinpath(rocks_config.rocks_path, "lib64", "lua", "5.1", "?.so"),
}
package.cpath = package.cpath .. ";" .. table.concat(luarocks_cpath, ";")
-- Load all installed plugins, including rocks.nvim itself
vim.opt.runtimepath:append(vim.fs.joinpath(rocks_config.rocks_path, "lib", "luarocks", "rocks-5.1", "rocks.nvim", "*"))
end
-- If rocks.nvim is not installed then install it!
if not pcall(require, "rocks") then
local rocks_location = vim.fs.joinpath(vim.fn.stdpath("cache"), "rocks.nvim")
if not vim.uv.fs_stat(rocks_location) then
-- Pull down rocks.nvim
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/nvim-neorocks/rocks.nvim",
rocks_location,
})
end
-- If the clone was successful then source the bootstrapping script
assert(vim.v.shell_error == 0, "rocks.nvim installation failed. Try exiting and re-entering Neovim!")
vim.cmd.source(vim.fs.joinpath(rocks_location, "bootstrap.lua"))
vim.fn.delete(rocks_location, "rf")
end
There is another file you have to modify to install orgmode though. It's in the same directory as the init file (.config/nvim/Rocks.toml)
# ...
[plugins]
orgmode = "scm" # or "dev"
"rocks-config.nvim" = "2.2.0"
[config]
auto_setup = true
# ...
This is the output of :lua= vim.api.nvim_get_runtime_file('parser/org.so', true)
:
{ "/home/bodby/.local/share/nvim/site/pack/luarocks/opt/tree-sitter-orgmode/parser/org.so" }
So after some messing around it turns out that the org parser initially doesn't get detected which is why orgmode tries to install it. Running vim.treesitter.language.add("org")
doesn't return an error but if I add it to any file called at startup it does. Seems to be an issue with rocks.nvim and not orgmode.
Fixed by adding vim.opt.runtimepath:append(vim.fs.joinpath(vim.fn.stdpath("data"), "rocks", "lib", "luarocks", "rocks-5.1", "tree-sitter-*", "*"))
in init.lua
Describe the bug
Orgmode logs installing tree-sitter grammar before returning an error: orgmode-log.log Everything works just fine too; Tree-sitter still works, and shows the right highlights with :Inspect. The only problem is the fact that this plugin shouldn't need to install the TS parser if it's already there.
Steps to reproduce
Expected behavior
Either it installs properly or doesn't even need to install in the first place; I assume installing the orgmode TS parser from luarocks would work the same way, and it does seem to do so.
Emacs functionality
No response
Minimal init.lua
Screenshots and recordings
No response
OS / Distro
Gentoo Linux
Neovim version/commit
v0.10.1
Additional context
No response