summaryrefslogtreecommitdiff
path: root/lua/kickstart/plugins/autoformat.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/kickstart/plugins/autoformat.lua')
-rw-r--r--lua/kickstart/plugins/autoformat.lua74
1 files changed, 0 insertions, 74 deletions
diff --git a/lua/kickstart/plugins/autoformat.lua b/lua/kickstart/plugins/autoformat.lua
deleted file mode 100644
index bc56b15..0000000
--- a/lua/kickstart/plugins/autoformat.lua
+++ /dev/null
@@ -1,74 +0,0 @@
--- autoformat.lua
---
--- Use your language server to automatically format your code on save.
--- Adds additional commands as well to manage the behavior
-
-return {
- 'neovim/nvim-lspconfig',
- config = function()
- -- Switch for controlling whether you want autoformatting.
- -- Use :KickstartFormatToggle to toggle autoformatting on or off
- local format_is_enabled = true
- vim.api.nvim_create_user_command('KickstartFormatToggle', function()
- format_is_enabled = not format_is_enabled
- print('Setting autoformatting to: ' .. tostring(format_is_enabled))
- end, {})
-
- -- Create an augroup that is used for managing our formatting autocmds.
- -- We need one augroup per client to make sure that multiple clients
- -- can attach to the same buffer without interfering with each other.
- local _augroups = {}
- local get_augroup = function(client)
- if not _augroups[client.id] then
- local group_name = 'kickstart-lsp-format-' .. client.name
- local id = vim.api.nvim_create_augroup(group_name, { clear = true })
- _augroups[client.id] = id
- end
-
- return _augroups[client.id]
- end
-
- -- Whenever an LSP attaches to a buffer, we will run this function.
- --
- -- See `:help LspAttach` for more information about this autocmd event.
- vim.api.nvim_create_autocmd('LspAttach', {
- group = vim.api.nvim_create_augroup('kickstart-lsp-attach-format', { clear = true }),
- -- This is where we attach the autoformatting for reasonable clients
- callback = function(args)
- local client_id = args.data.client_id
- local client = vim.lsp.get_client_by_id(client_id)
- local bufnr = args.buf
-
- -- Only attach to clients that support document formatting
- if not client.server_capabilities.documentFormattingProvider then
- return
- end
-
- -- Tsserver usually works poorly. Sorry you work with bad languages
- -- You can remove this line if you know what you're doing :)
- if client.name == 'tsserver' then
- return
- end
-
- -- Create an autocmd that will run *before* we save the buffer.
- -- Run the formatting command for the LSP that has just attached.
- vim.api.nvim_create_autocmd('BufWritePre', {
- group = get_augroup(client),
- buffer = bufnr,
- callback = function()
- if not format_is_enabled then
- return
- end
-
- vim.lsp.buf.format {
- async = false,
- filter = function(c)
- return c.id == client.id
- end,
- }
- end,
- })
- end,
- })
- end,
-}