neovim-config/lua/filetypes.lua

35 lines
1.2 KiB
Lua

--
-- Configuration Tools
--
local ct = require('conftool')
local defs = require('defaults')
--
-- Templates
--
ct.augroup('templates',
{'BufNewFile', '*.c', '0r', defs.template_dir .. '/c_stdio.c'},
{'BufNewFile', '*.cpp', '0r', defs.template_dir .. '/cpp_iostream.cpp'},
{'BufNewFile', '*.go', '0r', defs.template_dir .. '/go.go'},
{'BufNewFile', '*.html', '0r', defs.template_dir .. '/html.html'},
{'BufNewFile', '*.html', '0r', defs.template_dir .. '/html.html'},
{'BufNewFile', '*.py', '0r', defs.template_dir .. '/py.py'},
{'BufNewFile', '*.sh', '0r', defs.template_dir .. '/sh.sh'}
)
--
-- FileType based Settings
--
ct.augroup('filetypeSettings',
{'FileType', 'python', 'setlocal', 'tabstop=4 shiftwidth=4 expandtab'},
{'FileType', 'html', 'setlocal', 'tabstop=2 shiftwidth=2'},
{'FileType', 'javascript', 'setlocal', 'tabstop=2 shiftwidth=2'},
{'FileType', 'typescript', 'setlocal', 'tabstop=2 shiftwidth=2'},
{'FileType', 'typescriptreact','setlocal', 'tabstop=2 shiftwidth=2'},
{'FileType', 'vue', 'setlocal', 'tabstop=2 shiftwidth=2'}
)
--
-- Misc.
--
vim.cmd 'autocmd BufWritePost *.go,*.py,*.js,*.ts,*tsx,*.tex LspFormat' -- run lspformat when saving in go