0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

updated for version 7.0d01

This commit is contained in:
Bram Moolenaar 2006-04-11 21:38:50 +00:00
parent 779b74b2a2
commit 4c3f536f47
42 changed files with 2215 additions and 283 deletions

View File

@ -5,9 +5,9 @@ WHAT IS VIM
Vim is an almost compatible version of the UNIX editor Vi. Many new features Vim is an almost compatible version of the UNIX editor Vi. Many new features
have been added: multi-level undo, syntax highlighting, command line history, have been added: multi-level undo, syntax highlighting, command line history,
on-line help, filename completion, block operations, etc. There is also a on-line help, spell checking, filename completion, block operations, etc.
Graphical User Interface (GUI) available. See "runtime/doc/vi_diff.txt" for There is also a Graphical User Interface (GUI) available. See
differences with Vi. "runtime/doc/vi_diff.txt" for differences with Vi.
This editor is very useful for editing programs and other plain ASCII files. This editor is very useful for editing programs and other plain ASCII files.
All commands are given with normal keyboard characters, so those who can type All commands are given with normal keyboard characters, so those who can type
@ -56,15 +56,16 @@ distribute it.
SPONSORING SPONSORING
Fixing bugs and adding new features takes a lot of effort. For a few years Fixing bugs and adding new features takes a lot of time and effort. To show
Bram has attempted to do this next to a full-time job. During that time the your appreciation for the work and motivate Bram and others to continue
todo list kept getting longer and longer. working on Vim please send a donation.
In order for Bram to support Vim properly he needs your help. Through your Since Bram is back to a paid job the money will now be used to help children
donations Bram will be able to have a part-time job and spend more time on in Uganda. See runtime/doc/uganda.txt. But at the same time donations
fixing bugs and adding new features. increase Bram's motivation to keep working on Vim!
For the most recent information about sponsoring look on the Vim web site: For the most recent information about sponsoring look on the Vim web site:
http://www.vim.org/sponsor/ http://www.vim.org/sponsor/
@ -132,6 +133,9 @@ MAIN AUTHOR
Send any other comments, patches, pizza and suggestions to: Send any other comments, patches, pizza and suggestions to:
Bram Moolenaar E-mail: Bram@vim.org Bram Moolenaar E-mail: Bram@vim.org
Clematisstraat 30 Molenstraat 2
5925 BE Venlo Tel: +31 77 387 2340 2161 HP Lisse
The Netherlands Fax/voice-mail: +31 20 773 8272 The Netherlands
This is the address of my parents, they will forward mail and eat the pizza.
My actual address will change a couple of times in 2006.

View File

@ -1,7 +1,7 @@
" zip.vim: Handles browsing zipfiles " zip.vim: Handles browsing zipfiles
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Date: Mar 22, 2006 " Date: Apr 10, 2006
" Version: 7 " Version: 8
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
@ -22,7 +22,7 @@ if exists("g:loaded_zip")
finish finish
endif endif
let g:loaded_zip = "v7" let g:loaded_zip = "v8"
let s:zipfile_escape = ' ?&;\' let s:zipfile_escape = ' ?&;\'
" ---------------- " ----------------
@ -83,7 +83,9 @@ fun! zip#Browse(zipfile)
4,$g/^\s*----/d 4,$g/^\s*----/d
4,$g/^\s*\a/d 4,$g/^\s*\a/d
$d $d
exe 'silent 4,$s/^.*\%'.namecol.'c//' if namecol > 0
exe 'silent 4,$s/^.*\%'.namecol.'c//'
endif
setlocal noma nomod ro setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr> noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>

View File

@ -1,4 +1,4 @@
*change.txt* For Vim version 7.0d. Last change: 2006 Apr 09 *change.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1508,7 +1508,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
found here: |sort()|. found here: |sort()|.
*:sor* *:sort* *:sor* *:sort*
:[range]sor[t][!] [i][u][n][x][o] [/{pattern}/] :[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/]
Sort lines in [range]. When no range is given all Sort lines in [range]. When no range is given all
lines are sorted. lines are sorted.
@ -1517,24 +1517,25 @@ found here: |sort()|.
With [i] case is ignored. With [i] case is ignored.
With [n] sorting is done on the first decimal number With [n] sorting is done on the first decimal number
in the line (after a {pattern} match). in the line (after or inside a {pattern} match).
With [x] sorting is done on the first hexadecimal With [x] sorting is done on the first hexadecimal
number in the line (after a {pattern} match). A number in the line (after or inside a {pattern}
leading "0x" or "0X" is ignored. match). A leading "0x" or "0X" is ignored.
With [o] sorting is done on the first octal number in With [o] sorting is done on the first octal number in
the line (after a {pattern} match). the line (after or inside a {pattern} match).
With [u] only keep the first of a sequence of With [u] only keep the first of a sequence of
identical lines (ignoring case when [i] is used). identical lines (ignoring case when [i] is used).
Without this flag, a sequence of identical lines
will be kept in their original order.
Note that leading and trailing white space may cause Note that leading and trailing white space may cause
lines to be different. lines to be different.
When /{pattern}/ is specified the text matched with When /{pattern}/ is specified and there is no [r] flag
{pattern} is skipped, so that you sort on what comes the text matched with {pattern} is skipped, so that
after the match. For lines without a match sorting you sort on what comes after the match.
starts in the first column (e.g., for empty lines).
Instead of the slash any non-letter can be used. Instead of the slash any non-letter can be used.
For example, to sort on the second comma-separated For example, to sort on the second comma-separated
field: > field: >
@ -1545,7 +1546,21 @@ found here: |sort()|.
< To sort on the first number in the line, no matter < To sort on the first number in the line, no matter
what is in front of it: > what is in front of it: >
:sort /.*\ze\d/ :sort /.*\ze\d/
<
< With [r] sorting is done on the matching {pattern}
instead of skipping past it as described above.
For example, to sort on only the first three letters
of each line: >
:sort /\a\a\a/ r
< If a {pattern} is used, any lines which don't have a
match for {pattern} are kept in their current order,
but separate from the lines which do match {pattern}.
If you sorted in reverse, they will be in reverse
order after the sorted lines, otherwise they will be
in their original order, right before the sorted
lines.
Note that using ":sort" with ":global" doesn't sort the matching lines, it's Note that using ":sort" with ":global" doesn't sort the matching lines, it's
quite useless. quite useless.
@ -1553,8 +1568,8 @@ The details about sorting depend on the library function used. There is no
guarantee that sorting is "stable" or obeys the current locale. You will have guarantee that sorting is "stable" or obeys the current locale. You will have
to try it out. to try it out.
The sorting itself cannot be interrupted, because of using a system library The sorting can be interrupted, but if you interrupt it too late in the
function. You can interrupt the preparation (for undo) and putting the sorted process you may end up with duplicated lines. This also depends on the system
lines into the buffer. In the last case you may end up with duplicated lines. library function used.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,4 +1,4 @@
*index.txt* For Vim version 7.0d. Last change: 2006 Apr 06 *index.txt* For Vim version 7.0d. Last change: 2006 Apr 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -529,6 +529,7 @@ tag command action in Normal mode ~
|CTRL-W_P| CTRL-W P go to preview window |CTRL-W_P| CTRL-W P go to preview window
|CTRL-W_R| CTRL-W R rotate windows upwards N times |CTRL-W_R| CTRL-W R rotate windows upwards N times
|CTRL-W_S| CTRL-W S same as "CTRL-W s" |CTRL-W_S| CTRL-W S same as "CTRL-W s"
|CTRL-W_T| CTRL-W T move current window to a new tab page
|CTRL-W_W| CTRL-W W go to N previous window (wrap around) |CTRL-W_W| CTRL-W W go to N previous window (wrap around)
|CTRL-W_]| CTRL-W ] split window and jump to tag under cursor |CTRL-W_]| CTRL-W ] split window and jump to tag under cursor
|CTRL-W_^| CTRL-W ^ split current window and edit alternate |CTRL-W_^| CTRL-W ^ split current window and edit alternate

View File

@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.0d. Last change: 2006 Apr 10 *insert.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -1419,8 +1419,8 @@ Features are:
a tag) a tag)
- when attribute has limited number of possible values help to complete - when attribute has limited number of possible values help to complete
them them
- complete names of entities (defined in |xml-omni-datafile| and in current file - complete names of entities (defined in |xml-omni-datafile| and in current
with "<!ENTITY" declarations file with "<!ENTITY" declarations
- when used after "</" CTRL-X CTRL-O will close the last opened tag - when used after "</" CTRL-X CTRL-O will close the last opened tag
Format of XML data file *xml-omni-datafile* Format of XML data file *xml-omni-datafile*

View File

@ -1,4 +1,4 @@
*map.txt* For Vim version 7.0d. Last change: 2006 Mar 20 *map.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -265,6 +265,7 @@ Overview of which map command works in which mode:
:vmap :vnoremap :vunmap :vmapclear - yes - :vmap :vnoremap :vunmap :vmapclear - yes -
:omap :onoremap :ounmap :omapclear - - yes :omap :onoremap :ounmap :omapclear - - yes
:nunmap can also be used outside of a monastery.
*mapmode-x* *mapmode-s* *mapmode-x* *mapmode-s*
Some commands work both in Visual and Select mode, some in only one. Note Some commands work both in Visual and Select mode, some in only one. Note
that quite often "Visual" is mentioned where both Visual and Select mode that quite often "Visual" is mentioned where both Visual and Select mode

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 7.0d. Last change: 2006 Mar 01 *message.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -413,7 +413,10 @@ device and it isn't present. You can ignore this error.
You have used an ":unmap" command with an argument which is not an existing You have used an ":unmap" command with an argument which is not an existing
mapping. All variations of this command give the same message: ":cunmap", mapping. All variations of this command give the same message: ":cunmap",
":unmap!", etc. Check for trailing white space. ":unmap!", etc. A few hints:
- Check for trailing white space.
- If the mapping is buffer-local you need to use ":unmap <buffer>".
|:map-<buffer>|
*E37* *E89* > *E37* *E89* >
No write since last change (use ! to override) No write since last change (use ! to override)

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0d. Last change: 2006 Apr 10 *options.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -2068,6 +2068,11 @@ A jump table for the options with a short description can be found at |Q_op|.
Highlight the screen column of the cursor with CursorColumn Highlight the screen column of the cursor with CursorColumn
|hl-CursorColumn|. Useful to align text. Will make screen redrawing |hl-CursorColumn|. Useful to align text. Will make screen redrawing
slower. slower.
If you only want the highlighting in the current window you can use
these autocommands: >
au WinLeave * set nocursorline nocursorcolumn
au WinEnter * set cursorline cursorcolumn
<
*'cursorline'* *'cul'* *'nocursorline'* *'nocul'* *'cursorline'* *'cul'* *'nocursorline'* *'nocul'*
'cursorline' 'cul' boolean (default off) 'cursorline' 'cul' boolean (default off)

View File

@ -1,4 +1,4 @@
*zip.txt* For Vim version 7.0d. Last change: 2006 Apr 03 *zip.txt* For Vim version 7.0d. Last change: 2006 Apr 10
+====================+ +====================+
| Zip File Interface | | Zip File Interface |
@ -33,6 +33,11 @@ Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr {{{1 *zip-copyright*
============================================================================== ==============================================================================
3. History *zip-history* 3. History *zip-history*
v8 Apr 10, 2006 * Bram Moolenaar reported that he received an error message
due to "Pattern not found: ^.*\%0c"; this was caused by
stridx finding a Name... at the beginning of the line;
zip.vim tried 4,$s/^.*\%0c//, but that doesn't work.
Fixed.
v7 Mar 22, 2006 * escaped some characters that can cause filename handling v7 Mar 22, 2006 * escaped some characters that can cause filename handling
problems. problems.
v6 Dec 21, 2005 * writing to files not in directories caused problems - v6 Dec 21, 2005 * writing to files not in directories caused problems -

View File

@ -3188,6 +3188,7 @@ CTRL-W_L windows.txt /*CTRL-W_L*
CTRL-W_P windows.txt /*CTRL-W_P* CTRL-W_P windows.txt /*CTRL-W_P*
CTRL-W_R windows.txt /*CTRL-W_R* CTRL-W_R windows.txt /*CTRL-W_R*
CTRL-W_S windows.txt /*CTRL-W_S* CTRL-W_S windows.txt /*CTRL-W_S*
CTRL-W_T windows.txt /*CTRL-W_T*
CTRL-W_W windows.txt /*CTRL-W_W* CTRL-W_W windows.txt /*CTRL-W_W*
CTRL-W_] windows.txt /*CTRL-W_]* CTRL-W_] windows.txt /*CTRL-W_]*
CTRL-W_^ windows.txt /*CTRL-W_^* CTRL-W_^ windows.txt /*CTRL-W_^*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0d. Last change: 2006 Apr 10 *todo.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,7 +30,11 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Include autoload/xml/*.vim files? Need to adjust install scripts then.
":mkspell" still takes much too long in Hungarian dictionary. ":mkspell" still takes much too long in Hungarian dictionary.
- Are all prefixes really postponed now?
- postpone secondary suffixes?
Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG. Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
WFP_COMPPERMIT and WFP_COMPFORBID WFP_COMPPERMIT and WFP_COMPFORBID
@ -47,8 +51,14 @@ New Hungarian dictionary. (Laci Nemeth)
How is it supposed to work? How is it supposed to work?
- implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[]. - implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
Update vi_diff.txt for Vim 7 features.
8 tab pages in the session file, if "tabpages" in 'sessionoptions'
Add more tests for all new functionality in Vim 7. Especially new functions. Add more tests for all new functionality in Vim 7. Especially new functions.
Do some of the 'cindent' bugs below.
Win32: Describe how to do debugging. (George Reilly) Win32: Describe how to do debugging. (George Reilly)
Mac unicode patch (Da Woon Jung, Eckehard Berns): Mac unicode patch (Da Woon Jung, Eckehard Berns):
@ -1092,7 +1102,6 @@ User Friendlier:
Tab pages: Tab pages:
9 GUI implementation for the tab pages line for other systems. 9 GUI implementation for the tab pages line for other systems.
8 Make GUI menu in tab pages line configurable. Like the popup menu. 8 Make GUI menu in tab pages line configurable. Like the popup menu.
8 tab pages in the session file, if "tabpages" in 'sessionoptions'
8 :tabmove +N move tab page N pages forward 8 :tabmove +N move tab page N pages forward
8 :tabmove -N move tab page N pages backward 8 :tabmove -N move tab page N pages backward
7 :tabdup duplicate the tab with all its windows. 7 :tabdup duplicate the tab with all its windows.

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0d. Last change: 2006 Apr 10 *version7.txt* For Vim version 7.0d. Last change: 2006 Apr 11
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -628,7 +628,7 @@ Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
|:viusage| Help for Vi commands (Nvi command). |:viusage| Help for Vi commands (Nvi command).
|:sort| Sort lines in the buffer without depending on an |:sort| Sort lines in the buffer without depending on an
external command. external command. (partly by Bryce Wagner)
|:caddfile| Add error messages to an existing quickfix list |:caddfile| Add error messages to an existing quickfix list
(Yegappan Lakshmanan). (Yegappan Lakshmanan).
@ -913,6 +913,7 @@ Haskell ftplugin file. (Nikolai Weibull)
help ftplugin file. (Nikolai Weibull) help ftplugin file. (Nikolai Weibull)
indent ftplugin file. (Nikolai Weibull) indent ftplugin file. (Nikolai Weibull)
Javascript ftplugin file. (Bram Moolenaar) Javascript ftplugin file. (Bram Moolenaar)
Kconfig ftplugin and syntax file. (Nikolai Weibull)
ld syntax, indent and ftplugin file. (Nikolai Weibull) ld syntax, indent and ftplugin file. (Nikolai Weibull)
lftp ftplugin file. (Nikolai Weibull) lftp ftplugin file. (Nikolai Weibull)
libao config ftplugin file. (Nikolai Weibull) libao config ftplugin file. (Nikolai Weibull)
@ -2420,4 +2421,26 @@ Now use Enter to select the match after using a cursor key.
Added "usetab" to 'switchbuf'. Added "usetab" to 'switchbuf'.
--- fixes and changes since Vim 7.0d ---
Added CTRL-W T: move a window to a new tab page.
Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
deleted characters before the bad word.
A few small fixes for the VMS makefile. (Zoltan Arpadffy)
With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow
when splitting a window and skip setting the height when it's already at the
right value.
Using <silent> in a mapping with a shell command and the GUI caused redraw
to use wrong attributes.
Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
created in the administrator directory instead of "All Users". Define the
CSIDL_ items if they are missing.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,7 +1,7 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier .\" Traduction Lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com) .\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet .\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2005-01-17 .\" (david.blanchet@free.fr) 2006-06-10
.\" .\"
.TH VIM 1 "22 Février 2002" .TH VIM 1 "22 Février 2002"
.SH NOM .SH NOM
@ -325,6 +325,10 @@ Quand N est omis, ouvre une fen
Ouvre N fenêtres côte à côte. Ouvre N fenêtres côte à côte.
Quand N est omis, ouvre une fenêtre pour chaque fichier fichier. Quand N est omis, ouvre une fenêtre pour chaque fichier fichier.
.TP .TP
\-p[N]
Ouvre N onglets.
Quand N est omis, ouvre un onglet pour chaque fichier fichier.
.TP
\-R \-R
Mode Lecture-Seule. Mode Lecture-Seule.
Active l'option 'readonly'. Active l'option 'readonly'.
@ -579,4 +583,4 @@ Cette page de manuel a
<richard.hitier@dial.oleane.com> 2000-08-07. <richard.hitier@dial.oleane.com> 2000-08-07.
.br .br
Cette page de manuel a été mise à jour par David Blanchet. Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2005-01-17. <david.blanchet@free.fr> 2006-04-10.

View File

@ -1,7 +1,7 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier .\" Traduction Lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com) .\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet .\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2005-01-17 .\" (david.blanchet@free.fr) 2006-06-10
.\" .\"
.TH VIM 1 "22 Février 2002" .TH VIM 1 "22 Février 2002"
.SH NOM .SH NOM
@ -325,6 +325,10 @@ Quand N est omis, ouvre une fenêtre pour chaque fichier.
Ouvre N fenêtres côte à côte. Ouvre N fenêtres côte à côte.
Quand N est omis, ouvre une fenêtre pour chaque fichier fichier. Quand N est omis, ouvre une fenêtre pour chaque fichier fichier.
.TP .TP
\-p[N]
Ouvre N onglets.
Quand N est omis, ouvre un onglet pour chaque fichier fichier.
.TP
\-R \-R
Mode Lecture-Seule. Mode Lecture-Seule.
Active l'option 'readonly'. Active l'option 'readonly'.
@ -579,4 +583,4 @@ Cette page de manuel a été traduite par Richard Hitier.
<richard.hitier@dial.oleane.com> 2000-08-07. <richard.hitier@dial.oleane.com> 2000-08-07.
.br .br
Cette page de manuel a été mise à jour par David Blanchet. Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2005-01-17. <david.blanchet@free.fr> 2006-04-10.

View File

@ -1,4 +1,4 @@
.TH VIM 1 "2002 Feb 22" .TH VIM 1 "2006 Apr 11"
.SH NAME .SH NAME
vim \- Vi IMproved, a programmers text editor vim \- Vi IMproved, a programmers text editor
.SH SYNOPSIS .SH SYNOPSIS

View File

@ -425,4 +425,4 @@ BUGS
2002 Feb 22 VIM(1) 2006 Apr 11 VIM(1)

View File

@ -1,4 +1,4 @@
*windows.txt* For Vim version 7.0d. Last change: 2006 Apr 06 *windows.txt* For Vim version 7.0d. Last change: 2006 Apr 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -434,6 +434,13 @@ CTRL-W L Move the current window to be at the far right, using the full
contents is used for the new window. contents is used for the new window.
{not available when compiled without the +vertsplit feature} {not available when compiled without the +vertsplit feature}
*CTRL-W_T*
CTRL-W T Move the current window to a new tab page. This fails if
there is only one window in the current tab page.
When a count is specified the new tab page will be opened
before the tab page with this index. Otherwise it comes after
the current tab page.
============================================================================== ==============================================================================
6. Window resizing *window-resize* 6. Window resizing *window-resize*

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 04 " Last Change: 2006 Apr 11
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@ -784,6 +784,9 @@ au BufNewFile,BufRead *.k setf kwt
" KDE script " KDE script
au BufNewFile,BufRead *.ks setf kscript au BufNewFile,BufRead *.ks setf kscript
" Kconfig
au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig
" Lace (ISE) " Lace (ISE)
au BufNewFile,BufRead *.ace,*.ACE setf lace au BufNewFile,BufRead *.ace,*.ACE setf lace
@ -1662,13 +1665,25 @@ au BufNewFile,BufRead /etc/sysctl.conf setf sysctl
" Sudoers " Sudoers
au BufNewFile,BufRead /etc/sudoers,sudoers.tmp setf sudoers au BufNewFile,BufRead /etc/sudoers,sudoers.tmp setf sudoers
" If the file has an extension of 't' and is in a directory 't' then it is
" almost certainly a Perl test file.
" If the first line starts with '#' and contains 'perl' it's probably a Perl " If the first line starts with '#' and contains 'perl' it's probably a Perl
" file. " file.
" (Slow test) If a file contains a 'use' statement then it is almost certainly
" a Perl file.
fun! s:FTperl() fun! s:FTperl()
if expand("%:e") == 't' && expand("%:p:h:t") == 't'
setf perl
return 1
endif
if getline(1)[0] == '#' && getline(1) =~ 'perl' if getline(1)[0] == '#' && getline(1) =~ 'perl'
setf perl setf perl
return 1 return 1
endif endif
if search('^use\s\s*\k', 'nc', 30)
setf perl
return 1
endif
return 0 return 0
endfun endfun
@ -1961,7 +1976,7 @@ au BufNewFile,BufRead *.yaml,*.yml setf yaml
" Zope " Zope
" dtml (zope dynamic template markup language), pt (zope page template), " dtml (zope dynamic template markup language), pt (zope page template),
" cpt (zope form controller page template) " cpt (zope form controller page template)
au BufNewFile,BufRead *.dtml,*.pt,*.cpt call <SID>FTCheck_html() au BufNewFile,BufRead *.dtml,*.pt,*.cpt call s:FThtml()
" zsql (zope sql method) " zsql (zope sql method)
au BufNewFile,BufRead *.zsql call s:SQL() au BufNewFile,BufRead *.zsql call s:SQL()

View File

@ -0,0 +1,14 @@
" Vim filetype plugin file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-10
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl com< cms< fo<"
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql

View File

@ -4,11 +4,12 @@
" Markus Mottl <markus.mottl@gmail.com> " Markus Mottl <markus.mottl@gmail.com>
" Stefano Zacchiroli <zack@bononia.it> " Stefano Zacchiroli <zack@bononia.it>
" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim " URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim
" Last Change: 2006 Feb 05 " Last Change: 2006 Apr 11 - Fixed an initialization bug; fixed ASS abbrev (MM)
" 2005 Oct 13 - removed GPL; better matchit support (MM, SZ)
" "
" if exists("b:did_ftplugin") if exists("b:did_ftplugin")
" finish finish
" endif endif
let b:did_ftplugin=1 let b:did_ftplugin=1
" Error handling -- helps moving where the compiler wants you to go " Error handling -- helps moving where the compiler wants you to go
@ -44,7 +45,7 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`< vnoremap <buffer> <Plug>BUncomOff <ESC>:'<,'><CR>`<dd`>dd`<
if !hasmapto('<Plug>Abbrev') if !hasmapto('<Plug>Abbrev')
iabbrev <buffer> ASS (assert false (* XXX *)) iabbrev <buffer> ASS (assert (0=1) (* XXX *))
endif endif
endif endif

View File

@ -1,8 +1,8 @@
" Description: html indenter " Description: html indenter
" Author: Johannes Zellner <johannes@zellner.org> " Author: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 27 Apr 2004 10:28:39 CEST " Last Change: Tue, 27 Apr 2004 10:28:39 CEST
" Globals: g:html_indent_tags -- indenting tags " Globals: g:html_indent_tags -- indenting tags
" g:html_indent_strict -- inhibit 'O O' elements " g:html_indent_strict -- inhibit 'O O' elements
" g:html_indent_strict_table -- inhibit 'O -' elements " g:html_indent_strict_table -- inhibit 'O -' elements
" Only load this indent file when no other was loaded. " Only load this indent file when no other was loaded.
@ -14,7 +14,7 @@ let b:did_indent = 1
" [-- local settings (must come before aborting the script) --] " [-- local settings (must come before aborting the script) --]
setlocal indentexpr=HtmlIndentGet(v:lnum) setlocal indentexpr=HtmlIndentGet(v:lnum)
setlocal indentkeys=o,O,*<Return>,<>>,<bs>,{,} setlocal indentkeys=o,O,*<Return>,<>>,{,}
if exists('g:html_indent_tags') if exists('g:html_indent_tags')

View File

@ -1,6 +1,6 @@
" Script to define the syntax menu in synmenu.vim " Script to define the syntax menu in synmenu.vim
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2006 Apr 10 " Last Change: 2006 Apr 11
" This is used by "make menu" in the src directory. " This is used by "make menu" in the src directory.
edit <sfile>:p:h/synmenu.vim edit <sfile>:p:h/synmenu.vim
@ -237,6 +237,7 @@ SynMenu HIJK.Java.Java\ Properties:jproperties
SynMenu HIJK.JavaScript:javascript SynMenu HIJK.JavaScript:javascript
SynMenu HIJK.Jess:jess SynMenu HIJK.Jess:jess
SynMenu HIJK.Jgraph:jgraph SynMenu HIJK.Jgraph:jgraph
SynMenu HIJK.Kconfig:kconfig
SynMenu HIJK.KDE\ script:kscript SynMenu HIJK.KDE\ script:kscript
SynMenu HIJK.Kimwitu++:kwt SynMenu HIJK.Kimwitu++:kwt
SynMenu HIJK.KixTart:kix SynMenu HIJK.KixTart:kix

View File

@ -213,9 +213,10 @@ an 50.50.440 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
an 50.50.450 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR> an 50.50.450 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
an 50.50.460 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR> an 50.50.460 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
an 50.50.470 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR> an 50.50.470 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
an 50.50.490 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR> an 50.50.490 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
an 50.50.500 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR> an 50.50.500 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
an 50.50.510 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR> an 50.50.510 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
an 50.50.520 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
an 50.60.100 &Syntax.L-Ma.Lace :cal SetSyn("lace")<CR> an 50.60.100 &Syntax.L-Ma.Lace :cal SetSyn("lace")<CR>
an 50.60.110 &Syntax.L-Ma.LamdaProlog :cal SetSyn("lprolog")<CR> an 50.60.110 &Syntax.L-Ma.LamdaProlog :cal SetSyn("lprolog")<CR>
an 50.60.120 &Syntax.L-Ma.Latte :cal SetSyn("latte")<CR> an 50.60.120 &Syntax.L-Ma.Latte :cal SetSyn("latte")<CR>

View File

@ -1,8 +1,9 @@
" Vim syntax file " Vim syntax file
" Language: cl ("Clever Language" by Multibase, http://www.mbase.com.au) " Language: cl ("Clever Language" by Multibase, http://www.mbase.com.au)
" Filename extensions: *.ent, *.eni " Filename extensions: *.ent, *.eni
" Maintainer: Philip Uren <philu@system77.com> " Maintainer: Philip Uren <philuSPAX@ieee.org> - Remove SPAX spam block
" Last update: Wed May 2 10:30:30 EST 2001 " Last update: Tue Apr 11 10:19:01 EST 2006
" $Id$
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -28,12 +29,15 @@ syn match clifError "\<elsif\>"
syn match clifError "\<else\>" syn match clifError "\<else\>"
syn match clifError "\<endif\>" syn match clifError "\<endif\>"
syn match clSpaceError "\s\+$"
" If and while regions " If and while regions
syn region clLoop transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure syn region clLoop transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure
syn region clIf transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>" contains=ALLBUT,clBreak,clProcedure syn region clIf transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>" contains=ALLBUT,clBreak,clProcedure
" Make those TODO notes and debugging stand out! " Make those TODO notes and debugging stand out!
syn keyword clTodo contained TODO BUG DEBUG FIX syn keyword clTodo contained TODO BUG DEBUG FIX
syn match clNeedsWork contained "NEED[S]*\s\s*WORK"
syn keyword clDebug contained debug syn keyword clDebug contained debug
syn match clComment "#.*$" contains=clTodo,clNeedsWork syn match clComment "#.*$" contains=clTodo,clNeedsWork
@ -77,6 +81,7 @@ if version >= 508 || !exists("did_cl_syntax_inits")
endif endif
HiLink clifError Error HiLink clifError Error
HiLink clSpaceError Error
HiLink clWhile Repeat HiLink clWhile Repeat
HiLink clConditional Conditional HiLink clConditional Conditional
HiLink clDebug Debug HiLink clDebug Debug

View File

@ -52,11 +52,11 @@ endif
" if this is a html like comment hightlight also " if this is a html like comment hightlight also
" the opening <! and the closing > as Comment. " the opening <! and the closing > as Comment.
syn region dtdComment start=+<![ \t]*--+ end=+-->+ contains=dtdTodo syn region dtdComment start=+<![ \t]*--+ end=+-->+ contains=dtdTodo,@Spell
" proper DTD comment " proper DTD comment
syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo,@Spell
" Start tags (keywords). This is contained in dtdFunction. " Start tags (keywords). This is contained in dtdFunction.

728
runtime/syntax/kconfig.vim Normal file
View File

@ -0,0 +1,728 @@
" Vim syntax file
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-11
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
if exists("g:kconfig_syntax_heavy")
syn match kconfigBegin '^' nextgroup=kconfigKeyword
\ skipwhite
syn keyword kconfigTodo contained TODO FIXME XXX NOTE
syn match kconfigComment display '#.*$' contains=kconfigTodo
syn keyword kconfigKeyword config nextgroup=kconfigSymbol
\ skipwhite
syn keyword kconfigKeyword menuconfig nextgroup=kconfigSymbol
\ skipwhite
syn keyword kconfigKeyword comment menu mainmenu
\ nextgroup=kconfigKeywordPrompt
\ skipwhite
syn keyword kconfigKeyword choice
\ nextgroup=@kconfigConfigOptions
\ skipwhite skipnl
syn keyword kconfigKeyword endmenu endchoice
syn keyword kconfigPreProc source
\ nextgroup=kconfigPath
\ skipwhite
" TODO: This is a hack. The who .*Expr stuff should really be generated so
" that we can reuse it for various nextgroups.
syn keyword kconfigConditional if endif
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn match kconfigKeywordPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=@kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigPath '"[^"\\]*\%(\\.[^"\\]*\)*"\|\S\+'
\ contained
syn match kconfigSymbol '\<\k\+\>'
\ contained
\ nextgroup=@kconfigConfigOptions
\ skipwhite skipnl
" FIXME: There is probably no reason to cluster these instead of just
" defining them in the same group.
syn cluster kconfigConfigOptions contains=kconfigTypeDefinition,
\ kconfigInputPrompt,
\ kconfigDefaultValue,
\ kconfigDependencies,
\ kconfigReverseDependencies,
\ kconfigNumericalRanges,
\ kconfigHelpText,
\ kconfigDefBool,
\ kconfigOptional
syn keyword kconfigTypeDefinition bool boolean tristate string hex int
\ contained
\ nextgroup=kconfigTypeDefPrompt,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigTypeDefPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigTypeDefPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn keyword kconfigInputPrompt prompt
\ contained
\ nextgroup=kconfigPromptPrompt
\ skipwhite
syn match kconfigPromptPrompt '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigPromptPrompt "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn keyword kconfigDefaultValue default
\ contained
\ nextgroup=@kconfigConfigOptionExpr
\ skipwhite
syn match kconfigDependencies 'depends on\|requires'
\ contained
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn keyword kconfigReverseDependencies select
\ contained
\ nextgroup=@kconfigRevDepSymbol
\ skipwhite
syn cluster kconfigRevDepSymbol contains=kconfigRevDepCSymbol,
\ kconfigRevDepNCSymbol
syn match kconfigRevDepCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigRevDepCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigRevDepNCSymbol '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn keyword kconfigNumericalRanges range
\ contained
\ nextgroup=@kconfigRangeSymbol
\ skipwhite
syn cluster kconfigRangeSymbol contains=kconfigRangeCSymbol,
\ kconfigRangeNCSymbol
syn match kconfigRangeCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=@kconfigRangeSymbol2
\ skipwhite skipnl
syn match kconfigRangeCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=@kconfigRangeSymbol2
\ skipwhite skipnl
syn match kconfigRangeNCSymbol '\<\k\+\>'
\ contained
\ nextgroup=@kconfigRangeSymbol2
\ skipwhite skipnl
syn cluster kconfigRangeSymbol2 contains=kconfigRangeCSymbol2,
\ kconfigRangeNCSymbol2
syn match kconfigRangeCSymbol2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigRangeNCSymbol2 '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn region kconfigHelpText contained
\ matchgroup=kconfigConfigOption
\ start='\%(help\|---help---\)\s*\n\ze\z(\s\+\)'
\ skip='^$'
\ end='^\z1\@!'
\ nextgroup=@kconfigConfigOptions
\ skipwhite skipnl
" XXX: Undocumented
syn keyword kconfigDefBool def_bool
\ contained
\ nextgroup=@kconfigDefBoolSymbol
\ skipwhite
syn cluster kconfigDefBoolSymbol contains=kconfigDefBoolCSymbol,
\ kconfigDefBoolNCSymbol
syn match kconfigDefBoolCSymbol '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigDefBoolCSymbol "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigDefBoolNCSymbol '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ @kconfigConfigOptions
\ skipwhite skipnl
" XXX: This is actually only a valid option for “choice”, but treating it
" specially would require a lot of extra groups.
syn keyword kconfigOptional optional
\ contained
\ nextgroup=@kconfigConfigOptions
\ skipwhite skipnl
syn keyword kconfigConfigOptionIf if
\ contained
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn cluster kconfigConfigOptionIfExpr contains=@kconfigConfOptIfExprSym,
\ kconfigConfOptIfExprNeg,
\ kconfigConfOptIfExprGroup
syn cluster kconfigConfOptIfExprSym contains=kconfigConfOptIfExprCSym,
\ kconfigConfOptIfExprNCSym
syn match kconfigConfOptIfExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr,
\ kconfigConfOptIfExprEq,
\ kconfigConfOptIfExprNEq
\ skipwhite skipnl
syn match kconfigConfOptIfExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr,
\ kconfigConfOptIfExprEq,
\ kconfigConfOptIfExprNEq
\ skipwhite skipnl
syn match kconfigConfOptIfExprNCSym '\<\k\+\>'
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr,
\ kconfigConfOptIfExprEq,
\ kconfigConfOptIfExprNEq
\ skipwhite skipnl
syn cluster kconfigConfOptIfExprSym2 contains=kconfigConfOptIfExprCSym2,
\ kconfigConfOptIfExprNCSym2
syn match kconfigConfOptIfExprEq '='
\ contained
\ nextgroup=@kconfigConfOptIfExprSym2
\ skipwhite
syn match kconfigConfOptIfExprNEq '!='
\ contained
\ nextgroup=@kconfigConfOptIfExprSym2
\ skipwhite
syn match kconfigConfOptIfExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr
\ skipwhite skipnl
syn match kconfigConfOptIfExprNCSym2 '\<\k\+\>'
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr
\ skipwhite skipnl
syn match kconfigConfOptIfExprNeg '!'
\ contained
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn match kconfigConfOptIfExprAnd '&&'
\ contained
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn match kconfigConfOptIfExprOr '||'
\ contained
\ nextgroup=@kconfigConfigOptionIfExpr
\ skipwhite
syn match kconfigConfOptIfExprGroup '('
\ contained
\ nextgroup=@kconfigConfigOptionIfGExp
\ skipwhite
" TODO: hm, this kind of recursion doesn't work right. We need another set of
" expressions that have kconfigConfigOPtionIfGExp as nextgroup and a matcher
" for '(' that sets it all off.
syn cluster kconfigConfigOptionIfGExp contains=@kconfigConfOptIfGExpSym,
\ kconfigConfOptIfGExpNeg,
\ kconfigConfOptIfExprGroup
syn cluster kconfigConfOptIfGExpSym contains=kconfigConfOptIfGExpCSym,
\ kconfigConfOptIfGExpNCSym
syn match kconfigConfOptIfGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=@kconfigConfigIf,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr,
\ kconfigConfOptIfGExpEq,
\ kconfigConfOptIfGExpNEq
\ skipwhite skipnl
syn match kconfigConfOptIfGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=@kconfigConfigIf,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr,
\ kconfigConfOptIfGExpEq,
\ kconfigConfOptIfGExpNEq
\ skipwhite skipnl
syn match kconfigConfOptIfGExpNCSym '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfOptIfExprGrpE,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr,
\ kconfigConfOptIfGExpEq,
\ kconfigConfOptIfGExpNEq
\ skipwhite skipnl
syn cluster kconfigConfOptIfGExpSym2 contains=kconfigConfOptIfGExpCSym2,
\ kconfigConfOptIfGExpNCSym2
syn match kconfigConfOptIfGExpEq '='
\ contained
\ nextgroup=@kconfigConfOptIfGExpSym2
\ skipwhite
syn match kconfigConfOptIfGExpNEq '!='
\ contained
\ nextgroup=@kconfigConfOptIfGExpSym2
\ skipwhite
syn match kconfigConfOptIfGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfOptIfExprGrpE,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr
\ skipwhite skipnl
syn match kconfigConfOptIfGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfOptIfExprGrpE,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr
\ skipwhite skipnl
syn match kconfigConfOptIfGExpNCSym2 '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfOptIfExprGrpE,
\ kconfigConfOptIfGExpAnd,
\ kconfigConfOptIfGExpOr
\ skipwhite skipnl
syn match kconfigConfOptIfGExpNeg '!'
\ contained
\ nextgroup=@kconfigConfigOptionIfGExp
\ skipwhite
syn match kconfigConfOptIfGExpAnd '&&'
\ contained
\ nextgroup=@kconfigConfigOptionIfGExp
\ skipwhite
syn match kconfigConfOptIfGExpOr '||'
\ contained
\ nextgroup=@kconfigConfigOptionIfGExp
\ skipwhite
syn match kconfigConfOptIfExprGrpE ')'
\ contained
\ nextgroup=@kconfigConfigOptions,
\ kconfigConfOptIfExprAnd,
\ kconfigConfOptIfExprOr
\ skipwhite skipnl
syn cluster kconfigConfigOptionExpr contains=@kconfigConfOptExprSym,
\ kconfigConfOptExprNeg,
\ kconfigConfOptExprGroup
syn cluster kconfigConfOptExprSym contains=kconfigConfOptExprCSym,
\ kconfigConfOptExprNCSym
syn match kconfigConfOptExprCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ kconfigConfOptExprEq,
\ kconfigConfOptExprNEq,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigConfOptExprCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ kconfigConfOptExprEq,
\ kconfigConfOptExprNEq,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigConfOptExprNCSym '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ kconfigConfOptExprEq,
\ kconfigConfOptExprNEq,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn cluster kconfigConfOptExprSym2 contains=kconfigConfOptExprCSym2,
\ kconfigConfOptExprNCSym2
syn match kconfigConfOptExprEq '='
\ contained
\ nextgroup=@kconfigConfOptExprSym2
\ skipwhite
syn match kconfigConfOptExprNEq '!='
\ contained
\ nextgroup=@kconfigConfOptExprSym2
\ skipwhite
syn match kconfigConfOptExprCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigConfOptExprCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigConfOptExprNCSym2 '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr,
\ @kconfigConfigOptions
\ skipwhite skipnl
syn match kconfigConfOptExprNeg '!'
\ contained
\ nextgroup=@kconfigConfigOptionExpr
\ skipwhite
syn match kconfigConfOptExprAnd '&&'
\ contained
\ nextgroup=@kconfigConfigOptionExpr
\ skipwhite
syn match kconfigConfOptExprOr '||'
\ contained
\ nextgroup=@kconfigConfigOptionExpr
\ skipwhite
syn match kconfigConfOptExprGroup '('
\ contained
\ nextgroup=@kconfigConfigOptionGExp
\ skipwhite
syn cluster kconfigConfigOptionGExp contains=@kconfigConfOptGExpSym,
\ kconfigConfOptGExpNeg,
\ kconfigConfOptGExpGroup
syn cluster kconfigConfOptGExpSym contains=kconfigConfOptGExpCSym,
\ kconfigConfOptGExpNCSym
syn match kconfigConfOptGExpCSym '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr,
\ kconfigConfOptGExpEq,
\ kconfigConfOptGExpNEq
\ skipwhite skipnl
syn match kconfigConfOptGExpCSym "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr,
\ kconfigConfOptGExpEq,
\ kconfigConfOptGExpNEq
\ skipwhite skipnl
syn match kconfigConfOptGExpNCSym '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr,
\ kconfigConfOptGExpEq,
\ kconfigConfOptGExpNEq
\ skipwhite skipnl
syn cluster kconfigConfOptGExpSym2 contains=kconfigConfOptGExpCSym2,
\ kconfigConfOptGExpNCSym2
syn match kconfigConfOptGExpEq '='
\ contained
\ nextgroup=@kconfigConfOptGExpSym2
\ skipwhite
syn match kconfigConfOptGExpNEq '!='
\ contained
\ nextgroup=@kconfigConfOptGExpSym2
\ skipwhite
syn match kconfigConfOptGExpCSym2 '"[^"\\]*\%(\\.[^"\\]*\)*"'
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr
\ skipwhite skipnl
syn match kconfigConfOptGExpCSym2 "'[^'\\]*\%(\\.[^'\\]*\)*'"
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr
\ skipwhite skipnl
syn match kconfigConfOptGExpNCSym2 '\<\k\+\>'
\ contained
\ nextgroup=kconfigConfOptExprGrpE,
\ kconfigConfOptGExpAnd,
\ kconfigConfOptGExpOr
\ skipwhite skipnl
syn match kconfigConfOptGExpNeg '!'
\ contained
\ nextgroup=@kconfigConfigOptionGExp
\ skipwhite
syn match kconfigConfOptGExpAnd '&&'
\ contained
\ nextgroup=@kconfigConfigOptionGExp
\ skipwhite
syn match kconfigConfOptGExpOr '||'
\ contained
\ nextgroup=@kconfigConfigOptionGExp
\ skipwhite
syn match kconfigConfOptExprGrpE ')'
\ contained
\ nextgroup=kconfigConfigOptionIf,
\ kconfigConfOptExprAnd,
\ kconfigConfOptExprOr
\ skipwhite skipnl
hi def link kconfigTodo Todo
hi def link kconfigComment Comment
hi def link kconfigKeyword Keyword
hi def link kconfigPreProc PreProc
hi def link kconfigConditional Conditional
hi def link kconfigPrompt String
hi def link kconfigKeywordPrompt kconfigPrompt
hi def link kconfigPath String
hi def link kconfigSymbol String
hi def link kconfigConstantSymbol Constant
hi def link kconfigConfigOption Type
hi def link kconfigTypeDefinition kconfigConfigOption
hi def link kconfigTypeDefPrompt kconfigPrompt
hi def link kconfigInputPrompt kconfigConfigOption
hi def link kconfigPromptPrompt kconfigPrompt
hi def link kconfigDefaultValue kconfigConfigOption
hi def link kconfigDependencies kconfigConfigOption
hi def link kconfigReverseDependencies kconfigConfigOption
hi def link kconfigRevDepCSymbol kconfigConstantSymbol
hi def link kconfigRevDepNCSymbol kconfigSymbol
hi def link kconfigNumericalRanges kconfigConfigOption
hi def link kconfigRangeCSymbol kconfigConstantSymbol
hi def link kconfigRangeNCSymbol kconfigSymbol
hi def link kconfigRangeCSymbol2 kconfigConstantSymbol
hi def link kconfigRangeNCSymbol2 kconfigSymbol
hi def link kconfigHelpText Normal
hi def link kconfigDefBool kconfigConfigOption
hi def link kconfigDefBoolCSymbol kconfigConstantSymbol
hi def link kconfigDefBoolNCSymbol kconfigSymbol
hi def link kconfigOptional kconfigConfigOption
hi def link kconfigConfigOptionIf Conditional
hi def link kconfigConfOptIfExprCSym kconfigConstantSymbol
hi def link kconfigConfOptIfExprNCSym kconfigSymbol
hi def link kconfigOperator Operator
hi def link kconfigConfOptIfExprEq kconfigOperator
hi def link kconfigConfOptIfExprNEq kconfigOperator
hi def link kconfigConfOptIfExprCSym2 kconfigConstantSymbol
hi def link kconfigConfOptIfExprNCSym2 kconfigSymbol
hi def link kconfigConfOptIfExprNeg kconfigOperator
hi def link kconfigConfOptIfExprAnd kconfigOperator
hi def link kconfigConfOptIfExprOr kconfigOperator
hi def link kconfigDelimiter Delimiter
hi def link kconfigConfOptIfExprGroup kconfigDelimiter
hi def link kconfigConfOptIfGExpCSym kconfigConstantSymbol
hi def link kconfigConfOptIfGExpNCSym kconfigSymbol
hi def link kconfigConfOptIfGExpEq kconfigOperator
hi def link kconfigConfOptIfGExpNEq kconfigOperator
hi def link kconfigConfOptIfGExpCSym2 kconfigConstantSymbol
hi def link kconfigConfOptIfGExpNCSym2 kconfigSymbol
hi def link kconfigConfOptIfGExpNeg kconfigOperator
hi def link kconfigConfOptIfGExpAnd kconfigOperator
hi def link kconfigConfOptIfGExpOr kconfigOperator
hi def link kconfigConfOptIfExprGrpE kconfigDelimiter
hi def link kconfigConfOptExprCSym kconfigConstantSymbol
hi def link kconfigConfOptExprNCSym kconfigSymbol
hi def link kconfigConfOptExprEq kconfigOperator
hi def link kconfigConfOptExprNEq kconfigOperator
hi def link kconfigConfOptExprCSym2 kconfigConstantSymbol
hi def link kconfigConfOptExprNCSym2 kconfigSymbol
hi def link kconfigConfOptExprNeg kconfigOperator
hi def link kconfigConfOptExprAnd kconfigOperator
hi def link kconfigConfOptExprOr kconfigOperator
hi def link kconfigConfOptExprGroup kconfigDelimiter
hi def link kconfigConfOptGExpCSym kconfigConstantSymbol
hi def link kconfigConfOptGExpNCSym kconfigSymbol
hi def link kconfigConfOptGExpEq kconfigOperator
hi def link kconfigConfOptGExpNEq kconfigOperator
hi def link kconfigConfOptGExpCSym2 kconfigConstantSymbol
hi def link kconfigConfOptGExpNCSym2 kconfigSymbol
hi def link kconfigConfOptGExpNeg kconfigOperator
hi def link kconfigConfOptGExpAnd kconfigOperator
hi def link kconfigConfOptGExpOr kconfigOperator
hi def link kconfigConfOptExprGrpE kconfigConfOptIfExprGroup
else
syn keyword kconfigTodo contained TODO FIXME XXX NOTE
syn match kconfigComment display '#.*$' contains=kconfigTodo
syn keyword kconfigKeyword config menuconfig comment menu mainmenu
syn keyword kconfigConditional choice endchoice if endif
syn keyword kconfigPreProc source
\ nextgroup=kconfigPath
\ skipwhite
syn match kconfigSpecialChar contained '\\.'
syn region kconfigPath matchgroup=kconfigPath
\ start=+"+ skip=+\\\\\|\\\"+ end=+"+
\ contains=kconfigSpecialChar
syn region kconfigPath matchgroup=kconfigPath
\ start=+'+ skip=+\\\\\|\\\'+ end=+'+
\ contains=kconfigSpecialChar
syn match kconfigPath '\S\+'
\ contained
syn region kconfigString matchgroup=kconfigString
\ start=+"+ skip=+\\\\\|\\\"+ end=+"+
\ contains=kconfigSpecialChar
syn region kconfigString matchgroup=kconfigString
\ start=+'+ skip=+\\\\\|\\\'+ end=+'+
\ contains=kconfigSpecialChar
syn keyword kconfigType bool boolean tristate string hex int
syn keyword kconfigOption prompt default requires select range
\ optional
syn match kconfigOption 'depends\%( on\)'
syn keyword kconfigMacro def_bool def_tristate
syn region kconfigHelpText contained
\ matchgroup=kconfigConfigOption
\ start='\%(help\|---help---\)\s*\n\ze\z(\s\+\)'
\ skip='^$'
\ end='^\z1\@!'
hi def link kconfigTodo Todo
hi def link kconfigComment Comment
hi def link kconfigKeyword Keyword
hi def link kconfigConditional Conditional
hi def link kconfigPreProc PreProc
hi def link kconfigSpecialChar SpecialChar
hi def link kconfigPath String
hi def link kconfigString String
hi def link kconfigType Type
hi def link kconfigOption Identifier
hi def link kconfigHelpText Normal
hi def link kconfigmacro Macro
endif
let b:current_syntax = "kconfig"
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@ -5,9 +5,9 @@
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de> " Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
" Issac Trotts <ijtrotts@ucdavis.edu> " Issac Trotts <ijtrotts@ucdavis.edu>
" URL: http://www.ocaml.info/vim/syntax/ocaml.vim " URL: http://www.ocaml.info/vim/syntax/ocaml.vim
" Last Change: 2005 May 18 - Added 'NOTE' to highlighted comment words (MM) " Last Change: 2006 Apr 11 - Fixed an initialization bug (MM)
" 2005 May 18 - Added 'NOTE' to highlighted comment words (MM)
" 2005 Apr 14 - Fixed a small bug concerning 'include' (MM) " 2005 Apr 14 - Fixed a small bug concerning 'include' (MM)
" 2005 Mar 15 - Added a patch from David Baelde (MM)
" A minor patch was applied to the official version so that object/end " A minor patch was applied to the official version so that object/end
" can be distinguished from begin/end, which is used for indentation, " can be distinguished from begin/end, which is used for indentation,
@ -17,7 +17,7 @@
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
if version < 600 if version < 600
syntax clear syntax clear
elseif exists("b:current_syntax") && b:current_syntax != "ocaml" elseif exists("b:current_syntax") && b:current_syntax == "ocaml"
finish finish
endif endif

View File

@ -3,12 +3,12 @@
" Filename extensions: *.p (collides with Pascal), " Filename extensions: *.p (collides with Pascal),
" *.i (collides with assembler) " *.i (collides with assembler)
" *.w (collides with cweb) " *.w (collides with cweb)
" Maintainer: Philip Uren <philu@computer.org> " Maintainer: Philip Uren <philuSPAX@ieee.org> Remove "SPAX" spam block
" Contributors: Chris Ruprecht <chrup@mac.com> " Contributors: Chris Ruprecht <chrup@mac.com>
" Philip Uren <philu@computer.org>
" Mikhail Kuperblum <mikhail@whasup.com> " Mikhail Kuperblum <mikhail@whasup.com>
" URL: http://www.zeta.org.au/~philu/vim/progress.vim " John Florian <jflorian@voyager.net>
" Last Change: Thu May 3 08:49:47 EST 2001 " Last Change: Tue Apr 11 10:18:23 EST 2006
" $Id$
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -24,6 +24,9 @@ else
set iskeyword=@,48-57,_,-,!,#,$,% set iskeyword=@,48-57,_,-,!,#,$,%
endif endif
" The Progress editor doesn't cope with tabs very well.
set expandtab
syn case ignore syn case ignore
" Progress Blocks of code and mismatched "end." errors. " Progress Blocks of code and mismatched "end." errors.
@ -31,7 +34,7 @@ syn match ProgressEndError "\<end\>"
syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>" contains=ALLBUT,ProgressProcedure,ProgressFunction syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>\|\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
" These are Progress reserved words, " These are Progress reserved words,
" and they could go in ProgressReserved, " and they could go in ProgressReserved,
@ -43,14 +46,23 @@ syn keyword ProgressFor each where
syn keyword ProgressTodo contained TODO BUG FIX syn keyword ProgressTodo contained TODO BUG FIX
syn keyword ProgressDebug contained DEBUG syn keyword ProgressDebug contained DEBUG
syn keyword ProgressDebug debugger syn keyword ProgressDebug debugger
syn match ProgressTodo contained "NEED[S]*\s\s*WORK"
syn keyword ProgressFunction procedure function " If you like to highlight the whole line of
" the start and end of procedures
" to make the whole block of code stand out:
syn match ProgressProcedure "^\s*procedure.*"
syn match ProgressProcedure "^\s*end\s\s*procedure.*"
syn match ProgressFunction "^\s*function.*"
syn match ProgressFunction "^\s*end\s\s*function.*"
" ... otherwise use this:
" syn keyword ProgressFunction procedure function
syn keyword ProgressReserved accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space] syn keyword ProgressReserved accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space]
syn keyword ProgressReserved authorization auto-ret[urn] avail[able] back[ground] before-h[ide] begins bell between blank break btos by call can-do can-find syn keyword ProgressReserved authorization auto-ret[urn] avail[able] back[ground] before-h[ide] begins bell between blank break btos by call can-do can-find
syn keyword ProgressReserved center[ed] check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of syn keyword ProgressReserved center[ed] character check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of
syn keyword ProgressReserved cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers syn keyword ProgressReserved cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers
syn keyword ProgressReserved dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimals declare syn keyword ProgressReserved dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimal decimals declare
syn keyword ProgressReserved def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp syn keyword ProgressReserved def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp
syn keyword ProgressReserved disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive syn keyword ProgressReserved disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive
syn keyword ProgressReserved exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive syn keyword ProgressReserved exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive
@ -58,7 +70,7 @@ syn keyword ProgressReserved find-global find-next-occurrence find-prev-occurren
syn keyword ProgressReserved fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line frame-name frame-row frame-val[ue] syn keyword ProgressReserved fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line frame-name frame-row frame-val[ue]
syn keyword ProgressReserved from from-c[hars] from-p[ixels] gateway[s] get-byte get-codepage[s] get-coll[ations] get-key-val[ue] getbyte global go-on syn keyword ProgressReserved from from-c[hars] from-p[ixels] gateway[s] get-byte get-codepage[s] get-coll[ations] get-key-val[ue] getbyte global go-on
syn keyword ProgressReserved go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert syn keyword ProgressReserved go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert
syn keyword ProgressReserved into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label syn keyword ProgressReserved integer into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label
syn keyword ProgressReserved last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class syn keyword ProgressReserved last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class
syn keyword ProgressReserved map member message message-lines mouse mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s] syn keyword ProgressReserved map member message message-lines mouse mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s]
syn keyword ProgressReserved no-lock no-map no-mes[sage] no-pause no-prefe[tch] no-undo no-val[idate] no-wait not null num-ali[ases] num-dbs num-entries syn keyword ProgressReserved no-lock no-map no-mes[sage] no-pause no-prefe[tch] no-undo no-val[idate] no-wait not null num-ali[ases] num-dbs num-entries
@ -70,39 +82,51 @@ syn keyword ProgressReserved release reposition retain retry return return-val[u
syn keyword ProgressReserved scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream syn keyword ProgressReserved scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream
syn keyword ProgressReserved stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title syn keyword ProgressReserved stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title
syn keyword ProgressReserved to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update syn keyword ProgressReserved to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update
syn keyword ProgressReserved use-index use-revvideo use-underline user user[id] using v6frame value values view view-as vms wait-for web-con[text] syn keyword ProgressReserved use-index use-revvideo use-underline user user[id] using v6frame value values variable view view-as vms wait-for web-con[text]
syn keyword ProgressReserved window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit syn keyword ProgressReserved window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit
syn keyword ProgressReserved _control _list _memory _msg _pcontrol _serial[-num] _trace syn keyword ProgressReserved _control _list _memory _msg _pcontrol _serial[-num] _trace
" Strings. Handles embedded quotes. " Strings. Handles embedded quotes.
" Note that, for some reason, Progress doesn't use the backslash, "\" " Note that, for some reason, Progress doesn't use the backslash, "\"
" as the escape character; it uses tilde, "~". " as the escape character; it uses tilde, "~".
syn region ProgressString matchgroup=ProgressQuote start=+"+ end=+"+ skip=+\~"+ syn region ProgressString matchgroup=ProgressQuote start=+"+ end=+"+ skip=+\~'\|\~\~+
syn region ProgressString matchgroup=ProgressQuote start=+'+ end=+'+ skip=+\~'+ syn region ProgressString matchgroup=ProgressQuote start=+'+ end=+'+ skip=+\~'\|\~\~+
syn match ProgressIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>()" syn match ProgressIdentifier "\<[a-zA-Z_%#]+\>()"
" syn match ProgressDelimiter "()" " syn match ProgressDelimiter "()"
" syn match ProgressMatrixDelimiter "[][]" syn match ProgressMatrixDelimiter "[][]"
" If you prefer you can highlight the range " If you prefer you can highlight the range
"syn match ProgressMatrixDelimiter "[\d\+\.\.\d\+]" "syn match ProgressMatrixDelimiter "[\d\+\.\.\d\+]"
syn match ProgressNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" syn match ProgressNumber "\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
syn match ProgressByte "\$[0-9a-fA-F]\+" syn match ProgressByte "\$[0-9a-fA-F]\+"
" More values: Logicals, and Progress's unknown value, ?.
syn match ProgressNumber "?"
syn keyword ProgressNumber true false yes no
" If you don't like tabs: " If you don't like tabs:
"syn match ProgressShowTab "\t" syn match ProgressShowTab "\t"
"syn match ProgressShowTabc "\t"
" If you don't like white space on the end of lines:
" syn match ProgressSpaceError "\s\+$"
syn region ProgressComment start="/\*" end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug syn region ProgressComment start="/\*" end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug
syn match ProgressInclude "^[ ]*[{].*\.i[}]" syn region ProgressInclude start="^[ ]*[{][^&]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
syn region ProgressPreProc start="&" end="\>" contained
syn match ProgressSubstitute "^[ ]*[{].*[^i][}]" " This next line works reasonably well.
syn match ProgressPreProc "^[ ]*&.*" " syn match ProgressOperator "[!;|)(:.><+*=-]"
"
syn match ProgressOperator "[!;|)(:.><+*=-]" " Progress allows a '-' to be part of an identifier. To be considered
" the subtraction/negation operation operator it needs a non-word
" character on either side. Also valid are cases where the minus
" operation appears at the beginning or end of a line.
" This next line trips up on "no-undo" etc.
" syn match ProgressOperator "[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
syn match ProgressOperator "[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"
syn keyword ProgressOperator <= <> >= abs[olute] accelerator across add-first add-last advise alert-box allow-replication ansi-only anywhere append appl-alert[-boxes] application as-cursor ask-overwrite syn keyword ProgressOperator <= <> >= abs[olute] accelerator across add-first add-last advise alert-box allow-replication ansi-only anywhere append appl-alert[-boxes] application as-cursor ask-overwrite
syn keyword ProgressOperator attach[ment] auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-z[ap] available-formats ave[rage] avg backward[s] base-key batch[-mode] bgc[olor] binary syn keyword ProgressOperator attach[ment] auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-z[ap] available-formats ave[rage] avg backward[s] base-key batch[-mode] bgc[olor] binary
@ -114,7 +138,7 @@ syn keyword ProgressOperator column-label-bgc[olor] column-label-dcolor column-l
syn keyword ProgressOperator connect constrained contents context context-pop[up] control-containe[r] c[ontrol-form] convert-to-offse[t] convert count cpcase cpcoll cpint[ernal] cplog syn keyword ProgressOperator connect constrained contents context context-pop[up] control-containe[r] c[ontrol-form] convert-to-offse[t] convert count cpcase cpcoll cpint[ernal] cplog
syn keyword ProgressOperator cpprint cprcodein cprcodeout cpterm crc-val[ue] c[reate-control] create-result-list-entry create-test-file current-column current-environm[ent] current-iteration syn keyword ProgressOperator cpprint cprcodein cprcodeout cpterm crc-val[ue] c[reate-control] create-result-list-entry create-test-file current-column current-environm[ent] current-iteration
syn keyword ProgressOperator current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-entry-retur[n] data-t[ype] date date-f[ormat] day db-references syn keyword ProgressOperator current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-entry-retur[n] data-t[ype] date date-f[ormat] day db-references
syn keyword ProgressOperator dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] dec[imal] default-b[utton] default-extensio[n] defer-lob-fetch defined delete-char delete-current-row syn keyword ProgressOperator dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] dec[imal] default-b[utton] default-extensio[n] defer-lob-fetch define defined delete-char delete-current-row
syn keyword ProgressOperator delete-line delete-selected-row delete-selected-rows deselect-focused-row deselect-rows deselect-selected-row d[esign-mode] dialog-box dialog-help dir disabled display-message syn keyword ProgressOperator delete-line delete-selected-row delete-selected-rows deselect-focused-row deselect-rows deselect-selected-row d[esign-mode] dialog-box dialog-help dir disabled display-message
syn keyword ProgressOperator display-t[ype] double drag-enabled drop-down drop-down-list dump dynamic echo edge edge[-chars] edge-p[ixels] editor empty end-key endkey entered eq error error-col[umn] syn keyword ProgressOperator display-t[ype] double drag-enabled drop-down drop-down-list dump dynamic echo edge edge[-chars] edge-p[ixels] editor empty end-key endkey entered eq error error-col[umn]
syn keyword ProgressOperator error-row event-t[ype] event[s] exclusive-id execute exp expand extended extent external extract fetch-selected-row fgc[olor] file file-name file-off[set] file-type syn keyword ProgressOperator error-row event-t[ype] event[s] exclusive-id execute exp expand extended extent external extract fetch-selected-row fgc[olor] file file-name file-off[set] file-type
@ -174,38 +198,30 @@ if version >= 508 || !exists("did_progress_syntax_inits")
endif endif
" The default methods for highlighting. Can be overridden later. " The default methods for highlighting. Can be overridden later.
HiLink ProgressByte Number HiLink ProgressByte Number
HiLink ProgressCase Repeat HiLink ProgressCase Repeat
HiLink ProgressComment StatusLine HiLink ProgressComment Comment
HiLink ProgressConditional Conditional HiLink ProgressConditional Conditional
HiLink ProgressDebug Debug HiLink ProgressDebug Debug
HiLink ProgressDo Repeat HiLink ProgressDo Repeat
HiLink ProgressEndError Error HiLink ProgressEndError Error
HiLink ProgressFor Repeat HiLink ProgressFor Repeat
HiLink ProgressFunction Procedure HiLink ProgressFunction Procedure
HiLink ProgressIdentifier Identifier
HiLink ProgressInclude Include HiLink ProgressInclude Include
HiLink ProgressLabel Label
HiLink ProgressMatrixDelimiter Identifier HiLink ProgressMatrixDelimiter Identifier
HiLink ProgressModifier Type
HiLink ProgressNumber Number HiLink ProgressNumber Number
HiLink ProgressOperator Function HiLink ProgressOperator Operator
HiLink ProgressPreProc PreProc HiLink ProgressPreProc PreProc
HiLink ProgressProcedure Procedure HiLink ProgressProcedure Procedure
HiLink ProgressQuote Delimiter HiLink ProgressQuote Delimiter
HiLink ProgressRepeat Repeat HiLink ProgressRepeat Repeat
HiLink ProgressReserved Identifier HiLink ProgressReserved Statement
HiLink ProgressSpaceError Error
HiLink ProgressString String HiLink ProgressString String
HiLink ProgressStructure Structure
HiLink ProgressSubstitute PreProc
HiLink ProgressTodo Todo HiLink ProgressTodo Todo
HiLink ProgressType Statement HiLink ProgressType Statement
HiLink ProgressUnclassified Statement HiLink ProgressShowTab Error
" Optional highlighting
" HiLink ProgressDelimiter Identifier
" HiLink ProgressShowTab Error
" HiLink ProgressShowTabc Error
" HiLink ProgressIdentifier Identifier
delcommand HiLink delcommand HiLink
endif endif

View File

@ -1,11 +1,15 @@
" Vim syntax file " Vim syntax file
" Language: Rexx " Language: Rexx
" Maintainer: Thomas Geulig <geulig@nentec.de> " Maintainer: Thomas Geulig <geulig@nentec.de>
" Last Change: 2001 May 2 " Last Change: 2005 Dez 9, added some <http://www.ooRexx.org>-coloring,
" URL: http://mywebpage.netscape.com/sharpPeople/vim/syntax/rexx.vim " line comments, do *over*, messages, directives,
" highlighting classes, methods, routines and requires
" Rony G. Flatscher <rony.flatscher@wu-wien.ac.at>
" "
" Special Thanks to Dan Sharp <dwsharp@hotmail.com> for comments and additions " URL: http://www.geulig.de/vim/rexx.vim
" (and providing the webspace) "
" Special Thanks to Dan Sharp <dwsharp@hotmail.com> and Rony G. Flatscher
" <Rony.Flatscher@wu-wien.ac.at> for comments and additions
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -17,65 +21,126 @@ endif
syn case ignore syn case ignore
" add to valid identifier chars
setlocal iskeyword+=.
setlocal iskeyword+=!
setlocal iskeyword+=?
" ---rgf, position important: must be before comments etc. !
syn match rexxOperator "[-=|\/\\\+\*\[\],;<>&\~]"
syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
syn match rexxEnvironmentSymbol "\<\.\+\([a-zA-Z0-9._?!]\)*\>"
" A Keyword is the first symbol in a clause. A clause begins at the start " A Keyword is the first symbol in a clause. A clause begins at the start
" of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always " of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always
" followed by an implied semicolon. " followed by an implied semicolon.
syn match rexxClause "\(^\|;\|:\|then \|else \|otherwise \)\s*\w\+" contains=ALL syn match rexxClause "\(^\|;\|:\|then \|else \|otherwise \)\s*\w\+" contains=ALLBUT,rexxParse2,rexxRaise2
" Considered keywords when used together in a phrase and begin a clause " Considered keywords when used together in a phrase and begin a clause
syn match rexxKeyword contained "\<signal\( on \(error\|failure\|halt\|notready\|novalue\|syntax\|lostdigits\)\(\s\+name\)\=\)\=\>" syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\=\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>"
syn match rexxKeyword contained "\<signal off \(error\|failure\|halt\|notready\|novalue\|syntax\|lostdigits\)\>" syn match rexxParse2 "\<with\>" contained containedin=rexxParse
syn match rexxKeyword contained "\<call off \(error\|failure\|halt\|notready\)\>"
syn match rexxKeyword contained "\<parse \(upper \)\=\(arg\|linein\|pull\|source\|var\|value\|version\)\>"
syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>" syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>" syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>"
syn match rexxKeyword contained "\<procedure\( expose\)\=\>" syn match rexxKeyword contained "\<procedure\(\s*expose\)\=\>"
syn match rexxKeyword contained "\<do\( forever\)\=\>" syn match rexxKeyword contained "\<do\>\(\s*forever\)\=\>"
syn match rexxKeyword contained "\<use\>\s*\<arg\>"
" Another keyword phrase, separated to aid highlighting in rexxFunction " Another keyword phrase, separated to aid highlighting in rexxFunction
syn match rexxKeyword2 contained "\<call\( on \(error\|failure\|halt\|notready\)\(\s\+name\)\=\)\=\>" syn match rexxKeyword contained "\<signal\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|lostdigits\|nomethod\|nostring\|notready\|novalue\|syntax\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
syn match rexxKeyword2 contained "\<call\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|notready\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
" Considered keywords when they begin a clause " Considered keywords when they begin a clause
syn match rexxKeyword contained "\<\(arg\|drop\|end\|exit\|if\|interpret\|iterate\|leave\|nop\)\>" syn match rexxKeyword contained "\<\(arg\|do\|drop\|end\|exit\|expose\|forward\|if\|interpret\|iterate\|leave\|nop\)\>"
syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|return\|say\|select\|trace\)\>" syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
" Conditional phrases " Conditional phrases
syn match rexxConditional "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\)\( \|\s*$\)" contains=ALLBUT,rexxConditional syn match rexxConditional "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\( \|\s*$\)"
syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|else\|otherwise\)\>" syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\>"
" Assignments -- a keyword followed by an equal sign becomes a variable " must be after Conditional phrases!
syn match rexxAssign "\<\w\+\s*=\s*" contains=rexxSpecialVariable syn match rexxKeyword ".*\<\(then\|else\)\s*\<do\>"
" Raise statement
syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\="
syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|return\)\>" contained containedin=rexxRaise
" Forward statement keywords
syn match rexxForward "\(^\|;\|:\)\<forward\>\s*"
syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained containedin=rexxForward
" Functions/Procedures " Functions/Procedures
syn match rexxFunction "\<\h\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword syn match rexxFunction "\<\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword,rexxIdentifier
syn match rexxFunction "\<\(arg\|trace\)\(/\*\s*\*/\)*("me=e-1 syn match rexxFunction "\<\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>("me=e-1
syn match rexxFunction "\<call\( on \(error\|failure\|halt\|notready\)\(\s\+name\)\=\)\=\>\s\+\w\+\>" contains=rexxKeyword2 syn match rexxFunction "\<call\s\+\k\+\>" contains=rexxKeyword2
syn match rexxFunction "[()]"
" String constants " String constants
syn region rexxString start=+"+ skip=+\\\\\|\\'+ end=+"+ syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\=+ oneline
syn region rexxString start=+'+ skip=+\\\\\|\\"+ end=+'+ syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\=+ oneline
syn match rexxCharacter +"'[^\\]'"+
" Catch errors caused by wrong parenthesis " Catch errors caused by wrong parenthesis
syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxUserLabel,rexxKeyword syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword
syn match rexxParenError ")" syn match rexxParenError ")"
syn match rexxInParen "[\\[\\]{}]" syn match rexxInParen "[\\[\\]{}]"
" Comments " Comments
syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment
syn match rexxCommentError "\*/" syn match rexxCommentError "\*/"
syn match rexxLineComment /--.*/
syn keyword rexxTodo contained TODO FIXME XXX syn keyword rexxTodo contained TODO FIXME XXX
" ooRexx messages
syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1
syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator
" Highlight User Labels " Highlight User Labels
syn match rexxUserLabel "\<\I\i*\s*:"me=e-1 syn match rexxLabel "^\s*\k*\s*:"me=e-1
syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$"
" the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one
syn match rexxLineContinue "-\ze\(\s+--.*\|\s*\/\*.*\)*$"
" Special Variables " Special Variables
syn keyword rexxSpecialVariable sigl rc result syn keyword rexxSpecialVariable sigl rc result self super
syn match rexxCompoundVariable "\<\w\+\.\w*\>"
" Constants
syn keyword rexxConst .true .false .nil
" ooRexx builtin classes, first define dot to be o.k. in keywords
syn keyword rexxBuiltinClass .object .class .method .message
syn keyword rexxBuiltinClass .monitor .alarm
syn keyword rexxBuiltinClass .stem .stream .string
syn keyword rexxBuiltinClass .mutablebuffer
syn keyword rexxBuiltinClass .array .list .queue .directory .table .set
syn keyword rexxBuiltinClass .relation .bag .supplier .regularExpressions
" Windows-only classes
syn keyword rexxBuiltinClass .OLEObject .MenuObject .WindowsClipboard .WindowsEventLog
syn keyword rexxBuiltinClass .WindowsManager .WindowObject .WindowsProgramManager
" ooRexx directives, ---rgf location important, otherwise directives in top of
" file not matched!
syn region rexxClass start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
syn region rexxMethod start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
syn region rexxRequires start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
syn region rexxRoutine start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClass,rexxMethod,rexxRoutine,rexxRequires keepend
if !exists("rexx_minlines") if !exists("rexx_minlines")
let rexx_minlines = 10 " let rexx_minlines = 10
let rexx_minlines = 500
endif endif
exec "syn sync ccomment rexxComment minlines=" . rexx_minlines exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
@ -90,7 +155,7 @@ if version >= 508 || !exists("did_rexx_syn_inits")
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
endif endif
HiLink rexxUserLabel Function HiLink rexxLabel Function
HiLink rexxCharacter Character HiLink rexxCharacter Character
HiLink rexxParenError rexxError HiLink rexxParenError rexxError
HiLink rexxInParen rexxError HiLink rexxInParen rexxError
@ -105,6 +170,34 @@ if version >= 508 || !exists("did_rexx_syn_inits")
HiLink rexxSpecialVariable Special HiLink rexxSpecialVariable Special
HiLink rexxConditional rexxKeyword HiLink rexxConditional rexxKeyword
HiLink rexxOperator Operator
HiLink rexxMessageOperator rexxOperator
HiLink rexxLineComment RexxComment
HiLink rexxLineContinue WildMenu
HiLink rexxDirective rexxKeyword
HiLink rexxClass Type
HiLink rexxMethod rexxFunction
HiLink rexxRequires Include
HiLink rexxRoutine rexxFunction
HiLink rexxConst Constant
HiLink rexxTypeSpecifier Type
HiLink rexxBuiltinClass rexxTypeSpecifier
HiLink rexxEnvironmentSymbol rexxConst
HiLink rexxMessage rexxFunction
HiLink rexxParse rexxKeyword
HiLink rexxParse2 rexxParse
HiLink rexxRaise rexxKeyword
HiLink rexxRaise2 rexxRaise
HiLink rexxForward rexxKeyword
HiLink rexxForward2 rexxForward
delcommand HiLink delcommand HiLink
endif endif

View File

@ -58,8 +58,8 @@ syn match xmlError "[<&]"
" "
" <tag foo.attribute = "value"> " <tag foo.attribute = "value">
" ^^^^^^^ " ^^^^^^^
syn region xmlString contained start=+"+ end=+"+ contains=xmlEntity display syn region xmlString contained start=+"+ end=+"+ contains=xmlEntity,@Spell display
syn region xmlString contained start=+'+ end=+'+ contains=xmlEntity display syn region xmlString contained start=+'+ end=+'+ contains=xmlEntity,@Spell display
" punctuation (within attributes) e.g. <tag xml:foo.attribute ...> " punctuation (within attributes) e.g. <tag xml:foo.attribute ...>
@ -183,7 +183,7 @@ if exists('g:xml_syntax_folding')
\ end=+</\z1\_\s\{-}>+ \ end=+</\z1\_\s\{-}>+
\ matchgroup=xmlEndTag end=+/>+ \ matchgroup=xmlEndTag end=+/>+
\ fold \ fold
\ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook \ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook,@Spell
\ keepend \ keepend
\ extend \ extend
@ -239,7 +239,7 @@ syn region xmlCommentPart
\ start=+--+ \ start=+--+
\ end=+--+ \ end=+--+
\ contained \ contained
\ contains=xmlTodo,@xmlCommentHook \ contains=xmlTodo,@xmlCommentHook,@Spell
" CData sections " CData sections
@ -249,7 +249,7 @@ syn region xmlCommentPart
syn region xmlCdata syn region xmlCdata
\ start=+<!\[CDATA\[+ \ start=+<!\[CDATA\[+
\ end=+]]>+ \ end=+]]>+
\ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook \ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook,@Spell
\ keepend \ keepend
\ extend \ extend

View File

@ -2,7 +2,7 @@
# Makefile for Vim on OpenVMS # Makefile for Vim on OpenVMS
# #
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com> # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
# Last change: 2006 Mar 31 # Last change: 2006 Apr 11
# #
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
# with MMS and MMK # with MMS and MMK
@ -44,6 +44,7 @@ MODEL = BIG
# GUI or terminal mode executable. # GUI or terminal mode executable.
# Comment out if you want just the character terminal mode only. # Comment out if you want just the character terminal mode only.
# GUI with Motif
GUI = YES GUI = YES
# GUI with GTK # GUI with GTK
@ -136,12 +137,24 @@ VIMRUN = ""
CONFIG_H = os_vms_conf.h CONFIG_H = os_vms_conf.h
# GTK or XPM but not both
.IFDEF GTK .IFDEF GTK
.IFDEF GUI .IFDEF GUI
.IFDEF XPM
.ELSE .ELSE
GUI = YES GUI = YES
.ENDIF .ENDIF
.IFDEF XPM
XPM = ""
.ENDIF
.ENDIF
.IFDEF XPM
.IFDEF GUI
.ELSE
GUI = YES
.ENDIF
.IFDEF GTK
GTK = ""
.ENDIF .ENDIF
.ENDIF .ENDIF

View File

@ -207,6 +207,14 @@ searchpath_save(char *name)
} }
#ifdef WIN3264 #ifdef WIN3264
#ifndef CSIDL_COMMON_PROGRAMS
# define CSIDL_COMMON_PROGRAMS 0x0017
#endif
#ifndef CSIDL_COMMON_DESKTOPDIRECTORY
# define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019
#endif
/* /*
* Get the path to a requested Windows shell folder. * Get the path to a requested Windows shell folder.
* *
@ -234,22 +242,14 @@ get_shell_folder_path(
if (strcmp(shell_folder_name, "desktop") == 0) if (strcmp(shell_folder_name, "desktop") == 0)
{ {
pcsidl = &desktop_csidl; pcsidl = &desktop_csidl;
#ifdef CSIDL_COMMON_DESKTOPDIRECTORY
csidl = CSIDL_COMMON_DESKTOPDIRECTORY; csidl = CSIDL_COMMON_DESKTOPDIRECTORY;
alt_csidl = CSIDL_DESKTOP; alt_csidl = CSIDL_DESKTOP;
#else
csidl = CSIDL_DESKTOP;
#endif
} }
else if (strncmp(shell_folder_name, "Programs", 8) == 0) else if (strncmp(shell_folder_name, "Programs", 8) == 0)
{ {
pcsidl = &programs_csidl; pcsidl = &programs_csidl;
#ifdef CSIDL_COMMON_PROGRAMS
csidl = CSIDL_COMMON_PROGRAMS; csidl = CSIDL_COMMON_PROGRAMS;
alt_csidl = CSIDL_PROGRAMS; alt_csidl = CSIDL_PROGRAMS;
#else
csidl = CSIDL_PROGRAMS;
#endif
} }
else else
{ {

View File

@ -2969,6 +2969,9 @@ ins_compl_bs()
ins_compl_set_original_text(compl_leader); ins_compl_set_original_text(compl_leader);
else else
{ {
#ifdef FEAT_SPELL
spell_bad_len = 0; /* need to redetect bad word */
#endif
/* Matches were cleared, need to search for them now. */ /* Matches were cleared, need to search for them now. */
if (ins_complete(Ctrl_N) == FAIL) if (ins_complete(Ctrl_N) == FAIL)
compl_cont_status = 0; compl_cont_status = 0;

View File

@ -16208,7 +16208,7 @@ var2fpos(varp, lnum, fnum)
return NULL; return NULL;
len = (long)STRLEN(ml_get(pos.lnum)); len = (long)STRLEN(ml_get(pos.lnum));
/* Accept a position up to the NUL after the line. */ /* Accept a position up to the NUL after the line. */
if (pos.col <= 0 || (int)pos.col > len + 1) if (pos.col == 0 || (int)pos.col > len + 1)
return NULL; /* invalid column number */ return NULL; /* invalid column number */
--pos.col; --pos.col;

View File

@ -261,18 +261,23 @@ linelen(has_tab)
return len; return len;
} }
/* Buffer for one line used during sorting. It's allocated to contain the /* Buffer for two lines used during sorting. They are allocated to
* longest line being sorted. */ * contain the longest line being sorted. */
static char_u *sortbuf; static char_u *sortbuf1;
static char_u *sortbuf2;
static int sort_ic; /* ignore case */ static int sort_ic; /* ignore case */
static int sort_nr; /* sort on number */ static int sort_nr; /* sort on number */
static int sort_rx; /* sort on regex instead of skipping it */
static int sort_abort; /* flag to indicate if sorting has been interrupted */
/* Struct to store info to be sorted. */ /* Struct to store info to be sorted. */
typedef struct typedef struct
{ {
linenr_T lnum; /* line number */ linenr_T lnum; /* line number */
long col_nr; /* column number or number */ long start_col_nr; /* starting column number or number */
long end_col_nr; /* ending column number */
} sorti_T; } sorti_T;
static int static int
@ -291,18 +296,35 @@ sort_compare(s1, s2)
{ {
sorti_T l1 = *(sorti_T *)s1; sorti_T l1 = *(sorti_T *)s1;
sorti_T l2 = *(sorti_T *)s2; sorti_T l2 = *(sorti_T *)s2;
char_u *s; int result = 0;
/* When sorting numbers "col_nr" is the number, not the column number. */ /* If the user interrupts, there's no way to stop qsort() immediately, but
* if we return 0 every time, qsort will assume it's done sorting and exit */
if (sort_abort)
return 0;
fast_breakcheck();
if (got_int)
sort_abort = TRUE;
/* When sorting numbers "start_col_nr" is the number, not the column number. */
if (sort_nr) if (sort_nr)
return l1.col_nr - l2.col_nr; result = l1.start_col_nr - l2.start_col_nr;
else
{
/* We need to copy one line into "sortbuf1", because there is no guarantee
* that the first pointer becomes invalid when obtaining the second one. */
STRNCPY(sortbuf1, ml_get(l1.lnum) + l1.start_col_nr, l1.end_col_nr - l1.start_col_nr + 1);
sortbuf1[l1.end_col_nr - l1.start_col_nr] = 0;
STRNCPY(sortbuf2, ml_get(l2.lnum) + l2.start_col_nr, l2.end_col_nr - l2.start_col_nr + 1);
sortbuf2[l2.end_col_nr - l2.start_col_nr] = 0;
/* We need to copy one line into "sortbuf", because there is no guarantee result = sort_ic ? STRICMP(sortbuf1, sortbuf2) : STRCMP(sortbuf1, sortbuf2);
* that the first pointer becomes invalid when obtaining the second one. */ }
STRCPY(sortbuf, ml_get(l1.lnum) + l1.col_nr); /* If the two lines have the same value, preserve the original line order */
s = ml_get(l2.lnum) + l2.col_nr; if (result == 0)
return (int) (l1.lnum - l2.lnum);
return sort_ic ? STRICMP(sortbuf, s) : STRCMP(sortbuf, s); else
return result;
} }
/* /*
@ -321,21 +343,25 @@ ex_sort(eap)
size_t i; size_t i;
char_u *p; char_u *p;
char_u *s; char_u *s;
char_u *s2;
char_u c; /* temporary character storage */
int unique = FALSE; int unique = FALSE;
long deleted; long deleted;
colnr_T col; colnr_T start_col;
colnr_T end_col;
int sort_oct; /* sort on octal number */ int sort_oct; /* sort on octal number */
int sort_hex; /* sort on hex number */ int sort_hex; /* sort on hex number */
if (u_save((linenr_T)(eap->line1 - 1), (linenr_T)(eap->line2 + 1)) == FAIL) if (u_save((linenr_T)(eap->line1 - 1), (linenr_T)(eap->line2 + 1)) == FAIL)
return; return;
sortbuf = NULL; sortbuf1 = NULL;
sortbuf2 = NULL;
regmatch.regprog = NULL; regmatch.regprog = NULL;
nrs = (sorti_T *)lalloc((long_u)(count * sizeof(sorti_T)), TRUE); nrs = (sorti_T *)lalloc((long_u)(count * sizeof(sorti_T)), TRUE);
if (nrs == NULL) if (nrs == NULL)
goto theend; goto sortend;
sort_ic = sort_nr = sort_oct = sort_hex = 0; sort_abort = sort_ic = sort_rx = sort_nr = sort_oct = sort_hex = 0;
for (p = eap->arg; *p != NUL; ++p) for (p = eap->arg; *p != NUL; ++p)
{ {
@ -343,6 +369,8 @@ ex_sort(eap)
; ;
else if (*p == 'i') else if (*p == 'i')
sort_ic = TRUE; sort_ic = TRUE;
else if (*p == 'r')
sort_rx = TRUE;
else if (*p == 'n') else if (*p == 'n')
sort_nr = 2; sort_nr = 2;
else if (*p == 'o') else if (*p == 'o')
@ -364,19 +392,19 @@ ex_sort(eap)
if (*s != *p) if (*s != *p)
{ {
EMSG(_(e_invalpat)); EMSG(_(e_invalpat));
goto theend; goto sortend;
} }
*s = NUL; *s = NUL;
regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC); regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
if (regmatch.regprog == NULL) if (regmatch.regprog == NULL)
goto theend; goto sortend;
p = s; /* continue after the regexp */ p = s; /* continue after the regexp */
regmatch.rm_ic = p_ic; regmatch.rm_ic = p_ic;
} }
else else
{ {
EMSG2(_(e_invarg2), p); EMSG2(_(e_invarg2), p);
goto theend; goto sortend;
} }
} }
@ -384,7 +412,7 @@ ex_sort(eap)
if (sort_nr + sort_oct + sort_hex > 2) if (sort_nr + sort_oct + sort_hex > 2)
{ {
EMSG(_(e_invarg)); EMSG(_(e_invarg));
goto theend; goto sortend;
} }
/* From here on "sort_nr" is used as a flag for any number sorting. */ /* From here on "sort_nr" is used as a flag for any number sorting. */
@ -393,9 +421,9 @@ ex_sort(eap)
/* /*
* Make an array with all line numbers. This avoids having to copy all * Make an array with all line numbers. This avoids having to copy all
* the lines into allocated memory. * the lines into allocated memory.
* When sorting on strings "col_nr" is de offset in the line, for numbers * When sorting on strings "start_col_nr" is the offset in the line, for
* sorting it's the number to sort on. This means the pattern matching * numbers sorting it's the number to sort on. This means the pattern
* and number conversion only has to be done once per line. * matching and number conversion only has to be done once per line.
* Also get the longest line length for allocating "sortbuf". * Also get the longest line length for allocating "sortbuf".
*/ */
for (lnum = eap->line1; lnum <= eap->line2; ++lnum) for (lnum = eap->line1; lnum <= eap->line2; ++lnum)
@ -405,57 +433,83 @@ ex_sort(eap)
if (maxlen < len) if (maxlen < len)
maxlen = len; maxlen = len;
start_col = 0;
end_col = len;
if (regmatch.regprog != NULL && vim_regexec(&regmatch, s, 0)) if (regmatch.regprog != NULL && vim_regexec(&regmatch, s, 0))
col = regmatch.endp[0] - s; {
if (sort_rx)
{
start_col = regmatch.startp[0] - s;
end_col = regmatch.endp[0] - s;
}
else
start_col = regmatch.endp[0] - s;
}
else else
col = 0; if (regmatch.regprog != NULL)
end_col = 0;
if (sort_nr) if (sort_nr)
{ {
/* Make sure vim_str2nr doesn't read any digits past the end
* of the match, by temporarily terminating the string there */
s2 = s + end_col;
c = *s2;
(*s2) = 0;
/* Sorting on number: Store the number itself. */ /* Sorting on number: Store the number itself. */
if (sort_hex) if (sort_hex)
s = skiptohex(s + col); s = skiptohex(s + start_col);
else else
s = skiptodigit(s + col); s = skiptodigit(s + start_col);
vim_str2nr(s, NULL, NULL, sort_oct, sort_hex, vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
&nrs[lnum - eap->line1].col_nr, NULL); &nrs[lnum - eap->line1].start_col_nr, NULL);
(*s2) = c;
} }
else else
{
/* Store the column to sort at. */ /* Store the column to sort at. */
nrs[lnum - eap->line1].col_nr = col; nrs[lnum - eap->line1].start_col_nr = start_col;
nrs[lnum - eap->line1].end_col_nr = end_col;
}
nrs[lnum - eap->line1].lnum = lnum; nrs[lnum - eap->line1].lnum = lnum;
if (regmatch.regprog != NULL) if (regmatch.regprog != NULL)
fast_breakcheck(); fast_breakcheck();
if (got_int) if (got_int)
goto theend; goto sortend;
} }
/* Allocate a buffer that can hold the longest line. */ /* Allocate a buffer that can hold the longest line. */
sortbuf = alloc((unsigned)maxlen + 1); sortbuf1 = alloc((unsigned)maxlen + 1);
if (sortbuf == NULL) if (sortbuf1 == NULL)
goto theend; goto sortend;
sortbuf2 = alloc((unsigned)maxlen + 1);
if (sortbuf2 == NULL)
goto sortend;
/* Sort the array of line numbers. Note: can't be interrupted! */ /* Sort the array of line numbers. Note: can't be interrupted! */
qsort((void *)nrs, count, sizeof(sorti_T), sort_compare); qsort((void *)nrs, count, sizeof(sorti_T), sort_compare);
if (sort_abort)
goto sortend;
/* Insert the lines in the sorted order below the last one. */ /* Insert the lines in the sorted order below the last one. */
lnum = eap->line2; lnum = eap->line2;
for (i = 0; i < count; ++i) for (i = 0; i < count; ++i)
{ {
s = ml_get(nrs[eap->forceit ? count - i - 1 : i].lnum); s = ml_get(nrs[eap->forceit ? count - i - 1 : i].lnum);
if (!unique || i == 0 if (!unique || i == 0
|| (sort_ic ? STRICMP(s, sortbuf) : STRCMP(s, sortbuf)) != 0) || (sort_ic ? STRICMP(s, sortbuf1) : STRCMP(s, sortbuf1)) != 0)
{ {
if (ml_append(lnum++, s, (colnr_T)0, FALSE) == FAIL) if (ml_append(lnum++, s, (colnr_T)0, FALSE) == FAIL)
break; break;
if (unique) if (unique)
STRCPY(sortbuf, s); STRCPY(sortbuf1, s);
} }
fast_breakcheck(); fast_breakcheck();
if (got_int) if (got_int)
goto theend; goto sortend;
} }
/* delete the original lines if appending worked */ /* delete the original lines if appending worked */
@ -476,9 +530,10 @@ ex_sort(eap)
curwin->w_cursor.lnum = eap->line1; curwin->w_cursor.lnum = eap->line1;
beginline(BL_WHITE | BL_FIX); beginline(BL_WHITE | BL_FIX);
theend: sortend:
vim_free(nrs); vim_free(nrs);
vim_free(sortbuf); vim_free(sortbuf1);
vim_free(sortbuf2);
vim_free(regmatch.regprog); vim_free(regmatch.regprog);
if (got_int) if (got_int)
EMSG(_(e_interr)); EMSG(_(e_interr));

View File

@ -10252,7 +10252,7 @@ vimrc_found(fname, envname)
char_u *envname; char_u *envname;
{ {
int opt_idx; int opt_idx;
int dofree; int dofree = FALSE;
char_u *p; char_u *p;
if (!option_was_set((char_u *)"cp")) if (!option_was_set((char_u *)"cp"))

Binary file not shown.

View File

@ -231,7 +231,15 @@ redraw_win_later(wp, type)
redraw_later_clear() redraw_later_clear()
{ {
redraw_all_later(CLEAR); redraw_all_later(CLEAR);
screen_attr = HL_BOLD | HL_UNDERLINE; #ifdef FEAT_GUI
if (gui.in_use)
/* Use a code that will reset gui.highlight_mask in
* gui_stop_highlight(). */
screen_attr = HL_ALL + 1;
else
#endif
/* Use attributes that is very unlikely to appear in text. */
screen_attr = HL_BOLD | HL_UNDERLINE | HL_INVERSE;
} }
/* /*

View File

@ -3,50 +3,494 @@ Tests for :sort command. vim: set ft=vim :
STARTTEST STARTTEST
:so small.vim :so small.vim
:" :"
:/^t1:/+1,/^t2/-1sort :/^t01:/+1,/^t02/-1sort
:/^t2:/+1,/^t3/-1sort u :/^t02:/+1,/^t03/-1sort n
:/^t3:/+1,/^t4/-1sort u /[^:]*:/ :/^t03:/+1,/^t04/-1sort x
:/^t4:/+1,/^t5/-1sort n :/^t04:/+1,/^t05/-1sort u
:/^t5:/+1,/^t6/-1sort n -[^:]*:- :/^t05:/+1,/^t06/-1sort!
:/^t6:/+1,/^t7/-1sort o :/^t06:/+1,/^t07/-1sort! n
:/^t7:/+1,/^t8/-1sort x ,.*/, :/^t07:/+1,/^t08/-1sort! u
:/^t8:/+1,/^t9/-1sort n o :/^t08:/+1,/^t09/-1sort o
:/^t1:/,$wq! test.out :/^t09:/+1,/^t10/-1sort! x
:/^t10:/+1,/^t11/-1sort/./
:/^t11:/+1,/^t12/-1sort/../
:/^t12:/+1,/^t13/-1sort/../u
:/^t13:/+1,/^t14/-1sort/./n
:/^t14:/+1,/^t15/-1sort/./r
:/^t15:/+1,/^t16/-1sort/../r
:/^t16:/+1,/^t17/-1sort/./rn
:/^t17:/+1,/^t18/-1sort/\d/
:/^t18:/+1,/^t19/-1sort/\d/r
:/^t19:/+1,/^t20/-1sort/\d/n
:/^t20:/+1,/^t21/-1sort/\d/rn
:/^t21:/+1,/^t22/-1sort/\d\d/
:/^t22:/+1,/^t23/-1sort/\d\d/n
:/^t23:/+1,/^t24/-1sort/\d\d/x
:/^t24:/+1,/^t25/-1sort/\d\d/r
:/^t25:/+1,/^t26/-1sort/\d\d/rn
:/^t26:/+1,/^t27/-1sort/\d\d/rx
:/^t27:/+1,/^t28/-1sort no
:/^t01:/,$wq! test.out
ENDTEST ENDTEST
t1: alphabetical t01: alphebetical
two test abc
One test ab
one test a
Two test a321
t2: alpha, unique a123
One test a122
one test b321
Two test b123
one test c123d
Two test 123b
t3: alpha, unique, skip pattern c321d
one: xay b322b
two: aaa b321
another: tuvy b321b
t4: number
asdf 83 asd
one 333 t02: numeric
xce 9 abc
t5: number and skip ab
asdf 3 a: sd 11 a
one 33:4 99 a321
:9 a123
t6: octal a122
2389 b321
111 b123
asdf 0014 c123d
t7: hex and skip 123b
sf/0x1d3 c321d
0x44/1a1 b322b
asd/ad 1413 b321
t8: wrong arguments b321b
ccc
bbb
aaa t03: hexadecimal
t8: abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t04: alpha, unique
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t05: alpha, reverse
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t06: numeric, reverse
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t07: unique, reverse
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t08: octal
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t09: reverse, hexadecimal
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t10: alpha, skip first character
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t11: alpha, skip first 2 characters
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t12: alpha, unique, skip first 2 characters
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t13: numeric, skip first character
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t14: alpha, sort on first character
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t15: alpha, sort on first 2 characters
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t16: numeric, sort on first character
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t17: alpha, skip past first digit
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t18: alpha, sort on first digit
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t20: numeric, sort on first digit
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t22: numeric, skip past first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t23: hexadecimal, skip past first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t24: alpha, sort on first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t27: wrong arguments
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t28: done

View File

@ -1,35 +1,455 @@
t1: alphabetical t01: alphebetical
One test
Two test
one test 123b
two test a
t2: alpha, unique a122
One test a123
Two test a321
Two test ab
one test abc
t3: alpha, unique, skip pattern b123
two: aaa b321
another: tuvy b321
one: xay b321b
t4: number b322b
xce 9 c123d
asdf 83 asd c321d
one 333 t02: numeric
t5: number and skip abc
one 33:4 99 ab
:9 a
asdf 3 a: sd 11
t6: octal
asdf 0014 a122
2389 a123
111 b123
t7: hex and skip c123d
asd/ad 1413 123b
0x44/1a1 a321
sf/0x1d3 b321
t8: wrong arguments c321d
ccc b321
bbb b321b
aaa b322b
t8: t03: hexadecimal
a
ab
abc
123b
a122
a123
a321
b123
b321
b321
b321b
b322b
c123d
c321d
t04: alpha, unique
123b
a
a122
a123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122
a
123b
t06: numeric, reverse
b322b
b321b
b321
c321d
b321
a321
123b
c123d
b123
a123
a122
a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a
123b
t08: octal
abc
ab
a
a122
a123
b123
c123d
123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
123b
abc
ab
a
t10: alpha, skip first character
a
a122
a123
b123
123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a
a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab
a
a321
b321
b321b
c321d
a122
b322b
a123
b123
123b
c123d
abc
t13: numeric, skip first character
abc
ab
a
a122
a123
b123
c123d
123b
a321
b321
c321d
b321
b321b
b322b
t14: alpha, sort on first character
123b
abc
ab
a
a321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a
123b
a123
a122
a321
abc
ab
b123
b321
b322b
b321
b321b
c123d
c321d
t16: numeric, sort on first character
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t17: alpha, skip past first digit
abc
ab
a
a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
123b
c123d
t18: alpha, sort on first digit
abc
ab
a
a123
a122
b123
c123d
123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a
a321
b321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
123b
t20: numeric, sort on first digit
abc
ab
a
a123
a122
b123
c123d
123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a
a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
123b
c123d
t22: numeric, skip past first 2 digits
abc
ab
a
a321
b321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a
a321
b321
b321
a122
a123
b123
b321b
c321d
b322b
123b
c123d
t24: alpha, sort on first 2 digits
abc
ab
a
a123
a122
b123
c123d
123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a
a123
a122
b123
c123d
123b
a321
b321
c321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc
ab
a
a123
a122
b123
c123d
123b
a321
b321
c321d
b322b
b321
b321b
t27: wrong arguments
abc
ab
a
a321
a123
a122
b321
b123
c123d
123b
c321d
b322b
b321
b321b
t28: done

View File

@ -35,6 +35,6 @@
*/ */
#define VIM_VERSION_NODOT "vim70d" #define VIM_VERSION_NODOT "vim70d"
#define VIM_VERSION_SHORT "7.0d" #define VIM_VERSION_SHORT "7.0d"
#define VIM_VERSION_MEDIUM "7.0d BETA" #define VIM_VERSION_MEDIUM "7.0d01 BETA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0d BETA (2006 Apr 10)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0d BETA (2006 Apr 10, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11, compiled "

View File

@ -91,6 +91,9 @@ static void win_new_height __ARGS((win_T *, int));
#endif #endif
#if defined(FEAT_WINDOWS) || defined(PROTO) #if defined(FEAT_WINDOWS) || defined(PROTO)
static char *m_onlyone = N_("Already only one window");
/* /*
* all CTRL-W window commands are handled here, called from normal_cmd(). * all CTRL-W window commands are handled here, called from normal_cmd().
*/ */
@ -330,6 +333,31 @@ newwindow:
break; break;
#endif #endif
/* move window to new tab page */
case 'T':
if (firstwin == lastwin)
MSG(_(m_onlyone));
else
{
tabpage_T *oldtab = curtab;
tabpage_T *newtab;
win_T *wp = curwin;
/* First create a new tab with the window, then go back to
* the old tab and close the window there. */
if (win_new_tabpage((int)Prenum) == OK
&& valid_tabpage(oldtab))
{
newtab = curtab;
goto_tabpage_tp(oldtab);
if (curwin == wp)
win_close(curwin, FALSE);
if (valid_tabpage(newtab))
goto_tabpage_tp(newtab);
}
}
break;
/* cursor to top-left window */ /* cursor to top-left window */
case 't': case 't':
case Ctrl_T: case Ctrl_T:
@ -1102,6 +1130,7 @@ win_init(newp, oldp)
newp->w_pcmark = oldp->w_pcmark; newp->w_pcmark = oldp->w_pcmark;
newp->w_prev_pcmark = oldp->w_prev_pcmark; newp->w_prev_pcmark = oldp->w_prev_pcmark;
newp->w_alt_fnum = oldp->w_alt_fnum; newp->w_alt_fnum = oldp->w_alt_fnum;
newp->w_wrow = oldp->w_wrow;
newp->w_fraction = oldp->w_fraction; newp->w_fraction = oldp->w_fraction;
newp->w_prev_fraction_row = oldp->w_prev_fraction_row; newp->w_prev_fraction_row = oldp->w_prev_fraction_row;
#ifdef FEAT_JUMPLIST #ifdef FEAT_JUMPLIST
@ -2938,7 +2967,7 @@ close_others(message, forceit)
&& !autocmd_busy && !autocmd_busy
#endif #endif
) )
MSG(_("Already only one window")); MSG(_(m_onlyone));
return; return;
} }
@ -5153,6 +5182,8 @@ win_new_height(wp, height)
* Will equalize heights soon to fix it. */ * Will equalize heights soon to fix it. */
if (height < 0) if (height < 0)
height = 0; height = 0;
if (wp->w_height == height)
return; /* nothing to do */
if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0) if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT