summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-02-27 23:58:35 +0000
committerBram Moolenaar <Bram@vim.org>2006-02-27 23:58:35 +0000
commit5e3cb7e8699f855193179a8cb799d1087f4a2ac9 (patch)
tree297e019074e2c2b85d5151701fcfae03bf02ceb9 /runtime
parenteddf53b02e2b007208b19c74fb616be2c0839b36 (diff)
updated for version 7.0209v7.0209
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/Makefile2
-rw-r--r--runtime/doc/autocmd.txt4
-rw-r--r--runtime/doc/eval.txt16
-rw-r--r--runtime/doc/gui.txt8
-rw-r--r--runtime/doc/help.txt8
-rw-r--r--runtime/doc/makehtml.awk4
-rw-r--r--runtime/doc/options.txt4
-rw-r--r--runtime/doc/pi_paren.txt42
-rw-r--r--runtime/doc/tags3
-rw-r--r--runtime/doc/todo.txt24
-rw-r--r--runtime/doc/version7.txt26
-rw-r--r--runtime/filetype.vim34
-rw-r--r--runtime/plugin/matchparen.vim106
13 files changed, 233 insertions, 48 deletions
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 1cf3241b65..3e77c53b1b 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -71,6 +71,7 @@ DOCS = \
pattern.txt \
pi_gzip.txt \
pi_netrw.txt \
+ pi_paren.txt \
pi_spec.txt \
pi_tar.txt \
pi_zip.txt \
@@ -196,6 +197,7 @@ HTMLS = \
pattern.html \
pi_gzip.html \
pi_netrw.html \
+ pi_paren.html \
pi_spec.html \
print.html \
quickfix.html \
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 4899648bf2..4dd34eb6aa 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.0aa. Last change: 2006 Feb 20
+*autocmd.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -471,6 +471,8 @@ CursorHoldI Just like CursorHold, but in Insert mode.
*CursorMoved*
CursorMoved After the cursor was moved in Normal mode.
+ Also when the text of the cursor line has been
+ changed, e.g., with "x", "rx" or "p".
Not triggered when there is typeahead or when
an operator is pending.
For an example see |match-parens|.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index b6534e0e91..a1c751d08e 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2006 Feb 26
+*eval.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3361,12 +3361,6 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
"\c" to the pattern to ignore case: >
:let idx = match(haystack, '\cneedle')
<
- When {count} is given use the {count}'th match. When a match
- is found in a String the search for the next one starts on
- character further. Thus this example results in 1: >
- echo match("testing", "..", 0, 2)
-< In a |List| the search continues in the next item.
-
If {start} is given, the search starts from byte index
{start} in a String or item {start} in a |List|.
The result, however, is still the index counted from the
@@ -3377,11 +3371,19 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()*
< result is again "4". >
:echo match("testing", "t", 2)
< result is "3".
+ For a String, if {start} > 0 then it is like the string starts
+ {start} bytes later, thus "^" will match there.
For a String, if {start} < 0, it will be set to 0. For a list
the index is counted from the end.
If {start} is out of range (> strlen({expr} for a String or
> len({expr} for a |List|) -1 is returned.
+ When {count} is given use the {count}'th match. When a match
+ is found in a String the search for the next one starts on
+ character further. Thus this example results in 1: >
+ echo match("testing", "..", 0, 2)
+< In a |List| the search continues in the next item.
+
See |pattern| for the patterns that are accepted.
The 'ignorecase' option is used to set the ignore-caseness of
the pattern. 'smartcase' is NOT used. The matching is always
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index de4b317c6a..b3b0dd92bc 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt* For Vim version 7.0aa. Last change: 2006 Feb 21
+*gui.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -24,9 +24,9 @@ Other GUI documentation:
1. Starting the GUI *gui-start* *E229* *E233*
First you must make sure you actually have a version of Vim with the GUI code
-included. You can check this with the ":version" command, it should include
-"+GUI_Athena", "+GUI_GTK", "+GUI_KDE", "+GUI_Motif" or "MS-Windows ... bit
-GUI version".
+included. You can check this with the ":version" command, it says "with xxx
+GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK, GTK2, etc., or
+"MS-Windows 32 bit GUI version".
How to start the GUI depends on the system used. Mostly you can run the
GUI version of Vim with:
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 42f0eb1e4d..3192df56e2 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt* For Vim version 7.0aa. Last change: 2006 Feb 18
+*help.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM - main help file
k
@@ -187,9 +187,11 @@ Remarks about specific systems ~
|os_win32.txt| MS-Windows 95/98/NT
*standard-plugin-list*
Standard plugins ~
-|pi_netrw.txt| Reading and writing files over a network
|pi_gzip.txt| Reading and writing compressed files
-|pi_expl.txt| File explorer
+|pi_netrw.txt| Reading and writing files over a network
+|pi_paren.txt| Highlight matching parens
+|pi_tar.txt| Tar file explorer
+|pi_zip.txt| Zip archive explorer
LOCAL ADDITIONS: *local-additions*
diff --git a/runtime/doc/makehtml.awk b/runtime/doc/makehtml.awk
index 8ae067e814..34a55445b8 100644
--- a/runtime/doc/makehtml.awk
+++ b/runtime/doc/makehtml.awk
@@ -581,7 +581,7 @@ function find_tag2() {
ntags=split(atag,blata,"[ ]");
if ( ntags > 1 ) { return; }
if ( ( allow_one_char == "no" ) && \
- ( index("!#$%\&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",atag) !=0 ) ) {
+ ( index("!#$%&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",atag) !=0 ) ) {
return;
}
if ( skip_word[atag] == "yes" ) { return; }
@@ -610,7 +610,7 @@ function find_tag3() {
ntags=split(btag,blata,"[ ]");
if ( ntags > 1 ) { return; }
if ( ( allow_one_char == "no" ) && \
- ( index("!#$%\&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",btag) !=0 ) ) {
+ ( index("!#$%&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",btag) !=0 ) ) {
return;
}
if ( skip_word[btag] == "yes" ) { return; }
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 13642e6f56..b17fba95e2 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.0aa. Last change: 2006 Feb 26
+*options.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4639,7 +4639,7 @@ A jump table for the options with a short description can be found at |Q_op|.
{only available when compiled with the |+linebreak|
feature}
Minimal number of columns to use for the line number. Only relevant
- when the 'number' option is set or printint lines with a line number.
+ when the 'number' option is set or printing lines with a line number.
Since one space is always between the number and the text, there is
one less character for the number itself.
The value is the minimum width. A bigger width is used when needed to
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
new file mode 100644
index 0000000000..d1733c6c7d
--- /dev/null
+++ b/runtime/doc/pi_paren.txt
@@ -0,0 +1,42 @@
+*pi_paren.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
+
+
+ VIM REFERENCE MANUAL by Bram Moolenaar
+
+
+Highlighting matching parens *matchparen*
+
+The functionality mentioned here is a |standard-plugin|.
+This plugin is only available if 'compatible' is not set.
+
+You can avoid loading this plugin by setting the "loaded_matchparen" variable: >
+ :let loaded_matchparen = 1
+
+The plugin installs CursorMoved autocommands to redefine the match
+highlighting.
+
+To disable the plugin after it was loaded use this command: >
+
+ :NoMatchParen
+
+And to enable it again: >
+
+ :DoMatchParen
+
+The highlighting used is ParenMatch. You can specify different colors with
+the ":highlight" command. Example: >
+
+ :hi ParenMatch ctermbg=blue guibg=lightblue
+
+The characters to be matched come from the 'matchpairs' option. You can
+change the value to highlight different matches. Note that not everything is
+possible. For example, you can't highlight single or double quotes, because
+the start and end are equal.
+
+The syntax highlighting attributes are used. When the cursor currently is not
+in a string or comment syntax item, then matches inside string and comment
+syntax items are ignored. Any syntax items with "string" or "comment"
+somewhere in their name are considered string or comment items.
+
+==============================================================================
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 0a5d062e11..3da16a4f3c 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5920,6 +5920,7 @@ match-parens tips.txt /*match-parens*
matchend() eval.txt /*matchend()*
matchit-install usr_05.txt /*matchit-install*
matchlist() eval.txt /*matchlist()*
+matchparen pi_paren.txt /*matchparen*
matchstr() eval.txt /*matchstr()*
max() eval.txt /*max()*
mbyte-IME mbyte.txt /*mbyte-IME*
@@ -6180,6 +6181,7 @@ new-items-7 version7.txt /*new-items-7*
new-line-continuation version5.txt /*new-line-continuation*
new-location-list version7.txt /*new-location-list*
new-manpage-trans version7.txt /*new-manpage-trans*
+new-matchparen version7.txt /*new-matchparen*
new-multi-byte version5.txt /*new-multi-byte*
new-multi-lang version6.txt /*new-multi-lang*
new-netrw-explore version7.txt /*new-netrw-explore*
@@ -6318,6 +6320,7 @@ php3.vim syntax.txt /*php3.vim*
phtml.vim syntax.txt /*phtml.vim*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
+pi_paren.txt pi_paren.txt /*pi_paren.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 00aa9b1cdf..efee16c9f3 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 26
+*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,11 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Script ID is only remembered for global options. Should remember it for every
-local option separately.
- Change PV_XXX values in separate ranges for buffer and window.
- Move the enums to option.h so that the size is known in structs.h
- use array for each window and buffer with scriptID values.
+test 49 fails because of the function line numbering now taking care of
+continuation lines.
Crash with X command server (Ciaran McCreesh).
@@ -43,7 +40,6 @@ maintanance.
"fsutil hardlink" can create a hard link on an NTFS file system. (Daniel
Einspanjer) What library function can detect that?
-
Win32: use GetFileInformationByHandle() to detect hard links on NTFS?
(George Reilly)
@@ -90,9 +86,6 @@ spelling:
adding a bad word like "zw" would. Use "zuw" to undo "zw"? (Antonio
Colombo)
-An error in a function uses a line number that doesn't take line continuation
-into account. (Mikolaj Machowski) Store line count in an extra array?
-
Is it possible to keep the command-line window open? Would actually work like
closing it, executing the command and re-opening it (at the same position).
@@ -1603,7 +1596,7 @@ Syntax highlighting:
"%" match. :syntax nomatch cMatchError (,{,[,),},] [contained]
8 Highlight the text between two matching parens (e.g., with a grey
background) when on one of the parens or in between them.
- Or highlight the matching paren when the cursor is on one.
+ Option for the matchparen plugin?
8 Add a command to jump to the next character highlighted with "Error".
8 When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
sequences. Add remark in docs that :if 'term' == "term-name" should be
@@ -1796,17 +1789,16 @@ Built-in script language:
specified in any way? To be able to jump to the last edited file.
8 Pass the executable name to the Vim scripts in some way. As v:argv0?
8 Add command arguments with three dashes, passed on to Vim scripts.
-8 When starting to source a vim script, delete all functions that it has
- previously defined? Avoids using ":fun!" all the time.
7 Add optional arguments to user functions:
:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
6 User functions: Functions local to buffer "b:func()"?
-8 Add ":let var[{expr}] = {expr}". When past the end of "var" just ignore.
+8 For Strings add ":let var[{expr}] = {expr}". When past the end of "var"
+ just ignore.
8 The "= register should be writable, if followed by the name of a variable,
option or environment variable.
8 ":let &option" should list the value of the option.
-7 Add synIDlist(), making the whole list of syntax items on the
- stack available (separated with '\n').
+7 Add synIDlist(), making the whole list of syntax items on the syntax stack
+ available as a List.
8 Add autocommand-event for when a variable is changed:
:au VarChanged {varname} {commands}
8 Add "has("gui_capable")", to check if the GUI can be started.
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 29e8afc087..065cfaa926 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 26
+*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -23,6 +23,7 @@ Spell checking |new-spell|
Omni completion |new-omni-completion|
MzScheme interface |new-MzScheme|
Printing multi-byte text |new-print-multi-byte|
+Highlighting matching parens |new-matchparen|
Translated manual pages |new-manpage-trans|
Internal grep |new-vimgrep|
Scroll back in messages |new-scroll-back|
@@ -227,6 +228,16 @@ The 'printmbcharset' and 'printmbfont' options are used for this.
Also see |postscript-cjk-printing|. (Mike Williams)
+Highlighting matching parens *new-matchparen*
+----------------------------
+
+When moving the cursor through the text and it is on a paren, then the
+matching paren can be highlighted. This uses the new |CursorMoved|
+autocommand event.
+
+See |pi_paren.txt| for more information.
+
+
Translated manual pages *new-manpage-trans*
-----------------------
@@ -1767,4 +1778,17 @@ the end of every line only up to the length of the last line was counted.
"dip" in trailing empty lines left one empty line behind.
+The script ID was only remembered globally for each option. When a buffer- or
+window-local option was set the same "last set" location was changed for all
+buffers and windows. Now remember the script ID for each local option
+separately.
+
+GUI: The "Replace All" button didn't handle backslashes in the replacement in
+the same way as "Replace". Escape backslashes so that they are taken
+literally.
+
+An error in a function reported a line number that doesn't take line
+continuation into account. Now store a NULL for continuation lines, so that
+the index is equal to the line number in the sourced file.
+
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 2a3cc2a584..c25ab53714 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2006 Feb 25
+" Last Change: 2006 Feb 27
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -1658,19 +1658,29 @@ au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl setf tex
au BufNewFile,BufRead *.tex call s:FTtex()
fun! s:FTtex()
- let n = 1
- while n < 10 && n < line("$")
- let line = getline(n)
- if line =~ '^\s*\\\%(documentclass\>\|usepackage\>\|begin{\)'
- setf tex
- return
- elseif line =~ '^\s*\\\%(start\l\+\|setup\l\+\|usemodule\|enablemode\>\|enableregime\>\|setvariables\>\|useencoding\>\|usesymbols\>\|stel\l\+\|verwende\l\+\|stel\l\+\|gebruik\l\+\|usa\l\+\|imposta\l\+\|regle\l\+\|utilisemodule\>\)\>'
- setf context
- return
+ let lnum = 1
+ let checked = 0
+ while checked < 25 && lnum < line("$")
+ let line = getline(lnum)
+ if line !~ '^\s*%'
+ if line =~ '^\s*\\\%(documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>\)'
+ setf tex
+ return
+ elseif line =~ '^\s*\\\%(start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\)\>'
+ setf context
+ return
+ endif
+ let checked = checked + 1
endif
- let n = n + 1
+ let lnum = lnum + 1
endwhile
- setf tex
+
+ " Didn't recognize anything, guess.
+ if exists("g:tex_flavour") && g:tex_flavour == "context"
+ setf context
+ else
+ setf tex
+ endif
endfun
" Context
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
new file mode 100644
index 0000000000..c11ca9fede
--- /dev/null
+++ b/runtime/plugin/matchparen.vim
@@ -0,0 +1,106 @@
+" Vim plugin for showing matching parens
+" Maintainer: Bram Moolenaar <Bram@vim.org>
+" Last Change: 2006 Feb 27
+
+" Exit quickly when:
+" - this plugin was already loaded (or disabled)
+" - when 'compatible' is set
+" - the "CursorMoved" autocmd event is not availble.
+if exists("g:loaded_matchparen") || &cp || !exists("##CursorMoved")
+ finish
+endif
+let g:loaded_matchparen = 1
+
+augroup matchparen
+ " Replace all matchparen autocommands
+ autocmd! CursorMoved,CursorMovedI * call s:Highlight_Matching_Pair()
+augroup END
+
+let s:paren_hl_on = 0
+
+" Skip the rest if it was already done.
+if exists("*s:Highlight_Matching_Pair")
+ finish
+endif
+
+" The function that is invoked (very often) to define a ":match" highlighting
+" for any matching paren.
+function! s:Highlight_Matching_Pair()
+ " Remove any previous match.
+ if s:paren_hl_on
+ match none
+ let s:paren_hl_on = 0
+ endif
+
+ " Get the character under the cursor and check if it's in 'matchpairs'.
+ let c_lnum = line('.')
+ let c_col = col('.')
+ let before = 0
+
+ let c = getline(c_lnum)[c_col - 1]
+ let plist = split(&matchpairs, ':\|,')
+ let i = index(plist, c)
+ if i < 0
+ " not found, in Insert mode try character before the cursor
+ if c_col > 1 && (mode() == 'i' || mode() == 'R')
+ let before = 1
+ let c = getline(c_lnum)[c_col - 2]
+ let i = index(plist, c)
+ endif
+ if i < 0
+ " not found, nothing to do
+ return
+ endif
+ endif
+
+ " Figure out the arguments for searchpairpos().
+ " Restrict the search to visible lines with "stopline".
+ if i % 2 == 0
+ let s_flags = 'nW'
+ let c2 = plist[i + 1]
+ let stopline = line('w$')
+ else
+ let s_flags = 'nbW'
+ let c2 = c
+ let c = plist[i - 1]
+ let stopline = line('w0')
+ endif
+ if c == '['
+ let c = '\['
+ let c2 = '\]'
+ endif
+
+ " When not in a string or comment ignore matches inside them.
+ let s_skip ='synIDattr(synID(c_lnum, c_col - before, 0), "name") ' .
+ \ '=~? "string\\|comment"'
+ execute 'if' s_skip '| let s_skip = 0 | endif'
+
+ " Find the match. When it was just before the cursor move it there for a
+ " moment. To restore the cursor position use "N|" and when 'virtualedit'
+ " is set, cursor() otherwise.
+ if before > 0
+ if &ve != ''
+ let vcol = virtcol('.')
+ endif
+ call cursor(c_lnum, c_col - before)
+ endif
+ let [m_lnum, m_col] = searchpairpos(c, '', c2, s_flags, s_skip, stopline)
+ if before > 0
+ if &ve != ''
+ exe 'normal ' . vcol . '|'
+ else
+ call cursor(0, c_col)
+ endif
+ endif
+
+ " If a match is found setup match highlighting.
+ if m_lnum > 0 && m_lnum >= line('w0') && m_lnum <= line('w$')
+ exe 'match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
+ \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
+ let s:paren_hl_on = 1
+ endif
+endfunction
+
+" Define commands that will disable and enable the plugin.
+command! NoMatchParen match none | unlet! g:loaded_matchparen | au! matchparen
+command! DoMatchParen runtime plugin/matchparen.vim | doau CursorMoved