You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.6 KiB

  1. local aucmd_dict = {
  2. FileType = {
  3. {
  4. -- Set tabstop to 2 for Dart, Vue, JavaScript, TypeScript, and JSON files
  5. pattern = "dart,vue,javascript,typescript,json,markdown",
  6. callback = function()
  7. vim.opt_local.tabstop = 2
  8. vim.opt_local.softtabstop = 2
  9. vim.opt_local.shiftwidth = 2
  10. end,
  11. },
  12. {
  13. pattern = 'dart',
  14. callback = function ()
  15. vim.bo.commentstring = '// %s'
  16. end
  17. },
  18. },
  19. BufWritePre = {
  20. {
  21. -- Remove trailing whitespace on save
  22. command = [[%s/\s\+$//e]],
  23. },
  24. },
  25. BufRead = {
  26. {
  27. -- Return cursor to where it was previously when re-opening a file
  28. command = [[if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif]]
  29. },
  30. {
  31. -- Set syntax for Dockerfiles
  32. pattern = { '*.docker' },
  33. callback = function()
  34. vim.opt_local.syntax = 'dockerfile'
  35. end
  36. },
  37. {
  38. pattern = { '*.blade.php' },
  39. command = [[set syntax=html]],
  40. },
  41. },
  42. BufNewFile = {
  43. {
  44. -- Set syntax for Dockerfiles
  45. pattern = { '*.docker' },
  46. callback = function()
  47. vim.opt_local.syntax = 'dockerfile'
  48. end
  49. },
  50. },
  51. }
  52. for event, opt_tbls in pairs(aucmd_dict) do
  53. for _, opt_tbl in pairs(opt_tbls) do
  54. vim.api.nvim_create_autocmd(event, opt_tbl)
  55. end
  56. end