annotate src/testdir/test_vim9_import.vim @ 27265:8a097fc07aa4 v8.2.4161

patch 8.2.4161: Vim9: warning for missing white space after imported variable Commit: https://github.com/vim/vim/commit/21f0d6cbca9c93e2319d45a33ba26b10a85ff4dc Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 20 17:35:49 2022 +0000 patch 8.2.4161: Vim9: warning for missing white space after imported variable Problem: Vim9: warning for missing white space after imported variable. Solution: Do not skip white space. (closes https://github.com/vim/vim/issues/9567)
author Bram Moolenaar <Bram@vim.org>
date Thu, 20 Jan 2022 18:45:04 +0100
parents 73232ed49cf2
children 322b79b002b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Test import/export of the Vim9 script language.
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2 " Also the autoload mechanism.
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
4 source check.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
5 source term_util.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
6 source vim9.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8 let s:export_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
9 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10 var name: string = 'bob'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 def Concat(arg: string): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12 return name .. arg
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
13 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
14 g:result = Concat('bie')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
15 g:localname = name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
16
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
17 export const CONST = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
18 export var exported = 9876
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
19 export var exp_name = 'John'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
20 export def Exported(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
21 return 'Exported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
22 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
23 export def ExportedValue(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
24 return exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
25 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
26 export def ExportedInc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
27 exported += 5
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
28 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
29 export final theList = [1]
27146
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
30 export def AddSome(s: string): string
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
31 return s .. 'some'
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
32 enddef
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
33 export var AddRef = AddSome
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
34 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
35
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
36 def Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
37 unlet g:result
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
38 unlet g:localname
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
39 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
40
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
41 def Test_vim9_import_export()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
42 writefile(s:export_script_lines, 'Xexport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
43 var import_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
44 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
45 var dir = './'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
46 var ext = ".vim"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
47 import dir .. 'Xexport' .. ext as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
48
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
49 g:exported1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
50 expo.exported += 3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
51 g:exported2 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
52 g:exported3 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
53
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
54 expo.ExportedInc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
55 g:exported_i1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
56 g:exported_i2 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
57
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
58 expo.exported = 11
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
59 g:exported_s1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
60 g:exported_s2 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
61
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
62 g:imported_func = expo.Exported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
63
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
64 def GetExported(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
65 var local_dict = {ref: expo.Exported}
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
66 return local_dict.ref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
67 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
68 g:funcref_result = GetExported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
69
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
70 def GetName(): string
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
71 return expo.exp_name .. 'son'
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
72 enddef
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
73 g:long_name = GetName()
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
74
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
75 g:imported_name = expo.exp_name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
76 expo.exp_name ..= ' Doe'
27177
eb0a1108f885 patch 8.2.4117: Vim9: wrong white space error after using imported item
Bram Moolenaar <Bram@vim.org>
parents: 27150
diff changeset
77 expo.exp_name = expo.exp_name .. ' Maar'
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
78 g:imported_name_appended = expo.exp_name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
79 g:exported_later = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
80
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
81 expo.theList->add(2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
82 assert_equal([1, 2], expo.theList)
27146
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
83
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
84 assert_equal('andthensome', 'andthen'->expo.AddSome())
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
85 assert_equal('awesome', 'awe'->expo.AddRef())
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
86 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
87 writefile(import_script_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
88 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
89
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
90 assert_equal('bobbie', g:result)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
91 assert_equal('bob', g:localname)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
92 assert_equal(9876, g:exported1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
93 assert_equal(9879, g:exported2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
94 assert_equal(9879, g:exported3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
95
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
96 assert_equal(9884, g:exported_i1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
97 assert_equal(9884, g:exported_i2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
98
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
99 assert_equal(11, g:exported_s1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
100 assert_equal(11, g:exported_s2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
101 assert_equal(11, g:exported_later)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
102
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
103 assert_equal('Exported', g:imported_func)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
104 assert_equal('Exported', g:funcref_result)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
105 assert_equal('John', g:imported_name)
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
106 assert_equal('Johnson', g:long_name)
27177
eb0a1108f885 patch 8.2.4117: Vim9: wrong white space error after using imported item
Bram Moolenaar <Bram@vim.org>
parents: 27150
diff changeset
107 assert_equal('John Doe Maar', g:imported_name_appended)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
108 assert_false(exists('g:name'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
109
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
110 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
111 unlet g:exported1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
112 unlet g:exported2
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
113 unlet g:exported3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
114 unlet g:exported_i1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
115 unlet g:exported_i2
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
116 unlet g:exported_later
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
117 unlet g:imported_func
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
118 unlet g:imported_name g:long_name g:imported_name_appended
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
119 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
120
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
121 # similar, with line breaks
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
122 var import_line_break_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
123 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
124 import './Xexport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
125 as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
126 g:exported = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
127 expo.exported += 7
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
128 g:exported_added = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
129 g:imported_func = expo.Exported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
130 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
131 writefile(import_line_break_script_lines, 'Ximport_lbr.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
132 source Ximport_lbr.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
133
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
134 assert_equal(11, g:exported)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
135 assert_equal(18, g:exported_added)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
136 assert_equal('Exported', g:imported_func)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
137
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
138 # exported script not sourced again
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
139 assert_false(exists('g:result'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
140 unlet g:exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
141 unlet g:exported_added
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
142 unlet g:imported_func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
143 delete('Ximport_lbr.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
144
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
145 var line_break_before_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
146 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
147 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
148 g:exported = expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
149 .exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
150 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
151 writefile(line_break_before_dot, 'Ximport_lbr_before_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
152 assert_fails('source Ximport_lbr_before_dot.vim', 'E1060:', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
153 delete('Ximport_lbr_before_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
154
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
155 var line_break_after_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
156 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
157 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
158 g:exported = expo.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
159 exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
160 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
161 writefile(line_break_after_dot, 'Ximport_lbr_after_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
162 assert_fails('source Ximport_lbr_after_dot.vim', 'E1074:', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
163 delete('Ximport_lbr_after_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
164
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
165 var import_star_as_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
166 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
167 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
168 def UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
169 g:exported_def = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
170 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
171 g:exported_script = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
172 assert_equal(1, exists('Export.exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
173 assert_equal(0, exists('Export.notexported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
174 UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
175 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
176 writefile(import_star_as_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
177 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
178
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
179 assert_equal(18, g:exported_def)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
180 assert_equal(18, g:exported_script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
181 unlet g:exported_def
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
182 unlet g:exported_script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
183
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
184 var import_star_as_lines_no_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
185 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
186 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
187 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
188 var dummy = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
189 var imported = Export + dummy
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
190 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
191 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
192 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
193 writefile(import_star_as_lines_no_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
194 assert_fails('source Ximport.vim', 'E1060:', '', 2, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
195
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
196 var import_star_as_lines_dot_space =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
197 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
198 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
199 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
200 var imported = Export . exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
201 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
202 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
203 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
204 writefile(import_star_as_lines_dot_space, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
205 assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
206
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
207 writefile(s:export_script_lines, 'Xexport2.vim')
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
208 var import_as_duplicated =<< trim END
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
209 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
210 import './Xexport.vim' as expo
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
211 import './Xexport2.vim' as expo
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
212 END
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
213 writefile(import_as_duplicated, 'Ximport.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
214 assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
215 delete('Xexport2.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
216
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
217 var import_star_as_lines_script_no_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
218 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
219 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
220 g:imported_script = Export exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
221 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
222 writefile(import_star_as_lines_script_no_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
223 assert_fails('source Ximport.vim', 'E1060: Expected dot after name: Export exported')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
224
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
225 var import_star_as_lines_script_space_after_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
226 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
227 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
228 g:imported_script = Export. exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
229 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
230 writefile(import_star_as_lines_script_space_after_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
231 assert_fails('source Ximport.vim', 'E1074:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
232
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
233 var import_star_as_lines_missing_name =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
234 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
235 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
236 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
237 var imported = Export.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
238 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
239 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
240 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
241 writefile(import_star_as_lines_missing_name, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
242 assert_fails('source Ximport.vim', 'E1048:', '', 1, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
243
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
244 var import_star_as_lbr_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
245 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
246 import './Xexport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
247 as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
248 def UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
249 g:exported = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
250 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
251 UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
252 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
253 writefile(import_star_as_lbr_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
254 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
255 assert_equal(18, g:exported)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
256 unlet g:exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
257
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
258 # try to use something that exists but is not exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
259 var import_not_exported_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
260 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
261 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
262 echo expo.name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
263 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
264 writefile(import_not_exported_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
265 assert_fails('source Ximport.vim', 'E1049:', '', 3, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
266
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
267 # try to import something that is already defined
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
268 var import_already_defined =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
269 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
270 var exported = 'something'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
271 import './Xexport.vim' as exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
272 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
273 writefile(import_already_defined, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
274 assert_fails('source Ximport.vim', 'E1054:', '', 3, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
275
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
276 # try changing an imported const
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
277 var import_assign_to_const =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
278 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
279 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
280 def Assign()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
281 expo.CONST = 987
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
282 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
283 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
284 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
285 writefile(import_assign_to_const, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
286 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
287
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
288 # try changing an imported final
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
289 var import_assign_to_final =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
290 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
291 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
292 def Assign()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
293 expo.theList = [2]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
294 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
295 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
296 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
297 writefile(import_assign_to_final, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
298 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
299
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
300 var import_no_as_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
301 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
302 import './Xexport.vim' name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
303 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
304 writefile(import_no_as_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
305 assert_fails('source Ximport.vim', 'E488:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
306
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
307 var import_invalid_string_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
308 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
309 import Xexport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
310 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
311 writefile(import_invalid_string_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
312 assert_fails('source Ximport.vim', 'E121:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
313
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
314 var import_wrong_name_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
315 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
316 import './XnoExport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
317 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
318 writefile(import_wrong_name_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
319 assert_fails('source Ximport.vim', 'E1053:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
320
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
321 var import_redefining_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
322 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
323 import './Xexport.vim' as exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
324 var exported = 5
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
325 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
326 writefile(import_redefining_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
327 assert_fails('source Ximport.vim', 'E1213: Redefining imported item "exported"', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
328
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
329 var import_missing_dot_lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
330 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
331 import './Xexport.vim' as expo
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
332 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
333 expo = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
334 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
335 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
336 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
337 writefile(import_missing_dot_lines, 'Ximport.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
338 assert_fails('source Ximport.vim', 'E1258:', '', 1)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
339
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
340 var import_missing_name_lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
341 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
342 import './Xexport.vim' as expo
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
343 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
344 expo.99 = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
345 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
346 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
347 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
348 writefile(import_missing_name_lines, 'Ximport.vim')
27059
e97cf16731d9 patch 8.2.4058: Vim9: import test failure in wrong line
Bram Moolenaar <Bram@vim.org>
parents: 27057
diff changeset
349 assert_fails('source Ximport.vim', 'E1259:', '', 1)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
350
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
351 var import_assign_wrong_type_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
352 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
353 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
354 expo.exported = 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
355 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
356 writefile(import_assign_wrong_type_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
357 assert_fails('source Ximport.vim', 'E1012: Type mismatch; expected number but got string', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
358
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
359 var import_assign_const_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
360 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
361 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
362 expo.CONST = 4321
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
363 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
364 writefile(import_assign_const_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
365 assert_fails('source Ximport.vim', 'E46: Cannot change read-only variable "CONST"', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
366
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
367 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
368 delete('Ximport3.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
369 delete('Xexport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
370
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
371 # Check that in a Vim9 script 'cpo' is set to the Vim default.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
372 # Flags added or removed are also applied to the restored value.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
373 set cpo=abcd
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
374 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
375 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
376 g:cpo_in_vim9script = &cpo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
377 set cpo+=f
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
378 set cpo-=c
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
379 g:cpo_after_vim9script = &cpo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
380 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
381 writefile(lines, 'Xvim9_script')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
382 source Xvim9_script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
383 assert_equal('fabd', &cpo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
384 set cpo&vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
385 assert_equal(&cpo, g:cpo_in_vim9script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
386 var newcpo = substitute(&cpo, 'c', '', '') .. 'f'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
387 assert_equal(newcpo, g:cpo_after_vim9script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
388
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
389 delete('Xvim9_script')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
390 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
391
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
392 def Test_import_funcref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
393 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
394 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
395 export def F(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
396 return 42
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
397 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
398 export const G = F
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
399 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
400 writefile(lines, 'Xlib.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
401
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
402 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
403 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
404 import './Xlib.vim' as lib
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
405 const Foo = lib.G()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
406 assert_equal(42, Foo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
407
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
408 def DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
409 const Goo = lib.G()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
410 assert_equal(42, Goo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
411 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
412 DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
413 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
414 CheckScriptSuccess(lines)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
415
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
416 delete('Xlib.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
417 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
418
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
419 def Test_import_fails()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
420 writefile([], 'Xfoo.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
421 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
422 import './Xfoo.vim' as foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
423 foo = 'bar'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
424 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
425 CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use foo itself'])
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
426 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
427 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
428 import './Xfoo.vim' as foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
429 var that = foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
430 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
431 CheckScriptFailure(lines, 'E1060: Expected dot after name: foo')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
432
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
433 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
434 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
435 import './Xfoo.vim' as 9foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
436 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
437 CheckScriptFailure(lines, 'E1047:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
438 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
439 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
440 import './Xfoo.vim' as the#foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
441 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
442 CheckScriptFailure(lines, 'E1047:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
443 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
444 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
445 import './Xfoo.vim' as g:foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
446 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
447 CheckScriptFailure(lines, 'E1047:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
448
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
449 delete('Xfoo.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
450
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
451 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
452 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
453 def TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
454 echo 'the func'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
455 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
456 export var Ref = TheFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
457 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
458 writefile([], 'Xthat.vim')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
459
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
460 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
461 import './Xthat.vim' as That
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
462 That()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
463 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
464 CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself'])
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
465
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
466 lines =<< trim END
27233
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
467 vim9script
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
468 import './Xthat.vim' as That
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
469 def Func()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
470 echo That()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
471 enddef
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
472 Func()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
473 END
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
474 CheckScriptFailure(lines, 'E1236: Cannot use That itself')
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
475
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
476 lines =<< trim END
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
477 import './Xthat.vim' as one
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
478 import './Xthat.vim' as two
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
479 END
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
480 CheckScriptFailure(lines, 'E1262:')
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
481
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
482 delete('Xthat.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
483
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
484 mkdir('Ximport')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
485
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
486 writefile(['vim9script'], 'Ximport/.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
487 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
488 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
489 import './Ximport/.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
490 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
491 CheckScriptFailure(lines, 'E1261: Cannot import .vim without using "as"')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
492 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
493 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
494 import './Ximport/.vim' as vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
495 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
496 CheckScriptSuccess(lines)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
497
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
498 writefile(['vim9script'], 'Ximport/.vimrc')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
499 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
500 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
501 import './Ximport/.vimrc'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
502 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
503 CheckScriptFailure(lines, 'E1257: Imported script must use "as" or end in .vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
504 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
505 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
506 import './Ximport/.vimrc' as vimrc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
507 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
508 CheckScriptSuccess(lines)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
509
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
510 delete('Ximport', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
511 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
512
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
513 func g:Trigger()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
514 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
515 return "echo 'yes'\<CR>"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
516 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
517
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
518 def Test_import_export_expr_map()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
519 # check that :import and :export work when buffer is locked
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
520 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
521 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
522 export def That(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
523 return 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
524 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
525 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
526 writefile(export_lines, 'Xexport_that.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
527
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
528 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
529 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
530 import './Xexport_that.vim' as that
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
531 assert_equal('yes', that.That())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
532 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
533 writefile(import_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
534
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
535 nnoremap <expr> trigger g:Trigger()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
536 feedkeys('trigger', "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
537
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
538 delete('Xexport_that.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
539 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
540 nunmap trigger
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
541 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
542
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
543 def Test_import_in_filetype()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
544 # check that :import works when the buffer is locked
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
545 mkdir('ftplugin', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
546 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
547 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
548 export var That = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
549 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
550 writefile(export_lines, 'ftplugin/Xexport_ft.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
551
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
552 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
553 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
554 import './Xexport_ft.vim' as ft
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
555 assert_equal('yes', ft.That)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
556 g:did_load_mytpe = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
557 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
558 writefile(import_lines, 'ftplugin/qf.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
559
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
560 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
561 &rtp = getcwd() .. ',' .. &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
562
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
563 filetype plugin on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
564 copen
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
565 assert_equal(1, g:did_load_mytpe)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
566
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
567 quit!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
568 delete('Xexport_ft.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
569 delete('ftplugin', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
570 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
571 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
572
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
573 def Test_use_import_in_mapping()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
574 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
575 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
576 export def Funcx()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
577 g:result = 42
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
578 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
579 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
580 writefile(lines, 'XsomeExport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
581 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
582 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
583 import './XsomeExport.vim' as some
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
584 var Funcy = some.Funcx
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
585 nnoremap <F3> :call <sid>Funcy()<cr>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
586 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
587 writefile(lines, 'Xmapscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
588
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
589 source Xmapscript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
590 feedkeys("\<F3>", "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
591 assert_equal(42, g:result)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
592
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
593 unlet g:result
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
594 delete('XsomeExport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
595 delete('Xmapscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
596 nunmap <F3>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
597 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
598
27189
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
599 def Test_use_import_in_completion()
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
600 var lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
601 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
602 export def Complete(..._): list<string>
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
603 return ['abcd']
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
604 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
605 END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
606 writefile(lines, 'Xscript.vim')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
607
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
608 lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
609 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
610 import './Xscript.vim'
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
611
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
612 command -nargs=1 -complete=customlist,Xscript.Complete Cmd echo 'ok'
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
613 feedkeys(":Cmd ab\<Tab>\<C-B>#\<CR>", 'xnt')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
614 assert_equal('#Cmd abcd', @:)
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
615 END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
616 CheckScriptSuccess(lines)
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
617
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
618 delcommand Cmd
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
619 delete('Xscript.vim')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
620 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
621
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
622 def Test_export_fails()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
623 CheckScriptFailure(['export var some = 123'], 'E1042:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
624 CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
625 CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
626
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
627 assert_fails('export something', 'E1043:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
628 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
629
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
630 func Test_import_fails_without_script()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
631 CheckRunVimInTerminal
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
632
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
633 " call indirectly to avoid compilation error for missing functions
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
634 call Run_Test_import_fails_on_command_line()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
635 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
636
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
637 def Run_Test_import_fails_on_command_line()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
638 var export =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
639 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
640 export def Foo(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
641 return 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
642 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
643 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
644 writefile(export, 'XexportCmd.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
645
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
646 var buf = RunVimInTerminal('-c "import Foo from ''./XexportCmd.vim''"', {
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
647 rows: 6, wait_for_ruler: 0})
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
648 WaitForAssert(() => assert_match('^E1094:', term_getline(buf, 5)))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
649
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
650 delete('XexportCmd.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
651 StopVimInTerminal(buf)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
652 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
653
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
654 def Test_vim9_reload_noclear()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
655 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
656 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
657 export var exported = 'thexport'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
658
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
659 export def TheFunc(x = 0)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
660 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
661 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
662 writefile(lines, 'XExportReload')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
663 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
664 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
665 g:loadCount += 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
666 var s:reloaded = 'init'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
667 import './XExportReload' as exp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
668
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
669 def Again(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
670 return 'again'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
671 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
672
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
673 exp.TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
674
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
675 if exists('s:loaded') | finish | endif
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
676 var s:loaded = true
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
677
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
678 var s:notReloaded = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
679 s:reloaded = 'first'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
680 def g:Values(): list<string>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
681 return [s:reloaded, s:notReloaded, Again(), Once(), exp.exported]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
682 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
683
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
684 def Once(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
685 return 'once'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
686 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
687 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
688 writefile(lines, 'XReloaded')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
689 g:loadCount = 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
690 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
691 assert_equal(1, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
692 assert_equal(['first', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
693 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
694 assert_equal(2, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
695 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
696 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
697 assert_equal(3, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
698 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
699
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
700 delete('XReloaded')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
701 delete('XExportReload')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
702 delfunc g:Values
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
703 unlet g:loadCount
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
704
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
705 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
706 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
707 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
708 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
709 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
710 lines->writefile('XreloadScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
711 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
712
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
713 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
714 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
715 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
716 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
717 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
718 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
719 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
720 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
721 lines->writefile('XreloadScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
722 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
723
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
724 delete('XreloadScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
725 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
726
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
727 def Test_vim9_reload_import()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
728 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
729 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
730 const var = ''
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
731 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
732 def MyFunc(arg: string)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
733 valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
734 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
735 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
736 var morelines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
737 var valtwo = 222
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
738 export def GetValtwo(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
739 return valtwo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
740 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
741 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
742 writefile(lines + morelines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
743 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
744 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
745 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
746
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
747 # cannot declare a var twice
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
748 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
749 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
750 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
751 var valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
752 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
753 writefile(lines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
754 assert_fails('source Xreload.vim', 'E1041:', '', 3, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
755
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
756 delete('Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
757 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
758 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
759
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
760 " if a script is reloaded with a script-local variable that changed its type, a
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
761 " compiled function using that variable must fail.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
762 def Test_script_reload_change_type()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
763 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
764 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
765 var str = 'string'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
766 def g:GetStr(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
767 return str .. 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
768 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
769 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
770 writefile(lines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
771 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
772 echo g:GetStr()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
773
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
774 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
775 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
776 var str = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
777 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
778 writefile(lines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
779 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
780 assert_fails('echo g:GetStr()', 'E1150:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
781
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
782 delfunc g:GetStr
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
783 delete('Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
784 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
785
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
786 " Define CallFunc so that the test can be compiled
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
787 command CallFunc echo 'nop'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
788
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
789 def Test_script_reload_from_function()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
790 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
791 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
792
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
793 if exists('g:loaded')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
794 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
795 endif
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
796 g:loaded = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
797 delcommand CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
798 command CallFunc Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
799 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
800 so XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
801 g:didTheFunc = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
802 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
803 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
804 writefile(lines, 'XreloadFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
805 source XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
806 CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
807 assert_equal(1, g:didTheFunc)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
808
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
809 delete('XreloadFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
810 delcommand CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
811 unlet g:loaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
812 unlet g:didTheFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
813 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
814
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
815 def s:RetSome(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
816 return 'some'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
817 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
818
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
819 " Not exported function that is referenced needs to be accessed by the
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
820 " script-local name.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
821 def Test_vim9_funcref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
822 var sortlines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
823 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
824 def Compare(i1: number, i2: number): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
825 return i2 - i1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
826 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
827
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
828 export def FastSort(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
829 return range(5)->sort(Compare)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
830 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
831
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
832 export def GetString(arg: string): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
833 return arg
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
834 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
835 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
836 writefile(sortlines, 'Xsort.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
837
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
838 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
839 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
840 import './Xsort.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
841 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
842 g:result = Xsort.FastSort()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
843 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
844 Test()
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
845 END
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
846 writefile(lines, 'Xscript.vim')
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
847 source Xscript.vim
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
848 assert_equal([4, 3, 2, 1, 0], g:result)
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
849 unlet g:result
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
850
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
851 lines =<< trim END
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
852 vim9script
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
853 # using a function imported with "as"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
854 import './Xsort.vim' as anAlias
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
855 assert_equal('yes', anAlias.GetString('yes'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
856
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
857 # using the function from a compiled function
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
858 def TestMore(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
859 var s = s:anAlias.GetString('foo')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
860 return s .. anAlias.GetString('bar')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
861 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
862 assert_equal('foobar', TestMore())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
863
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
864 # error when using a function that isn't exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
865 assert_fails('anAlias.Compare(1, 2)', 'E1049:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
866 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
867 writefile(lines, 'Xscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
868
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
869 delete('Xsort.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
870 delete('Xscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
871
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
872 var Funcref = function('s:RetSome')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
873 assert_equal('some', Funcref())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
874 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
875
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
876 " Check that when searching for "FilterFunc" it finds the import in the
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
877 " script where FastFilter() is called from, both as a string and as a direct
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
878 " function reference.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
879 def Test_vim9_funcref_other_script()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
880 var filterLines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
881 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
882 export def FilterFunc(idx: number, val: number): bool
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
883 return idx % 2 == 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
884 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
885 export def FastFilter(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
886 return range(10)->filter('FilterFunc(v:key, v:val)')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
887 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
888 export def FastFilterDirect(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
889 return range(10)->filter(FilterFunc)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
890 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
891 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
892 writefile(filterLines, 'Xfilter.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
893
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
894 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
895 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
896 import './Xfilter.vim' as filter
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
897 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
898 var x: list<number> = filter.FastFilter()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
899 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
900 Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
901 def TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
902 var x: list<number> = filter.FastFilterDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
903 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
904 TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
905 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
906 CheckScriptSuccess(lines)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
907 delete('Xfilter.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
908 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
909
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
910 def Test_import_absolute()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
911 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
912 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
913 'import "' .. escape(getcwd(), '\') .. '/Xexport_abs.vim" as abs',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
914 'def UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
915 ' g:imported_abs = abs.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
916 ' abs.exported = 8888',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
917 ' g:imported_after = abs.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
918 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
919 'UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
920 'g:import_disassembled = execute("disass UseExported")',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
921 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
922 writefile(import_lines, 'Ximport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
923 writefile(s:export_script_lines, 'Xexport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
924
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
925 source Ximport_abs.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
926
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
927 assert_equal(9876, g:imported_abs)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
928 assert_equal(8888, g:imported_after)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
929 assert_match('<SNR>\d\+_UseExported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
930 'g:imported_abs = abs.exported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
931 '0 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
932 '1 STOREG g:imported_abs\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
933 'abs.exported = 8888\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
934 '2 PUSHNR 8888\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
935 '3 STORESCRIPT exported-2 in .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
936 'g:imported_after = abs.exported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
937 '4 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
938 '5 STOREG g:imported_after',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
939 g:import_disassembled)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
940
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
941 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
942 unlet g:imported_abs
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
943 unlet g:import_disassembled
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
944
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
945 delete('Ximport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
946 delete('Xexport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
947 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
948
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
949 def Test_import_rtp()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
950 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
951 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
952 'import "Xexport_rtp.vim" as rtp',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
953 'g:imported_rtp = rtp.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
954 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
955 writefile(import_lines, 'Ximport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
956 mkdir('import', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
957 writefile(s:export_script_lines, 'import/Xexport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
958
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
959 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
960 &rtp = getcwd()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
961 source Ximport_rtp.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
962 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
963
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
964 assert_equal(9876, g:imported_rtp)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
965
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
966 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
967 unlet g:imported_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
968 delete('Ximport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
969 delete('import', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
970 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
971
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
972 def Test_import_compile_error()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
973 var export_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
974 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
975 'export def ExpFunc(): string',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
976 ' return notDefined',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
977 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
978 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
979 writefile(export_lines, 'Xexported.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
980
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
981 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
982 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
983 'import "./Xexported.vim" as expo',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
984 'def ImpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
985 ' echo expo.ExpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
986 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
987 'defcompile',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
988 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
989 writefile(import_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
990
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
991 try
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
992 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
993 catch /E1001/
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
994 # Error should be before the Xexported.vim file.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
995 assert_match('E1001: Variable not found: notDefined', v:exception)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
996 assert_match('function <SNR>\d\+_ImpFunc\[1\]..<SNR>\d\+_ExpFunc, line 1', v:throwpoint)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
997 endtry
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
998
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
999 delete('Xexported.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1000 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1001 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1002
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1003 def Test_func_overrules_import_fails()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1004 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1005 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1006 export def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1007 echo 'imported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1008 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1009 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1010 writefile(export_lines, 'XexportedFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1011
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1012 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1013 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1014 import './XexportedFunc.vim' as Func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1015 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1016 echo 'local to function'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1017 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1018 END
27233
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
1019 CheckScriptFailure(lines, 'E1213: Redefining imported item "Func"')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1020
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1021 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1022 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1023 import './XexportedFunc.vim' as Func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1024 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1025 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1026 echo 'local to function'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1027 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1028 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1029 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1030 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1031 CheckScriptFailure(lines, 'E1236:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1032
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1033 delete('XexportedFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1034 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1035
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1036 def Test_source_vim9_from_legacy()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1037 var vim9_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1038 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1039 var local = 'local'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1040 g:global = 'global'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1041 export var exported = 'exported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1042 export def GetText(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1043 return 'text'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1044 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1045 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1046 writefile(vim9_lines, 'Xvim9_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1047
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1048 var legacy_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1049 source Xvim9_script.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1050
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1051 call assert_false(exists('local'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1052 call assert_false(exists('exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1053 call assert_false(exists('s:exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1054 call assert_equal('global', global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1055 call assert_equal('global', g:global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1056 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1057 writefile(legacy_lines, 'Xlegacy_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1058
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1059 source Xlegacy_script.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1060 assert_equal('global', g:global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1061 unlet g:global
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1062
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1063 delete('Xlegacy_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1064 delete('Xvim9_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1065 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1066
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1067 def Test_import_vim9_from_legacy()
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1068 var vim9_lines =<< trim END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1069 vim9script
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1070 var local = 'local'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1071 g:global = 'global'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1072 export var exported = 'exported'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1073 export def GetText(): string
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1074 return 'text'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1075 enddef
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1076 END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1077 writefile(vim9_lines, 'Xvim9_export.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1078
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1079 var legacy_lines =<< trim END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1080 import './Xvim9_export.vim' as vim9
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1081
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1082 call assert_false(exists('vim9'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1083 call assert_false(exists('local'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1084 call assert_false(exists('s:vim9.local'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1085 call assert_equal('global', global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1086 call assert_equal('global', g:global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1087 call assert_false(exists('exported'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1088 call assert_false(exists('s:exported'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1089 call assert_false(exists('*GetText'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1090
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1091 " imported symbol is script-local
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1092 call assert_equal('exported', s:vim9.exported)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1093 call assert_equal('text', s:vim9.GetText())
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1094 END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1095 writefile(legacy_lines, 'Xlegacy_script.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1096
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1097 source Xlegacy_script.vim
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1098 assert_equal('global', g:global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1099 unlet g:global
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1100
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1101 delete('Xlegacy_script.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1102 delete('Xvim9_export.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1103 enddef
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1104
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1105 def Test_cmdline_win()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1106 # if the Vim syntax highlighting uses Vim9 constructs they can be used from
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1107 # the command line window.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1108 mkdir('rtp/syntax', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1109 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1110 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1111 export var That = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1112 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1113 writefile(export_lines, 'rtp/syntax/Xexport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1114 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1115 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1116 import './Xexport.vim' as exp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1117 echo exp.That
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1118 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1119 writefile(import_lines, 'rtp/syntax/vim.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1120 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1121 &rtp = getcwd() .. '/rtp' .. ',' .. &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1122 syntax on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1123 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1124 autocmd CmdwinEnter * g:got_there = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1125 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1126 # this will open and also close the cmdline window
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1127 feedkeys('q:', 'xt')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1128 assert_equal('yes', g:got_there)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1129
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1130 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1131 au!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1132 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1133 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1134 delete('rtp', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1135 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1136
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1137 def Test_import_gone_when_sourced_twice()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1138 var exportlines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1139 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1140 if exists('g:guard')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1141 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1142 endif
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1143 g:guard = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1144 export var name = 'someName'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1145 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1146 writefile(exportlines, 'XexportScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1147
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1148 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1149 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1150 import './XexportScript.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1151 def g:GetName(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1152 return expo.name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1153 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1154 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1155 writefile(lines, 'XscriptImport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1156 so XscriptImport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1157 assert_equal('someName', g:GetName())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1158
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1159 so XexportScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1160 assert_fails('call g:GetName()', 'E1149:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1161
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1162 delfunc g:GetName
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1163 delete('XexportScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1164 delete('XscriptImport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1165 unlet g:guard
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1166 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1167
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1168 " test using an auto-loaded function and variable
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1169 def Test_vim9_autoload_full_name()
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1170 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1171 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1172 def some#gettest(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1173 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1174 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1175 g:some#name = 'name'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1176 g:some#dict = {key: 'value'}
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1177
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1178 def some#varargs(a1: string, ...l: list<string>): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1179 return a1 .. l[0] .. l[1]
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1180 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1181 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1182
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1183 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1184 writefile(lines, 'Xdir/autoload/some.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1185 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1186 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1187
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1188 assert_equal('test', g:some#gettest())
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1189 assert_equal('name', g:some#name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1190 assert_equal('value', g:some#dict.key)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1191 g:some#other = 'other'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1192 assert_equal('other', g:some#other)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1193
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1194 assert_equal('abc', some#varargs('a', 'b', 'c'))
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1195
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1196 # upper case script name works
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1197 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1198 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1199 def Other#getOther(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1200 return 'other'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1201 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1202 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1203 writefile(lines, 'Xdir/autoload/Other.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1204 assert_equal('other', g:Other#getOther())
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1205
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1206 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1207 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1208 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1209
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1210 def Test_vim9script_autoload()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1211 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1212 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1213 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1214
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1215 # when the path has "/autoload/" prefix is not needed
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1216 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1217 vim9script
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1218 g:prefixed_loaded += 1
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1219
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1220 export def Gettest(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1221 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1222 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1223
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1224 export var name = 'name'
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1225
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1226 export func GetFunc()
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1227 return Gettest() .. 'more' .. s:name
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1228 endfunc
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1229
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1230 export def GetDef(): string
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1231 return Gettest() .. 'more' .. name
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1232 enddef
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1233
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1234 export final fname = 'final'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1235 export const cname = 'const'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1236 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1237 writefile(lines, 'Xdir/autoload/prefixed.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1238
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1239 g:prefixed_loaded = 0
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1240 g:expected_loaded = 0
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1241 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1242 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1243 import autoload 'prefixed.vim'
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1244 assert_equal(g:expected_loaded, g:prefixed_loaded)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1245 assert_equal('test', prefixed.Gettest())
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1246 assert_equal(1, g:prefixed_loaded)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1247
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1248 assert_equal('testmorename', prefixed.GetFunc())
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1249 assert_equal('testmorename', prefixed.GetDef())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1250 assert_equal('name', prefixed.name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1251 assert_equal('final', prefixed.fname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1252 assert_equal('const', prefixed.cname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1253 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1254 CheckScriptSuccess(lines)
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1255 # can source it again, autoload script not loaded again
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1256 g:expected_loaded = 1
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
1257 CheckScriptSuccess(lines)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1258
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1259 # can also get the items by autoload name
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1260 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1261 call assert_equal('test', prefixed#Gettest())
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
1262 call assert_equal('testmorename', prefixed#GetFunc())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1263 call assert_equal('name', prefixed#name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1264 call assert_equal('final', prefixed#fname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1265 call assert_equal('const', prefixed#cname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1266 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1267 CheckScriptSuccess(lines)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1268
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1269 unlet g:prefixed_loaded
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1270 unlet g:expected_loaded
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1271 delete('Xdir', 'rf')
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1272 &rtp = save_rtp
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1273 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1274
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1275 def Test_import_autoload_not_exported()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1276 mkdir('Xdir/autoload', 'p')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1277 var save_rtp = &rtp
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1278 exe 'set rtp^=' .. getcwd() .. '/Xdir'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1279
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1280 # error when using an item that is not exported from an autoload script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1281 var exportLines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1282 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1283 var notExported = 123
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1284 def NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1285 echo 'nop'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1286 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1287 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1288 writefile(exportLines, 'Xdir/autoload/notExport1.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1289
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1290 var lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1291 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1292 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1293 echo notExport1.notFound
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1294 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1295 CheckScriptFailure(lines, 'E1048: Item not found in script: notFound')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1296
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1297 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1298 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1299 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1300 echo notExport1.notExported
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1301 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1302 CheckScriptFailure(lines, 'E1049: Item not exported in script: notExported')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1303
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1304 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1305 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1306 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1307 echo notExport1.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1308 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1309 CheckScriptFailure(lines, 'E1048: Item not found in script: NotFunc')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1310
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1311 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1312 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1313 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1314 echo notExport1.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1315 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1316 CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1317
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1318 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1319 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1320 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1321 echo 'text'->notExport1.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1322 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1323 CheckScriptFailure(lines, 'E1048: Item not found in script: NotFunc')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1324
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1325 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1326 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1327 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1328 echo 'text'->notExport1.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1329 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1330 CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1331
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1332 # using a :def function we use a different autoload script every time so that
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1333 # the function is compiled without the script loaded
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1334 writefile(exportLines, 'Xdir/autoload/notExport2.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1335 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1336 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1337 import autoload 'notExport2.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1338 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1339 echo notExport2.notFound
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1340 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1341 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1342 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1343 CheckScriptFailure(lines, 'E1048: Item not found in script: notExport2#notFound')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1344
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1345 writefile(exportLines, 'Xdir/autoload/notExport3.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1346 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1347 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1348 import autoload 'notExport3.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1349 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1350 echo notExport3.notExported
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1351 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1352 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1353 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1354 # don't get E1049 because it is too complicated to figure out
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1355 CheckScriptFailure(lines, 'E1048: Item not found in script: notExport3#notExported')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1356
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1357 writefile(exportLines, 'Xdir/autoload/notExport4.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1358 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1359 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1360 import autoload 'notExport4.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1361 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1362 echo notExport4.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1363 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1364 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1365 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1366 CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1367
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1368 writefile(exportLines, 'Xdir/autoload/notExport5.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1369 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1370 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1371 import autoload 'notExport5.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1372 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1373 echo notExport5.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1374 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1375 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1376 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1377 CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1378
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1379 writefile(exportLines, 'Xdir/autoload/notExport6.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1380 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1381 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1382 import autoload 'notExport6.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1383 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1384 echo 'text'->notExport6.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1385 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1386 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1387 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1388 CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1389
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1390 writefile(exportLines, 'Xdir/autoload/notExport7.vim')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1391 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1392 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1393 import autoload 'notExport7.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1394 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1395 echo 'text'->notExport7.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1396 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1397 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1398 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1399 CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1400
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1401 delete('Xdir', 'rf')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1402 &rtp = save_rtp
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1403 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
1404
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1405 def Test_vim9script_autoload_call()
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1406 mkdir('Xdir/autoload', 'p')
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1407 var save_rtp = &rtp
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1408 exe 'set rtp^=' .. getcwd() .. '/Xdir'
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1409
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1410 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1411 vim9script
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1412
27205
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1413 export def RetArg(arg: string): string
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1414 return arg
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1415 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1416
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1417 export def Getother()
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1418 g:result = 'other'
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1419 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1420 END
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
1421 writefile(lines, 'Xdir/autoload/another.vim')
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1422
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1423 lines =<< trim END
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1424 vim9script
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
1425 import autoload 'another.vim'
27205
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1426
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1427 # compile this before 'another.vim' is loaded
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1428 def CallAnother()
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1429 assert_equal('foo', 'foo'->another.RetArg())
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1430 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1431 CallAnother()
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
1432
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
1433 call another.Getother()
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1434 assert_equal('other', g:result)
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1435 END
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1436 CheckScriptSuccess(lines)
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1437
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
1438 unlet g:result
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1439 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1440 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1441 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1442
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1443 def Test_import_autoload_postponed()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1444 mkdir('Xdir/autoload', 'p')
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1445 var save_rtp = &rtp
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1446 exe 'set rtp^=' .. getcwd() .. '/Xdir'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1447
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1448 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1449 vim9script
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1450
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1451 g:loaded_postponed = 'true'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1452 export var variable = 'bla'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1453 export def Function(): string
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1454 return 'bla'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1455 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1456 END
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1457 writefile(lines, 'Xdir/autoload/postponed.vim')
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1458
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1459 lines =<< trim END
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1460 vim9script
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1461
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1462 import autoload 'postponed.vim'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1463 def Tryit()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1464 echo postponed.variable
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1465 echo postponed.Function()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1466 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1467 defcompile
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1468 END
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1469 CheckScriptSuccess(lines)
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1470 assert_false(exists('g:loaded_postponed'))
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1471 CheckScriptSuccess(lines + ['Tryit()'])
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1472 assert_equal('true', g:loaded_postponed)
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1473
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1474 unlet g:loaded_postponed
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1475 delete('Xdir', 'rf')
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1476 &rtp = save_rtp
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1477 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
1478
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1479 def Test_import_autoload_override()
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1480 mkdir('Xdir/autoload', 'p')
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1481 var save_rtp = &rtp
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1482 exe 'set rtp^=' .. getcwd() .. '/Xdir'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1483 test_override('autoload', 1)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1484
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1485 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1486 vim9script
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1487
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1488 g:loaded_override = 'true'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1489 export var variable = 'bla'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1490 export def Function(): string
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1491 return 'bla'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1492 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1493 END
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1494 writefile(lines, 'Xdir/autoload/override.vim')
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1495
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1496 lines =<< trim END
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1497 vim9script
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1498
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1499 import autoload 'override.vim'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1500 assert_equal('true', g:loaded_override)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1501
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1502 def Tryit()
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1503 echo override.doesNotExist
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1504 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1505 defcompile
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1506 END
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1507 CheckScriptFailure(lines, 'E1048: Item not found in script: doesNotExist', 1)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1508
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1509 test_override('autoload', 0)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1510 unlet g:loaded_override
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1511 delete('Xdir', 'rf')
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1512 &rtp = save_rtp
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1513 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
1514
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1515 def Test_autoload_mapping()
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1516 mkdir('Xdir/autoload', 'p')
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1517 var save_rtp = &rtp
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1518 exe 'set rtp^=' .. getcwd() .. '/Xdir'
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1519
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1520 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1521 vim9script
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1522
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1523 g:toggle_loaded = 'yes'
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1524
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1525 export def Toggle(): string
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1526 return ":g:toggle_called = 'yes'\<CR>"
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1527 enddef
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1528 export def Doit()
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1529 g:doit_called = 'yes'
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1530 enddef
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1531 END
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1532 writefile(lines, 'Xdir/autoload/toggle.vim')
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1533
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1534 lines =<< trim END
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1535 vim9script
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1536
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1537 import autoload 'toggle.vim'
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1538
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1539 nnoremap <silent> <expr> tt toggle.Toggle()
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1540 nnoremap <silent> xx <ScriptCmd>toggle.Doit()<CR>
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1541 nnoremap <silent> yy <Cmd>toggle.Doit()<CR>
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1542 END
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1543 CheckScriptSuccess(lines)
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1544 assert_false(exists("g:toggle_loaded"))
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1545 assert_false(exists("g:toggle_called"))
27213
42561e956a70 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Bram Moolenaar <Bram@vim.org>
parents: 27207
diff changeset
1546 assert_match('\d A: \f*[/\\]toggle.vim', execute('scriptnames'))
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1547
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1548 feedkeys("tt", 'xt')
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1549 assert_equal('yes', g:toggle_loaded)
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1550 assert_equal('yes', g:toggle_called)
27213
42561e956a70 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Bram Moolenaar <Bram@vim.org>
parents: 27207
diff changeset
1551 assert_match('\d: \f*[/\\]toggle.vim', execute('scriptnames'))
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1552
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1553 feedkeys("xx", 'xt')
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1554 assert_equal('yes', g:doit_called)
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1555
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1556 assert_fails('call feedkeys("yy", "xt")', 'E121: Undefined variable: toggle')
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1557
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1558 nunmap tt
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1559 nunmap xx
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
1560 nunmap yy
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1561 unlet g:toggle_loaded
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1562 unlet g:toggle_called
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1563 delete('Xdir', 'rf')
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1564 &rtp = save_rtp
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1565 enddef
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
1566
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1567 def Test_vim9script_autoload_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1568 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1569 vim9script autoload
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1570 var n = 0
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1571 END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1572 CheckScriptFailure(lines, 'E475: Invalid argument: autoload')
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1573
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1574 lines =<< trim END
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1575 vim9script noclear noclear
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1576 var n = 0
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1577 END
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1578 CheckScriptFailure(lines, 'E983: Duplicate argument: noclear')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1579 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1580
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1581 def Test_import_autoload_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1582 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1583 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1584 import autoload autoload 'prefixed.vim'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1585 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1586 CheckScriptFailure(lines, 'E121: Undefined variable: autoload')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1587
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1588 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1589 vim9script
27207
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1590 import autoload './doesNotExist.vim'
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1591 END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1592 CheckScriptFailure(lines, 'E1264:')
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1593
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1594 lines =<< trim END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1595 vim9script
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1596 import autoload '/dir/doesNotExist.vim'
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1597 END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1598 CheckScriptFailure(lines, 'E1264:')
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1599
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1600 lines =<< trim END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1601 vim9script
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1602 import autoload 'doesNotExist.vim'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1603 END
27207
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
1604 CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1605 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1606
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1607 " test disassembling an auto-loaded function starting with "debug"
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1608 def Test_vim9_autoload_disass()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1609 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1610 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1611 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1612
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1613 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1614 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1615 def debugit#test(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1616 return 'debug'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1617 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1618 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1619 writefile(lines, 'Xdir/autoload/debugit.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1620
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1621 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1622 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1623 def profileit#test(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1624 return 'profile'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1625 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1626 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1627 writefile(lines, 'Xdir/autoload/profileit.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1628
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1629 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1630 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1631 assert_equal('debug', debugit#test())
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1632 disass debugit#test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1633 assert_equal('profile', profileit#test())
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1634 disass profileit#test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1635 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1636 CheckScriptSuccess(lines)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1637
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1638 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1639 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1640 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1641
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1642 " test using a vim9script that is auto-loaded from an autocmd
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1643 def Test_vim9_aucmd_autoload()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1644 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1645 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1646 def foo#test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1647 echomsg getreg('"')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1648 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1649 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1650
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1651 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1652 writefile(lines, 'Xdir/autoload/foo.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1653 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1654 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1655 augroup test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1656 autocmd TextYankPost * call foo#test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1657 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1658
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1659 normal Y
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1660
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1661 augroup test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1662 autocmd!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1663 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1664 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1665 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1666 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1667
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1668 " test using a autoloaded file that is case sensitive
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1669 def Test_vim9_autoload_case_sensitive()
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1670 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
1671 vim9script
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1672 export def CaseSensitive(): string
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1673 return 'done'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1674 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1675 END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1676
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1677 mkdir('Xdir/autoload', 'p')
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1678 writefile(lines, 'Xdir/autoload/CaseSensitive.vim')
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1679 var save_rtp = &rtp
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1680 exe 'set rtp^=' .. getcwd() .. '/Xdir'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1681
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1682 lines =<< trim END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1683 vim9script
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1684 import autoload 'CaseSensitive.vim'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1685 assert_equal('done', CaseSensitive.CaseSensitive())
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1686 END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1687 CheckScriptSuccess(lines)
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1688
27150
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1689 if !has('fname_case')
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1690 lines =<< trim END
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1691 vim9script
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1692 import autoload 'CaseSensitive.vim'
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1693 import autoload 'casesensitive.vim'
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1694 END
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1695 CheckScriptFailure(lines, 'E1262:')
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1696 endif
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
1697
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1698 delete('Xdir', 'rf')
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1699 &rtp = save_rtp
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1700 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
1701
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1702 " This was causing a crash because suppress_errthrow wasn't reset.
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1703 def Test_vim9_autoload_error()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1704 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1705 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1706 def crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1707 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1708 for x in List()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1709 endfor
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1710 catch
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1711 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1712 g:ok = true
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1713 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1714 fu List()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1715 invalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1716 endfu
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1717 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1718 alsoinvalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1719 catch /wontmatch/
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1720 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1721 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1722 call mkdir('Xruntime/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1723 call writefile(lines, 'Xruntime/autoload/crash.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1724
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1725 # run in a separate Vim to avoid the side effects of assert_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1726 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1727 exe 'set rtp^=' .. getcwd() .. '/Xruntime'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1728 call crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1729 call writefile(['ok'], 'Xdidit')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1730 qall!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1731 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1732 writefile(lines, 'Xscript')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1733 RunVim([], [], '-S Xscript')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1734 assert_equal(['ok'], readfile('Xdidit'))
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1735
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1736 delete('Xdidit')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1737 delete('Xscript')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1738 delete('Xruntime', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1739
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1740 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1741 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1742 var foo#bar = 'asdf'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1743 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1744 CheckScriptFailure(lines, 'E461: Illegal variable name: foo#bar', 2)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1745 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
1746
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1747
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1748 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker