mirror of
https://github.com/nvim-lua/kickstart.nvim.git
synced 2025-06-22 21:33:30 +02:00
feat: latest changes
This commit is contained in:
parent
03a824311b
commit
1268c5006f
6 changed files with 1333 additions and 383 deletions
|
@ -1,83 +1,85 @@
|
|||
-- 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',
|
||||
dependencies = {
|
||||
'ray-x/go.nvim',
|
||||
'ray-x/guihua.lua',
|
||||
},
|
||||
config = function()
|
||||
require("go").setup()
|
||||
-- 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
|
||||
|
||||
if vim.bo.filetype == 'go' then
|
||||
require('go.format').goimport()
|
||||
else
|
||||
vim.lsp.buf.format {
|
||||
async = false,
|
||||
filter = function(c)
|
||||
return c.id == client.id
|
||||
end,
|
||||
}
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
-- -- 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',
|
||||
-- dependencies = {
|
||||
-- 'ray-x/go.nvim',
|
||||
-- 'ray-x/guihua.lua',
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("go").setup()
|
||||
-- -- 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
|
||||
--
|
||||
-- if vim.bo.filetype == 'go' then
|
||||
-- require('go.format').goimport()
|
||||
-- else
|
||||
-- vim.lsp.buf.format {
|
||||
-- async = false,
|
||||
-- filter = function(c)
|
||||
-- return c.id == client.id
|
||||
-- end,
|
||||
-- }
|
||||
-- end
|
||||
-- end,
|
||||
-- })
|
||||
-- end,
|
||||
-- })
|
||||
-- end,
|
||||
-- }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue