Mercurial > vim
annotate runtime/indent/testdir/README.txt @ 15394:f20d90aeecaa v8.1.0705
patch 8.1.0705: :colorscheme isn't tested enough
commit https://github.com/vim/vim/commit/6d4470b0e9aac76ae43be27a28447ea29767d77f
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 8 21:05:51 2019 +0100
patch 8.1.0705: :colorscheme isn't tested enough
Problem: :colorscheme isn't tested enough
Solution: Improve test coverage of :colorscheme. (Dominique Pelle, closes
#3777) Remove unnecessary sleep.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 08 Jan 2019 21:15:05 +0100 |
parents | 2b30a2b4bde2 |
children | bd7461db24b3 |
rev | line source |
---|---|
14970
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 TESTING INDENT SCRIPTS |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 We'll use FILETYPE for the filetype name here. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
6 FORMAT OF THE FILETYPE.IN FILE |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
7 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
8 First of all, create a FILETYPE.in file. It should contain: |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
9 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 - A modeline setting the 'filetype' and any other option values. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 This must work like a comment for FILETYPE. E.g. for vim: |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 " vim: set ft=vim sw=4 : |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
13 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 - At least one block of lines to indent, prefixed with START_INDENT and |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 followed by END_INDENT. These lines must also look like a comment for your |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
16 FILETYPE. You would normally leave out all indent, so that the effect of |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 the indent command results in adding indent. Example: |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
19 " START_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 func Some() |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 let x = 1 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 endfunc |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 " END_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 |
14999 | 25 If you just want to test normal indenting with default options, you can make |
26 this a large number of lines. Just add all kinds of language constructs, | |
27 nested statements, etc. with valid syntax. | |
28 | |
29 - Optionally, add lines with INDENT_EXE after START_INDENT, followed by a Vim | |
30 command. This will be executed before indenting the lines. Example: | |
14970
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
31 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 " START_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 " INDENT_EXE let g:vim_indent_cont = 6 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 let cmd = |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 \ 'some ' |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
36 \ 'string' |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 " END_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
39 Note that the command is not undone, you may need to reverse the effect for |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
40 the next block of lines. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 - Alternatively to indenting all the lines between START_INDENT and |
14999 | 43 END_INDENT, use an INDENT_AT line, which specifies a pattern to find the |
44 line to indent. Example: | |
14970
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
45 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
46 " START_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
47 " INDENT_AT this-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
48 func Some() |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
49 let f = x " this-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 endfunc |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
51 " END_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
52 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
53 Alternatively you can use INDENT_NEXT to indent the line below the matching |
14999 | 54 pattern. Keep in mind that quite often it will indent relative to the |
55 matching line: | |
14970
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
56 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
57 " START_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 " INDENT_NEXT next-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
59 func Some() |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
60 " next-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 let f = x |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
62 endfunc |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 " END_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
64 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 Or use INDENT_PREV to indent the line above the matching pattern: |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 " START_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
68 " INDENT_PREV prev-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
69 func Some() |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
70 let f = x |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
71 " prev-line |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
72 endfunc |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 " END_INDENT |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
74 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
75 It's best to keep the whole file valid for FILETYPE, so that syntax |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
76 highlighting works normally, and any indenting that depends on the syntax |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 highlighting also works. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
78 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
79 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
80 RUNNING THE TEST |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
81 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
82 Before running the test, create a FILETYPE.ok file. You can leave it empty at |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
83 first. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
84 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
85 Now run "make test". After Vim has done the indenting you will see a |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
86 FILETYPE.fail file. This contains the actual result of indenting, and it's |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
87 different from the FILETYPE.ok file. |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
88 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
89 Check the contents of the FILETYPE.fail file. If it is perfectly OK, then |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
90 rename it to overwrite the FILETYPE.ok file. If you now run "make test" again, |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
91 the test will pass and create a FILETYPE.out file, which is identical to the |
14999 | 92 FILETYPE.ok file. The FILETYPE.fail file will be deleted. |
14970
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
93 |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
94 If you try to run "make test" again you will notice that nothing happens, |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
95 because the FILETYPE.out file already exists. Delete it, or do "make clean", |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
96 so that the text runs again. If you edit the FILETYPE.in file, so that it's |
19b757c6c6a7
patch 8.1.0496: no tests for indent files
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
97 newer than the FILETYPE.out file, the test will also run. |