mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
feat(editorconfig): allow editorconfig to be toggled dynamically
Rather than only check `editorconfig_enable` when the plugin is loaded, check it each time the autocommand fires, so that users may enable or disable it dynamically. Also check for a buffer local version of the variable, so that editorconfig can be enabled or disabled per-buffer.
This commit is contained in:
parent
42afa0369a
commit
34d1eaa792
@ -1,11 +1,14 @@
|
|||||||
if vim.g.editorconfig_enable == false or vim.g.editorconfig_enable == 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local group = vim.api.nvim_create_augroup('editorconfig', {})
|
local group = vim.api.nvim_create_augroup('editorconfig', {})
|
||||||
vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead', 'BufFilePost' }, {
|
vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead', 'BufFilePost' }, {
|
||||||
group = group,
|
group = group,
|
||||||
callback = function(args)
|
callback = function(args)
|
||||||
|
-- Buffer-local enable has higher priority
|
||||||
|
local enable =
|
||||||
|
vim.F.if_nil(vim.b.editorconfig_enable, vim.F.if_nil(vim.g.editorconfig_enable, true))
|
||||||
|
if not enable then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
require('editorconfig').config(args.buf)
|
require('editorconfig').config(args.buf)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -4,6 +4,8 @@ local command = helpers.command
|
|||||||
local eq = helpers.eq
|
local eq = helpers.eq
|
||||||
local pathsep = helpers.get_pathsep()
|
local pathsep = helpers.get_pathsep()
|
||||||
local curbufmeths = helpers.curbufmeths
|
local curbufmeths = helpers.curbufmeths
|
||||||
|
local funcs = helpers.funcs
|
||||||
|
local meths = helpers.meths
|
||||||
|
|
||||||
local testdir = 'Xtest-editorconfig'
|
local testdir = 'Xtest-editorconfig'
|
||||||
|
|
||||||
@ -191,4 +193,18 @@ But not this one
|
|||||||
it('sets textwidth', function()
|
it('sets textwidth', function()
|
||||||
test_case('max_line_length.txt', { textwidth = 42 })
|
test_case('max_line_length.txt', { textwidth = 42 })
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('can be disabled globally', function()
|
||||||
|
meths.set_var('editorconfig_enable', false)
|
||||||
|
meths.set_option_value('shiftwidth', 42, {})
|
||||||
|
test_case('3_space.txt', { shiftwidth = 42 })
|
||||||
|
end)
|
||||||
|
|
||||||
|
it('can be disabled per-buffer', function()
|
||||||
|
meths.set_option_value('shiftwidth', 42, {})
|
||||||
|
local bufnr = funcs.bufadd(testdir .. pathsep .. '3_space.txt')
|
||||||
|
meths.buf_set_var(bufnr, 'editorconfig_enable', false)
|
||||||
|
test_case('3_space.txt', { shiftwidth = 42 })
|
||||||
|
test_case('4_space.py', { shiftwidth = 4 })
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user