nvim: Move util to core.util module
Moved all utility functions from their own directory into the core functionality direcotyr as a single file.
This commit is contained in:
parent
e939305df3
commit
405af0f020
11 changed files with 32 additions and 59 deletions
|
@ -13,7 +13,7 @@ end
|
|||
-- Start quarto session
|
||||
local startsession = function(file, args)
|
||||
file = file or default_buffer_session()
|
||||
local path = require("util").get_python_venv()
|
||||
local path = require("core.util").get_python_venv()
|
||||
vim.g["python3_host_prog"] = path
|
||||
|
||||
if vim.fn.executable("jupyter-console") ~= 1 then
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
local map = vim.keymap.set
|
||||
local is_available = require("util").is_available
|
||||
local is_available = require("core.util").is_available
|
||||
|
||||
if is_available("which-key") then
|
||||
local prefix = require("which-key").register
|
||||
|
|
|
@ -1,22 +1,37 @@
|
|||
local T = {}
|
||||
local exepath = vim.fn.exepath
|
||||
|
||||
local function path_join(...)
|
||||
return table.concat(vim.tbl_flatten { ... }, '/')
|
||||
-- from astronvim util function
|
||||
--- Check if a plugin is defined in lazy. Useful with lazy loading when a plugin is not necessarily loaded yet
|
||||
---@param plugin string The plugin to search for
|
||||
---@return boolean available # Whether the plugin is available
|
||||
function T.is_available(plugin)
|
||||
return T.get_plugin(plugin) and true or false
|
||||
end
|
||||
|
||||
-- Get the plugin file handle if it exists, return nil otherwise
|
||||
function T.get_plugin(plugin)
|
||||
local status, lib = pcall(require, plugin)
|
||||
if status then
|
||||
return lib
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
-- from https://github.com/ray-x/navigator.lua/issues/247#issue-1465308677
|
||||
T.get_path = function(workspace)
|
||||
local function path_join(...)
|
||||
return table.concat(vim.tbl_flatten({ ... }), "/")
|
||||
end
|
||||
-- return the current python environment path
|
||||
function T.get_python_venv(workspace)
|
||||
-- Use activated virtualenv.
|
||||
if vim.env.VIRTUAL_ENV then
|
||||
return path_join(vim.env.VIRTUAL_ENV, "bin", "python")
|
||||
end
|
||||
|
||||
-- Find and use virtualenv in workspace directory.
|
||||
for _, pattern in ipairs({ "*", ".*" }) do
|
||||
local match = vim.fn.glob(path_join(workspace, pattern, "pyvenv.cfg"))
|
||||
if match ~= "" then
|
||||
local py = path_join("bin", "python")
|
||||
local py = path_join("bin", "python")
|
||||
match = string.gsub(match, "pyvenv.cfg", py)
|
||||
return match
|
||||
end
|
||||
|
@ -26,9 +41,8 @@ T.get_path = function(workspace)
|
|||
return path_join(venv_base_folder, "bin", "python")
|
||||
end
|
||||
end
|
||||
|
||||
-- Fallback to system Python.
|
||||
return exepath("python3") or exepath("python") or "python"
|
||||
return vim.fn.exepath("python3") or vim.fn.exepath("python") or "python"
|
||||
end
|
||||
|
||||
return T
|
|
@ -165,7 +165,7 @@ local python_path
|
|||
lspconfig.pyright.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
if python_path == nil then
|
||||
python_path, _ = require("util").get_python_venv(client.config.root_dir)
|
||||
python_path, _ = require("core.util").get_python_venv(client.config.root_dir)
|
||||
end
|
||||
-- print(string.format("[PYTHON VENV]: %s", vim.inspect(python_path)))
|
||||
client.config.settings.python.pythonPath = python_path
|
||||
|
@ -176,14 +176,14 @@ lspconfig.ruff_lsp.setup({
|
|||
on_attach = function(client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
if python_path == nil then
|
||||
python_path, _ = require("util").get_python_venv(client.config.root_dir)
|
||||
python_path, _ = require("core.util").get_python_venv(client.config.root_dir)
|
||||
end
|
||||
client.config.settings.python.pythonPath = python_path
|
||||
end,
|
||||
})
|
||||
|
||||
-- set up arduino with the help of arduino.nvim plugin
|
||||
if require("util").is_available("arduino") then
|
||||
if require("core.util").is_available("arduino") then
|
||||
lspconfig.arduino_language_server.setup({
|
||||
on_new_config = require("arduino").on_new_config,
|
||||
})
|
||||
|
|
|
@ -111,7 +111,7 @@ return {
|
|||
hooks = {
|
||||
pre = function()
|
||||
-- use treesitter commentstring functionality if it's installed
|
||||
if require("util").is_available("ts_context_commentstring") then
|
||||
if require("core.util").is_available("ts_context_commentstring") then
|
||||
require("ts_context_commentstring.internal").update_commentstring()
|
||||
end
|
||||
end,
|
||||
|
|
|
@ -265,7 +265,7 @@ return {
|
|||
}),
|
||||
},
|
||||
})
|
||||
if require("util").is_available("which-key") then
|
||||
if require("core.util").is_available("which-key") then
|
||||
require("which-key").register({ ["<localleader>t"] = { name = "+test" } })
|
||||
end
|
||||
end,
|
||||
|
|
|
@ -60,7 +60,7 @@ local prose_plugs = {
|
|||
{
|
||||
"mickael-menu/zk-nvim",
|
||||
config = function()
|
||||
if require("util").is_available("which-key") then
|
||||
if require("core.util").is_available("which-key") then
|
||||
local prefix = require("which-key").register
|
||||
prefix({ ["<leader>n"] = { name = "+notes" } })
|
||||
prefix({ ["<localleader>n"] = { name = "+note" } })
|
||||
|
|
|
@ -9,7 +9,7 @@ return {
|
|||
},
|
||||
cmd = "Telescope",
|
||||
config = function()
|
||||
if require("util").is_available("which-key") then
|
||||
if require("core.util").is_available("which-key") then
|
||||
require("which-key").register({ ["<leader>f"] = { name = "+find" } })
|
||||
end
|
||||
-- Setup up telescope fuzzy finding settings
|
||||
|
|
|
@ -136,7 +136,7 @@ return {
|
|||
local Terminal = require("toggleterm.terminal").Terminal
|
||||
|
||||
-- need to disable indentlines since they obscure first line of terminal
|
||||
if require("util").is_available("mini.nvim") then
|
||||
if require("core.util").is_available("mini.nvim") then
|
||||
vim.api.nvim_create_autocmd({ "TermOpen" }, {
|
||||
pattern = "*",
|
||||
callback = function()
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
-- helper for easily defining highlight groups
|
||||
--
|
||||
-- usage example - italicize comments:
|
||||
-- set_hl("Comment", { gui = "italic" })
|
||||
return function(group, options)
|
||||
local bg = options.bg == nil and "" or "guibg=" .. options.bg
|
||||
local fg = options.fg == nil and "" or "guifg=" .. options.fg
|
||||
local gui = options.gui == nil and "" or "gui=" .. options.gui
|
||||
local link = options.link or false
|
||||
local target = options.target
|
||||
|
||||
if not link then
|
||||
vim.cmd(string.format("hi %s %s %s %s", group, bg, fg, gui))
|
||||
else
|
||||
vim.cmd(string.format("hi! link", group, target))
|
||||
end
|
||||
end
|
|
@ -1,24 +0,0 @@
|
|||
local T = {}
|
||||
|
||||
-- from astronvim util function
|
||||
--- Check if a plugin is defined in lazy. Useful with lazy loading when a plugin is not necessarily loaded yet
|
||||
---@param plugin string The plugin to search for
|
||||
---@return boolean available # Whether the plugin is available
|
||||
function T.is_available(plugin)
|
||||
return T.get_plugin(plugin) and true or false
|
||||
end
|
||||
|
||||
-- Get the plugin file handle if it exists, return nil otherwise
|
||||
function T.get_plugin(plugin)
|
||||
local status, lib = pcall(require, plugin)
|
||||
if(status) then return lib end
|
||||
return nil
|
||||
end
|
||||
|
||||
-- get the current python environment
|
||||
-- return its path
|
||||
function T.get_python_venv(workspace)
|
||||
return require("util.pyenv").get_path(workspace)
|
||||
end
|
||||
|
||||
return T
|
Loading…
Reference in a new issue