changeset 27215:5b54f413d132 v8.2.4136

patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful Commit: https://github.com/vim/vim/commit/fd218c8a36e7ed33f7a205163690c5b7d2f31f8a Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 18 16:26:24 2022 +0000 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful Problem: Vim9: the "autoload" argument of ":vim9script" is not useful. Solution: Remove the argument. (closes https://github.com/vim/vim/issues/9555)
author Bram Moolenaar <Bram@vim.org>
date Tue, 18 Jan 2022 17:30:05 +0100
parents c2954285f431
children da41f5bae90e
files runtime/doc/repeat.txt runtime/doc/vim9.txt src/errors.h src/testdir/test_vim9_import.vim src/version.c src/vim9script.c
diffstat 6 files changed, 28 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -365,12 +365,11 @@ For writing a Vim script, see chapter 41
 			Vim version, or update Vim to a newer version.  See
 			|vimscript-version| for what changed between versions.
 
-:vim9s[cript] [noclear] [autoload]			*:vim9s* *:vim9script*
+:vim9s[cript] [noclear]				*:vim9s* *:vim9script*
 			Marks a script file as containing |Vim9-script|
 			commands.  Also see |vim9-namespace|.
 			Must be the first command in the file.
 			For [noclear] see |vim9-reload|.
-			For [autoload] see |vim9-autoload|.
 			Without the |+eval| feature this changes the syntax
 			for some commands.
 			See |:vim9cmd| for executing one command with Vim9
@@ -378,8 +377,8 @@ For writing a Vim script, see chapter 41
 
 						*:scr* *:scriptnames*
 :scr[iptnames]		List all sourced script names, in the order they were
-			first sourced.  The number is used for the script ID
-			|<SID>|.
+			first encountered.  The number is used for the script
+			ID |<SID>|.
 			For a script that was used with `import autoload` but
 			was not actually sourced yet an "A" is shown after the
 			script ID.
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2022 Jan 15
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 Jan 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1523,17 +1523,18 @@ 1. In the plugin define user commands, f
    directory.
 
 2. In the autoload script put the bulk of the code. >
-	vim9script autoload
+	vim9script
 	export def Stuff(arg: string)
 	  ...
 
 <   This goes in .../autoload/for/search.vim.
 
-   Adding "autoload" to `:vim9script` has the effect that "for#search#" will
-   be prefixed to every exported item.  The prefix is obtained from the file
-   name, as you would to manually in a legacy autoload script.  Thus the
-   exported function can be found with "for#search#Stuff", but you would
-   normally use `import autoload` and not need to specify the prefix.
+   Putting the "search.vim" script under the "/autoload/for/" directory has
+   the effect that "for#search#" will be prefixed to every exported item.  The
+   prefix is obtained from the file name, as you would to manually in a
+   legacy autoload script.  Thus the exported function can be found with
+   "for#search#Stuff", but you would normally use `import autoload` and not
+   use the prefix.
 
    You can split up the functionality and import other scripts from the
    autoload script as you like.  This way you can share code between plugins.
--- a/src/errors.h
+++ b/src/errors.h
@@ -3208,8 +3208,7 @@ EXTERN char e_cannot_import_dot_vim_with
 	INIT(= N_("E1261: Cannot import .vim without using \"as\""));
 EXTERN char e_cannot_import_same_script_twice_str[]
 	INIT(= N_("E1262: Cannot import the same script twice: %s"));
-EXTERN char e_using_autoload_in_script_not_under_autoload_directory[]
-	INIT(= N_("E1263: Using autoload in a script not under an autoload directory"));
+// E1263 unused
 EXTERN char e_autoload_import_cannot_use_absolute_or_relative_path[]
 	INIT(= N_("E1264: Autoload import cannot use absolute or relative path: %s"));
 EXTERN char e_cannot_use_partial_here[]
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -1196,9 +1196,9 @@ def Test_vim9script_autoload()
   var save_rtp = &rtp
   exe 'set rtp^=' .. getcwd() .. '/Xdir'
 
-  # when using "vim9script autoload" prefix is not needed
+  # when the path has "/autoload/" prefix is not needed
   var lines =<< trim END
-     vim9script autoload
+     vim9script
      g:prefixed_loaded += 1
 
      export def Gettest(): string
@@ -1262,7 +1262,7 @@ def Test_vim9script_autoload_call()
   exe 'set rtp^=' .. getcwd() .. '/Xdir'
 
   var lines =<< trim END
-     vim9script autoload
+     vim9script
 
      export def RetArg(arg: string): string
        return arg
@@ -1300,7 +1300,7 @@ def Test_import_autoload_postponed()
   exe 'set rtp^=' .. getcwd() .. '/Xdir'
 
   var lines =<< trim END
-      vim9script autoload
+      vim9script
 
       g:loaded_postponed = 'true'
       export var variable = 'bla'
@@ -1337,7 +1337,7 @@ def Test_import_autoload_override()
   test_override('autoload', 1)
 
   var lines =<< trim END
-      vim9script autoload
+      vim9script
 
       g:loaded_override = 'true'
       export var variable = 'bla'
@@ -1372,7 +1372,7 @@ def Test_autoload_mapping()
   exe 'set rtp^=' .. getcwd() .. '/Xdir'
 
   var lines =<< trim END
-      vim9script autoload
+      vim9script
 
       g:toggle_loaded = 'yes'
 
@@ -1423,7 +1423,13 @@ def Test_vim9script_autoload_fails()
       vim9script autoload
       var n = 0
   END
-  CheckScriptFailure(lines, 'E1263:')
+  CheckScriptFailure(lines, 'E475: Invalid argument: autoload')
+
+  lines =<< trim END
+      vim9script noclear noclear
+      var n = 0
+  END
+  CheckScriptFailure(lines, 'E983: Duplicate argument: noclear')
 enddef
 
 def Test_import_autoload_fails()
@@ -1516,7 +1522,7 @@ enddef
 " test using a autoloaded file that is case sensitive
 def Test_vim9_autoload_case_sensitive()
   var lines =<< trim END
-     vim9script autoload
+     vim9script
      export def CaseSensitive(): string
        return 'done'
      enddef
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4136,
+/**/
     4135,
 /**/
     4134,
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -69,7 +69,6 @@ ex_vim9script(exarg_T *eap UNUSED)
     int		    sid = current_sctx.sc_sid;
     scriptitem_T    *si;
     int		    found_noclear = FALSE;
-    int		    found_autoload = FALSE;
     char_u	    *p;
 
     if (!getline_equal(eap->getline, eap->cookie, getsourceline))
@@ -96,20 +95,6 @@ ex_vim9script(exarg_T *eap UNUSED)
 	    }
 	    found_noclear = TRUE;
 	}
-	else if (STRNCMP(p, "autoload", 8) == 0 && IS_WHITE_OR_NUL(p[8]))
-	{
-	    if (found_autoload)
-	    {
-		semsg(_(e_duplicate_argument_str), p);
-		return;
-	    }
-	    found_autoload = TRUE;
-	    if (script_name_after_autoload(si) == NULL)
-	    {
-		emsg(_(e_using_autoload_in_script_not_under_autoload_directory));
-		return;
-	    }
-	}
 	else
 	{
 	    semsg(_(e_invalid_argument_str), eap->arg);