aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authorJesse-Bakker <jessebakker00@gmail.com>2020-02-11 07:53:14 +0100
committerGitHub <noreply@github.com>2020-02-10 22:53:14 -0800
commit5d5b068d5bdd2fe3787eb619097a5af08ef929e2 (patch)
tree11fba89bae180607e0742b99028154c1a57e73e4 /runtime/lua/vim/lsp/buf.lua
parent2572c5d0936ab632733c08030237967252f632af (diff)
downloadrneovim-5d5b068d5bdd2fe3787eb619097a5af08ef929e2.tar.gz
rneovim-5d5b068d5bdd2fe3787eb619097a5af08ef929e2.tar.bz2
rneovim-5d5b068d5bdd2fe3787eb619097a5af08ef929e2.zip
LSP: Refine formatting tabSize #11834
Use the logic explained in the softtabstop help section for defining the tabSize parameter in formatting requests. This means that: - if softtabstop is 0, tabstop is used - if softtabstop < 0, shiftwidth is used - if softtabstop > 0, softtabstop is used When inserting spaces instead of tabs, softtabstop is used in vim. Therefor it would be more logical to use it when formatting instead of the current tabstop.
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r--runtime/lua/vim/lsp/buf.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index a6a05fb095..19deb5df45 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -68,8 +68,9 @@ end
function M.formatting(options)
validate { options = {options, 't', true} }
+ local sts = vim.bo.softtabstop;
options = vim.tbl_extend('keep', options or {}, {
- tabSize = vim.bo.tabstop;
+ tabSize = (sts > 0 and sts) or (sts < 0 and vim.bo.shiftwidth) or vim.bo.tabstop;
insertSpaces = vim.bo.expandtab;
})
local params = {
@@ -85,8 +86,9 @@ function M.range_formatting(options, start_pos, end_pos)
start_pos = {start_pos, 't', true};
end_pos = {end_pos, 't', true};
}
+ local sts = vim.bo.softtabstop;
options = vim.tbl_extend('keep', options or {}, {
- tabSize = vim.bo.tabstop;
+ tabSize = (sts > 0 and sts) or (sts < 0 and vim.bo.shiftwidth) or vim.bo.tabstop;
insertSpaces = vim.bo.expandtab;
})
local A = list_extend({}, start_pos or api.nvim_buf_get_mark(0, '<'))