- 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
-
|