2021-02-24 20:52:43 +01:00
|
|
|
-- commands.lua
|
|
|
|
|
2022-10-13 17:31:11 +02:00
|
|
|
vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap'
|
2021-03-01 17:22:41 +01:00
|
|
|
|
2023-04-03 12:39:50 +02:00
|
|
|
vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl'
|
|
|
|
|
2022-10-13 17:31:11 +02:00
|
|
|
vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
|
|
|
|
|
|
|
|
vim.cmd 'command W :execute \':silent w !sudo tee % > /dev/null\' | :edit!'
|
2024-08-13 11:49:16 +02:00
|
|
|
|
|
|
|
-- Array of file names indicating root directory. Modify to your liking.
|
|
|
|
local root_names = { '.git', 'Makefile' }
|
|
|
|
|
|
|
|
-- Cache to use for speed up (at cost of possibly outdated results)
|
|
|
|
local root_cache = {}
|
|
|
|
|
|
|
|
local set_root = function()
|
|
|
|
-- Get directory path to start search from
|
|
|
|
local path = vim.api.nvim_buf_get_name(0)
|
|
|
|
if path == '' then return end
|
|
|
|
path = vim.fs.dirname(path)
|
|
|
|
|
|
|
|
-- Try cache and resort to searching upward for root directory
|
|
|
|
local root = root_cache[path]
|
|
|
|
if root == nil then
|
|
|
|
local root_file = vim.fs.find(root_names, { path = path, upward = true })[1]
|
|
|
|
if root_file == nil then return end
|
|
|
|
root = vim.fs.dirname(root_file)
|
|
|
|
root_cache[path] = root
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Set current directory
|
|
|
|
vim.fn.chdir(root)
|
|
|
|
end
|
|
|
|
|
|
|
|
local root_augroup = vim.api.nvim_create_augroup('MyAutoRoot', {})
|
|
|
|
vim.api.nvim_create_autocmd('BufEnter', { group = root_augroup, callback = set_root })
|