mirror of
https://github.com/vim/vim
synced 2025-07-15 16:51:57 +00:00
updated for version 7.0d01
This commit is contained in:
28
README.txt
28
README.txt
@ -5,9 +5,9 @@ WHAT IS VIM
|
||||
|
||||
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,
|
||||
on-line help, filename completion, block operations, etc. There is also a
|
||||
Graphical User Interface (GUI) available. See "runtime/doc/vi_diff.txt" for
|
||||
differences with Vi.
|
||||
on-line help, spell checking, filename completion, block operations, etc.
|
||||
There is also a Graphical User Interface (GUI) available. See
|
||||
"runtime/doc/vi_diff.txt" for differences with Vi.
|
||||
|
||||
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
|
||||
@ -56,15 +56,16 @@ distribute it.
|
||||
|
||||
SPONSORING
|
||||
|
||||
Fixing bugs and adding new features takes a lot of effort. For a few years
|
||||
Bram has attempted to do this next to a full-time job. During that time the
|
||||
todo list kept getting longer and longer.
|
||||
Fixing bugs and adding new features takes a lot of time and effort. To show
|
||||
your appreciation for the work and motivate Bram and others to continue
|
||||
working on Vim please send a donation.
|
||||
|
||||
In order for Bram to support Vim properly he needs your help. Through your
|
||||
donations Bram will be able to have a part-time job and spend more time on
|
||||
fixing bugs and adding new features.
|
||||
Since Bram is back to a paid job the money will now be used to help children
|
||||
in Uganda. See runtime/doc/uganda.txt. But at the same time donations
|
||||
increase Bram's motivation to keep working on Vim!
|
||||
|
||||
For the most recent information about sponsoring look on the Vim web site:
|
||||
|
||||
http://www.vim.org/sponsor/
|
||||
|
||||
|
||||
@ -132,6 +133,9 @@ MAIN AUTHOR
|
||||
Send any other comments, patches, pizza and suggestions to:
|
||||
|
||||
Bram Moolenaar E-mail: Bram@vim.org
|
||||
Clematisstraat 30
|
||||
5925 BE Venlo Tel: +31 77 387 2340
|
||||
The Netherlands Fax/voice-mail: +31 20 773 8272
|
||||
Molenstraat 2
|
||||
2161 HP Lisse
|
||||
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.
|
||||
|
@ -1,7 +1,7 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Mar 22, 2006
|
||||
" Version: 7
|
||||
" Date: Apr 10, 2006
|
||||
" Version: 8
|
||||
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
|
||||
@ -22,7 +22,7 @@ if exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_zip = "v7"
|
||||
let g:loaded_zip = "v8"
|
||||
let s:zipfile_escape = ' ?&;\'
|
||||
|
||||
" ----------------
|
||||
@ -83,7 +83,9 @@ fun! zip#Browse(zipfile)
|
||||
4,$g/^\s*----/d
|
||||
4,$g/^\s*\a/d
|
||||
$d
|
||||
exe 'silent 4,$s/^.*\%'.namecol.'c//'
|
||||
if namecol > 0
|
||||
exe 'silent 4,$s/^.*\%'.namecol.'c//'
|
||||
endif
|
||||
|
||||
setlocal noma nomod ro
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
|
@ -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
|
||||
@ -1508,7 +1508,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
|
||||
found here: |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
|
||||
lines are sorted.
|
||||
|
||||
@ -1517,24 +1517,25 @@ found here: |sort()|.
|
||||
With [i] case is ignored.
|
||||
|
||||
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
|
||||
number in the line (after a {pattern} match). A
|
||||
leading "0x" or "0X" is ignored.
|
||||
number in the line (after or inside a {pattern}
|
||||
match). A leading "0x" or "0X" is ignored.
|
||||
|
||||
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
|
||||
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
|
||||
lines to be different.
|
||||
|
||||
When /{pattern}/ is specified the text matched with
|
||||
{pattern} is skipped, so that you sort on what comes
|
||||
after the match. For lines without a match sorting
|
||||
starts in the first column (e.g., for empty lines).
|
||||
When /{pattern}/ is specified and there is no [r] flag
|
||||
the text matched with {pattern} is skipped, so that
|
||||
you sort on what comes after the match.
|
||||
Instead of the slash any non-letter can be used.
|
||||
For example, to sort on the second comma-separated
|
||||
field: >
|
||||
@ -1545,7 +1546,21 @@ found here: |sort()|.
|
||||
< To sort on the first number in the line, no matter
|
||||
what is in front of it: >
|
||||
: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
|
||||
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
|
||||
to try it out.
|
||||
|
||||
The sorting itself cannot be interrupted, because of using a system library
|
||||
function. You can interrupt the preparation (for undo) and putting the sorted
|
||||
lines into the buffer. In the last case you may end up with duplicated lines.
|
||||
The sorting can be interrupted, but if you interrupt it too late in the
|
||||
process you may end up with duplicated lines. This also depends on the system
|
||||
library function used.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -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
|
||||
@ -529,6 +529,7 @@ tag command action in Normal mode ~
|
||||
|CTRL-W_P| CTRL-W P go to preview window
|
||||
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|
||||
|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_]| CTRL-W ] split window and jump to tag under cursor
|
||||
|CTRL-W_^| CTRL-W ^ split current window and edit alternate
|
||||
|
@ -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
|
||||
@ -1419,8 +1419,8 @@ Features are:
|
||||
a tag)
|
||||
- when attribute has limited number of possible values help to complete
|
||||
them
|
||||
- complete names of entities (defined in |xml-omni-datafile| and in current file
|
||||
with "<!ENTITY" declarations
|
||||
- complete names of entities (defined in |xml-omni-datafile| and in current
|
||||
file with "<!ENTITY" declarations
|
||||
- when used after "</" CTRL-X CTRL-O will close the last opened tag
|
||||
|
||||
Format of XML data file *xml-omni-datafile*
|
||||
|
@ -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
|
||||
@ -265,6 +265,7 @@ Overview of which map command works in which mode:
|
||||
:vmap :vnoremap :vunmap :vmapclear - yes -
|
||||
:omap :onoremap :ounmap :omapclear - - yes
|
||||
|
||||
:nunmap can also be used outside of a monastery.
|
||||
*mapmode-x* *mapmode-s*
|
||||
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
|
||||
|
@ -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
|
||||
@ -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
|
||||
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* >
|
||||
No write since last change (use ! to override)
|
||||
|
@ -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
|
||||
@ -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
|
||||
|hl-CursorColumn|. Useful to align text. Will make screen redrawing
|
||||
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' boolean (default off)
|
||||
|
@ -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 |
|
||||
@ -33,6 +33,11 @@ Copyright: Copyright (C) 2005,2006 Charles E Campbell, Jr {{{1 *zip-copyright*
|
||||
|
||||
==============================================================================
|
||||
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
|
||||
problems.
|
||||
v6 Dec 21, 2005 * writing to files not in directories caused problems -
|
||||
|
@ -3188,6 +3188,7 @@ CTRL-W_L windows.txt /*CTRL-W_L*
|
||||
CTRL-W_P windows.txt /*CTRL-W_P*
|
||||
CTRL-W_R windows.txt /*CTRL-W_R*
|
||||
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_] windows.txt /*CTRL-W_]*
|
||||
CTRL-W_^ windows.txt /*CTRL-W_^*
|
||||
|
@ -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
|
||||
@ -30,7 +30,11 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
||||
*known-bugs*
|
||||
-------------------- 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.
|
||||
- Are all prefixes really postponed now?
|
||||
- postpone secondary suffixes?
|
||||
|
||||
Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
|
||||
WFP_COMPPERMIT and WFP_COMPFORBID
|
||||
@ -47,8 +51,14 @@ New Hungarian dictionary. (Laci Nemeth)
|
||||
How is it supposed to work?
|
||||
- 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.
|
||||
|
||||
Do some of the 'cindent' bugs below.
|
||||
|
||||
Win32: Describe how to do debugging. (George Reilly)
|
||||
|
||||
Mac unicode patch (Da Woon Jung, Eckehard Berns):
|
||||
@ -1092,7 +1102,6 @@ User Friendlier:
|
||||
Tab pages:
|
||||
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 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 backward
|
||||
7 :tabdup duplicate the tab with all its windows.
|
||||
|
@ -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
|
||||
@ -628,7 +628,7 @@ Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
|
||||
|:viusage| Help for Vi commands (Nvi command).
|
||||
|
||||
|: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
|
||||
(Yegappan Lakshmanan).
|
||||
@ -913,6 +913,7 @@ Haskell ftplugin file. (Nikolai Weibull)
|
||||
help ftplugin file. (Nikolai Weibull)
|
||||
indent ftplugin file. (Nikolai Weibull)
|
||||
Javascript ftplugin file. (Bram Moolenaar)
|
||||
Kconfig ftplugin and syntax file. (Nikolai Weibull)
|
||||
ld syntax, indent and ftplugin file. (Nikolai Weibull)
|
||||
lftp 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'.
|
||||
|
||||
|
||||
--- 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:
|
||||
|
@ -1,7 +1,7 @@
|
||||
.\" Traduction Lundi 7 ao<61>t 2000 par Richard Hitier
|
||||
.\" (richard.hitier@dial.oleane.com)
|
||||
.\" Mise <20> 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"
|
||||
.SH NOM
|
||||
@ -325,6 +325,10 @@ Quand N est omis, ouvre une fen
|
||||
Ouvre N fen<65>tres c<>te <20> c<>te.
|
||||
Quand N est omis, ouvre une fen<65>tre pour chaque fichier fichier.
|
||||
.TP
|
||||
\-p[N]
|
||||
Ouvre N onglets.
|
||||
Quand N est omis, ouvre un onglet pour chaque fichier fichier.
|
||||
.TP
|
||||
\-R
|
||||
Mode Lecture-Seule.
|
||||
Active l'option 'readonly'.
|
||||
@ -579,4 +583,4 @@ Cette page de manuel a
|
||||
<richard.hitier@dial.oleane.com> 2000-08-07.
|
||||
.br
|
||||
Cette page de manuel a <20>t<EFBFBD> mise <20> jour par David Blanchet.
|
||||
<david.blanchet@free.fr> 2005-01-17.
|
||||
<david.blanchet@free.fr> 2006-04-10.
|
||||
|
@ -1,7 +1,7 @@
|
||||
.\" Traduction Lundi 7 août 2000 par Richard Hitier
|
||||
.\" (richard.hitier@dial.oleane.com)
|
||||
.\" 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"
|
||||
.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.
|
||||
Quand N est omis, ouvre une fenêtre pour chaque fichier fichier.
|
||||
.TP
|
||||
\-p[N]
|
||||
Ouvre N onglets.
|
||||
Quand N est omis, ouvre un onglet pour chaque fichier fichier.
|
||||
.TP
|
||||
\-R
|
||||
Mode Lecture-Seule.
|
||||
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.
|
||||
.br
|
||||
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.
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH VIM 1 "2002 Feb 22"
|
||||
.TH VIM 1 "2006 Apr 11"
|
||||
.SH NAME
|
||||
vim \- Vi IMproved, a programmers text editor
|
||||
.SH SYNOPSIS
|
||||
|
@ -425,4 +425,4 @@ BUGS
|
||||
|
||||
|
||||
|
||||
2002 Feb 22 VIM(1)
|
||||
2006 Apr 11 VIM(1)
|
||||
|
@ -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
|
||||
@ -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.
|
||||
{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*
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" 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
|
||||
if exists("did_load_filetypes")
|
||||
@ -784,6 +784,9 @@ au BufNewFile,BufRead *.k setf kwt
|
||||
" KDE script
|
||||
au BufNewFile,BufRead *.ks setf kscript
|
||||
|
||||
" Kconfig
|
||||
au BufNewFile,BufRead Kconfig,Kconfig.debug setf kconfig
|
||||
|
||||
" Lace (ISE)
|
||||
au BufNewFile,BufRead *.ace,*.ACE setf lace
|
||||
|
||||
@ -1662,13 +1665,25 @@ au BufNewFile,BufRead /etc/sysctl.conf setf sysctl
|
||||
" 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
|
||||
" file.
|
||||
" (Slow test) If a file contains a 'use' statement then it is almost certainly
|
||||
" a Perl file.
|
||||
fun! s:FTperl()
|
||||
if expand("%:e") == 't' && expand("%:p:h:t") == 't'
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
if getline(1)[0] == '#' && getline(1) =~ 'perl'
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
if search('^use\s\s*\k', 'nc', 30)
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfun
|
||||
|
||||
@ -1961,7 +1976,7 @@ au BufNewFile,BufRead *.yaml,*.yml setf yaml
|
||||
" Zope
|
||||
" dtml (zope dynamic template markup language), pt (zope 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)
|
||||
au BufNewFile,BufRead *.zsql call s:SQL()
|
||||
|
||||
|
14
runtime/ftplugin/kconfig.vim
Normal file
14
runtime/ftplugin/kconfig.vim
Normal 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
|
||||
|
||||
|
@ -4,11 +4,12 @@
|
||||
" Markus Mottl <markus.mottl@gmail.com>
|
||||
" Stefano Zacchiroli <zack@bononia.it>
|
||||
" 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")
|
||||
" finish
|
||||
" endif
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin=1
|
||||
|
||||
" 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`<
|
||||
|
||||
if !hasmapto('<Plug>Abbrev')
|
||||
iabbrev <buffer> ASS (assert false (* XXX *))
|
||||
iabbrev <buffer> ASS (assert (0=1) (* XXX *))
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Description: html indenter
|
||||
" Author: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Tue, 27 Apr 2004 10:28:39 CEST
|
||||
" Globals: g:html_indent_tags -- indenting tags
|
||||
" g:html_indent_strict -- inhibit 'O O' elements
|
||||
" Globals: g:html_indent_tags -- indenting tags
|
||||
" g:html_indent_strict -- inhibit 'O O' elements
|
||||
" g:html_indent_strict_table -- inhibit 'O -' elements
|
||||
|
||||
" 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) --]
|
||||
setlocal indentexpr=HtmlIndentGet(v:lnum)
|
||||
setlocal indentkeys=o,O,*<Return>,<>>,<bs>,{,}
|
||||
setlocal indentkeys=o,O,*<Return>,<>>,{,}
|
||||
|
||||
|
||||
if exists('g:html_indent_tags')
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Script to define the syntax menu in synmenu.vim
|
||||
" 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.
|
||||
edit <sfile>:p:h/synmenu.vim
|
||||
@ -237,6 +237,7 @@ SynMenu HIJK.Java.Java\ Properties:jproperties
|
||||
SynMenu HIJK.JavaScript:javascript
|
||||
SynMenu HIJK.Jess:jess
|
||||
SynMenu HIJK.Jgraph:jgraph
|
||||
SynMenu HIJK.Kconfig:kconfig
|
||||
SynMenu HIJK.KDE\ script:kscript
|
||||
SynMenu HIJK.Kimwitu++:kwt
|
||||
SynMenu HIJK.KixTart:kix
|
||||
|
@ -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.460 &Syntax.HIJK.Jess :cal SetSyn("jess")<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.500 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
|
||||
an 50.50.510 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
|
||||
an 50.50.490 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
|
||||
an 50.50.500 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<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.110 &Syntax.L-Ma.LamdaProlog :cal SetSyn("lprolog")<CR>
|
||||
an 50.60.120 &Syntax.L-Ma.Latte :cal SetSyn("latte")<CR>
|
||||
|
@ -1,8 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: cl ("Clever Language" by Multibase, http://www.mbase.com.au)
|
||||
" Filename extensions: *.ent, *.eni
|
||||
" Maintainer: Philip Uren <philu@system77.com>
|
||||
" Last update: Wed May 2 10:30:30 EST 2001
|
||||
" Maintainer: Philip Uren <philuSPAX@ieee.org> - Remove SPAX spam block
|
||||
" Last update: Tue Apr 11 10:19:01 EST 2006
|
||||
" $Id$
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" 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 "\<endif\>"
|
||||
|
||||
syn match clSpaceError "\s\+$"
|
||||
|
||||
" If and while regions
|
||||
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
|
||||
|
||||
" Make those TODO notes and debugging stand out!
|
||||
syn keyword clTodo contained TODO BUG DEBUG FIX
|
||||
syn match clNeedsWork contained "NEED[S]*\s\s*WORK"
|
||||
syn keyword clDebug contained debug
|
||||
|
||||
syn match clComment "#.*$" contains=clTodo,clNeedsWork
|
||||
@ -77,6 +81,7 @@ if version >= 508 || !exists("did_cl_syntax_inits")
|
||||
endif
|
||||
|
||||
HiLink clifError Error
|
||||
HiLink clSpaceError Error
|
||||
HiLink clWhile Repeat
|
||||
HiLink clConditional Conditional
|
||||
HiLink clDebug Debug
|
||||
|
@ -52,11 +52,11 @@ endif
|
||||
|
||||
" if this is a html like comment hightlight also
|
||||
" 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
|
||||
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.
|
||||
|
728
runtime/syntax/kconfig.vim
Normal file
728
runtime/syntax/kconfig.vim
Normal 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
|
@ -5,9 +5,9 @@
|
||||
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
|
||||
" Issac Trotts <ijtrotts@ucdavis.edu>
|
||||
" 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 Mar 15 - Added a patch from David Baelde (MM)
|
||||
|
||||
" A minor patch was applied to the official version so that object/end
|
||||
" 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
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax") && b:current_syntax != "ocaml"
|
||||
elseif exists("b:current_syntax") && b:current_syntax == "ocaml"
|
||||
finish
|
||||
endif
|
||||
|
||||
|
@ -3,12 +3,12 @@
|
||||
" Filename extensions: *.p (collides with Pascal),
|
||||
" *.i (collides with assembler)
|
||||
" *.w (collides with cweb)
|
||||
" Maintainer: Philip Uren <philu@computer.org>
|
||||
" Contributors: Chris Ruprecht <chrup@mac.com>
|
||||
" Philip Uren <philu@computer.org>
|
||||
" Maintainer: Philip Uren <philuSPAX@ieee.org> Remove "SPAX" spam block
|
||||
" Contributors: Chris Ruprecht <chrup@mac.com>
|
||||
" Mikhail Kuperblum <mikhail@whasup.com>
|
||||
" URL: http://www.zeta.org.au/~philu/vim/progress.vim
|
||||
" Last Change: Thu May 3 08:49:47 EST 2001
|
||||
" John Florian <jflorian@voyager.net>
|
||||
" Last Change: Tue Apr 11 10:18:23 EST 2006
|
||||
" $Id$
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@ -24,6 +24,9 @@ else
|
||||
set iskeyword=@,48-57,_,-,!,#,$,%
|
||||
endif
|
||||
|
||||
" The Progress editor doesn't cope with tabs very well.
|
||||
set expandtab
|
||||
|
||||
syn case ignore
|
||||
|
||||
" 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 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 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,
|
||||
" and they could go in ProgressReserved,
|
||||
@ -43,14 +46,23 @@ syn keyword ProgressFor each where
|
||||
syn keyword ProgressTodo contained TODO BUG FIX
|
||||
syn keyword ProgressDebug contained DEBUG
|
||||
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 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 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 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
|
||||
@ -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 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 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 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
|
||||
@ -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 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 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 _control _list _memory _msg _pcontrol _serial[-num] _trace
|
||||
syn keyword ProgressReserved _control _list _memory _msg _pcontrol _serial[-num] _trace
|
||||
|
||||
" Strings. Handles embedded quotes.
|
||||
" Note that, for some reason, Progress doesn't use the backslash, "\"
|
||||
" 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 ProgressMatrixDelimiter "[][]"
|
||||
|
||||
syn match ProgressMatrixDelimiter "[][]"
|
||||
" If you prefer you can highlight the range
|
||||
"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]\+"
|
||||
|
||||
" More values: Logicals, and Progress's unknown value, ?.
|
||||
syn match ProgressNumber "?"
|
||||
syn keyword ProgressNumber true false yes no
|
||||
|
||||
" If you don't like tabs:
|
||||
"syn match ProgressShowTab "\t"
|
||||
"syn match ProgressShowTabc "\t"
|
||||
syn match ProgressShowTab "\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 match ProgressInclude "^[ ]*[{].*\.i[}]"
|
||||
syn region ProgressInclude start="^[ ]*[{][^&]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
|
||||
syn region ProgressPreProc start="&" end="\>" contained
|
||||
|
||||
syn match ProgressSubstitute "^[ ]*[{].*[^i][}]"
|
||||
syn match ProgressPreProc "^[ ]*&.*"
|
||||
|
||||
syn match ProgressOperator "[!;|)(:.><+*=-]"
|
||||
" This next line works reasonably well.
|
||||
" 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 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 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 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 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
|
||||
@ -174,38 +198,30 @@ if version >= 508 || !exists("did_progress_syntax_inits")
|
||||
endif
|
||||
|
||||
" The default methods for highlighting. Can be overridden later.
|
||||
HiLink ProgressByte Number
|
||||
HiLink ProgressByte Number
|
||||
HiLink ProgressCase Repeat
|
||||
HiLink ProgressComment StatusLine
|
||||
HiLink ProgressComment Comment
|
||||
HiLink ProgressConditional Conditional
|
||||
HiLink ProgressDebug Debug
|
||||
HiLink ProgressDo Repeat
|
||||
HiLink ProgressEndError Error
|
||||
HiLink ProgressFor Repeat
|
||||
HiLink ProgressFunction Procedure
|
||||
HiLink ProgressIdentifier Identifier
|
||||
HiLink ProgressInclude Include
|
||||
HiLink ProgressLabel Label
|
||||
HiLink ProgressMatrixDelimiter Identifier
|
||||
HiLink ProgressModifier Type
|
||||
HiLink ProgressNumber Number
|
||||
HiLink ProgressOperator Function
|
||||
HiLink ProgressOperator Operator
|
||||
HiLink ProgressPreProc PreProc
|
||||
HiLink ProgressProcedure Procedure
|
||||
HiLink ProgressQuote Delimiter
|
||||
HiLink ProgressRepeat Repeat
|
||||
HiLink ProgressReserved Identifier
|
||||
HiLink ProgressReserved Statement
|
||||
HiLink ProgressSpaceError Error
|
||||
HiLink ProgressString String
|
||||
HiLink ProgressStructure Structure
|
||||
HiLink ProgressSubstitute PreProc
|
||||
HiLink ProgressTodo Todo
|
||||
HiLink ProgressType Statement
|
||||
HiLink ProgressUnclassified Statement
|
||||
|
||||
" Optional highlighting
|
||||
" HiLink ProgressDelimiter Identifier
|
||||
" HiLink ProgressShowTab Error
|
||||
" HiLink ProgressShowTabc Error
|
||||
" HiLink ProgressIdentifier Identifier
|
||||
HiLink ProgressShowTab Error
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
@ -1,11 +1,15 @@
|
||||
" Vim syntax file
|
||||
" Language: Rexx
|
||||
" Maintainer: Thomas Geulig <geulig@nentec.de>
|
||||
" Last Change: 2001 May 2
|
||||
" URL: http://mywebpage.netscape.com/sharpPeople/vim/syntax/rexx.vim
|
||||
" Last Change: 2005 Dez 9, added some <http://www.ooRexx.org>-coloring,
|
||||
" 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
|
||||
" (and providing the webspace)
|
||||
" URL: http://www.geulig.de/vim/rexx.vim
|
||||
"
|
||||
" 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 6.x: Quit when a syntax file was already loaded
|
||||
@ -17,65 +21,126 @@ endif
|
||||
|
||||
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
|
||||
" of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always
|
||||
" 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
|
||||
syn match rexxKeyword contained "\<signal\( on \(error\|failure\|halt\|notready\|novalue\|syntax\|lostdigits\)\(\s\+name\)\=\)\=\>"
|
||||
syn match rexxKeyword contained "\<signal off \(error\|failure\|halt\|notready\|novalue\|syntax\|lostdigits\)\>"
|
||||
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 rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\=\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>"
|
||||
syn match rexxParse2 "\<with\>" contained containedin=rexxParse
|
||||
|
||||
|
||||
syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
|
||||
syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>"
|
||||
syn match rexxKeyword contained "\<procedure\( expose\)\=\>"
|
||||
syn match rexxKeyword contained "\<do\( forever\)\=\>"
|
||||
syn match rexxKeyword contained "\<procedure\(\s*expose\)\=\>"
|
||||
syn match rexxKeyword contained "\<do\>\(\s*forever\)\=\>"
|
||||
syn match rexxKeyword contained "\<use\>\s*\<arg\>"
|
||||
|
||||
" 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
|
||||
syn match rexxKeyword contained "\<\(arg\|drop\|end\|exit\|if\|interpret\|iterate\|leave\|nop\)\>"
|
||||
syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|return\|say\|select\|trace\)\>"
|
||||
syn match rexxKeyword contained "\<\(arg\|do\|drop\|end\|exit\|expose\|forward\|if\|interpret\|iterate\|leave\|nop\)\>"
|
||||
syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
|
||||
|
||||
" Conditional phrases
|
||||
syn match rexxConditional "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\)\( \|\s*$\)" contains=ALLBUT,rexxConditional
|
||||
syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|else\|otherwise\)\>"
|
||||
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\|otherwise\|else\|over\)\>"
|
||||
|
||||
" Assignments -- a keyword followed by an equal sign becomes a variable
|
||||
syn match rexxAssign "\<\w\+\s*=\s*" contains=rexxSpecialVariable
|
||||
" must be after Conditional phrases!
|
||||
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
|
||||
syn match rexxFunction "\<\h\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword
|
||||
syn match rexxFunction "\<\(arg\|trace\)\(/\*\s*\*/\)*("me=e-1
|
||||
syn match rexxFunction "\<call\( on \(error\|failure\|halt\|notready\)\(\s\+name\)\=\)\=\>\s\+\w\+\>" contains=rexxKeyword2
|
||||
syn match rexxFunction "\<\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword,rexxIdentifier
|
||||
syn match rexxFunction "\<\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>("me=e-1
|
||||
syn match rexxFunction "\<call\s\+\k\+\>" contains=rexxKeyword2
|
||||
syn match rexxFunction "[()]"
|
||||
|
||||
" String constants
|
||||
syn region rexxString start=+"+ skip=+\\\\\|\\'+ end=+"+
|
||||
syn region rexxString start=+'+ skip=+\\\\\|\\"+ end=+'+
|
||||
syn match rexxCharacter +"'[^\\]'"+
|
||||
syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\=+ oneline
|
||||
syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\=+ oneline
|
||||
|
||||
" 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 rexxInParen "[\\[\\]{}]"
|
||||
|
||||
" Comments
|
||||
syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment
|
||||
syn match rexxCommentError "\*/"
|
||||
syn match rexxLineComment /--.*/
|
||||
|
||||
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
|
||||
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
|
||||
syn keyword rexxSpecialVariable sigl rc result
|
||||
syn match rexxCompoundVariable "\<\w\+\.\w*\>"
|
||||
syn keyword rexxSpecialVariable sigl rc result self super
|
||||
|
||||
" 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")
|
||||
let rexx_minlines = 10
|
||||
" let rexx_minlines = 10
|
||||
let rexx_minlines = 500
|
||||
endif
|
||||
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>
|
||||
endif
|
||||
|
||||
HiLink rexxUserLabel Function
|
||||
HiLink rexxLabel Function
|
||||
HiLink rexxCharacter Character
|
||||
HiLink rexxParenError rexxError
|
||||
HiLink rexxInParen rexxError
|
||||
@ -105,6 +170,34 @@ if version >= 508 || !exists("did_rexx_syn_inits")
|
||||
HiLink rexxSpecialVariable Special
|
||||
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
|
||||
endif
|
||||
|
||||
|
@ -58,8 +58,8 @@ syn match xmlError "[<&]"
|
||||
"
|
||||
" <tag foo.attribute = "value">
|
||||
" ^^^^^^^
|
||||
syn region xmlString contained start=+"+ end=+"+ contains=xmlEntity display
|
||||
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,@Spell display
|
||||
|
||||
|
||||
" punctuation (within attributes) e.g. <tag xml:foo.attribute ...>
|
||||
@ -183,7 +183,7 @@ if exists('g:xml_syntax_folding')
|
||||
\ end=+</\z1\_\s\{-}>+
|
||||
\ matchgroup=xmlEndTag end=+/>+
|
||||
\ fold
|
||||
\ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook
|
||||
\ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook,@Spell
|
||||
\ keepend
|
||||
\ extend
|
||||
|
||||
@ -239,7 +239,7 @@ syn region xmlCommentPart
|
||||
\ start=+--+
|
||||
\ end=+--+
|
||||
\ contained
|
||||
\ contains=xmlTodo,@xmlCommentHook
|
||||
\ contains=xmlTodo,@xmlCommentHook,@Spell
|
||||
|
||||
|
||||
" CData sections
|
||||
@ -249,7 +249,7 @@ syn region xmlCommentPart
|
||||
syn region xmlCdata
|
||||
\ start=+<!\[CDATA\[+
|
||||
\ end=+]]>+
|
||||
\ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook
|
||||
\ contains=xmlCdataStart,xmlCdataEnd,@xmlCdataHook,@Spell
|
||||
\ keepend
|
||||
\ extend
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Makefile for Vim on OpenVMS
|
||||
#
|
||||
# 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
|
||||
# with MMS and MMK
|
||||
@ -44,6 +44,7 @@ MODEL = BIG
|
||||
|
||||
# GUI or terminal mode executable.
|
||||
# Comment out if you want just the character terminal mode only.
|
||||
# GUI with Motif
|
||||
GUI = YES
|
||||
|
||||
# GUI with GTK
|
||||
@ -136,12 +137,24 @@ VIMRUN = ""
|
||||
|
||||
CONFIG_H = os_vms_conf.h
|
||||
|
||||
# GTK or XPM but not both
|
||||
.IFDEF GTK
|
||||
.IFDEF GUI
|
||||
.IFDEF XPM
|
||||
.ELSE
|
||||
GUI = YES
|
||||
.ENDIF
|
||||
.IFDEF XPM
|
||||
XPM = ""
|
||||
.ENDIF
|
||||
.ENDIF
|
||||
|
||||
.IFDEF XPM
|
||||
.IFDEF GUI
|
||||
.ELSE
|
||||
GUI = YES
|
||||
.ENDIF
|
||||
.IFDEF GTK
|
||||
GTK = ""
|
||||
.ENDIF
|
||||
.ENDIF
|
||||
|
||||
|
@ -207,6 +207,14 @@ searchpath_save(char *name)
|
||||
}
|
||||
|
||||
#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.
|
||||
*
|
||||
@ -234,22 +242,14 @@ get_shell_folder_path(
|
||||
if (strcmp(shell_folder_name, "desktop") == 0)
|
||||
{
|
||||
pcsidl = &desktop_csidl;
|
||||
#ifdef CSIDL_COMMON_DESKTOPDIRECTORY
|
||||
csidl = CSIDL_COMMON_DESKTOPDIRECTORY;
|
||||
alt_csidl = CSIDL_DESKTOP;
|
||||
#else
|
||||
csidl = CSIDL_DESKTOP;
|
||||
#endif
|
||||
}
|
||||
else if (strncmp(shell_folder_name, "Programs", 8) == 0)
|
||||
{
|
||||
pcsidl = &programs_csidl;
|
||||
#ifdef CSIDL_COMMON_PROGRAMS
|
||||
csidl = CSIDL_COMMON_PROGRAMS;
|
||||
alt_csidl = CSIDL_PROGRAMS;
|
||||
#else
|
||||
csidl = CSIDL_PROGRAMS;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2969,6 +2969,9 @@ ins_compl_bs()
|
||||
ins_compl_set_original_text(compl_leader);
|
||||
else
|
||||
{
|
||||
#ifdef FEAT_SPELL
|
||||
spell_bad_len = 0; /* need to redetect bad word */
|
||||
#endif
|
||||
/* Matches were cleared, need to search for them now. */
|
||||
if (ins_complete(Ctrl_N) == FAIL)
|
||||
compl_cont_status = 0;
|
||||
|
@ -16208,7 +16208,7 @@ var2fpos(varp, lnum, fnum)
|
||||
return NULL;
|
||||
len = (long)STRLEN(ml_get(pos.lnum));
|
||||
/* 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 */
|
||||
--pos.col;
|
||||
|
||||
|
133
src/ex_cmds.c
133
src/ex_cmds.c
@ -261,18 +261,23 @@ linelen(has_tab)
|
||||
return len;
|
||||
}
|
||||
|
||||
/* Buffer for one line used during sorting. It's allocated to contain the
|
||||
* longest line being sorted. */
|
||||
static char_u *sortbuf;
|
||||
/* Buffer for two lines used during sorting. They are allocated to
|
||||
* contain the longest line being sorted. */
|
||||
static char_u *sortbuf1;
|
||||
static char_u *sortbuf2;
|
||||
|
||||
static int sort_ic; /* ignore case */
|
||||
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. */
|
||||
typedef struct
|
||||
{
|
||||
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;
|
||||
|
||||
static int
|
||||
@ -291,18 +296,35 @@ sort_compare(s1, s2)
|
||||
{
|
||||
sorti_T l1 = *(sorti_T *)s1;
|
||||
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)
|
||||
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
|
||||
* that the first pointer becomes invalid when obtaining the second one. */
|
||||
STRCPY(sortbuf, ml_get(l1.lnum) + l1.col_nr);
|
||||
s = ml_get(l2.lnum) + l2.col_nr;
|
||||
|
||||
return sort_ic ? STRICMP(sortbuf, s) : STRCMP(sortbuf, s);
|
||||
result = sort_ic ? STRICMP(sortbuf1, sortbuf2) : STRCMP(sortbuf1, sortbuf2);
|
||||
}
|
||||
/* If the two lines have the same value, preserve the original line order */
|
||||
if (result == 0)
|
||||
return (int) (l1.lnum - l2.lnum);
|
||||
else
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -321,21 +343,25 @@ ex_sort(eap)
|
||||
size_t i;
|
||||
char_u *p;
|
||||
char_u *s;
|
||||
char_u *s2;
|
||||
char_u c; /* temporary character storage */
|
||||
int unique = FALSE;
|
||||
long deleted;
|
||||
colnr_T col;
|
||||
colnr_T start_col;
|
||||
colnr_T end_col;
|
||||
int sort_oct; /* sort on octal number */
|
||||
int sort_hex; /* sort on hex number */
|
||||
|
||||
if (u_save((linenr_T)(eap->line1 - 1), (linenr_T)(eap->line2 + 1)) == FAIL)
|
||||
return;
|
||||
sortbuf = NULL;
|
||||
sortbuf1 = NULL;
|
||||
sortbuf2 = NULL;
|
||||
regmatch.regprog = NULL;
|
||||
nrs = (sorti_T *)lalloc((long_u)(count * sizeof(sorti_T)), TRUE);
|
||||
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)
|
||||
{
|
||||
@ -343,6 +369,8 @@ ex_sort(eap)
|
||||
;
|
||||
else if (*p == 'i')
|
||||
sort_ic = TRUE;
|
||||
else if (*p == 'r')
|
||||
sort_rx = TRUE;
|
||||
else if (*p == 'n')
|
||||
sort_nr = 2;
|
||||
else if (*p == 'o')
|
||||
@ -364,19 +392,19 @@ ex_sort(eap)
|
||||
if (*s != *p)
|
||||
{
|
||||
EMSG(_(e_invalpat));
|
||||
goto theend;
|
||||
goto sortend;
|
||||
}
|
||||
*s = NUL;
|
||||
regmatch.regprog = vim_regcomp(p + 1, RE_MAGIC);
|
||||
if (regmatch.regprog == NULL)
|
||||
goto theend;
|
||||
goto sortend;
|
||||
p = s; /* continue after the regexp */
|
||||
regmatch.rm_ic = p_ic;
|
||||
}
|
||||
else
|
||||
{
|
||||
EMSG2(_(e_invarg2), p);
|
||||
goto theend;
|
||||
goto sortend;
|
||||
}
|
||||
}
|
||||
|
||||
@ -384,7 +412,7 @@ ex_sort(eap)
|
||||
if (sort_nr + sort_oct + sort_hex > 2)
|
||||
{
|
||||
EMSG(_(e_invarg));
|
||||
goto theend;
|
||||
goto sortend;
|
||||
}
|
||||
|
||||
/* 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
|
||||
* the lines into allocated memory.
|
||||
* When sorting on strings "col_nr" is de offset in the line, for numbers
|
||||
* sorting it's the number to sort on. This means the pattern matching
|
||||
* and number conversion only has to be done once per line.
|
||||
* When sorting on strings "start_col_nr" is the offset in the line, for
|
||||
* numbers sorting it's the number to sort on. This means the pattern
|
||||
* matching and number conversion only has to be done once per line.
|
||||
* Also get the longest line length for allocating "sortbuf".
|
||||
*/
|
||||
for (lnum = eap->line1; lnum <= eap->line2; ++lnum)
|
||||
@ -405,57 +433,83 @@ ex_sort(eap)
|
||||
if (maxlen < len)
|
||||
maxlen = len;
|
||||
|
||||
start_col = 0;
|
||||
end_col = len;
|
||||
if (regmatch.regprog != NULL && vim_regexec(®match, 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
|
||||
col = 0;
|
||||
if (regmatch.regprog != NULL)
|
||||
end_col = 0;
|
||||
|
||||
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. */
|
||||
if (sort_hex)
|
||||
s = skiptohex(s + col);
|
||||
s = skiptohex(s + start_col);
|
||||
else
|
||||
s = skiptodigit(s + col);
|
||||
s = skiptodigit(s + start_col);
|
||||
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
|
||||
{
|
||||
/* 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;
|
||||
|
||||
if (regmatch.regprog != NULL)
|
||||
fast_breakcheck();
|
||||
if (got_int)
|
||||
goto theend;
|
||||
goto sortend;
|
||||
}
|
||||
|
||||
/* Allocate a buffer that can hold the longest line. */
|
||||
sortbuf = alloc((unsigned)maxlen + 1);
|
||||
if (sortbuf == NULL)
|
||||
goto theend;
|
||||
sortbuf1 = alloc((unsigned)maxlen + 1);
|
||||
if (sortbuf1 == NULL)
|
||||
goto sortend;
|
||||
sortbuf2 = alloc((unsigned)maxlen + 1);
|
||||
if (sortbuf2 == NULL)
|
||||
goto sortend;
|
||||
|
||||
/* Sort the array of line numbers. Note: can't be interrupted! */
|
||||
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. */
|
||||
lnum = eap->line2;
|
||||
for (i = 0; i < count; ++i)
|
||||
{
|
||||
s = ml_get(nrs[eap->forceit ? count - i - 1 : i].lnum);
|
||||
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)
|
||||
break;
|
||||
if (unique)
|
||||
STRCPY(sortbuf, s);
|
||||
STRCPY(sortbuf1, s);
|
||||
}
|
||||
fast_breakcheck();
|
||||
if (got_int)
|
||||
goto theend;
|
||||
goto sortend;
|
||||
}
|
||||
|
||||
/* delete the original lines if appending worked */
|
||||
@ -476,9 +530,10 @@ ex_sort(eap)
|
||||
curwin->w_cursor.lnum = eap->line1;
|
||||
beginline(BL_WHITE | BL_FIX);
|
||||
|
||||
theend:
|
||||
sortend:
|
||||
vim_free(nrs);
|
||||
vim_free(sortbuf);
|
||||
vim_free(sortbuf1);
|
||||
vim_free(sortbuf2);
|
||||
vim_free(regmatch.regprog);
|
||||
if (got_int)
|
||||
EMSG(_(e_interr));
|
||||
|
@ -10252,7 +10252,7 @@ vimrc_found(fname, envname)
|
||||
char_u *envname;
|
||||
{
|
||||
int opt_idx;
|
||||
int dofree;
|
||||
int dofree = FALSE;
|
||||
char_u *p;
|
||||
|
||||
if (!option_was_set((char_u *)"cp"))
|
||||
|
Binary file not shown.
10
src/screen.c
10
src/screen.c
@ -231,7 +231,15 @@ redraw_win_later(wp, type)
|
||||
redraw_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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3,50 +3,494 @@ Tests for :sort command. vim: set ft=vim :
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:"
|
||||
:/^t1:/+1,/^t2/-1sort
|
||||
:/^t2:/+1,/^t3/-1sort u
|
||||
:/^t3:/+1,/^t4/-1sort u /[^:]*:/
|
||||
:/^t4:/+1,/^t5/-1sort n
|
||||
:/^t5:/+1,/^t6/-1sort n -[^:]*:-
|
||||
:/^t6:/+1,/^t7/-1sort o
|
||||
:/^t7:/+1,/^t8/-1sort x ,.*/,
|
||||
:/^t8:/+1,/^t9/-1sort n o
|
||||
:/^t1:/,$wq! test.out
|
||||
:/^t01:/+1,/^t02/-1sort
|
||||
:/^t02:/+1,/^t03/-1sort n
|
||||
:/^t03:/+1,/^t04/-1sort x
|
||||
:/^t04:/+1,/^t05/-1sort u
|
||||
:/^t05:/+1,/^t06/-1sort!
|
||||
:/^t06:/+1,/^t07/-1sort! n
|
||||
:/^t07:/+1,/^t08/-1sort! u
|
||||
:/^t08:/+1,/^t09/-1sort o
|
||||
:/^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
|
||||
|
||||
t1: alphabetical
|
||||
two test
|
||||
One test
|
||||
one test
|
||||
Two test
|
||||
t2: alpha, unique
|
||||
One test
|
||||
one test
|
||||
Two test
|
||||
one test
|
||||
Two test
|
||||
t3: alpha, unique, skip pattern
|
||||
one: xay
|
||||
two: aaa
|
||||
another: tuvy
|
||||
t4: number
|
||||
asdf 83 asd
|
||||
one 333
|
||||
xce 9
|
||||
t5: number and skip
|
||||
asdf 3 a: sd 11
|
||||
one 33:4 99
|
||||
:9
|
||||
t6: octal
|
||||
2389
|
||||
111
|
||||
asdf 0014
|
||||
t7: hex and skip
|
||||
sf/0x1d3
|
||||
0x44/1a1
|
||||
asd/ad 1413
|
||||
t8: wrong arguments
|
||||
ccc
|
||||
bbb
|
||||
aaa
|
||||
t8:
|
||||
t01: alphebetical
|
||||
abc
|
||||
ab
|
||||
a
|
||||
a321
|
||||
a123
|
||||
a122
|
||||
b321
|
||||
b123
|
||||
c123d
|
||||
123b
|
||||
c321d
|
||||
b322b
|
||||
b321
|
||||
b321b
|
||||
|
||||
|
||||
t02: numeric
|
||||
abc
|
||||
ab
|
||||
a
|
||||
a321
|
||||
a123
|
||||
a122
|
||||
b321
|
||||
b123
|
||||
c123d
|
||||
123b
|
||||
c321d
|
||||
b322b
|
||||
b321
|
||||
b321b
|
||||
|
||||
|
||||
t03: hexadecimal
|
||||
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
|
||||
|
||||
|
@ -1,35 +1,455 @@
|
||||
t1: alphabetical
|
||||
One test
|
||||
Two test
|
||||
one test
|
||||
two test
|
||||
t2: alpha, unique
|
||||
One test
|
||||
Two test
|
||||
Two test
|
||||
one test
|
||||
t3: alpha, unique, skip pattern
|
||||
two: aaa
|
||||
another: tuvy
|
||||
one: xay
|
||||
t4: number
|
||||
xce 9
|
||||
asdf 83 asd
|
||||
one 333
|
||||
t5: number and skip
|
||||
one 33:4 99
|
||||
:9
|
||||
asdf 3 a: sd 11
|
||||
t6: octal
|
||||
asdf 0014
|
||||
2389
|
||||
111
|
||||
t7: hex and skip
|
||||
asd/ad 1413
|
||||
0x44/1a1
|
||||
sf/0x1d3
|
||||
t8: wrong arguments
|
||||
ccc
|
||||
bbb
|
||||
aaa
|
||||
t8:
|
||||
t01: alphebetical
|
||||
|
||||
|
||||
123b
|
||||
a
|
||||
a122
|
||||
a123
|
||||
a321
|
||||
ab
|
||||
abc
|
||||
b123
|
||||
b321
|
||||
b321
|
||||
b321b
|
||||
b322b
|
||||
c123d
|
||||
c321d
|
||||
t02: numeric
|
||||
abc
|
||||
ab
|
||||
a
|
||||
|
||||
|
||||
a122
|
||||
a123
|
||||
b123
|
||||
c123d
|
||||
123b
|
||||
a321
|
||||
b321
|
||||
c321d
|
||||
b321
|
||||
b321b
|
||||
b322b
|
||||
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
|
||||
|
||||
|
@ -35,6 +35,6 @@
|
||||
*/
|
||||
#define VIM_VERSION_NODOT "vim70d"
|
||||
#define VIM_VERSION_SHORT "7.0d"
|
||||
#define VIM_VERSION_MEDIUM "7.0d BETA"
|
||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0d BETA (2006 Apr 10)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0d BETA (2006 Apr 10, compiled "
|
||||
#define VIM_VERSION_MEDIUM "7.0d01 BETA"
|
||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11, compiled "
|
||||
|
33
src/window.c
33
src/window.c
@ -91,6 +91,9 @@ static void win_new_height __ARGS((win_T *, int));
|
||||
#endif
|
||||
|
||||
#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().
|
||||
*/
|
||||
@ -330,6 +333,31 @@ newwindow:
|
||||
break;
|
||||
#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 */
|
||||
case 't':
|
||||
case Ctrl_T:
|
||||
@ -1102,6 +1130,7 @@ win_init(newp, oldp)
|
||||
newp->w_pcmark = oldp->w_pcmark;
|
||||
newp->w_prev_pcmark = oldp->w_prev_pcmark;
|
||||
newp->w_alt_fnum = oldp->w_alt_fnum;
|
||||
newp->w_wrow = oldp->w_wrow;
|
||||
newp->w_fraction = oldp->w_fraction;
|
||||
newp->w_prev_fraction_row = oldp->w_prev_fraction_row;
|
||||
#ifdef FEAT_JUMPLIST
|
||||
@ -2938,7 +2967,7 @@ close_others(message, forceit)
|
||||
&& !autocmd_busy
|
||||
#endif
|
||||
)
|
||||
MSG(_("Already only one window"));
|
||||
MSG(_(m_onlyone));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -5153,6 +5182,8 @@ win_new_height(wp, height)
|
||||
* Will equalize heights soon to fix it. */
|
||||
if (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)
|
||||
wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
|
||||
|
Reference in New Issue
Block a user