Эх сурвалжийг харах

Do not remove 'frozen' plugins on PlugClean

Close #1152
Junegunn Choi 1 жил өмнө
parent
commit
d977fa3786
4 өөрчлөгдсөн 25 нэмэгдсэн , 17 устгасан
  1. 11 11
      README.md
  2. 5 5
      doc/plug.txt
  3. 1 1
      plug.vim
  4. 8 0
      test/workflow.vader

+ 11 - 11
README.md

@@ -234,7 +234,7 @@ More examples can be found in:
 | ----------------------------------- | ------------------------------------------------------------------ |
 | `PlugInstall [name ...] [#threads]` | Install plugins                                                    |
 | `PlugUpdate [name ...] [#threads]`  | Install or update plugins                                          |
-| `PlugClean[!]`                      | Remove unlisted plugins (bang version will clean without prompt) |
+| `PlugClean[!]`                      | Remove unlisted plugins (bang version will clean without prompt)   |
 | `PlugUpgrade`                       | Upgrade vim-plug itself                                            |
 | `PlugStatus`                        | Check the status of plugins                                        |
 | `PlugDiff`                          | Examine changes from the previous update and the pending changes   |
@@ -242,16 +242,16 @@ More examples can be found in:
 
 ### `Plug` options
 
-| Option                  | Description                                      |
-| ----------------------- | ------------------------------------------------ |
-| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use       |
-| `rtp`                   | Subdirectory that contains Vim plugin            |
-| `dir`                   | Custom directory for the plugin                  |
-| `as`                    | Use different name for the plugin                |
-| `do`                    | Post-update hook (string or funcref)             |
-| `on`                    | On-demand loading: Commands or `<Plug>`-mappings |
-| `for`                   | On-demand loading: File types                    |
-| `frozen`                | Do not update unless explicitly specified        |
+| Option                  | Description                                                 |
+| ----------------------- | ----------------------------------------------------------- |
+| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use                  |
+| `rtp`                   | Subdirectory that contains Vim plugin                       |
+| `dir`                   | Custom directory for the plugin                             |
+| `as`                    | Use different name for the plugin                           |
+| `do`                    | Post-update hook (string or funcref)                        |
+| `on`                    | On-demand loading: Commands or `<Plug>`-mappings            |
+| `for`                   | On-demand loading: File types                               |
+| `frozen`                | Do not remove and do not update unless explicitly specified |
 
 ### Global options
 

+ 5 - 5
doc/plug.txt

@@ -1,4 +1,4 @@
-plug.txt	plug	Last change: March 14 2024
+plug.txt	plug	Last change: March 31 2024
 PLUG - TABLE OF CONTENTS                                         *plug* *plug-toc*
 ==============================================================================
 
@@ -188,9 +188,9 @@ More examples can be found in:
 
                                                                *<Plug>-mappings*
 
- ------------------------+-----------------------------------------------
+ ------------------------+------------------------------------------------------------
  Option                  | Description                                   ~
- ------------------------+-----------------------------------------------
+ ------------------------+------------------------------------------------------------
   `branch` / `tag` / `commit`  | Branch/tag/commit of the repository to use
   `rtp`                    | Subdirectory that contains Vim plugin
   `dir`                    | Custom directory for the plugin
@@ -198,8 +198,8 @@ More examples can be found in:
   `do`                     | Post-update hook (string or funcref)
   `on`                     | On-demand loading: Commands or <Plug>-mappings
   `for`                    | On-demand loading: File types
-  `frozen`                 | Do not update unless explicitly specified
- ------------------------+-----------------------------------------------
+  `frozen`                 | Do not remove and do not update unless explicitly specified
+ ------------------------+------------------------------------------------------------
 
 
 < Global options >____________________________________________________________~

+ 1 - 1
plug.vim

@@ -2435,7 +2435,7 @@ function! s:clean(force)
   let errs = {}
   let [cnt, total] = [0, len(g:plugs)]
   for [name, spec] in items(g:plugs)
-    if !s:is_managed(name)
+    if !s:is_managed(name) || get(spec, 'frozen', 0)
       call add(dirs, spec.dir)
     else
       let [err, clean] = s:git_validate(spec, 1)

+ 8 - 0
test/workflow.vader

@@ -804,6 +804,14 @@ Execute (Check &rtp after SomeCommand):
   AssertEqual g:first_rtp, split(&rtp, ',')[0]
   AssertEqual g:last_rtp, split(&rtp, ',')[-1]
 
+Execute (PlugClean should not care about frozen plugins):
+  call plug#begin()
+  Plug 'xxx/vim-easy-align', { 'frozen': 1 }
+  call plug#end()
+  PlugClean
+  AssertExpect 'Already clean', 1
+  q
+
 Execute (Common parent):
   call plug#begin()
   Plug 'junegunn/vim-pseudocl'