aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor S <victorplentz@gmail.com>2023-10-08 11:12:11 -0300
committerVictor S <victorplentz@gmail.com>2023-10-09 15:07:31 -0300
commitb2ad859a252ded6de298e08ded2e89d23caa12f7 (patch)
tree93bb03001ebc5e9032cf1cd7bf12e3a231097819
parent3dfc0efda164980d30495153024410c347d07da8 (diff)
downloadvim-prettier-b2ad859a252ded6de298e08ded2e89d23caa12f7.tar.xz
refactor: add function to select compatible flags
Added a function that selects the flags that are compatible with the version of the Prettier CLI being used. This is part of a plan to compose the flags of the CLI command from an object with flag details.
-rw-r--r--autoload/prettier/resolver/config.vim19
1 files changed, 19 insertions, 0 deletions
diff --git a/autoload/prettier/resolver/config.vim b/autoload/prettier/resolver/config.vim
index 4350fa4..c0c9190 100644
--- a/autoload/prettier/resolver/config.vim
+++ b/autoload/prettier/resolver/config.vim
@@ -305,3 +305,22 @@ function! s:Filter_uncompatible_flag(version, _, flag) abort
endif
return 1
endfunction
+
+" Returns an object with the flags from the argument object that are compatible
+" with the version of the Prettier CLI being used.
+function! s:Get_current_version_flags(flags) abort
+ let l:prettier_version = s:Get_prettier_cli_version()
+
+ let l:is_cached = exists('b:prettier_cached_flags')
+ \ && exists('b:prettier_last_used_cli_version')
+ \ && b:prettier_last_used_cli_version ==# l:prettier_version
+ if l:is_cached
+ return b:prettier_cached_flags->copy()
+ endif
+
+ let l:compatible_flags = a:flags->copy()->filter(
+ \ function('s:Filter_uncompatible_flag', [l:prettier_version]))
+ let b:prettier_cached_flags = l:compatible_flags
+ let b:prettier_last_used_cli_version = l:prettier_version
+ return l:compatible_flags->copy()
+endfunction