local aucmd_dict = {
|
|
VimEnter = {
|
|
{
|
|
callback = function()
|
|
local function find_project_root()
|
|
local current_dir = vim.fn.getcwd()
|
|
|
|
while current_dir ~= "/" do
|
|
if vim.fn.isdirectory(current_dir .. "/.git") == 1 or vim.fn.filereadable(current_dir .. "/.nvim.lua") then
|
|
return current_dir
|
|
end
|
|
current_dir = vim.fn.fnamemodify(current_dir, ":h")
|
|
end
|
|
|
|
return vim.fn.getcwd()
|
|
end
|
|
|
|
local project_root = find_project_root()
|
|
local project_specific_conf_file = project_root .. "/.nvim.lua"
|
|
|
|
if vim.fn.filereadable(project_specific_conf_file) == 1 then
|
|
vim.cmd("source " .. project_specific_conf_file)
|
|
print("Sourced project specific config file: " .. project_specific_conf_file)
|
|
end
|
|
end
|
|
}
|
|
},
|
|
FileType = {
|
|
{
|
|
-- Set tabstop to 2 for Dart, Vue, JavaScript, TypeScript, and JSON files
|
|
pattern = "dart,vue,javascript,typescript,json,markdown",
|
|
callback = function()
|
|
vim.opt_local.tabstop = 2
|
|
vim.opt_local.softtabstop = 2
|
|
vim.opt_local.shiftwidth = 2
|
|
end,
|
|
},
|
|
{
|
|
pattern = 'dart',
|
|
callback = function ()
|
|
vim.bo.commentstring = '// %s'
|
|
end
|
|
},
|
|
},
|
|
|
|
BufWritePre = {
|
|
{
|
|
-- Remove trailing whitespace on save
|
|
command = [[%s/\s\+$//e]],
|
|
},
|
|
},
|
|
|
|
BufRead = {
|
|
{
|
|
-- Return cursor to where it was previously when re-opening a file
|
|
callback = function()
|
|
if vim.fn.expand('%:p') ~= '.git/COMMIT_EDITMSG' and vim.fn.line("'\"") > 1 and vim.fn.line("'\"") <= vim.fn.line("$") then
|
|
vim.cmd("normal! g`\"")
|
|
end
|
|
end
|
|
},
|
|
|
|
{
|
|
-- Set syntax for Dockerfiles
|
|
pattern = { '*.docker' },
|
|
callback = function()
|
|
vim.opt_local.syntax = 'dockerfile'
|
|
end
|
|
},
|
|
|
|
{
|
|
pattern = { '*.blade.php' },
|
|
command = [[set syntax=html]],
|
|
},
|
|
},
|
|
|
|
BufNewFile = {
|
|
{
|
|
-- Set syntax for Dockerfiles
|
|
pattern = { '*.docker' },
|
|
callback = function()
|
|
vim.opt_local.syntax = 'dockerfile'
|
|
end
|
|
},
|
|
},
|
|
}
|
|
|
|
for event, opt_tbls in pairs(aucmd_dict) do
|
|
for _, opt_tbl in pairs(opt_tbls) do
|
|
vim.api.nvim_create_autocmd(event, opt_tbl)
|
|
end
|
|
end
|
|
|