feat: add ability to alter lsp file operation timeout (#317)
* feat: add ability to alter lsp file operation timeout * change default * fix table * add missing * move inside table * remove duplicate * reuse default * change message * refactor: rename autosave config option --------- Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
This commit is contained in:
parent
132b4ea074
commit
29a06fcc90
4 changed files with 35 additions and 13 deletions
10
README.md
10
README.md
|
|
@ -163,9 +163,13 @@ require("oil").setup({
|
|||
-- You can set the delay to false to disable cleanup entirely
|
||||
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
|
||||
cleanup_delay_ms = 2000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
lsp_rename_autosave = false,
|
||||
lsp_file_methods = {
|
||||
-- Time to wait for LSP file operations to complete before skipping
|
||||
timeout_ms = 1000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
autosave_changes = false,
|
||||
},
|
||||
-- Constrain the cursor to the editable parts of the oil buffer
|
||||
-- Set to `false` to disable, or "name" to keep it on the file names
|
||||
constrain_cursor = "editable",
|
||||
|
|
|
|||
10
doc/oil.txt
10
doc/oil.txt
|
|
@ -54,9 +54,13 @@ CONFIG *oil-confi
|
|||
-- You can set the delay to false to disable cleanup entirely
|
||||
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
|
||||
cleanup_delay_ms = 2000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
lsp_rename_autosave = false,
|
||||
lsp_file_methods = {
|
||||
-- Time to wait for LSP file operations to complete before skipping
|
||||
timeout_ms = 1000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
autosave_changes = false,
|
||||
},
|
||||
-- Constrain the cursor to the editable parts of the oil buffer
|
||||
-- Set to `false` to disable, or "name" to keep it on the file names
|
||||
constrain_cursor = "editable",
|
||||
|
|
|
|||
|
|
@ -37,9 +37,13 @@ local default_config = {
|
|||
-- You can set the delay to false to disable cleanup entirely
|
||||
-- Note that the cleanup process only starts when none of the oil buffers are currently displayed
|
||||
cleanup_delay_ms = 2000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
lsp_rename_autosave = false,
|
||||
lsp_file_methods = {
|
||||
-- Time to wait for LSP file operations to complete before skipping
|
||||
timeout_ms = 1000,
|
||||
-- Set to true to autosave buffers that are updated with LSP willRenameFiles
|
||||
-- Set to "unmodified" to only save unmodified buffers
|
||||
autosave_changes = false,
|
||||
},
|
||||
-- Constrain the cursor to the editable parts of the oil buffer
|
||||
-- Set to `false` to disable, or "name" to keep it on the file names
|
||||
constrain_cursor = "editable",
|
||||
|
|
@ -172,6 +176,15 @@ M.setup = function(opts)
|
|||
new_conf.keymaps = opts.keymaps or {}
|
||||
end
|
||||
|
||||
if new_conf.lsp_rename_autosave ~= nil then
|
||||
new_conf.lsp_file_methods.autosave_changes = new_conf.lsp_rename_autosave
|
||||
new_conf.lsp_rename_autosave = nil
|
||||
vim.notify_once(
|
||||
"oil config value lsp_rename_autosave has moved to lsp_file_methods.autosave_changes.\nCompatibility will be removed on 2024-09-01.",
|
||||
vim.log.levels.WARN
|
||||
)
|
||||
end
|
||||
|
||||
for k, v in pairs(new_conf) do
|
||||
M[k] = v
|
||||
end
|
||||
|
|
|
|||
|
|
@ -68,9 +68,10 @@ M.will_perform_file_operations = function(actions)
|
|||
end
|
||||
end
|
||||
end
|
||||
accum(workspace.will_create_files(creates))
|
||||
accum(workspace.will_delete_files(deletes))
|
||||
accum(workspace.will_rename_files(moves))
|
||||
local timeout_ms = config.lsp_file_methods.timeout_ms
|
||||
accum(workspace.will_create_files(creates, { timeout_ms = timeout_ms }))
|
||||
accum(workspace.will_delete_files(deletes, { timeout_ms = timeout_ms }))
|
||||
accum(workspace.will_rename_files(moves, { timeout_ms = timeout_ms }))
|
||||
if final_err then
|
||||
vim.notify(
|
||||
string.format("[lsp] file operation error: %s", vim.inspect(final_err)),
|
||||
|
|
@ -83,7 +84,7 @@ M.will_perform_file_operations = function(actions)
|
|||
workspace.did_delete_files(deletes)
|
||||
workspace.did_rename_files(moves)
|
||||
|
||||
local autosave = config.lsp_rename_autosave
|
||||
local autosave = config.lsp_file_methods.autosave_changes
|
||||
if autosave == false then
|
||||
return
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue