diff --git a/.gitmodules b/.gitmodules index a1b492a..04ceebc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "opt/lua-language-server"] path = opt/lua-language-server url = https://github.com/LuaLS/lua-language-server.git +[submodule "bundle/nvim-format-buffer"] + path = bundle/nvim-format-buffer + url = https://github.com/acro5piano/nvim-format-buffer.git diff --git a/bundle/nvim-format-buffer b/bundle/nvim-format-buffer new file mode 160000 index 0000000..b3b6cbb --- /dev/null +++ b/bundle/nvim-format-buffer @@ -0,0 +1 @@ +Subproject commit b3b6cbbdc78ab73ab8256e37a9e6203ac875866a diff --git a/lua/config/black.lua b/lua/config/black.lua deleted file mode 100644 index 080e6be..0000000 --- a/lua/config/black.lua +++ /dev/null @@ -1,12 +0,0 @@ -vim.api.nvim_create_autocmd( { "BufWritePre" }, { - pattern = { "*.py", "*.pyi" }, - callback = function(ev) - local old_cursor = vim.api.nvim_win_get_cursor(0) - vim.api.nvim_command([[ :silent! %!/usr/bin/env black -q --stdin-filename % - ]]) - local new_cursor = vim.api.nvim_win_get_cursor(0) - - if old_cursor[1] ~= new_cursor[1] or old_cursor[2] ~= new_cursor[2] then - vim.cmd.normal(vim.api.nvim_replace_termcodes('', true, true, true)) - end - end -}) diff --git a/lua/config/clang-format.lua b/lua/config/clang-format.lua deleted file mode 100644 index 2a29cb7..0000000 --- a/lua/config/clang-format.lua +++ /dev/null @@ -1,12 +0,0 @@ -vim.api.nvim_create_autocmd( { "BufWritePre" }, { - pattern = { "*.c", "*.h" }, - callback = function(ev) - local old_cursor = vim.api.nvim_win_get_cursor(0) - vim.api.nvim_command([[ :silent! %!/usr/bin/env clang-format ]]) - local new_cursor = vim.api.nvim_win_get_cursor(0) - - if old_cursor[1] ~= new_cursor[1] or old_cursor[2] ~= new_cursor[2] then - vim.cmd.normal(vim.api.nvim_replace_termcodes('', true, true, true)) - end - end -}) diff --git a/lua/config/format.lua b/lua/config/format.lua new file mode 100644 index 0000000..6ae36e9 --- /dev/null +++ b/lua/config/format.lua @@ -0,0 +1,13 @@ +require('nvim-format-buffer').setup({ + verbose = false, + format_rules = { + { pattern = { '*.c', '*.h' }, command = 'clang-format' }, + { pattern = { '*.py', '*.pyi' }, command = 'black -q --stdin-filename % - | isort -q -' }, + { + pattern = { '*.js', '*.ts', '*.tsx', '*.vue', '*.css' }, + command = function() + return 'prettier --stdin-filepath ' .. vim.api.nvim_buf_get_name(0) + end, + }, + }, +}) diff --git a/lua/config/init.lua b/lua/config/init.lua new file mode 100644 index 0000000..d67c8ab --- /dev/null +++ b/lua/config/init.lua @@ -0,0 +1,3 @@ +require("config.tab") +require("config.format") +require("config.lsp.init") diff --git a/lua/config/isort.lua b/lua/config/isort.lua deleted file mode 100644 index 9fed769..0000000 --- a/lua/config/isort.lua +++ /dev/null @@ -1,12 +0,0 @@ -vim.api.nvim_create_autocmd( { "BufWritePre" }, { - pattern = { "*.py", "*.pyi" }, - callback = function(ev) - local old_cursor = vim.api.nvim_win_get_cursor(0) - vim.api.nvim_command([[ :silent! %!/usr/bin/env isort -q - ]]) - local new_cursor = vim.api.nvim_win_get_cursor(0) - - if old_cursor[1] ~= new_cursor[1] or old_cursor[2] ~= new_cursor[2] then - vim.cmd.normal(vim.api.nvim_replace_termcodes('', true, true, true)) - end - end -}) diff --git a/lua/config/prettier.lua b/lua/config/prettier.lua deleted file mode 100644 index 8ff71fe..0000000 --- a/lua/config/prettier.lua +++ /dev/null @@ -1,12 +0,0 @@ -vim.api.nvim_create_autocmd( { "BufWritePre" }, { - pattern = { "*.vue", "*.js", "*.ts" }, - callback = function(ev) - local old_cursor = vim.api.nvim_win_get_cursor(0) - vim.api.nvim_command([[ :silent! %!/usr/bin/env prettier --stdin-filepath % ]]) - local new_cursor = vim.api.nvim_win_get_cursor(0) - - if old_cursor[1] ~= new_cursor[1] or old_cursor[2] ~= new_cursor[2] then - vim.cmd.normal(vim.api.nvim_replace_termcodes('', true, true, true)) - end - end -}) diff --git a/lua/init.lua b/lua/init.lua index 4c40cb0..c6f796b 100644 --- a/lua/init.lua +++ b/lua/init.lua @@ -32,3 +32,5 @@ require('nvim-treesitter.configs').setup { enable = true, } } + +require("config.init") diff --git a/nvim.vim b/nvim.vim index 7953936..6d74bb8 100644 --- a/nvim.vim +++ b/nvim.vim @@ -34,11 +34,5 @@ let g:jsx_ext_required = 0 set viminfo='20,<1000,s100 lua require("init") -lua require("config.tab") -lua require("config.black") -lua require("config.isort") -lua require("config.prettier") -lua require("config.lsp") -lua require("config.clang-format") " EOF