diff options
author | David Lukes <dafydd.lukes@gmail.com> | 2020-05-05 17:23:45 +0200 |
---|---|---|
committer | David Lukes <dafydd.lukes@gmail.com> | 2020-06-22 09:48:41 +0200 |
commit | ebee9ebe2be2bd584efefc4064a8b3a07e0505e0 (patch) | |
tree | 54fe1520a078341c073c20c8c5b4e28404cbac59 /runtime/lua/vim/lsp/buf.lua | |
parent | 4496628c181e456d57e9257e14d8582d8dc548eb (diff) | |
download | rneovim-ebee9ebe2be2bd584efefc4064a8b3a07e0505e0.tar.gz rneovim-ebee9ebe2be2bd584efefc4064a8b3a07e0505e0.tar.bz2 rneovim-ebee9ebe2be2bd584efefc4064a8b3a07e0505e0.zip |
lsp: Add sync variant of LSP formatting
Also, factor out a `vim.lsp.util.get_effective_tabstop()` helper and add
tests for it.
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r-- | runtime/lua/vim/lsp/buf.lua | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua index 7a819f3c3d..81d78c8b98 100644 --- a/runtime/lua/vim/lsp/buf.lua +++ b/runtime/lua/vim/lsp/buf.lua @@ -65,19 +65,18 @@ function M.completion(context) end function M.formatting(options) - validate { options = {options, 't', true} } - local sts = vim.bo.softtabstop; - options = vim.tbl_extend('keep', options or {}, { - tabSize = (sts > 0 and sts) or (sts < 0 and vim.bo.shiftwidth) or vim.bo.tabstop; - insertSpaces = vim.bo.expandtab; - }) - local params = { - textDocument = { uri = vim.uri_from_bufnr(0) }; - options = options; - } + local params = util.make_formatting_params(options) return request('textDocument/formatting', params) end +function M.formatting_sync(options, timeout_ms) + local params = util.make_formatting_params(options) + local result = vim.lsp.buf_request_sync(0, "textDocument/formatting", params, timeout_ms) + if not result then return end + result = result[1].result + vim.lsp.util.apply_text_edits(result) +end + function M.range_formatting(options, start_pos, end_pos) validate { options = {options, 't', true}; |