summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/organize_imports.vim2
-rw-r--r--autoload/ale/rename.vim4
-rw-r--r--doc/ale.txt18
-rw-r--r--plugin/ale.vim3
-rw-r--r--test/test_organize_imports.vader2
-rw-r--r--test/test_rename.vader2
6 files changed, 22 insertions, 9 deletions
diff --git a/autoload/ale/organize_imports.vim b/autoload/ale/organize_imports.vim
index a6e77863..395e6fbd 100644
--- a/autoload/ale/organize_imports.vim
+++ b/autoload/ale/organize_imports.vim
@@ -19,7 +19,7 @@ function! ale#organize_imports#HandleTSServerResponse(conn_id, response) abort
\ },
\ {
\ 'conn_id': a:conn_id,
- \ 'should_save': !&hidden,
+ \ 'should_save': g:ale_save_hidden || !&hidden,
\ },
\)
endfunction
diff --git a/autoload/ale/rename.vim b/autoload/ale/rename.vim
index a722cc94..53c9fb5c 100644
--- a/autoload/ale/rename.vim
+++ b/autoload/ale/rename.vim
@@ -85,7 +85,7 @@ function! ale#rename#HandleTSServerResponse(conn_id, response) abort
\ },
\ {
\ 'conn_id': a:conn_id,
- \ 'should_save': !&hidden,
+ \ 'should_save': g:ale_save_hidden || !&hidden,
\ },
\)
endfunction
@@ -118,7 +118,7 @@ function! ale#rename#HandleLSPResponse(conn_id, response) abort
\ },
\ {
\ 'conn_id': a:conn_id,
- \ 'should_save': !&hidden,
+ \ 'should_save': g:ale_save_hidden || !&hidden,
\ },
\)
endif
diff --git a/doc/ale.txt b/doc/ale.txt
index 5b411b58..189839cf 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -1260,7 +1260,6 @@ g:ale_floating_preview_popup_opts *g:ale_floating_preview_popup_opts*
let g:ale_floating_preview_popup_opts = 'g:CustomOpts'
<
-
g:ale_floating_window_border *g:ale_floating_window_border*
Type: |List|
@@ -1974,6 +1973,16 @@ g:ale_root *g:ale_root*
LSP linter, it will not run.
+g:ale_save_hidden *g:ale_save_hidden*
+
+ Type: |Number|
+ Default: `0`
+
+ When set to `1`, save buffers when 'hidden' is set when applying code
+ actions or rename operations, such as through |ALERename| or
+ |ALEOrganizeImports|.
+
+
g:ale_set_balloons *g:ale_set_balloons*
*b:ale_set_balloons*
@@ -3646,14 +3655,15 @@ ALERename *ALERename*
The symbol where the cursor is resting will be the symbol renamed, and a
prompt will open to request a new name.
- The rename operation will save all modified buffers when `set nohidden` is
- set, because that disables leaving unsaved buffers in the background. See
- `:help hidden` for more details.
+ The rename operation will not save modified buffers when 'hidden' is on
+ unless |g:ale_save_hidden| is `1`.
+
ALEFileRename *ALEFileRename*
Rename a file and fix imports using `tsserver`.
+
ALECodeAction *ALECodeAction*
Apply a code action via LSP servers or `tsserver`.
diff --git a/plugin/ale.vim b/plugin/ale.vim
index f9b6cab8..d926bcfe 100644
--- a/plugin/ale.vim
+++ b/plugin/ale.vim
@@ -191,6 +191,9 @@ let g:ale_deno_executable = get(g:, 'ale_deno_executable', 'deno')
" If 1, enable a popup menu for commands.
let g:ale_popup_menu_enabled = get(g:, 'ale_popup_menu_enabled', has('gui_running'))
+" If 0, save hidden files when code actions are applied.
+let g:ale_save_hidden = get(g:, 'ale_save_hidden', 0)
+
" If 1, disables ALE's built in error display. Instead, all errors are piped
" to the diagnostics API.
let g:ale_use_neovim_diagnostics_api = get(g:, 'ale_use_neovim_diagnostics_api', 0)
diff --git a/test/test_organize_imports.vader b/test/test_organize_imports.vader
index 87cd295a..720e8950 100644
--- a/test/test_organize_imports.vader
+++ b/test/test_organize_imports.vader
@@ -59,7 +59,7 @@ Before:
function! ale#code_action#HandleCodeAction(code_action, options) abort
let g:handle_code_action_called = 1
- AssertEqual !&hidden, get(a:options, 'should_save')
+ AssertEqual g:ale_save_hidden || !&hidden, get(a:options, 'should_save')
call add(g:code_actions, a:code_action)
endfunction
diff --git a/test/test_rename.vader b/test/test_rename.vader
index 83f0aa7e..d58d1827 100644
--- a/test/test_rename.vader
+++ b/test/test_rename.vader
@@ -59,7 +59,7 @@ Before:
function! ale#code_action#HandleCodeAction(code_action, options) abort
let g:handle_code_action_called = 1
- AssertEqual !&hidden, get(a:options, 'should_save', 0)
+ AssertEqual g:ale_save_hidden || !&hidden, get(a:options, 'should_save', 0)
call add(g:code_actions, a:code_action)
endfunction