0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.0086

This commit is contained in:
Bram Moolenaar
2005-06-16 21:59:56 +00:00
parent 6bab4d1fd7
commit 520470a9d6
11 changed files with 242 additions and 195 deletions

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.0aa. Last change: 2005 Apr 01
*repeat.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -290,7 +290,7 @@ first line has something like ":map <F1> :help^M", where "^M" is a <CR>. If
the first line ends in a <CR>, but following ones don't, you will get an error
message, because the <CR> from the first lines will be lost.
Macintosh: Files that are read with ":source" normally have <CR> <EOL>s.
Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
These always work. If you are using a file with <NL> <EOL>s (for example, a
file made on Unix), this will be recognized if 'fileformats' is not empty and
the first line does not end in a <CR>. Be careful not to use a file with <NL>

View File

@@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 14
*spell.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -25,9 +25,9 @@ This command switches on spell checking: >
This switches on the 'spell' option and specifies to check for US English.
The words that are not recognized are highlighted with one of these:
SpellBad word not recognized
SpellRare rare word
SpellLocal wrong spelling for selected region
SpellBad word not recognized |hl-SpellBad|
SpellRare rare word |hl-SpellRare|
SpellLocal wrong spelling for selected region |hl-SpellLocal|
Vim only checks words for spelling, there is no grammar check.
@@ -63,9 +63,10 @@ zw Add word under the cursor as a wrong (bad) word to
'spellfile'. In Visual mode the selected characters
are added as a word (including white space!).
*:spellg* *:spellgood*
:spellg[ood] {word} Add [word} as a good word to 'spellfile'.
*:spe* *:spellgood*
:spe[llgood] {word} Add [word} as a good word to 'spellfile'.
*:spellw* *:spellwrong*
:spellw[rong] {word} Add [word} as a wrong (bad) word to 'spellfile'.
After adding a word to 'spellfile' its associated ".spl" file will
@@ -117,7 +118,7 @@ comes in (at least) these variants:
en_us USA
Words that are not used in one region but are used in another region are
highlighted with |SpellLocal|.
highlighted with SpellLocal |hl-SpellLocal|.
Always use lowercase letters for the language and region names.
@@ -223,7 +224,7 @@ find them here:
http://lingucomponent.openoffice.org/spell_dic.html
You can also use a plain word list.
:mksp[ell] [-ascii] {outname} {inname} ... *:mksp* *:mkspell*
:mksp[ell][!] [-ascii] {outname} {inname} ... *:mksp* *:mkspell*
Generate a Vim spell file word lists. Example: >
:mkspell nl nl_NL.words
<
@@ -233,6 +234,9 @@ You can also use a plain word list.
{outname}.{encoding}.spl. {encoding} is the value of
the 'encoding' option.
When the output file already exists [!] must be added
to overwrite it.
When the [-ascii] argument is present, words with
non-ascii characters are skipped. The resulting file
ends in "ascii.spl".

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 14
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
synID() no longer works.
Range(0) should return an empty list (Servatius Brandt).
:let @= 'asdf' gives confusing error message. Make @= writable?
@@ -77,6 +79,9 @@ changed.
Include new PHP indent script from John Wellesz?
http://www.vim.org/scripts/download_script.php?src_id=4330
In Vim indenting use synID() to avoid recognizing "|en" in a string as
"|endif".
autoload:
- Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of
script names and a help file and produces a script that can be sourced to
@@ -88,6 +93,9 @@ autoload:
helpfile doc/myscript.txt
For the "helpfile" item ":helptags" is run.
For List comparing, consider [4] and ['4'] different? (Servatius Brandt)
Also allows strict comparing for ordinary variables.
Patch to alternate fold highlighting. (Anthony Iano-Fletcher, 2005 May 12)
More levels?
@@ -105,9 +113,18 @@ PLANNED FOR VERSION 7.0:
- Code for making suggestions:
- Aspell has the "special" character, useful?
- The score is a bit wrong for substituting multi-byte characters.
At the head byte remember how may bytes are still to follow, do
the scoring at the tail byte. But don't even try when the score
plus the minimal penalty (similar char) goes over maximum.
- similar_chars() is too slow.
- Swapping works with bytes instead of characters.
- The sound-folding doesn't work for multi-byte characters.
use a lookuptable for single-byte
use a hashtable for multi-byte
support letter appearing in several lists?
- When putting map string in .spl file check for duplicate chars.
- GUI: Selecting text doesn't work at the prompt.
- Should "z?" replacement be redo-able with "."?
- The sound-folding doesn't work for multi-byte characters. It's
very slow too. Prepare the table (remove alternatives)?
- Also put list of word characters in word list file. Otherwise the
one for Italian may differ from the one used for English.
- Make "en-rare" spell file.
@@ -182,6 +199,7 @@ PLANNED FOR VERSION 7.0:
- Put the list of choices right under the place where they would be
inserted.
- Pre-expand abbreviations, show which abbrevs would match?
- Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
- UNDO TREE: keep all states of the text, don't delete undo info.
When making a change, instead of clearing any future undo (thus redo)
info, make a new branch.
@@ -288,7 +306,7 @@ Don't count it in only_one_window(). (Alexei Alexandrov)
Win32: Patch for Korean IME. (Yusung, 2005 March 21)
When "= evaluation results in a list, use it as a sequence of lines.
When "= evaluation results in a List, use it as a sequence of lines.
Support ":set syntax=cpp.doxygen"? Suggested patch by Michael Geddes (9 Aug
2004). Should also work for 'filetype'.

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 13
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jun 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -657,6 +657,10 @@ Grahame Bowland and Evan Webb.
Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
used.
Win32: If the user changes the setting for the number of lines a scroll wheel
click scrolls it is now used immediately. Previously Vim would need to be
restarted.
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 May 20
" Last Change: 2005 Jun 16
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -543,6 +543,9 @@ au BufNewFile,BufRead *.exp setf expect
" Exports
au BufNewFile,BufRead exports setf exports
" Factor
au BufNewFile,BufRead *.factor setf factor
" Fetchmail RC file
au BufNewFile,BufRead .fetchmailrc setf fetchmail

View File

@@ -1,173 +1,173 @@
" Vim indent file
" Language: Pascal
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
" Created: 2004 Jul 13
" Last Change: 2005 Jun 07
" TODO: Reduce indentation on line after a statement that flowed across
" two lines (e.g. parameter list closed on second line). Also, increase
" indent of a becomes-statement that flows onto second line.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetPascalIndent(v:lnum)
" Appending an & to an option sets it to its default value.
setlocal indentkeys&
setlocal indentkeys+=~end;,=~const,=~type,=~var,=~begin,=~repeat,=~until,=~for
setlocal indentkeys+=~program,=~function,=~procedure,=~object,=~private
setlocal indentkeys+=~record,=~if,=~else,=~case
if exists("*GetPascalIndent")
finish
endif
function s:GetPrevLineNum( line_num )
" Skip over comments and conditional directives
let SKIP_LINES = '^\s*\((\*\)\|\(\*\ \)\|\(\*)\)\|\({\$\)'
let nline = a:line_num
while nline > 0
let nline = prevnonblank(nline-1)
if getline(nline) !~? SKIP_LINES
break
endif
endwhile
" call input( "nline = ".nline )
return nline
endfunction
function! GetPascalIndent( line_num )
if a:line_num == 0
return 0
endif
" If in the middle of a three-part comment
if getline( a:line_num ) =~ '^\s*\*\ '
return indent( a:line_num )
endif
" We have to subtract one to start on the line before the current
" one. Otherwise, prevnonblank() returns the current line!
let prev_line_num = s:GetPrevLineNum( a:line_num )
let prev_line = getline( prev_line_num )
let indnt = indent( prev_line_num )
let this_line = getline( a:line_num )
" At the start of a block, we have to indent the newly-created line
" based on the previous line.
" =~ means matches a regular expression
" a question mark after =~ means ignore case (# means match case)
" const, type, var should always appear at the start of a line, but
" begin can appear anywhere in the line.
" if one of the following keywords appear in the previous line with
" nothing before it but optional whitespace, and nothing after it.
" Has to be end of line at end to show this is not a routine
" parameter list. Otherwise, you'd end up with cascading vars.
" These words appear alone on a line (apart from whitespace).
if prev_line =~ '^\s*\(const\|var\|begin\|repeat\|private\)$'
" Place an & before an option to obtain its value.
let indnt = indnt + &shiftwidth
endif
" Words preceded by optional whitespace and followed by anything.
if prev_line =~ '^\s*\(for\|if\|else\|case\)'
" Place an & before an option to obtain its value.
let indnt = indnt + &shiftwidth
" if this is a multistatement block then we need to align the
" begin with the previous line.
if this_line =~ '^\s*begin'
let indnt = indnt - &shiftwidth
endif
endif
" These words may have text before them on the line (hence the .*).
if prev_line =~ '^.*\s*\<\(object\|record\)\>$'
let indnt = indnt + &shiftwidth
endif
" If we have opened a bracket and the contents spills over one line,
" then indent one level beyond the bracket's first line. RE = an
" opening bracket followed by any amount of anything other than a
" closing bracket and then the end-of-line. If we didn't include the
" end of line, this RE would match even closed brackets, since it
" would match everything up to the closing bracket.
" This test isn't clever enough to handle brackets inside strings or
" comments.
if prev_line =~ '([^*][^)]*$'
let indnt = indnt + &shiftwidth
endif
" If we just closed a bracket that started on a previous line, then
" unindent.
if prev_line =~ '^[^(]*[^*])'
let indnt = indnt - &shiftwidth
endif
" At the end of a block, we have to unindent both the current line
" (the 'end;' for instance) and the newly-created line.
if this_line =~ '^\s*\(end;\|until\|else\)'
let indnt = indnt - &shiftwidth
endif
" Keywords that always appear at the start of a line.
" Problem is that function and procedure keywords should be indented
" if within a class declaration.
if this_line =~ '^\s*\<type\|uses\|$IFDEF\|$ENDIF\|procedure\|function\>'
let indnt = 0
endif
if prev_line =~ '^\s*\<type\|uses\>'
let indnt = &shiftwidth
endif
" Put conditional compile directives on first column.
if this_line =~ '^\s*{\$'
let indnt = 0
endif
return indnt
endfunction
" TODO: end; should align with the previous (begin/record/object/else).
" "else begin" is the only case where begin does not appear at the start
" of the line.
" TODO: Don't align with {$IFDEF}
"Example from vb.vim
" regular expression match, case insensitive
"if previous_line =~?
" start of line, zero or more whitespace
"'^\s*
" start of word
"\<
"
"\(
" begin\|
" \%(
" \%(
" private\|public\|friend
" \)
" \s\+
" \)
" zero or more of the previous atom
" \=
" \%(
" function\|sub\|property
" \)
" \|select\|case\|default\|if
"\>
" .\{-}\<then\>\s*$\|else\|elseif\|do\|for\|while\|enum\|with
"\)
" end of word
"\>'
" let ind = ind + &sw
"endif
" Vim indent file
" Language: Pascal
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
" Created: 2004 Jul 13
" Last Change: 2005 Jun 15
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetPascalIndent(v:lnum)
setlocal indentkeys&
setlocal indentkeys+==end;,==const,==type,==var,==begin,==repeat,==until,==for
setlocal indentkeys+==program,==function,==procedure,==object,==private
setlocal indentkeys+==record,==if,==else,==case
if exists("*GetPascalIndent")
finish
endif
function! s:GetPrevNonCommentLineNum( line_num )
" Skip lines starting with a comment
let SKIP_LINES = '^\s*\(\((\*\)\|\(\*\ \)\|\(\*)\)\|{\|}\)'
let nline = a:line_num
while nline > 0
let nline = prevnonblank(nline-1)
if getline(nline) !~? SKIP_LINES
break
endif
endwhile
return nline
endfunction
function! GetPascalIndent( line_num )
" Line 0 always goes at column 0
if a:line_num == 0
return 0
endif
let this_codeline = getline( a:line_num )
" If in the middle of a three-part comment
if this_codeline =~ '^\s*\*'
return indent( a:line_num )
endif
let prev_codeline_num = s:GetPrevNonCommentLineNum( a:line_num )
let prev_codeline = getline( prev_codeline_num )
let indnt = indent( prev_codeline_num )
" Compiler directives should always go in column zero.
if this_codeline =~ '^\s*{\(\$IFDEF\|\$ELSE\|\$ENDIF\)'
return 0
endif
" These items have nothing before or after (not even a comment), and
" go on column 0. Make sure that the ^\s* is followed by \( to make
" ORs work properly, and not include the start of line (this must
" always appear).
" The bracketed expression with the underline is a routine
" separator. This is one case where we do indent comment lines.
if this_codeline =~ '^\s*\((\*\ _\+\ \*)\|\<\(const\|var\)\>\)$'
return 0
endif
" These items may have text after them, and go on column 0 (in most
" cases). The problem is that "function" and "procedure" keywords
" should be indented if within a class declaration.
if this_codeline =~ '^\s*\<\(program\|type\|uses\|procedure\|function\)\>'
return 0
endif
" BEGIN
" If the begin does not come after "if", "for", or "else", then it
" goes in column 0
if this_codeline =~ '^\s*begin\>' && prev_codeline !~ '^\s*\<\(if\|for\|else\)\>'
return 0
endif
" These keywords are indented once only.
if this_codeline =~ '^\s*\<\(private\)\>'
return &shiftwidth
endif
" If the PREVIOUS LINE contained these items, the current line is
" always indented once.
if prev_codeline =~ '^\s*\<\(type\|uses\)\>'
return &shiftwidth
endif
" These keywords are indented once only. Possibly surrounded by
" other chars.
if this_codeline =~ '^.\+\<\(object\|record\)\>'
return &shiftwidth
endif
" If the previous line was indenting...
if prev_codeline =~ '^\s*\<\(for\|if\|case\|else\|end\ else\)\>'
" then indent.
let indnt = indnt + &shiftwidth
" BUT... if this is the start of a multistatement block then we
" need to align the begin with the previous line.
if this_codeline =~ '^\s*begin\>'
return indnt - &shiftwidth
endif
" We also need to keep the indentation level constant if the
" whole if-then statement was on one line.
if prev_codeline =~ '\<then\>.\+'
let indnt = indnt - &shiftwidth
endif
endif
" PREVIOUS-LINE BEGIN
" If the previous line was an indenting keyword then indent once...
if prev_codeline =~ '^\s*\<\(const\|var\|begin\|repeat\|private\)\>'
" But only if this is another var in a list.
if this_codeline !~ '^\s*var\>'
return indnt + &shiftwidth
endif
endif
" PREVIOUS-LINE BEGIN
" Indent code after a case statement begin
if prev_codeline =~ '\:\ begin\>'
return indnt + &shiftwidth
endif
" These words may have text before them on the line (hence the .*)
" but are followed by nothing. Always indent once only.
if prev_codeline =~ '^\(.*\|\s*\)\<\(object\|record\)\>$'
return indnt + &shiftwidth
endif
" If we just closed a bracket that started on a previous line, then
" unindent. But don't return yet -- we need to check for further
" unindentation (for end/until/else)
if prev_codeline =~ '^[^(]*[^*])'
let indnt = indnt - &shiftwidth
endif
" At the end of a block, we have to unindent both the current line
" (the "end" for instance) and the newly-created line.
if this_codeline =~ '^\s*\<\(end\|until\|else\)\>'
return indnt - &shiftwidth
endif
" If we have opened a bracket and it continues over one line,
" then indent once.
"
" RE = an opening bracket followed by any amount of anything other
" than a closing bracket and then the end-of-line.
"
" If we didn't include the end of line, this RE would match even
" closed brackets, since it would match everything up to the closing
" bracket.
"
" This test isn't clever enough to handle brackets inside strings or
" comments.
if prev_codeline =~ '([^*]\=[^)]*$'
return indnt + &shiftwidth
endif
return indnt
endfunction

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 Feb 25
" Last Change: 2005 Jun 16
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -51,8 +51,8 @@ function GetVimIndent()
endif
" If the previous line contains an "end" after a pipe, but not in an ":au"
" command.
if getline(lnum) =~ '|\s*\(ene\@!\)' && getline(lnum) !~ '^\s*au\%[tocmd]'
" command. And not when there is a backslash before the pipe.
if getline(lnum) =~ '[^\\]|\s*\(ene\@!\)' && getline(lnum) !~ '^\s*au\%[tocmd]'
let ind = ind - &sw
endif

View File

@@ -498,6 +498,18 @@ _OnMouseWheel(
_OnScroll(hwnd, hwndCtl, zDelta >= 0 ? SB_PAGEUP : SB_PAGEDOWN, 0);
}
/*
* Invoked when a setting was changed.
*/
static LRESULT CALLBACK
_OnSettingChange(UINT n)
{
if (n == SPI_SETWHEELSCROLLLINES)
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
&mouse_scroll_lines, 0);
return 0;
}
#if 0 /* disabled, a gap appears below and beside the window, and the window
can be moved (in a strange way) */
/*
@@ -686,6 +698,10 @@ _WndProc(
_OnMouseWheel(hwnd, HIWORD(wParam));
break;
/* Notification for change in SystemParametersInfo() */
case WM_SETTINGCHANGE:
return _OnSettingChange((UINT)wParam);
#ifdef FEAT_TOOLBAR
case WM_NOTIFY:
switch (((LPNMHDR) lParam)->code)

View File

@@ -94,4 +94,6 @@ void sort_strings __ARGS((char_u **files, int count));
int pathcmp __ARGS((const char *p, const char *q, int maxlen));
char_u *parse_list_options __ARGS((char_u *option_str, option_table_T *table, int table_size));
int filewritable __ARGS((char_u *fname));
int emsg3 __ARGS((char_u *s, char_u *a1, char_u *a2));
int emsgn __ARGS((char_u *s, long n));
/* vim: set ft=c : */

View File

@@ -2224,7 +2224,7 @@ check_linecomment(line)
int instr = FALSE; /* inside of string */
p = line; /* scan from start */
while ((p = vim_strpbrk(p, "\";")) != NULL)
while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
{
if (*p == '"')
{

View File

@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 14)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 14, compiled "
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 16)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jun 16, compiled "