mirror of
https://github.com/zoriya/vim.git
synced 2025-12-31 03:18:25 +00:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79739e163b | ||
|
|
b931d74b06 | ||
|
|
1514667a24 | ||
|
|
e3cc6d4223 | ||
|
|
6cc00c75c1 | ||
|
|
cd6fe97e6b | ||
|
|
c842748302 | ||
|
|
62dbdc4a5a | ||
|
|
667b4d2db9 | ||
|
|
f34dc6537d | ||
|
|
a4594f6b82 | ||
|
|
b3479bd229 | ||
|
|
2e7b1df8fa | ||
|
|
e06461a821 | ||
|
|
725a962194 | ||
|
|
08c51aabc4 | ||
|
|
ca0c9fcda0 | ||
|
|
e79d1535cf |
1
Filelist
1
Filelist
@@ -81,6 +81,7 @@ SRC_ALL = \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/proto.h \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
" vimball.vim : construct a file containing both paths and files
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Apr 02, 2011
|
||||
" Version: 33
|
||||
" Date: Sep 26, 2011
|
||||
" Version: 34
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
@@ -14,7 +14,7 @@
|
||||
if &cp || exists("g:loaded_vimball")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimball = "v33"
|
||||
let g:loaded_vimball = "v34"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of vimball needs vim 7.2"
|
||||
@@ -220,7 +220,16 @@ fun! vimball#Vimball(really,...)
|
||||
|
||||
" go to vim plugin home
|
||||
if a:0 > 0
|
||||
" let user specify the directory where the vimball is to be unpacked.
|
||||
" If, however, the user did not specify a full path, set the home to be below the current directory
|
||||
let home= expand(a:1)
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if home !~ '^\a:[/\\]'
|
||||
let home= getcwd().'/'.a:1
|
||||
endif
|
||||
elseif home !~ '^/'
|
||||
let home= getcwd().'/'.a:1
|
||||
endif
|
||||
else
|
||||
let home= vimball#VimballHome()
|
||||
endif
|
||||
@@ -282,11 +291,14 @@ fun! vimball#Vimball(really,...)
|
||||
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
|
||||
let fnamebuf= substitute(fname,'\\','/','g')
|
||||
let dirpath = substitute(home,'\\','/','g')
|
||||
" call Decho("init: fnamebuf<".fnamebuf.">")
|
||||
" call Decho("init: dirpath <".dirpath.">")
|
||||
while fnamebuf =~ '/'
|
||||
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
|
||||
let dirpath = dirname
|
||||
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
|
||||
" call Decho("dirname<".dirname.">")
|
||||
" call Decho("dirpath<".dirpath.">")
|
||||
if !isdirectory(dirname)
|
||||
" call Decho("making <".dirname.">")
|
||||
if exists("g:vimball_mkdir")
|
||||
@@ -569,9 +581,19 @@ endfun
|
||||
fun! s:ChgDir(newdir)
|
||||
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16"))
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
try
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
catch /^Vim\%((\a\+)\)\=:E/
|
||||
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
endtry
|
||||
else
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
try
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E/
|
||||
call mkdir(fnameescape(a:newdir))
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
endtry
|
||||
endif
|
||||
" call Dret("ChgDir : curdir<".getcwd().">")
|
||||
endfun
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.3. Last change: 2011 Aug 29
|
||||
*eval.txt* For Vim version 7.3. Last change: 2011 Sep 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -6374,7 +6374,7 @@ last defined. Example: >
|
||||
<
|
||||
See |:verbose-cmd| for more information.
|
||||
|
||||
*E124* *E125*
|
||||
*E124* *E125* *E853*
|
||||
:fu[nction][!] {name}([arguments]) [range] [abort] [dict]
|
||||
Define a new function by the name {name}. The name
|
||||
must be made of alphanumeric characters and '_', and
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.3. Last change: 2011 Aug 19
|
||||
*map.txt* For Vim version 7.3. Last change: 2011 Oct 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -237,11 +237,18 @@ For this reason the following is blocked:
|
||||
- Editing another buffer.
|
||||
- The |:normal| command.
|
||||
- Moving the cursor is allowed, but it is restored afterwards.
|
||||
- You can use getchar(), but the existing typeahead isn't seen and new
|
||||
typeahead is discarded.
|
||||
If you want the mapping to do any of these let the returned characters do
|
||||
that.
|
||||
|
||||
You can use getchar(), it consumes typeahead if there is any. E.g., if you
|
||||
have these mappings: >
|
||||
inoremap <expr> <C-L> nr2char(getchar())
|
||||
inoremap <expr> <C-L>x "foo"
|
||||
If you now type CTRL-L nothing happens yet, Vim needs the next character to
|
||||
decide what mapping to use. If you type 'x' the second mapping is used and
|
||||
"foo" is inserted. If you type 'a' the first mapping is used, getchar() gets
|
||||
the 'a' and returns it.
|
||||
|
||||
Here is an example that inserts a list number that increases: >
|
||||
let counter = 0
|
||||
inoremap <expr> <C-L> ListItem()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 7.3. Last change: 2011 Jul 18
|
||||
*mbyte.txt* For Vim version 7.3. Last change: 2011 Oct 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -797,8 +797,8 @@ is suitable for complex input, such as CJK.
|
||||
number of Hira-gana characters are 76. So, first, we pre-input text as
|
||||
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
|
||||
if needed. There are some Kana-Kanji conversion server: jserver
|
||||
(distributed with Wnn, see below) and canna. Canna could be found at:
|
||||
ftp://ftp.nec.co.jp/pub/Canna/ (no longer works).
|
||||
(distributed with Wnn, see below) and canna. Canna can be found at:
|
||||
http://canna.sourceforge.jp/
|
||||
|
||||
There is a good input system: Wnn4.2. Wnn 4.2 contains,
|
||||
xwnmo (|IM-server|)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
|
||||
*netbeans.txt* For Vim version 7.3. Last change: 2011 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@@ -263,6 +263,12 @@ The messages are currently sent over a socket. Since the messages are in
|
||||
plain UTF-8 text this protocol could also be used with any other communication
|
||||
mechanism.
|
||||
|
||||
Netbeans messages are processed when Vim is idle, waiting for user input.
|
||||
When Vim is run in non-interactive mode, for example when running an automated
|
||||
test case that sources a Vim script, the idle loop may not be called often
|
||||
enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
|
||||
command does invoke Netbeans messages processing.
|
||||
|
||||
6.1 Kinds of messages |nb-messages|
|
||||
6.2 Terms |nb-terms|
|
||||
6.3 Commands |nb-commands|
|
||||
@@ -833,11 +839,16 @@ These errors occur when a message violates the protocol:
|
||||
signs.
|
||||
|
||||
*:nbkey*
|
||||
:nb[key] {key} Pass the {key} to the Vim Controller for processing
|
||||
|
||||
When a hot-key has been installed with the specialKeys command, this command
|
||||
can be used to generate a hotkey messages to the Vim Controller. The events
|
||||
newDotAndMark, keyCommand and keyAtPos are generated (in this order).
|
||||
:nb[key] {key} Pass the {key} to the Vim Controller for processing.
|
||||
When a hot-key has been installed with the specialKeys
|
||||
command, this command can be used to generate a hotkey
|
||||
message to the Vim Controller.
|
||||
This command can also be used to pass any text to the
|
||||
Vim Controller. It is used by Pyclewn, for example,
|
||||
to build the complete set of gdb commands as Vim user
|
||||
commands.
|
||||
The events newDotAndMark, keyCommand and keyAtPos are
|
||||
generated (in this order).
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.3. Last change: 2011 Sep 09
|
||||
*options.txt* For Vim version 7.3. Last change: 2011 Sep 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -6762,8 +6762,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
usetab Like "useopen", but also consider windows in other tab
|
||||
pages.
|
||||
split If included, split the current window before loading
|
||||
a buffer. Otherwise: do not split, use current window.
|
||||
Supported in |quickfix| commands that display errors.
|
||||
a buffer for a |quickfix| command that display errors.
|
||||
Otherwise: do not split, use current window.
|
||||
newtab Like "split", but open a new tab page. Overrules
|
||||
"split" when both are present.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 7.3. Last change: 2011 Jul 20
|
||||
*pattern.txt* For Vim version 7.3. Last change: 2011 Sep 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -21,7 +21,7 @@ explanations are in chapter 27 |usr_27.txt|.
|
||||
10. Highlighting matches |match-highlight|
|
||||
|
||||
==============================================================================
|
||||
1. Search commands *search-commands* *E486*
|
||||
1. Search commands *search-commands*
|
||||
|
||||
*/*
|
||||
/{pattern}[/]<CR> Search forward for the [count]'th occurrence of
|
||||
@@ -150,6 +150,11 @@ use <Esc> to abandon the search.
|
||||
All matches for the last used search pattern will be highlighted if you set
|
||||
the 'hlsearch' option. This can be suspended with the |:nohlsearch| command.
|
||||
|
||||
When no match is found you get the error: *E486* Pattern not found
|
||||
Note that for the |:global| command this behaves like a normal message, for Vi
|
||||
compatibility. For the |:s| command the "e" flag can be used to avoid the
|
||||
error message |:s_flags|.
|
||||
|
||||
*search-offset* *{offset}*
|
||||
These commands search for the specified pattern. With "/" and "?" an
|
||||
additional offset may be given. There are two types of offsets: line offsets
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 May 31
|
||||
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 Sep 26
|
||||
|
||||
-----------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
|
||||
@@ -89,7 +89,7 @@ Copyright: Copyright (C) 1999-2011 Charles E Campbell, Jr *netrw-copyright*
|
||||
Marked Files: Unmarking............................|netrw-mu|
|
||||
Netrw Browser Variables............................|netrw-browser-var|
|
||||
Netrw Browsing And Option Incompatibilities........|netrw-incompatible|
|
||||
Netrw Settings.....................................|netrw-settings|
|
||||
Netrw Settings Window..............................|netrw-settings-window|
|
||||
Obtaining A File...................................|netrw-O|
|
||||
Preview Window.....................................|netrw-p|
|
||||
Previous Window....................................|netrw-P|
|
||||
@@ -294,14 +294,14 @@ DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
|
||||
CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
|
||||
|
||||
Attempts to use ftp will prompt you for a user-id and a password.
|
||||
These will be saved in global variables g:netrw_uid and
|
||||
s:netrw_passwd; subsequent uses of ftp will re-use those two items to
|
||||
simplify the further use of ftp. However, if you need to use a
|
||||
different user id and/or password, you'll want to call NetUserPass()
|
||||
These will be saved in global variables |g:netrw_uid| and
|
||||
|s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
|
||||
thereby simplifying use of ftp. However, if you need to use a
|
||||
different user id and/or password, you'll want to call |NetUserPass()|
|
||||
first. To work around the need to enter passwords, check if your ftp
|
||||
supports a <.netrc> file in your home directory. Also see
|
||||
|netrw-passwd| (and if you're using ssh/scp hoping to figure out how
|
||||
to not need to use passwords, look at |netrw-ssh-hack|).
|
||||
to not need to use passwords for scp, look at |netrw-ssh-hack|).
|
||||
|
||||
:NetUserPass [uid [password]] -- prompts as needed
|
||||
:call NetUserPass() -- prompts for uid and password
|
||||
@@ -331,7 +331,8 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
netrw edits a file. The file is first edited, and
|
||||
then the function reference (|Funcref|) is called.
|
||||
This variable may also hold a |List| of Funcrefs.
|
||||
(default) not defined
|
||||
(default) not defined. (the capital in g:Netrw...
|
||||
is required by its holding a function reference)
|
||||
>
|
||||
Example: place in .vimrc; affects all file opening
|
||||
fun! MyFuncRef()
|
||||
@@ -479,6 +480,9 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
|
||||
let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
|
||||
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
|
||||
<
|
||||
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
|
||||
doesn't work, so its best to leave it off for that system)
|
||||
|
||||
See |netrw-p8| for more about putty, pscp, psftp, etc.
|
||||
|
||||
Ftp, an old protocol, seems to be blessed by numerous implementations.
|
||||
@@ -716,13 +720,16 @@ below, a {netfile} is an url to a remote file.
|
||||
|
||||
|
||||
==============================================================================
|
||||
8. Variables and Options *netrw-options* *netrw-var* {{{1
|
||||
8. Variables and Options *netrw-settings* {{{1
|
||||
|
||||
(if you're interested in the netrw browser settings, see: |netrw-browser-var|)
|
||||
(also see: |netrw-options| |netrw-variables| |netrw-protocol|
|
||||
|netrw-browser-settings| |netrw-browser-options|
|
||||
|netrw-browser-var| )
|
||||
|
||||
The <netrw.vim> script provides several variables which act as options to
|
||||
affect <netrw.vim>'s file transfer behavior. These variables typically may be
|
||||
set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
|
||||
*netrw-options*
|
||||
>
|
||||
-------------
|
||||
Netrw Options
|
||||
@@ -754,6 +761,7 @@ set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
|
||||
=1 use default method to do ftp >
|
||||
-----------------------------------------------------------------------
|
||||
<
|
||||
*netrw-internal-variables*
|
||||
The script will also make use of the following variables internally, albeit
|
||||
temporarily.
|
||||
>
|
||||
@@ -1147,15 +1155,14 @@ allows one to open a new window to hold the new directory listing or file. A
|
||||
horizontal split is used. (for vertical splitting, see |netrw-v|)
|
||||
|
||||
Normally, the o key splits the window horizontally with the new window and
|
||||
cursor at the top. To change to splitting the window horizontally with the
|
||||
new window and cursor at the bottom, have
|
||||
|
||||
let g:netrw_alto = 1
|
||||
|
||||
in your <.vimrc>. (also see |netrw-t| |netrw-T| |netrw-v|)
|
||||
cursor at the top.
|
||||
|
||||
Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
|
||||
|
||||
Related Actions |netrw-cr| |netrw-p| |netrw-t| |netrw-T| |netrw-v|
|
||||
Associated setting variables:
|
||||
|g:netrw_alto| control above/below splitting
|
||||
|g:netrw_winsize| control initial sizing
|
||||
|
||||
BROWSING WITH A NEW TAB *netrw-t* *netrw-T* {{{2
|
||||
|
||||
@@ -1164,8 +1171,9 @@ allows one to open a new window holding the new directory listing or file in
|
||||
a new tab. The "T" version puts the file or directory into a background tab
|
||||
(see |gT|)
|
||||
|
||||
Related actions: |netrw-o| |netrw-v|
|
||||
|
||||
Related Actions |netrw-cr| |netrw-o| |netrw-p| |netrw-v|
|
||||
Associated setting variables:
|
||||
|g:netrw_winsize| control initial sizing
|
||||
|
||||
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
|
||||
|
||||
@@ -1174,18 +1182,18 @@ allows one to open a new window to hold the new directory listing or file. A
|
||||
vertical split is used. (for horizontal splitting, see |netrw-o|)
|
||||
|
||||
Normally, the v key splits the window vertically with the new window and
|
||||
cursor at the left. To change to splitting the window vertically with the new
|
||||
window and cursor at the right, have
|
||||
|
||||
let g:netrw_altv = 1
|
||||
|
||||
in your <.vimrc>. (also see: |netrw-o| |netrw-t| |netrw-T|)
|
||||
cursor at the left.
|
||||
|
||||
There is only one tree listing buffer; using "v" on a displayed subdirectory
|
||||
will split the screen, but the same buffer will be shown twice.
|
||||
|
||||
Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
|
||||
|
||||
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
|
||||
Associated setting variables:
|
||||
|g:netrw_altv| control right/left splitting
|
||||
|g:netrw_winsize| control initial sizing
|
||||
|
||||
|
||||
CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
|
||||
|
||||
@@ -1386,6 +1394,7 @@ to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
|
||||
|
||||
g:netrw_rmf_cmd: ssh HOSTNAME rm -f
|
||||
|
||||
Related topics: |netrw-d|
|
||||
Associated setting variable: |g:netrw_local_rmdir| |g:netrw_rm_cmd|
|
||||
|g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
|
||||
|
||||
@@ -1520,7 +1529,7 @@ What it means:
|
||||
Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
|
||||
Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
|
||||
|
||||
|
||||
*netrw-sort-sequence*
|
||||
EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
|
||||
|
||||
When "Sorted by" is name, one may specify priority via the sorting sequence
|
||||
@@ -1723,9 +1732,9 @@ directory's name. A bare <CR> at that point will abort the making of the
|
||||
directory. Attempts to make a local directory that already exists (as either
|
||||
a file or a directory) will be detected, reported on, and ignored.
|
||||
|
||||
Currently, making a directory via ftp is not supported.
|
||||
|
||||
Associated setting variable: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
|
||||
Related topics: |netrw-D|
|
||||
Associated setting variables: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
|
||||
|g:netrw_remote_mkdir|
|
||||
|
||||
|
||||
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
|
||||
@@ -1953,10 +1962,11 @@ MARKED FILES: UNMARKING *netrw-mu* {{{2
|
||||
|
||||
The "mu" mapping will unmark all currently marked files.
|
||||
|
||||
|
||||
*netrw-browser-settings*
|
||||
NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
|
||||
|
||||
(if you're interested in the netrw file transfer settings, see |netrw-options|)
|
||||
(if you're interested in the netrw file transfer settings, see |netrw-options|
|
||||
and |netrw-protocol|)
|
||||
|
||||
The <netrw.vim> browser provides settings in the form of variables which
|
||||
you may modify; by placing these settings in your <.vimrc>, you may customize
|
||||
@@ -2006,6 +2016,15 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
Will compress marked files with this
|
||||
command
|
||||
|
||||
*g:Netrw_corehandler* Allows one to specify something additional
|
||||
to do when handling <core> files via netrw's
|
||||
browser's "x" command (see |netrw-x|). If
|
||||
present, g:Netrw_corehandler specifies
|
||||
either one or more function references
|
||||
(see |Funcref|). (the capital g:Netrw...
|
||||
is required its holding a function reference)
|
||||
|
||||
|
||||
*g:netrw_ctags* ="ctags"
|
||||
The default external program used to create tags
|
||||
|
||||
@@ -2157,6 +2176,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
columnar.
|
||||
|
||||
*g:netrw_mkdir_cmd* command for making a remote directory
|
||||
via ssh (also see |g:netrw_remote_mkdir|)
|
||||
default: "ssh USEPORT HOSTNAME mkdir"
|
||||
|
||||
*g:netrw_mousemaps* =1 (default) enables mouse buttons while
|
||||
@@ -2167,6 +2187,15 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
rightmouse : remove file/directory
|
||||
=0: disables mouse maps
|
||||
|
||||
*g:netrw_nobeval* doesn't exist (default)
|
||||
If this variable exists, then balloon
|
||||
evaluation will be suppressed
|
||||
(see |'ballooneval'|)
|
||||
|
||||
*g:netrw_remote_mkdir* command for making a local directory
|
||||
via ftp (also see |g:netrw_mkdir_cmd|)
|
||||
default: "mkdir"
|
||||
|
||||
*g:netrw_retmap* if it exists and is set to one, then:
|
||||
* if in a netrw-selected file, AND
|
||||
* no normal-mode <2-leftmouse> mapping exists,
|
||||
@@ -2279,6 +2308,9 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
is an integer describing the percentage of the
|
||||
current netrw buffer's window to be used for
|
||||
the new window.
|
||||
If g:netrw_winsize is less than zero, then
|
||||
the absolute value of g:netrw_winsize lines
|
||||
or columns will be used for the new window.
|
||||
default: 50 (for 50%)
|
||||
|
||||
*g:netrw_xstrlen* Controls how netrw computes string lengths,
|
||||
@@ -2313,7 +2345,7 @@ file you edit; this apparently also applies to directories. In other words,
|
||||
autochdir sets the current directory to that containing the "file" (even if
|
||||
that "file" is itself a directory).
|
||||
|
||||
NETRW BROWSER SETTINGS *netrw-settings* {{{2
|
||||
NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
|
||||
|
||||
With the NetrwSettings.vim plugin, >
|
||||
:NetrwSettings
|
||||
@@ -2356,7 +2388,6 @@ Related topics:
|
||||
* To automatically make the currently browsed directory the current
|
||||
directory, see |g:netrw_keepdir|.
|
||||
|
||||
|
||||
*netrw-createfile*
|
||||
OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%*
|
||||
|
||||
@@ -2390,8 +2421,7 @@ PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
|
||||
|
||||
To edit a file or directory in the previously used (last accessed) window (see
|
||||
:he |CTRL-W_p|), press a "P". If there's only one window, then the one window
|
||||
will be horizontally split (above/below splitting is controlled by
|
||||
|g:netrw_alto|, and its initial size is controlled by |g:netrw_winsize|).
|
||||
will be horizontally split (by default).
|
||||
|
||||
If there's more than one window, the previous window will be re-used on
|
||||
the selected file/directory. If the previous window's associated buffer
|
||||
@@ -2399,6 +2429,13 @@ has been modified, and there's only one window with that buffer, then
|
||||
the user will be asked if s/he wishes to save the buffer first (yes,
|
||||
no, or cancel).
|
||||
|
||||
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
|
||||
Associated setting variables:
|
||||
|g:netrw_alto| control above/below splitting
|
||||
|g:netrw_altv| control right/left splitting
|
||||
|g:netrw_preview| control horizontal vs vertical splitting
|
||||
|g:netrw_winsize| control initial sizing
|
||||
|
||||
|
||||
REFRESHING THE LISTING *netrw-ctrl-l* *netrw-ctrl_l* {{{2
|
||||
|
||||
@@ -2804,6 +2841,30 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative
|
||||
number; the absolute value of it will then
|
||||
be used to specify lines/columns instead of
|
||||
a percentage.
|
||||
Jul 05, 2011 * the "d" map now supports mkdir via ftp
|
||||
See |netrw-d| and |g:netrw_remote_mkdir|
|
||||
Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore
|
||||
to use a percentage of |winwidth()| instead
|
||||
of a percentage of |winheight()|.
|
||||
Jul 11, 2011 * included support for https://... I'm just
|
||||
beginning to test this, however.
|
||||
Aug 01, 2011 * changed RestoreOptions to also restore
|
||||
cursor position in netrw buffers.
|
||||
Aug 12, 2011 * added a note about "%" to the balloon
|
||||
Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon
|
||||
evaluation is suppressed.
|
||||
Aug 31, 2011 * (Benjamin R Haskell) provided a patch that
|
||||
implements non-standard port handling for
|
||||
files opened via the remote browser.
|
||||
Aug 31, 2011 * Fixed a **//pattern Explorer bug
|
||||
Sep 15, 2011 * (reported by Francesco Campana) netrw
|
||||
now permits the "@" to be part of the
|
||||
user id (if there's an @ that appears
|
||||
to the right).
|
||||
v142: Apr 06, 2011 * I modified NetrwRemoteListing() to use
|
||||
shellescape(fnameescape(s:path),1) for
|
||||
the benefit of those using scp://.../
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Aug 14
|
||||
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Sep 26
|
||||
|
||||
----------------
|
||||
Vimball Archiver
|
||||
@@ -177,6 +177,8 @@ WINDOWS *vimball-windows*
|
||||
==============================================================================
|
||||
4. Vimball History *vimball-history* {{{1
|
||||
|
||||
34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
|
||||
prepending the current directory to it.
|
||||
33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
|
||||
* Changed silent! to sil! (shorter)
|
||||
* Safed |'swf'| setting (during vimball extraction,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 21
|
||||
*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2723,7 +2723,7 @@ in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
|
||||
modeline at the end of your LaTeX file: >
|
||||
% vim: fdm=syntax
|
||||
If your system becomes too slow, then you might wish to look into >
|
||||
https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7
|
||||
http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
|
||||
<
|
||||
*tex-nospell*
|
||||
Tex: Don't Want Spell Checking In Comments? ~
|
||||
|
||||
@@ -4235,6 +4235,7 @@ E85 options.txt /*E85*
|
||||
E850 change.txt /*E850*
|
||||
E851 gui_x11.txt /*E851*
|
||||
E852 gui_x11.txt /*E852*
|
||||
E853 eval.txt /*E853*
|
||||
E86 windows.txt /*E86*
|
||||
E87 windows.txt /*E87*
|
||||
E88 windows.txt /*E88*
|
||||
@@ -5759,6 +5760,7 @@ g- undo.txt /*g-*
|
||||
g0 motion.txt /*g0*
|
||||
g8 various.txt /*g8*
|
||||
g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
|
||||
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
|
||||
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
|
||||
g:ada#Comment ft_ada.txt /*g:ada#Comment*
|
||||
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
|
||||
@@ -5846,9 +5848,11 @@ g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
|
||||
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
|
||||
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
|
||||
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
|
||||
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
|
||||
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
|
||||
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
|
||||
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
|
||||
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
|
||||
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
|
||||
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
|
||||
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
|
||||
@@ -5876,6 +5880,8 @@ g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
|
||||
g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
|
||||
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
|
||||
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
|
||||
g:sh_isk syntax.txt /*g:sh_isk*
|
||||
g:sh_noisk syntax.txt /*g:sh_noisk*
|
||||
g:syntax_on syntax.txt /*g:syntax_on*
|
||||
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
|
||||
g:tar_cmd pi_tar.txt /*g:tar_cmd*
|
||||
@@ -6767,6 +6773,7 @@ netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
|
||||
netrw-browse-maps pi_netrw.txt /*netrw-browse-maps*
|
||||
netrw-browser pi_netrw.txt /*netrw-browser*
|
||||
netrw-browser-options pi_netrw.txt /*netrw-browser-options*
|
||||
netrw-browser-settings pi_netrw.txt /*netrw-browser-settings*
|
||||
netrw-browser-var pi_netrw.txt /*netrw-browser-var*
|
||||
netrw-browsing pi_netrw.txt /*netrw-browsing*
|
||||
netrw-c pi_netrw.txt /*netrw-c*
|
||||
@@ -6815,6 +6822,7 @@ netrw-history pi_netrw.txt /*netrw-history*
|
||||
netrw-horiz pi_netrw.txt /*netrw-horiz*
|
||||
netrw-i pi_netrw.txt /*netrw-i*
|
||||
netrw-incompatible pi_netrw.txt /*netrw-incompatible*
|
||||
netrw-internal-variables pi_netrw.txt /*netrw-internal-variables*
|
||||
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
|
||||
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
|
||||
netrw-list pi_netrw.txt /*netrw-list*
|
||||
@@ -6892,8 +6900,10 @@ netrw-rexplore pi_netrw.txt /*netrw-rexplore*
|
||||
netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
|
||||
netrw-s pi_netrw.txt /*netrw-s*
|
||||
netrw-settings pi_netrw.txt /*netrw-settings*
|
||||
netrw-settings-window pi_netrw.txt /*netrw-settings-window*
|
||||
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
|
||||
netrw-sort pi_netrw.txt /*netrw-sort*
|
||||
netrw-sort-sequence pi_netrw.txt /*netrw-sort-sequence*
|
||||
netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
|
||||
netrw-source pi_netrw.txt /*netrw-source*
|
||||
netrw-ssh-hack pi_netrw.txt /*netrw-ssh-hack*
|
||||
@@ -6912,7 +6922,6 @@ netrw-updir pi_netrw.txt /*netrw-updir*
|
||||
netrw-urls pi_netrw.txt /*netrw-urls*
|
||||
netrw-userpass pi_netrw.txt /*netrw-userpass*
|
||||
netrw-v pi_netrw.txt /*netrw-v*
|
||||
netrw-var pi_netrw.txt /*netrw-var*
|
||||
netrw-variables pi_netrw.txt /*netrw-variables*
|
||||
netrw-vexplore pi_netrw.txt /*netrw-vexplore*
|
||||
netrw-write pi_netrw.txt /*netrw-write*
|
||||
@@ -7447,6 +7456,8 @@ setuid change.txt /*setuid*
|
||||
setwinvar() eval.txt /*setwinvar()*
|
||||
sftp pi_netrw.txt /*sftp*
|
||||
sgml.vim syntax.txt /*sgml.vim*
|
||||
sh-awk syntax.txt /*sh-awk*
|
||||
sh-embed syntax.txt /*sh-embed*
|
||||
sh.vim syntax.txt /*sh.vim*
|
||||
shell-window tips.txt /*shell-window*
|
||||
shell_error-variable eval.txt /*shell_error-variable*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.3. Last change: 2011 Sep 21
|
||||
*todo.txt* For Vim version 7.3. Last change: 2011 Oct 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,27 +34,30 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch.
|
||||
Another on Sep 15?
|
||||
|
||||
Patch for DFLT_EFM. (Ben Boeckel, 2011 Sep 14)
|
||||
|
||||
Code style patch. (Elias Diem, 2011 Sep 19)
|
||||
|
||||
Patch for 'transparency' option. (Ben Boeckel, 2011 Sep 14)
|
||||
Do we want this? Also Sergiu Dotenco, 2011 Sep 17.
|
||||
|
||||
Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17)
|
||||
Once syntax and other runtime files have been fixed: add "set cp" to
|
||||
check.vim. Use a function to run both with 'cp' and 'nocp'.
|
||||
|
||||
Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17)
|
||||
Addition Sep 16.
|
||||
|
||||
Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep 15, 17)
|
||||
|
||||
Change to #ifdef for PDP_RETVAL. (Sergiu Dotenco, 2011 Sep 17, patch 2)
|
||||
Windows stuff:
|
||||
- Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17)
|
||||
- Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17)
|
||||
Addition Sep 16.
|
||||
- Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep
|
||||
15, 17)
|
||||
- Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch. Another
|
||||
on Sep 15? Can't reproduce it. Only with vim.exe, compiled with Mingw?
|
||||
|
||||
Patch for phpcomplete.vim (Benjamin Haskell) picked up by maintainer?
|
||||
|
||||
Something weird with text formatting when 'compatible' is set.
|
||||
Only formats from Insert starting point, even when using "gqj"?
|
||||
(Peter Wagenaar, 2011 Oct 20)
|
||||
|
||||
FocusGained event received event though it's in 'eventignore'?
|
||||
(Ben Fritz, 2011 Sep 25)
|
||||
|
||||
Add voting item: modern plugin management (automatic updates, handle
|
||||
dependencies).
|
||||
Add links to http://vimcasts.org/ and http://vimgolf.com/
|
||||
@@ -62,14 +65,13 @@ Read http://www.charlietanksley.net/philtex/sane-vim-plugin-management/
|
||||
|
||||
Go through more coverity reports.
|
||||
|
||||
Patch for Issue #9: http://code.google.com/p/vim/issues/detail?id=9
|
||||
C++ indenting. martin.gieseking
|
||||
Better D/Dtrace detection. (Jesse Phillips, 2011 Oct 18)
|
||||
|
||||
Using "." to repeat a Visual delete counts bytes, not characters. Can this be
|
||||
fixed? (Connor Lane Smith, 2011 Sep 1)
|
||||
Patch for not showing dict methods in completion. (Yasuhiro Matsumoto, 2011
|
||||
Oct 7) Move "<" methods to the end. Fix for compiler warnings, Oct 13.
|
||||
|
||||
Patch to allow getchar() in expression mapping.
|
||||
Why was typeahead saved and restored? (James Vega, 2011 Aug 31)
|
||||
FPE exception in mbyte.c. Stack trace: (Lomy, 2011 Sep 26)
|
||||
Can't reproduce it.
|
||||
|
||||
Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
|
||||
|
||||
@@ -81,9 +83,20 @@ Patch to fail if configure can't find an interface, such as Python.
|
||||
Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
|
||||
Needs more work.
|
||||
|
||||
Other way to start Mzscheme. Tim Brown, 2011 Oct 5: change main call.
|
||||
Later patch by Sergey Khorev, 2011 Oct 9.
|
||||
|
||||
Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
|
||||
Or use expand('<sid>')?
|
||||
|
||||
Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
|
||||
one)
|
||||
|
||||
Patch to highlight cursor line number. (Howard Buchholz (lhb), 2011 Oct 18)
|
||||
|
||||
Docs fix for v:register. (Ingo Karkat, 2011 Sep 26, 27)
|
||||
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
|
||||
|
||||
Patch for: (Christian Brabandt, 2011 Aug 22)
|
||||
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
|
||||
below/above).
|
||||
@@ -92,11 +105,25 @@ Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
|
||||
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
|
||||
buffer={bufnr}". So one can remove all signs for one file/buffer.
|
||||
|
||||
Patch to add "onselected" callback for completion. (Taro Muraoka, 2011 Sep 24)
|
||||
|
||||
Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
|
||||
Patch Sep 18.
|
||||
|
||||
Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
|
||||
And one for gui_x11.txt.
|
||||
|
||||
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
|
||||
|
||||
Patch to sort functions starting with '<' after others. Omit dict functions,
|
||||
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
|
||||
|
||||
Updated syntax file for ssh_config, maintainer doesn't respond.
|
||||
(Leonard Ehrenfried, 2011 Sep 26)
|
||||
|
||||
"fC" doesn't position the cursor correctly when there are concealed
|
||||
characters. Patch by Christian Brabandt, 2011 Oct 11)
|
||||
|
||||
'cursorline' is displayed too short when there are concealed characters and
|
||||
'list' is set. (Dennis Preiser)
|
||||
Patch 7.3.116 was the wrong solution.
|
||||
@@ -166,8 +193,6 @@ string() can't parse back "inf" and "nan". Fix documentation or fix code?
|
||||
|
||||
Make 'formatprg' global-local. (Sung Pae)
|
||||
|
||||
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
|
||||
|
||||
When doing "redir => s:foo" in a script and then "redir END" somewhere else
|
||||
(e.g. in a function) it can't find s:foo.
|
||||
|
||||
@@ -299,6 +324,8 @@ the system encoding (usually utf-8).
|
||||
Problem producing tags file when hebrew.frx is present. It has a BOM.
|
||||
Results in E670. (Tony Mechelynck, 2010 May 2)
|
||||
|
||||
'beval' option should be global-local.
|
||||
|
||||
Ruby: ":ruby print $buffer.number" returns zero.
|
||||
|
||||
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
|
||||
@@ -461,15 +488,10 @@ Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
|
||||
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. Works OK for
|
||||
echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17)
|
||||
|
||||
Cannot use getchar() inside :normal and using an expression mapping. Is this
|
||||
supposed to work? (XyX, 2010 Sep 22)
|
||||
|
||||
When a:base in 'completefunc' starts with a number it's passed as a number,
|
||||
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
|
||||
string value.
|
||||
|
||||
There is no command line completion for ":lmap".
|
||||
|
||||
":e ~br<Tab>" does not complete to ":e /home/bram/". Would need to use
|
||||
getpwent() to find all the matches.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 7.3. Last change: 2011 May 19
|
||||
*various.txt* For Vim version 7.3. Last change: 2011 Oct 1st
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -602,6 +602,10 @@ K Run a program to lookup the keyword under the
|
||||
"gs" stands for "goto sleep".
|
||||
While sleeping the cursor is positioned in the text,
|
||||
if at a visible position. {not in Vi}
|
||||
Also process the received netbeans messages. {only
|
||||
available when compiled with the |+netbeans_intg|
|
||||
feature}
|
||||
|
||||
|
||||
*g_CTRL-A*
|
||||
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2011 Sep 07
|
||||
" Last Change: 2011 Oct 08
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -754,6 +754,11 @@ au BufNewFile,BufRead */usr/**/gnupg/options.skel setf gpg
|
||||
" gnash(1) configuration files
|
||||
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
|
||||
|
||||
" Gitolite
|
||||
au BufNewFile,BufRead gitolite.conf setf gitolite
|
||||
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
|
||||
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
|
||||
|
||||
" Gnuplot scripts
|
||||
au BufNewFile,BufRead *.gpi setf gnuplot
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
" Vim support file to switch off loading plugins for file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2002 Apr 04
|
||||
" Last Change: 2011 Oct 20
|
||||
|
||||
if exists("did_load_ftplugin")
|
||||
unlet did_load_ftplugin
|
||||
endif
|
||||
|
||||
" Remove all autocommands in the filetypeplugin group
|
||||
silent! au! filetypeplugin *
|
||||
" Remove all autocommands in the filetypeplugin group, if any exist.
|
||||
if exists("#filetypeplugin")
|
||||
silent! au! filetypeplugin *
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: R
|
||||
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Last Change: Wed Aug 31, 2011 12:24AM
|
||||
" Last Change: Fri Oct 14, 2011 09:50PM
|
||||
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
@@ -455,19 +455,29 @@ function GetRIndent()
|
||||
return ind
|
||||
endif
|
||||
|
||||
if g:r_indent_align_args == 0 && bb != 0
|
||||
let ind += bb * &sw
|
||||
return ind
|
||||
endif
|
||||
|
||||
if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
|
||||
return ind
|
||||
endif
|
||||
|
||||
while pind < ind && plnum > 0 && ppb == 0
|
||||
let pline = getline(plnum)
|
||||
let pbb = s:Get_paren_balance(pline, '[', ']')
|
||||
|
||||
while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
|
||||
let ind = pind
|
||||
let plnum = s:Get_prev_line(plnum)
|
||||
let pline = getline(plnum)
|
||||
let ppb = s:Get_paren_balance(pline, '(', ')')
|
||||
let pbb = s:Get_paren_balance(pline, '[', ']')
|
||||
while pline =~ '^\s*else'
|
||||
let plnum = s:Get_matching_if(plnum, 1)
|
||||
let pline = getline(plnum)
|
||||
let ppb = s:Get_paren_balance(pline, '(', ')')
|
||||
let pbb = s:Get_paren_balance(pline, '[', ']')
|
||||
endwhile
|
||||
let pind = indent(plnum)
|
||||
if ind == (pind + &sw) && pline =~ '{$'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" VHDL indent ('93 syntax)
|
||||
" Language: VHDL
|
||||
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
||||
" Version: 1.56
|
||||
" Last Change: 2010 Jun 29
|
||||
" Version: 1.58
|
||||
" Last Change: 2011 Sep 27
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
||||
|
||||
" only load this indent file when no other was loaded
|
||||
@@ -95,7 +95,7 @@ function GetVHDLindent()
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: align generic variables & port names
|
||||
" keywords: "generic", "map", "port" + "(", provided current line is part of mapping
|
||||
" keywords: "procedure" + name, "generic", "map", "port" + "(", provided current line is part of mapping
|
||||
" where: anywhere in previous 2 lines
|
||||
" find following previous non-comment line
|
||||
let pn = prevnonblank(prevn - 1)
|
||||
@@ -104,7 +104,7 @@ function GetVHDLindent()
|
||||
let pn = prevnonblank(pn - 1)
|
||||
let ps = getline(pn)
|
||||
endwhile
|
||||
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
|
||||
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
|
||||
" align closing ")" with opening "("
|
||||
if curs =~ '^\s*)'
|
||||
return ind2 + stridx(prevs_noi, '(')
|
||||
@@ -160,12 +160,12 @@ function GetVHDLindent()
|
||||
" make sure one of these is true
|
||||
" keywords: variable + "<=" without ";" ending
|
||||
" where: start of previous non-comment line
|
||||
" keywords: "generic", "map", "port"
|
||||
" keywords: "procedure", "generic", "map", "port"
|
||||
" where: anywhere in previous non-comment line
|
||||
" keyword: "("
|
||||
" where: start of previous non-comment line
|
||||
if m < 3 && ps !~? '^\s*\S\+\s*<=[^;]*'.s:ES
|
||||
if ps =~? s:NC.'\<\%(generic\|map\|port\)\>' || ps =~ '^\s*('
|
||||
if ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)\>' || ps =~ '^\s*('
|
||||
let ind = t
|
||||
endif
|
||||
break
|
||||
@@ -207,14 +207,26 @@ function GetVHDLindent()
|
||||
" keyword: "begin"
|
||||
" where: anywhere in current line
|
||||
if curs =~? s:NC.'\<begin\>'
|
||||
let ind = ind - &sw
|
||||
" find previous opening statement of
|
||||
" keywords: "architecture", "block", "entity", "function", "generate", "procedure", "process"
|
||||
let s2 = s:NC.s:NE.'\<\%(architecture\|block\|entity\|function\|generate\|procedure\|process\)\>'
|
||||
if (curs !~? s2.'.*'.s:NC.'\<begin\>.*'.s:ES && prevs =~? s2) || m == 1
|
||||
let ind = ind + &sw
|
||||
|
||||
let pn = prevnonblank(curn - 1)
|
||||
let ps = getline(pn)
|
||||
while pn > 0 && (ps =~ '^\s*--' || ps !~? s2)
|
||||
let pn = prevnonblank(pn - 1)
|
||||
let ps = getline(pn)
|
||||
|
||||
if (ps =~? s:NC.'\<begin\>')
|
||||
return indent(pn) - &sw
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if (pn == 0)
|
||||
return ind - &sw
|
||||
else
|
||||
return indent(pn)
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
|
||||
" indent: +sw if previous line is previous opening statement
|
||||
@@ -319,8 +331,13 @@ function GetVHDLindent()
|
||||
" indent: -sw
|
||||
" keywords: "else", "elsif", "end" + "block", "for", "function", "generate", "if", "loop", "procedure", "process", "record", "units"
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%(block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units\)\)\>'
|
||||
return ind - &sw
|
||||
let s5 = 'block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units'
|
||||
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%('.s5.'\)\)\>'
|
||||
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
|
||||
return ind
|
||||
else
|
||||
return ind - &sw
|
||||
endif
|
||||
endif
|
||||
|
||||
" indent: backtrace previous non-comment lines
|
||||
@@ -395,9 +412,9 @@ function GetVHDLindent()
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement
|
||||
" keywords: without "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
|
||||
return ind2
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
|
||||
" PLUGIN SECTION
|
||||
" Date: Feb 10, 2011
|
||||
" Date: Aug 24, 2011
|
||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
|
||||
@@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwPlugin = "v142"
|
||||
let g:loaded_netrwPlugin = "v143"
|
||||
if v:version < 702
|
||||
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
|
||||
finish
|
||||
@@ -47,20 +47,15 @@ augroup END
|
||||
" Network Browsing Reading Writing: {{{2
|
||||
augroup Network
|
||||
au!
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
|
||||
else
|
||||
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
|
||||
au BufReadCmd file://localhost/* call netrw#FileUrlRead(substitute(expand("<amatch>")),'file://localhost/','file:///','')
|
||||
endif
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
try
|
||||
au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
au SourceCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
catch /^Vim\%((\a\+)\)\=:E216/
|
||||
au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
au SourcePre ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
endtry
|
||||
augroup END
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if &cp || exists("g:loaded_vimballPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimballPlugin = "v33"
|
||||
let g:loaded_vimballPlugin = "v34"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
80
runtime/syntax/gitolite.vim
Normal file
80
runtime/syntax/gitolite.vim
Normal file
@@ -0,0 +1,80 @@
|
||||
" Vim syntax file
|
||||
" Language: gitolite configuration
|
||||
" URL: https://github.com/tmatilai/gitolite.vim
|
||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||
" Last Change: 2011-10-05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Comment
|
||||
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
|
||||
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
|
||||
|
||||
" Groups, users and repos
|
||||
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
|
||||
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
|
||||
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
|
||||
|
||||
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
|
||||
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
|
||||
|
||||
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{}][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
|
||||
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
|
||||
|
||||
syn keyword gitoliteCreator CREATER CREATOR contained
|
||||
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
|
||||
|
||||
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
|
||||
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
|
||||
|
||||
" Illegal characters
|
||||
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{}-]\+" contained
|
||||
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
|
||||
syn match gitoliteSpaceError "\s\+" contained
|
||||
|
||||
" Permission
|
||||
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
|
||||
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
|
||||
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
|
||||
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
|
||||
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
|
||||
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
|
||||
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
|
||||
|
||||
" Configuration
|
||||
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
|
||||
syn match gitoliteConfVariable "[^=]*" contained
|
||||
|
||||
" Include
|
||||
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
|
||||
|
||||
" String
|
||||
syn region gitoliteString start=+"+ end=+"+ oneline
|
||||
|
||||
" Define the default highlighting
|
||||
hi def link gitoliteComment Comment
|
||||
hi def link gitoliteTodo Todo
|
||||
hi def link gitoliteGroupDef gitoliteGroup
|
||||
hi def link gitoliteGroup Identifier
|
||||
hi def link gitoliteWildRepo Special
|
||||
hi def link gitoliteRepoError gitoliteError
|
||||
hi def link gitoliteUserError gitoliteError
|
||||
hi def link gitoliteSpaceError gitoliteError
|
||||
hi def link gitoliteError Error
|
||||
hi def link gitoliteCreator gitolitePreProc
|
||||
hi def link gitolitePreProc PreProc
|
||||
hi def link gitoliteExtCmdHelper PreProc
|
||||
hi def link gitoliteExtCmd Special
|
||||
hi def link gitoliteRepoDef Type
|
||||
hi def link gitoliteKeyword Keyword
|
||||
hi def link gitoliteRefex String
|
||||
hi def link gitoliteDenyRefex gitoliteRefex
|
||||
hi def link gitoliteSpecialRefex PreProc
|
||||
hi def link gitoliteDenyUsers WarningMsg
|
||||
hi def link gitoliteConfVariable Identifier
|
||||
hi def link gitoliteInclude Include
|
||||
hi def link gitoliteString String
|
||||
|
||||
let b:current_syntax = "gitolite"
|
||||
@@ -22,7 +22,7 @@ syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
|
||||
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
|
||||
syn match netrwTreeBarSpace " " contained
|
||||
|
||||
@@ -63,7 +63,7 @@ if exists("g:netrw_special_syntax") && netrw_special_syntax
|
||||
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: php PHP 3/4/5
|
||||
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
||||
" Last Change: July 29, 2011
|
||||
" Last Change: Oct 20, 2011
|
||||
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
|
||||
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
|
||||
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
@@ -110,6 +110,10 @@ if exists( "php_htmlInStrings")
|
||||
syn cluster phpAddStrings add=@htmlTop
|
||||
endif
|
||||
|
||||
" make sure we can use \ at the begining of the line to do a continuation
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case match
|
||||
|
||||
" Env Variables
|
||||
@@ -691,4 +695,8 @@ if main_syntax == 'php'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
" put cpoptions back the way we found it
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8 sts=2 sw=2 expandtab
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: R Help File
|
||||
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
|
||||
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
|
||||
" Last Change: Sat Feb 19, 2011 02:13PM
|
||||
" Last Change: Fri Oct 14, 2011 09:54PM
|
||||
" Version: 0.7.4
|
||||
" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
|
||||
" Remarks: - Includes R syntax highlighting in the appropriate
|
||||
@@ -192,9 +192,9 @@ syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"
|
||||
syn match rhelpComment /%.*$/
|
||||
|
||||
" Error {{{1
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpParenError
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rhelpError,rhelpCurlyError,rhelpParenError
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
|
||||
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
|
||||
syn match rhelpError /[)\]}]/
|
||||
syn match rhelpBraceError /[)}]/ contained
|
||||
syn match rhelpCurlyError /[)\]]/ contained
|
||||
|
||||
@@ -43,11 +43,11 @@ syn keyword sqrSection begin-program begin-report begin-setup
|
||||
syn keyword sqrSection end-footing end-heading end-procedure
|
||||
syn keyword sqrSection end-program end-report end-setup
|
||||
|
||||
syn keyword sqrParagraph alter-color-map alter-conection
|
||||
syn keyword sqrParagraph alter-color-map alter-connection
|
||||
syn keyword sqrParagraph alter-locale alter-printer alter-report
|
||||
syn keyword sqrParagraph begin-document begin-execute begin-select
|
||||
syn keyword sqrParagraph begin-sql declare-chart declare-image
|
||||
syn keyword sqrParagraph declare-color-map declare-conection
|
||||
syn keyword sqrParagraph declare-color-map declare-connection
|
||||
syn keyword sqrParagraph declare-layout declare-printer
|
||||
syn keyword sqrParagraph declare-report declare-procedure
|
||||
syn keyword sqrParagraph declare-toc declare-variable end-declare
|
||||
@@ -224,16 +224,16 @@ if version >= 600
|
||||
" See also the sqrString section above for handling of ! characters
|
||||
" inside of strings. (Those patterns override the ones below.)
|
||||
syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
|
||||
" the ! can't be preceeded by another !,
|
||||
" the ! can't be preceded by another !,
|
||||
" and must be followed by at least one
|
||||
" character other than ! or =, or immediately
|
||||
" by the end-of-line
|
||||
syn match sqrComment /^!=.*/ contains=sqrTodo
|
||||
syn match sqrComment /^!!.*/ contains=sqrTodo
|
||||
syn match sqrError /^\s\+\zs!=.*/
|
||||
" it's an error to have "!=" preceeded by
|
||||
" it's an error to have "!=" preceded by
|
||||
" just whitespace on the line ("!="
|
||||
" preceeded by non-whitespace is treated
|
||||
" preceded by non-whitespace is treated
|
||||
" as neither a comment nor an error, since
|
||||
" it is often correct, i.e.
|
||||
" if #count != 7
|
||||
@@ -259,7 +259,7 @@ endif
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier, only when not done already.
|
||||
" For version 5.8 and later, only when an item doesn;t have hightlighting yet.
|
||||
" For version 5.8 and later, only when an item doesn't have highlighting yet.
|
||||
if version >= 508 || !exists("did_sqr_syn_inits")
|
||||
if version < 508
|
||||
let did_sqr_syn_inits = 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: Aug 22, 2011
|
||||
" Version: 68
|
||||
" Last Change: Oct 12, 2011
|
||||
" Version: 69
|
||||
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
|
||||
"
|
||||
" Notes: {{{1
|
||||
@@ -37,6 +37,8 @@ if version < 600
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
scriptencoding utf-8
|
||||
|
||||
" Define the default highlighting. {{{1
|
||||
@@ -1217,7 +1219,9 @@ if did_tex_syntax_inits == 1
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
" Current Syntax: {{{1
|
||||
" Cleanup: {{{1
|
||||
unlet s:extfname
|
||||
let b:current_syntax = "tex"
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" vim: ts=8 fdm=marker
|
||||
|
||||
@@ -108,10 +108,10 @@ endif
|
||||
# on NT, it's here:
|
||||
PERLLIB=$(PERL)/lib
|
||||
PERLLIBS=$(PERLLIB)/Core
|
||||
XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
|
||||
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
|
||||
XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
|
||||
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
|
||||
ifeq "$(XSUBPP_EXISTS)" ""
|
||||
XSUBPP=perl $(XSUBPP)
|
||||
XSUBPP=perl $(XSUBPPTRY)
|
||||
else
|
||||
XSUBPP=xsubpp
|
||||
endif
|
||||
|
||||
@@ -2328,6 +2328,7 @@ shadow: runtime pixmaps
|
||||
../../testdir/vimrc.unix \
|
||||
../../testdir/*.in \
|
||||
../../testdir/*.vim \
|
||||
../../testdir/test83-tags? \
|
||||
../../testdir/*.ok .
|
||||
|
||||
# Link needed for doing "make install" in a shadow directory.
|
||||
|
||||
264
src/ex_cmds.c
264
src/ex_cmds.c
@@ -5982,6 +5982,7 @@ fix_help_buffer()
|
||||
char_u *line;
|
||||
int in_example = FALSE;
|
||||
int len;
|
||||
char_u *fname;
|
||||
char_u *p;
|
||||
char_u *rt;
|
||||
int mustfree;
|
||||
@@ -6028,124 +6029,187 @@ fix_help_buffer()
|
||||
}
|
||||
|
||||
/*
|
||||
* In the "help.txt" file, add the locally added help files.
|
||||
* This uses the very first line in the help file.
|
||||
* In the "help.txt" and "help.abx" file, add the locally added help
|
||||
* files. This uses the very first line in the help file.
|
||||
*/
|
||||
if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
|
||||
fname = gettail(curbuf->b_fname);
|
||||
if (fnamecmp(fname, "help.txt") == 0
|
||||
#ifdef FEAT_MULTI_LANG
|
||||
|| (fnamencmp(fname, "help.", 5) == 0
|
||||
&& ASCII_ISALPHA(fname[5])
|
||||
&& ASCII_ISALPHA(fname[6])
|
||||
&& TOLOWER_ASC(fname[7]) == 'x'
|
||||
&& fname[8] == NUL)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
|
||||
{
|
||||
line = ml_get_buf(curbuf, lnum, FALSE);
|
||||
if (strstr((char *)line, "*local-additions*") != NULL)
|
||||
if (strstr((char *)line, "*local-additions*") == NULL)
|
||||
continue;
|
||||
|
||||
/* Go through all directories in 'runtimepath', skipping
|
||||
* $VIMRUNTIME. */
|
||||
p = p_rtp;
|
||||
while (*p != NUL)
|
||||
{
|
||||
/* Go through all directories in 'runtimepath', skipping
|
||||
* $VIMRUNTIME. */
|
||||
p = p_rtp;
|
||||
while (*p != NUL)
|
||||
copy_option_part(&p, NameBuff, MAXPATHL, ",");
|
||||
mustfree = FALSE;
|
||||
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
|
||||
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
|
||||
{
|
||||
copy_option_part(&p, NameBuff, MAXPATHL, ",");
|
||||
mustfree = FALSE;
|
||||
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
|
||||
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
|
||||
{
|
||||
int fcount;
|
||||
char_u **fnames;
|
||||
FILE *fd;
|
||||
char_u *s;
|
||||
int fi;
|
||||
int fcount;
|
||||
char_u **fnames;
|
||||
FILE *fd;
|
||||
char_u *s;
|
||||
int fi;
|
||||
#ifdef FEAT_MBYTE
|
||||
vimconv_T vc;
|
||||
char_u *cp;
|
||||
vimconv_T vc;
|
||||
char_u *cp;
|
||||
#endif
|
||||
|
||||
/* Find all "doc/ *.txt" files in this directory. */
|
||||
add_pathsep(NameBuff);
|
||||
STRCAT(NameBuff, "doc/*.txt");
|
||||
if (gen_expand_wildcards(1, &NameBuff, &fcount,
|
||||
&fnames, EW_FILE|EW_SILENT) == OK
|
||||
&& fcount > 0)
|
||||
{
|
||||
for (fi = 0; fi < fcount; ++fi)
|
||||
{
|
||||
fd = mch_fopen((char *)fnames[fi], "r");
|
||||
if (fd != NULL)
|
||||
{
|
||||
vim_fgets(IObuff, IOSIZE, fd);
|
||||
if (IObuff[0] == '*'
|
||||
&& (s = vim_strchr(IObuff + 1, '*'))
|
||||
!= NULL)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
int this_utf = MAYBE;
|
||||
#endif
|
||||
/* Change tag definition to a
|
||||
* reference and remove <CR>/<NL>. */
|
||||
IObuff[0] = '|';
|
||||
*s = '|';
|
||||
while (*s != NUL)
|
||||
{
|
||||
if (*s == '\r' || *s == '\n')
|
||||
*s = NUL;
|
||||
#ifdef FEAT_MBYTE
|
||||
/* The text is utf-8 when a byte
|
||||
* above 127 is found and no
|
||||
* illegal byte sequence is found.
|
||||
*/
|
||||
if (*s >= 0x80 && this_utf != FALSE)
|
||||
{
|
||||
int l;
|
||||
|
||||
this_utf = TRUE;
|
||||
l = utf_ptr2len(s);
|
||||
if (l == 1)
|
||||
this_utf = FALSE;
|
||||
s += l - 1;
|
||||
}
|
||||
#endif
|
||||
++s;
|
||||
}
|
||||
#ifdef FEAT_MBYTE
|
||||
/* The help file is latin1 or utf-8;
|
||||
* conversion to the current
|
||||
* 'encoding' may be required. */
|
||||
vc.vc_type = CONV_NONE;
|
||||
convert_setup(&vc, (char_u *)(
|
||||
this_utf == TRUE ? "utf-8"
|
||||
: "latin1"), p_enc);
|
||||
if (vc.vc_type == CONV_NONE)
|
||||
/* No conversion needed. */
|
||||
cp = IObuff;
|
||||
else
|
||||
{
|
||||
/* Do the conversion. If it fails
|
||||
* use the unconverted text. */
|
||||
cp = string_convert(&vc, IObuff,
|
||||
NULL);
|
||||
if (cp == NULL)
|
||||
cp = IObuff;
|
||||
}
|
||||
convert_setup(&vc, NULL, NULL);
|
||||
|
||||
ml_append(lnum, cp, (colnr_T)0, FALSE);
|
||||
if (cp != IObuff)
|
||||
vim_free(cp);
|
||||
/* Find all "doc/ *.txt" files in this directory. */
|
||||
add_pathsep(NameBuff);
|
||||
#ifdef FEAT_MULTI_LANG
|
||||
STRCAT(NameBuff, "doc/*.??[tx]");
|
||||
#else
|
||||
ml_append(lnum, IObuff, (colnr_T)0,
|
||||
FALSE);
|
||||
STRCAT(NameBuff, "doc/*.txt");
|
||||
#endif
|
||||
++lnum;
|
||||
}
|
||||
fclose(fd);
|
||||
if (gen_expand_wildcards(1, &NameBuff, &fcount,
|
||||
&fnames, EW_FILE|EW_SILENT) == OK
|
||||
&& fcount > 0)
|
||||
{
|
||||
#ifdef FEAT_MULTI_LANG
|
||||
int i1;
|
||||
int i2;
|
||||
char_u *f1;
|
||||
char_u *f2;
|
||||
char_u *t1;
|
||||
char_u *e1;
|
||||
char_u *e2;
|
||||
|
||||
/* If foo.abx is found use it instead of foo.txt in
|
||||
* the same directory. */
|
||||
for (i1 = 0; i1 < fcount; ++i1)
|
||||
{
|
||||
for (i2 = 0; i2 < fcount; ++i2)
|
||||
{
|
||||
if (i1 == i2)
|
||||
continue;
|
||||
if (fnames[i1] == NULL || fnames[i2] == NULL)
|
||||
continue;
|
||||
f1 = fnames[i1];
|
||||
f2 = fnames[i2];
|
||||
t1 = gettail(f1);
|
||||
if (fnamencmp(f1, f2, t1 - f1) != 0)
|
||||
continue;
|
||||
e1 = vim_strrchr(t1, '.');
|
||||
e2 = vim_strrchr(gettail(f2), '.');
|
||||
if (e1 == NUL || e2 == NUL)
|
||||
continue;
|
||||
if (fnamecmp(e1, ".txt") != 0
|
||||
&& fnamecmp(e1, fname + 4) != 0)
|
||||
{
|
||||
/* Not .txt and not .abx, remove it. */
|
||||
vim_free(fnames[i1]);
|
||||
fnames[i1] = NULL;
|
||||
continue;
|
||||
}
|
||||
if (fnamencmp(f1, f2, e1 - f1) != 0)
|
||||
continue;
|
||||
if (fnamecmp(e1, ".txt") == 0
|
||||
&& fnamecmp(e2, fname + 4) == 0)
|
||||
{
|
||||
/* use .abx instead of .txt */
|
||||
vim_free(fnames[i1]);
|
||||
fnames[i1] = NULL;
|
||||
}
|
||||
}
|
||||
FreeWild(fcount, fnames);
|
||||
}
|
||||
#endif
|
||||
for (fi = 0; fi < fcount; ++fi)
|
||||
{
|
||||
if (fnames[fi] == NULL)
|
||||
continue;
|
||||
fd = mch_fopen((char *)fnames[fi], "r");
|
||||
if (fd != NULL)
|
||||
{
|
||||
vim_fgets(IObuff, IOSIZE, fd);
|
||||
if (IObuff[0] == '*'
|
||||
&& (s = vim_strchr(IObuff + 1, '*'))
|
||||
!= NULL)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
int this_utf = MAYBE;
|
||||
#endif
|
||||
/* Change tag definition to a
|
||||
* reference and remove <CR>/<NL>. */
|
||||
IObuff[0] = '|';
|
||||
*s = '|';
|
||||
while (*s != NUL)
|
||||
{
|
||||
if (*s == '\r' || *s == '\n')
|
||||
*s = NUL;
|
||||
#ifdef FEAT_MBYTE
|
||||
/* The text is utf-8 when a byte
|
||||
* above 127 is found and no
|
||||
* illegal byte sequence is found.
|
||||
*/
|
||||
if (*s >= 0x80 && this_utf != FALSE)
|
||||
{
|
||||
int l;
|
||||
|
||||
this_utf = TRUE;
|
||||
l = utf_ptr2len(s);
|
||||
if (l == 1)
|
||||
this_utf = FALSE;
|
||||
s += l - 1;
|
||||
}
|
||||
#endif
|
||||
++s;
|
||||
}
|
||||
#ifdef FEAT_MBYTE
|
||||
/* The help file is latin1 or utf-8;
|
||||
* conversion to the current
|
||||
* 'encoding' may be required. */
|
||||
vc.vc_type = CONV_NONE;
|
||||
convert_setup(&vc, (char_u *)(
|
||||
this_utf == TRUE ? "utf-8"
|
||||
: "latin1"), p_enc);
|
||||
if (vc.vc_type == CONV_NONE)
|
||||
/* No conversion needed. */
|
||||
cp = IObuff;
|
||||
else
|
||||
{
|
||||
/* Do the conversion. If it fails
|
||||
* use the unconverted text. */
|
||||
cp = string_convert(&vc, IObuff,
|
||||
NULL);
|
||||
if (cp == NULL)
|
||||
cp = IObuff;
|
||||
}
|
||||
convert_setup(&vc, NULL, NULL);
|
||||
|
||||
ml_append(lnum, cp, (colnr_T)0, FALSE);
|
||||
if (cp != IObuff)
|
||||
vim_free(cp);
|
||||
#else
|
||||
ml_append(lnum, IObuff, (colnr_T)0,
|
||||
FALSE);
|
||||
#endif
|
||||
++lnum;
|
||||
}
|
||||
fclose(fd);
|
||||
}
|
||||
}
|
||||
FreeWild(fcount, fnames);
|
||||
}
|
||||
if (mustfree)
|
||||
vim_free(rt);
|
||||
}
|
||||
break;
|
||||
if (mustfree)
|
||||
vim_free(rt);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4153,6 +4153,9 @@ ex_language(eap)
|
||||
# ifdef FEAT_EVAL
|
||||
/* Set v:lang, v:lc_time and v:ctype to the final result. */
|
||||
set_lang_var();
|
||||
# endif
|
||||
# ifdef FEAT_TITLE
|
||||
maketitle();
|
||||
# endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8205,6 +8205,12 @@ do_sleep(msec)
|
||||
{
|
||||
ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
|
||||
ui_breakcheck();
|
||||
#ifdef FEAT_NETBEANS_INTG
|
||||
/* Process the netbeans messages that may have been received in the
|
||||
* call to ui_breakcheck() when the GUI is in use. This may occur when
|
||||
* running a test case. */
|
||||
netbeans_parse_messages();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1053,6 +1053,9 @@
|
||||
# ifdef FEAT_BIG
|
||||
# define FEAT_MOUSE_DEC
|
||||
# endif
|
||||
# ifdef FEAT_BIG
|
||||
# define FEAT_MOUSE_URXVT
|
||||
# endif
|
||||
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
|
||||
# define DOS_MOUSE
|
||||
# endif
|
||||
@@ -1068,13 +1071,23 @@
|
||||
#if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
|
||||
# define FEAT_SYSMOUSE
|
||||
#endif
|
||||
|
||||
/* urxvt is a small variation of mouse_xterm, and shares its code */
|
||||
#if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
|
||||
# define FEAT_MOUSE_XTERM
|
||||
#endif
|
||||
|
||||
/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
|
||||
#if !defined(FEAT_MOUSE_TTY) \
|
||||
&& (defined(FEAT_MOUSE_XTERM) \
|
||||
|| defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
|
||||
|| defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
|
||||
|| defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
|
||||
|| defined(FEAT_SYSMOUSE))
|
||||
|| defined(FEAT_MOUSE_NET) \
|
||||
|| defined(FEAT_MOUSE_DEC) \
|
||||
|| defined(DOS_MOUSE) \
|
||||
|| defined(FEAT_MOUSE_GPM) \
|
||||
|| defined(FEAT_MOUSE_JSB) \
|
||||
|| defined(FEAT_MOUSE_PTERM) \
|
||||
|| defined(FEAT_SYSMOUSE) \
|
||||
|| defined(FEAT_MOUSE_URXVT))
|
||||
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
|
||||
#endif
|
||||
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
|
||||
|
||||
@@ -2460,27 +2460,18 @@ vgetorpeek(advance)
|
||||
|
||||
/*
|
||||
* Handle ":map <expr>": evaluate the {rhs} as an
|
||||
* expression. Save and restore the typeahead so that
|
||||
* getchar() can be used. Also save and restore the
|
||||
* command line for "normal :".
|
||||
* expression. Also save and restore the command line
|
||||
* for "normal :".
|
||||
*/
|
||||
if (mp->m_expr)
|
||||
{
|
||||
tasave_T tabuf;
|
||||
int save_vgetc_busy = vgetc_busy;
|
||||
|
||||
save_typeahead(&tabuf);
|
||||
if (tabuf.typebuf_valid)
|
||||
{
|
||||
vgetc_busy = 0;
|
||||
save_m_keys = vim_strsave(mp->m_keys);
|
||||
save_m_str = vim_strsave(mp->m_str);
|
||||
s = eval_map_expr(save_m_str, NUL);
|
||||
vgetc_busy = save_vgetc_busy;
|
||||
}
|
||||
else
|
||||
s = NULL;
|
||||
restore_typeahead(&tabuf);
|
||||
vgetc_busy = 0;
|
||||
save_m_keys = vim_strsave(mp->m_keys);
|
||||
save_m_str = vim_strsave(mp->m_str);
|
||||
s = eval_map_expr(save_m_str, NUL);
|
||||
vgetc_busy = save_vgetc_busy;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
32
src/gui.c
32
src/gui.c
@@ -212,7 +212,6 @@ gui_do_fork()
|
||||
int status;
|
||||
int exit_status;
|
||||
pid_t pid = -1;
|
||||
FILE *parent_file;
|
||||
|
||||
/* Setup a pipe between the child and the parent, so that the parent
|
||||
* knows when the child has done the setsid() call and is allowed to
|
||||
@@ -290,19 +289,17 @@ gui_do_fork()
|
||||
gui_mch_forked();
|
||||
# endif
|
||||
|
||||
if (!pipe_error)
|
||||
parent_file = fdopen(pipefd[1], "w");
|
||||
else
|
||||
parent_file = NULL;
|
||||
|
||||
/* Try to start the GUI */
|
||||
gui_attempt_start();
|
||||
|
||||
/* Notify the parent */
|
||||
if (parent_file != NULL)
|
||||
if (!pipe_error)
|
||||
{
|
||||
fputs(gui.in_use ? "ok" : "fail", parent_file);
|
||||
fclose(parent_file);
|
||||
if (gui.in_use)
|
||||
write_eintr(pipefd[1], "ok", 3);
|
||||
else
|
||||
write_eintr(pipefd[1], "fail", 5);
|
||||
close(pipefd[1]);
|
||||
}
|
||||
|
||||
/* If we failed to start the GUI, exit now. */
|
||||
@@ -323,17 +320,16 @@ gui_do_fork()
|
||||
static int
|
||||
gui_read_child_pipe(int fd)
|
||||
{
|
||||
size_t bytes_read;
|
||||
FILE *file;
|
||||
char buffer[10];
|
||||
long bytes_read;
|
||||
#define READ_BUFFER_SIZE 10
|
||||
char buffer[READ_BUFFER_SIZE];
|
||||
|
||||
file = fdopen(fd, "r");
|
||||
if (!file)
|
||||
bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
|
||||
#undef READ_BUFFER_SIZE
|
||||
close(fd);
|
||||
if (bytes_read < 0)
|
||||
return GUI_CHILD_IO_ERROR;
|
||||
|
||||
bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
|
||||
buffer[bytes_read] = '\0';
|
||||
fclose(file);
|
||||
buffer[bytes_read] = NUL;
|
||||
if (strcmp(buffer, "ok") == 0)
|
||||
return GUI_CHILD_OK;
|
||||
return GUI_CHILD_FAILED;
|
||||
|
||||
@@ -3081,7 +3081,7 @@ gui_gtk_set_dnd_targets(void)
|
||||
|
||||
for (i = 0; i < (int)N_DND_TARGETS; ++i)
|
||||
{
|
||||
if (!clip_html && selection_targets[i].info == TARGET_HTML)
|
||||
if (!clip_html && dnd_targets[i].info == TARGET_HTML)
|
||||
n_targets--;
|
||||
else
|
||||
targets[j++] = dnd_targets[i];
|
||||
|
||||
@@ -92,13 +92,13 @@
|
||||
*/
|
||||
#define KS_TEAROFF 244
|
||||
|
||||
/* used for JSB term mouse */
|
||||
/* Used for JSB term mouse. */
|
||||
#define KS_JSBTERM_MOUSE 243
|
||||
|
||||
/* used a termcap entry that produces a normal character */
|
||||
/* Used a termcap entry that produces a normal character. */
|
||||
#define KS_KEY 242
|
||||
|
||||
/* Used for the qnx pterm mouse */
|
||||
/* Used for the qnx pterm mouse. */
|
||||
#define KS_PTERM_MOUSE 241
|
||||
|
||||
/* Used for click in a tab pages label. */
|
||||
@@ -107,6 +107,9 @@
|
||||
/* Used for menu in a tab pages line. */
|
||||
#define KS_TABMENU 239
|
||||
|
||||
/* Used for the urxvt mouse. */
|
||||
#define KS_URXVT_MOUSE 238
|
||||
|
||||
/*
|
||||
* Filler used after KS_SPECIAL and others
|
||||
*/
|
||||
|
||||
96
src/misc1.c
96
src/misc1.c
@@ -6389,6 +6389,7 @@ get_c_indent()
|
||||
int lookfor_cpp_namespace = FALSE;
|
||||
int cont_amount = 0; /* amount for continuation line */
|
||||
int original_line_islabel;
|
||||
int added_to_amount = 0;
|
||||
|
||||
for (options = curbuf->b_p_cino; *options; )
|
||||
{
|
||||
@@ -7216,52 +7217,59 @@ get_c_indent()
|
||||
else
|
||||
amount += ind_continuation;
|
||||
}
|
||||
else if (lookfor_cpp_namespace)
|
||||
else
|
||||
{
|
||||
if (curwin->w_cursor.lnum == ourscope)
|
||||
continue;
|
||||
|
||||
if (curwin->w_cursor.lnum == 0
|
||||
|| curwin->w_cursor.lnum
|
||||
< ourscope - FIND_NAMESPACE_LIM)
|
||||
break;
|
||||
|
||||
l = ml_get_curline();
|
||||
|
||||
/*
|
||||
* If we're in a comment now, skip to the start of the
|
||||
* comment.
|
||||
*/
|
||||
trypos = find_start_comment(ind_maxcomment);
|
||||
if (trypos != NULL)
|
||||
{
|
||||
curwin->w_cursor.lnum = trypos->lnum + 1;
|
||||
curwin->w_cursor.col = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Skip preprocessor directives and blank lines.
|
||||
*/
|
||||
if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
|
||||
continue;
|
||||
|
||||
if (cin_is_cpp_namespace(l))
|
||||
{
|
||||
amount += ind_cpp_namespace;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cin_nocode(l))
|
||||
continue;
|
||||
|
||||
}
|
||||
else if (lookfor != LOOKFOR_TERM
|
||||
if (lookfor != LOOKFOR_TERM
|
||||
&& lookfor != LOOKFOR_CPP_BASECLASS)
|
||||
{
|
||||
amount = scope_amount;
|
||||
if (theline[0] == '{')
|
||||
amount += ind_open_extra;
|
||||
{
|
||||
amount = scope_amount;
|
||||
if (theline[0] == '{')
|
||||
{
|
||||
amount += ind_open_extra;
|
||||
added_to_amount = ind_open_extra;
|
||||
}
|
||||
}
|
||||
|
||||
if (lookfor_cpp_namespace)
|
||||
{
|
||||
/*
|
||||
* Looking for C++ namespace, need to look further
|
||||
* back.
|
||||
*/
|
||||
if (curwin->w_cursor.lnum == ourscope)
|
||||
continue;
|
||||
|
||||
if (curwin->w_cursor.lnum == 0
|
||||
|| curwin->w_cursor.lnum
|
||||
< ourscope - FIND_NAMESPACE_LIM)
|
||||
break;
|
||||
|
||||
l = ml_get_curline();
|
||||
|
||||
/* If we're in a comment now, skip to the start of
|
||||
* the comment. */
|
||||
trypos = find_start_comment(ind_maxcomment);
|
||||
if (trypos != NULL)
|
||||
{
|
||||
curwin->w_cursor.lnum = trypos->lnum + 1;
|
||||
curwin->w_cursor.col = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Skip preprocessor directives and blank lines. */
|
||||
if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
|
||||
continue;
|
||||
|
||||
/* Finally the actual check for "namespace". */
|
||||
if (cin_is_cpp_namespace(l))
|
||||
{
|
||||
amount += ind_cpp_namespace - added_to_amount;
|
||||
break;
|
||||
}
|
||||
|
||||
if (cin_nocode(l))
|
||||
continue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1012,8 +1012,12 @@ do_outofmem_msg(size)
|
||||
{
|
||||
/* Don't hide this message */
|
||||
emsg_silent = 0;
|
||||
EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
|
||||
|
||||
/* Must come first to avoid coming back here when printing the error
|
||||
* message fails, e.g. when setting v:errmsg. */
|
||||
did_outofmem_msg = TRUE;
|
||||
|
||||
EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,13 @@
|
||||
* which are *between* characters, whereas vim uses line number
|
||||
* and column number which are *on* characters.
|
||||
* See ":help netbeans-protocol" for explanation.
|
||||
*
|
||||
* The Netbeans messages are received and queued in the gui event loop, or in
|
||||
* the select loop when Vim runs in a terminal. These messages are processed
|
||||
* by netbeans_parse_messages() which is invoked in the idle loop when Vim is
|
||||
* waiting for user input. The function netbeans_parse_messages() is also
|
||||
* called from the ":sleep" command, to allow the execution of test cases that
|
||||
* may not invoke the idle loop.
|
||||
*/
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
70
src/normal.c
70
src/normal.c
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
|
||||
static linenr_T resel_VIsual_line_count; /* number of lines */
|
||||
static colnr_T resel_VIsual_col; /* nr of cols or end col */
|
||||
static colnr_T resel_VIsual_vcol; /* nr of cols or end col */
|
||||
|
||||
static int restart_VIsual_select = 0;
|
||||
#endif
|
||||
@@ -1436,7 +1436,7 @@ do_pending_operator(cap, old_col, gui_yank)
|
||||
/* The visual area is remembered for redo */
|
||||
static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
|
||||
static linenr_T redo_VIsual_line_count; /* number of lines */
|
||||
static colnr_T redo_VIsual_col; /* number of cols or end column */
|
||||
static colnr_T redo_VIsual_vcol; /* number of cols or end column */
|
||||
static long redo_VIsual_count; /* count for Visual operator */
|
||||
# ifdef FEAT_VIRTUALEDIT
|
||||
int include_line_break = FALSE;
|
||||
@@ -1549,22 +1549,31 @@ do_pending_operator(cap, old_col, gui_yank)
|
||||
#ifdef FEAT_VISUAL
|
||||
if (redo_VIsual_busy)
|
||||
{
|
||||
/* Redo of an operation on a Visual area. Use the same size from
|
||||
* redo_VIsual_line_count and redo_VIsual_vcol. */
|
||||
oap->start = curwin->w_cursor;
|
||||
curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
|
||||
if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
|
||||
curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
|
||||
VIsual_mode = redo_VIsual_mode;
|
||||
if (VIsual_mode == 'v')
|
||||
if (redo_VIsual_vcol == MAXCOL || VIsual_mode == 'v')
|
||||
{
|
||||
if (redo_VIsual_line_count <= 1)
|
||||
curwin->w_cursor.col += redo_VIsual_col - 1;
|
||||
if (VIsual_mode == 'v')
|
||||
{
|
||||
if (redo_VIsual_line_count <= 1)
|
||||
{
|
||||
validate_virtcol();
|
||||
curwin->w_curswant =
|
||||
curwin->w_virtcol + redo_VIsual_vcol - 1;
|
||||
}
|
||||
else
|
||||
curwin->w_curswant = redo_VIsual_vcol;
|
||||
}
|
||||
else
|
||||
curwin->w_cursor.col = redo_VIsual_col;
|
||||
}
|
||||
if (redo_VIsual_col == MAXCOL)
|
||||
{
|
||||
curwin->w_curswant = MAXCOL;
|
||||
coladvance((colnr_T)MAXCOL);
|
||||
{
|
||||
curwin->w_curswant = MAXCOL;
|
||||
}
|
||||
coladvance(curwin->w_curswant);
|
||||
}
|
||||
cap->count0 = redo_VIsual_count;
|
||||
if (redo_VIsual_count != 0)
|
||||
@@ -1710,7 +1719,7 @@ do_pending_operator(cap, old_col, gui_yank)
|
||||
}
|
||||
}
|
||||
else if (redo_VIsual_busy)
|
||||
oap->end_vcol = oap->start_vcol + redo_VIsual_col - 1;
|
||||
oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1;
|
||||
/*
|
||||
* Correct oap->end.col and oap->start.col to be the
|
||||
* upper-left and lower-right corner of the block area.
|
||||
@@ -1735,13 +1744,22 @@ do_pending_operator(cap, old_col, gui_yank)
|
||||
*/
|
||||
resel_VIsual_mode = VIsual_mode;
|
||||
if (curwin->w_curswant == MAXCOL)
|
||||
resel_VIsual_col = MAXCOL;
|
||||
else if (VIsual_mode == Ctrl_V)
|
||||
resel_VIsual_col = oap->end_vcol - oap->start_vcol + 1;
|
||||
else if (oap->line_count > 1)
|
||||
resel_VIsual_col = oap->end.col;
|
||||
resel_VIsual_vcol = MAXCOL;
|
||||
else
|
||||
resel_VIsual_col = oap->end.col - oap->start.col + 1;
|
||||
{
|
||||
if (VIsual_mode != Ctrl_V)
|
||||
getvvcol(curwin, &(oap->end),
|
||||
NULL, NULL, &oap->end_vcol);
|
||||
if (VIsual_mode == Ctrl_V || oap->line_count <= 1)
|
||||
{
|
||||
if (VIsual_mode != Ctrl_V)
|
||||
getvvcol(curwin, &(oap->start),
|
||||
&oap->start_vcol, NULL, NULL);
|
||||
resel_VIsual_vcol = oap->end_vcol - oap->start_vcol + 1;
|
||||
}
|
||||
else
|
||||
resel_VIsual_vcol = oap->end_vcol;
|
||||
}
|
||||
resel_VIsual_line_count = oap->line_count;
|
||||
}
|
||||
|
||||
@@ -1769,7 +1787,7 @@ do_pending_operator(cap, old_col, gui_yank)
|
||||
if (!redo_VIsual_busy)
|
||||
{
|
||||
redo_VIsual_mode = resel_VIsual_mode;
|
||||
redo_VIsual_col = resel_VIsual_col;
|
||||
redo_VIsual_vcol = resel_VIsual_vcol;
|
||||
redo_VIsual_line_count = resel_VIsual_line_count;
|
||||
redo_VIsual_count = cap->count0;
|
||||
}
|
||||
@@ -7631,12 +7649,16 @@ nv_visual(cap)
|
||||
if (VIsual_mode == 'v')
|
||||
{
|
||||
if (resel_VIsual_line_count <= 1)
|
||||
curwin->w_cursor.col += resel_VIsual_col * cap->count0 - 1;
|
||||
{
|
||||
validate_virtcol();
|
||||
curwin->w_curswant = curwin->w_virtcol
|
||||
+ resel_VIsual_vcol * cap->count0 - 1;
|
||||
}
|
||||
else
|
||||
curwin->w_cursor.col = resel_VIsual_col;
|
||||
check_cursor_col();
|
||||
curwin->w_curswant = resel_VIsual_vcol;
|
||||
coladvance(curwin->w_curswant);
|
||||
}
|
||||
if (resel_VIsual_col == MAXCOL)
|
||||
if (resel_VIsual_vcol == MAXCOL)
|
||||
{
|
||||
curwin->w_curswant = MAXCOL;
|
||||
coladvance((colnr_T)MAXCOL);
|
||||
@@ -7645,7 +7667,7 @@ nv_visual(cap)
|
||||
{
|
||||
validate_virtcol();
|
||||
curwin->w_curswant = curwin->w_virtcol
|
||||
+ resel_VIsual_col * cap->count0 - 1;
|
||||
+ resel_VIsual_vcol * cap->count0 - 1;
|
||||
coladvance(curwin->w_curswant);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -7806,6 +7806,10 @@ set_bool_option(opt_idx, varp, value, opt_flags)
|
||||
/* Only de-activate it here, it will be enabled when changing mode. */
|
||||
if (p_imdisable)
|
||||
im_set_active(FALSE);
|
||||
else if (State & INSERT)
|
||||
/* When the option is set from an autocommand, it may need to take
|
||||
* effect right away. */
|
||||
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -819,7 +819,7 @@ EXTERN long p_ttyscroll; /* 'ttyscroll' */
|
||||
EXTERN char_u *p_ttym; /* 'ttymouse' */
|
||||
EXTERN unsigned ttym_flags;
|
||||
# ifdef IN_OPTION_C
|
||||
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
|
||||
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
|
||||
# endif
|
||||
# define TTYM_XTERM 0x01
|
||||
# define TTYM_XTERM2 0x02
|
||||
@@ -827,6 +827,7 @@ static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm"
|
||||
# define TTYM_NETTERM 0x08
|
||||
# define TTYM_JSBTERM 0x10
|
||||
# define TTYM_PTERM 0x20
|
||||
# define TTYM_URXVT 0x40
|
||||
#endif
|
||||
EXTERN char_u *p_udir; /* 'undodir' */
|
||||
EXTERN long p_ul; /* 'undolevels' */
|
||||
|
||||
@@ -1022,7 +1022,7 @@ mch_get_shellsize()
|
||||
|
||||
/* insure longword alignment */
|
||||
#ifdef __amigaos4__
|
||||
if(!(id = AllocDosObject(DOS_INFODATA, 0)))
|
||||
if (!(id = AllocDosObject(DOS_INFODATA, 0)))
|
||||
goto out;
|
||||
#else
|
||||
id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
|
||||
|
||||
@@ -77,7 +77,7 @@ mac_string_convert(ptr, len, lenp, fail_on_error, from_enc, to_enc, unconvlenp)
|
||||
*unconvlenp = 0;
|
||||
cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
|
||||
|
||||
if(cfstr == NULL)
|
||||
if (cfstr == NULL)
|
||||
fprintf(stderr, "Encoding failed\n");
|
||||
/* When conversion failed, try excluding bytes from the end, helps when
|
||||
* there is an incomplete byte sequence. Only do up to 6 bytes to avoid
|
||||
|
||||
@@ -2158,10 +2158,13 @@ use_xterm_like_mouse(name)
|
||||
* Return non-zero when using an xterm mouse, according to 'ttymouse'.
|
||||
* Return 1 for "xterm".
|
||||
* Return 2 for "xterm2".
|
||||
* Return 3 for "urxvt".
|
||||
*/
|
||||
int
|
||||
use_xterm_mouse()
|
||||
{
|
||||
if (ttym_flags == TTYM_URXVT)
|
||||
return 3;
|
||||
if (ttym_flags == TTYM_XTERM2)
|
||||
return 2;
|
||||
if (ttym_flags == TTYM_XTERM)
|
||||
@@ -3318,6 +3321,17 @@ mch_setmouse(on)
|
||||
return;
|
||||
|
||||
xterm_mouse_vers = use_xterm_mouse();
|
||||
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
if (ttym_flags == TTYM_URXVT) {
|
||||
out_str_nf((char_u *)
|
||||
(on
|
||||
? IF_EB("\033[?1015h", ESC_STR "[?1015h")
|
||||
: IF_EB("\033[?1015l", ESC_STR "[?1015l")));
|
||||
ison = on;
|
||||
}
|
||||
# endif
|
||||
|
||||
if (xterm_mouse_vers > 0)
|
||||
{
|
||||
if (on) /* enable mouse events, use mouse tracking if available */
|
||||
@@ -3434,6 +3448,9 @@ check_mouse_termcode()
|
||||
{
|
||||
# ifdef FEAT_MOUSE_XTERM
|
||||
if (use_xterm_mouse()
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
&& use_xterm_mouse() != 3
|
||||
# endif
|
||||
# ifdef FEAT_GUI
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
@@ -3523,6 +3540,27 @@ check_mouse_termcode()
|
||||
else
|
||||
del_mouse_termcode(KS_PTERM_MOUSE);
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
/* same as the dec mouse */
|
||||
if (use_xterm_mouse() == 3
|
||||
# ifdef FEAT_GUI
|
||||
&& !gui.in_use
|
||||
# endif
|
||||
)
|
||||
{
|
||||
set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
|
||||
? IF_EB("\233", CSI_STR)
|
||||
: IF_EB("\033[", ESC_STR "[")));
|
||||
|
||||
if (*p_mouse != NUL)
|
||||
{
|
||||
mch_setmouse(FALSE);
|
||||
setmouse();
|
||||
}
|
||||
}
|
||||
else
|
||||
del_mouse_termcode(KS_URXVT_MOUSE);
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5146,11 +5184,18 @@ select_eintr:
|
||||
# endif
|
||||
# ifdef EINTR
|
||||
if (ret == -1 && errno == EINTR)
|
||||
{
|
||||
/* Check whether window has been resized, EINTR may be caused by
|
||||
* SIGWINCH. */
|
||||
if (do_resize)
|
||||
handle_resize();
|
||||
|
||||
/* Interrupted by a signal, need to try again. We ignore msec
|
||||
* here, because we do want to check even after a timeout if
|
||||
* characters are available. Needed for reading output of an
|
||||
* external command after the process has finished. */
|
||||
goto select_eintr;
|
||||
}
|
||||
# endif
|
||||
# ifdef __TANDEM
|
||||
if (ret == -1 && errno == ENOTSUP)
|
||||
|
||||
@@ -243,9 +243,9 @@ mch_system(char *cmd, int options)
|
||||
/* Wait for the command to terminate before continuing */
|
||||
while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
|
||||
{
|
||||
while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) && again )
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && again)
|
||||
{
|
||||
if(msg.message == WM_QUIT)
|
||||
if (msg.message == WM_QUIT)
|
||||
|
||||
{
|
||||
PostQuitMessage(msg.wParam);
|
||||
|
||||
@@ -1700,7 +1700,7 @@ msgid ""
|
||||
"&Load File"
|
||||
msgstr ""
|
||||
"&OK\n"
|
||||
"&Lese Datei"
|
||||
"&Lies Datei"
|
||||
|
||||
#, c-format
|
||||
msgid "E462: Could not prepare for reloading \"%s\""
|
||||
|
||||
249
src/tag.c
249
src/tag.c
@@ -1277,6 +1277,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
{
|
||||
FILE *fp;
|
||||
char_u *lbuf; /* line buffer */
|
||||
int lbuf_size = LSIZE; /* length of lbuf */
|
||||
char_u *tag_fname; /* name of tag file */
|
||||
tagname_T tn; /* info for get_tagfname() */
|
||||
int first_file; /* trying first tag file */
|
||||
@@ -1291,6 +1292,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
char_u *s;
|
||||
int i;
|
||||
#ifdef FEAT_TAG_BINS
|
||||
int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
|
||||
struct tag_search_info /* Binary search file offsets */
|
||||
{
|
||||
off_t low_offset; /* offset for first char of first line that
|
||||
@@ -1360,13 +1362,8 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
char_u *saved_pat = NULL; /* copy of pat[] */
|
||||
#endif
|
||||
|
||||
/* Use two sets of variables for the pattern: "orgpat" holds the values
|
||||
* for the original pattern and "convpat" converted from 'encoding' to
|
||||
* encoding of the tags file. "pats" point to either one of these. */
|
||||
pat_T *pats;
|
||||
pat_T orgpat; /* holds unconverted pattern info */
|
||||
#ifdef FEAT_MBYTE
|
||||
pat_T convpat; /* holds converted pattern info */
|
||||
vimconv_T vimconv;
|
||||
#endif
|
||||
|
||||
@@ -1390,7 +1387,6 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
|
||||
help_save = curbuf->b_help;
|
||||
orgpat.pat = pat;
|
||||
pats = &orgpat;
|
||||
#ifdef FEAT_MBYTE
|
||||
vimconv.vc_type = CONV_NONE;
|
||||
#endif
|
||||
@@ -1398,7 +1394,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
/*
|
||||
* Allocate memory for the buffers that are used
|
||||
*/
|
||||
lbuf = alloc(LSIZE);
|
||||
lbuf = alloc(lbuf_size);
|
||||
tag_fname = alloc(MAXPATHL + 1);
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
ebuf = alloc(LSIZE);
|
||||
@@ -1424,30 +1420,30 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
if (help_only) /* want tags from help file */
|
||||
curbuf->b_help = TRUE; /* will be restored later */
|
||||
|
||||
pats->len = (int)STRLEN(pat);
|
||||
orgpat.len = (int)STRLEN(pat);
|
||||
#ifdef FEAT_MULTI_LANG
|
||||
if (curbuf->b_help)
|
||||
{
|
||||
/* When "@ab" is specified use only the "ab" language, otherwise
|
||||
* search all languages. */
|
||||
if (pats->len > 3 && pat[pats->len - 3] == '@'
|
||||
&& ASCII_ISALPHA(pat[pats->len - 2])
|
||||
&& ASCII_ISALPHA(pat[pats->len - 1]))
|
||||
if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
|
||||
&& ASCII_ISALPHA(pat[orgpat.len - 2])
|
||||
&& ASCII_ISALPHA(pat[orgpat.len - 1]))
|
||||
{
|
||||
saved_pat = vim_strnsave(pat, pats->len - 3);
|
||||
saved_pat = vim_strnsave(pat, orgpat.len - 3);
|
||||
if (saved_pat != NULL)
|
||||
{
|
||||
help_lang_find = &pat[pats->len - 2];
|
||||
pats->pat = saved_pat;
|
||||
pats->len -= 3;
|
||||
help_lang_find = &pat[orgpat.len - 2];
|
||||
orgpat.pat = saved_pat;
|
||||
orgpat.len -= 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (p_tl != 0 && pats->len > p_tl) /* adjust for 'taglength' */
|
||||
pats->len = p_tl;
|
||||
if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
|
||||
orgpat.len = p_tl;
|
||||
|
||||
prepare_pats(pats, has_re);
|
||||
prepare_pats(&orgpat, has_re);
|
||||
|
||||
#ifdef FEAT_TAG_BINS
|
||||
/* This is only to avoid a compiler warning for using search_info
|
||||
@@ -1466,13 +1462,13 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
* Only ignore case when TAG_NOIC not used or 'ignorecase' set.
|
||||
*/
|
||||
#ifdef FEAT_TAG_BINS
|
||||
pats->regmatch.rm_ic = ((p_ic || !noic)
|
||||
&& (findall || pats->headlen == 0 || !p_tbs));
|
||||
orgpat.regmatch.rm_ic = ((p_ic || !noic)
|
||||
&& (findall || orgpat.headlen == 0 || !p_tbs));
|
||||
for (round = 1; round <= 2; ++round)
|
||||
{
|
||||
linear = (pats->headlen == 0 || !p_tbs || round == 2);
|
||||
linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
|
||||
#else
|
||||
pats->regmatch.rm_ic = (p_ic || !noic);
|
||||
orgpat.regmatch.rm_ic = (p_ic || !noic);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1701,6 +1697,36 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
|
||||
}
|
||||
line_read_in:
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (vimconv.vc_type != CONV_NONE)
|
||||
{
|
||||
char_u *conv_line;
|
||||
int len;
|
||||
|
||||
/* Convert every line. Converting the pattern from 'enc' to
|
||||
* the tags file encoding doesn't work, because characters are
|
||||
* not recognized. */
|
||||
conv_line = string_convert(&vimconv, lbuf, NULL);
|
||||
if (conv_line != NULL)
|
||||
{
|
||||
/* Copy or swap lbuf and conv_line. */
|
||||
len = (int)STRLEN(conv_line) + 1;
|
||||
if (len > lbuf_size)
|
||||
{
|
||||
vim_free(lbuf);
|
||||
lbuf = conv_line;
|
||||
lbuf_size = len;
|
||||
}
|
||||
else
|
||||
{
|
||||
STRCPY(lbuf, conv_line);
|
||||
vim_free(conv_line);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
/*
|
||||
* Emacs tags line with CTRL-L: New file name on next line.
|
||||
@@ -1770,6 +1796,33 @@ line_read_in:
|
||||
*/
|
||||
if (state == TS_START)
|
||||
{
|
||||
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
|
||||
{
|
||||
/*
|
||||
* Read header line.
|
||||
*/
|
||||
#ifdef FEAT_TAG_BINS
|
||||
if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
|
||||
tag_file_sorted = lbuf[18];
|
||||
#endif
|
||||
#ifdef FEAT_MBYTE
|
||||
if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
|
||||
{
|
||||
/* Prepare to convert every line from the specified
|
||||
* encoding to 'encoding'. */
|
||||
for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
|
||||
;
|
||||
*p = NUL;
|
||||
convert_setup(&vimconv, lbuf + 20, p_enc);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Read the next line. Unrecognized flags are ignored. */
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Headers ends. */
|
||||
|
||||
#ifdef FEAT_TAG_BINS
|
||||
/*
|
||||
* When there is no tag head, or ignoring case, need to do a
|
||||
@@ -1786,24 +1839,20 @@ line_read_in:
|
||||
if (linear)
|
||||
# endif
|
||||
state = TS_LINEAR;
|
||||
else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
|
||||
else if (tag_file_sorted == NUL)
|
||||
state = TS_BINARY;
|
||||
else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
|
||||
else if (tag_file_sorted == '1')
|
||||
state = TS_BINARY;
|
||||
else if (tag_file_sorted == '2')
|
||||
{
|
||||
/* Check sorted flag */
|
||||
if (lbuf[18] == '1')
|
||||
state = TS_BINARY;
|
||||
else if (lbuf[18] == '2')
|
||||
{
|
||||
state = TS_BINARY;
|
||||
sortic = TRUE;
|
||||
pats->regmatch.rm_ic = (p_ic || !noic);
|
||||
}
|
||||
else
|
||||
state = TS_LINEAR;
|
||||
state = TS_BINARY;
|
||||
sortic = TRUE;
|
||||
orgpat.regmatch.rm_ic = (p_ic || !noic);
|
||||
}
|
||||
else
|
||||
state = TS_LINEAR;
|
||||
|
||||
if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
|
||||
if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
|
||||
{
|
||||
/* binary search won't work for ignoring case, use linear
|
||||
* search. */
|
||||
@@ -1843,40 +1892,12 @@ line_read_in:
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (lbuf[0] == '!' && pats == &orgpat
|
||||
&& STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
|
||||
{
|
||||
/* Convert the search pattern from 'encoding' to the
|
||||
* specified encoding. */
|
||||
for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
|
||||
;
|
||||
*p = NUL;
|
||||
convert_setup(&vimconv, p_enc, lbuf + 20);
|
||||
if (vimconv.vc_type != CONV_NONE)
|
||||
{
|
||||
convpat.pat = string_convert(&vimconv, pats->pat, NULL);
|
||||
if (convpat.pat != NULL)
|
||||
{
|
||||
pats = &convpat;
|
||||
pats->len = (int)STRLEN(pats->pat);
|
||||
prepare_pats(pats, has_re);
|
||||
pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
|
||||
}
|
||||
}
|
||||
|
||||
/* Prepare for converting a match the other way around. */
|
||||
convert_setup(&vimconv, lbuf + 20, p_enc);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Figure out where the different strings are in this line.
|
||||
* For "normal" tags: Do a quick check if the tag matches.
|
||||
* This speeds up tag searching a lot!
|
||||
*/
|
||||
if (pats->headlen
|
||||
if (orgpat.headlen
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
&& !is_etag
|
||||
#endif
|
||||
@@ -1933,9 +1954,9 @@ line_read_in:
|
||||
cmplen = (int)(tagp.tagname_end - tagp.tagname);
|
||||
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
|
||||
cmplen = p_tl;
|
||||
if (has_re && pats->headlen < cmplen)
|
||||
cmplen = pats->headlen;
|
||||
else if (state == TS_LINEAR && pats->headlen != cmplen)
|
||||
if (has_re && orgpat.headlen < cmplen)
|
||||
cmplen = orgpat.headlen;
|
||||
else if (state == TS_LINEAR && orgpat.headlen != cmplen)
|
||||
continue;
|
||||
|
||||
#ifdef FEAT_TAG_BINS
|
||||
@@ -1954,10 +1975,10 @@ line_read_in:
|
||||
* Compare the current tag with the searched tag.
|
||||
*/
|
||||
if (sortic)
|
||||
tagcmp = tag_strnicmp(tagp.tagname, pats->head,
|
||||
tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
|
||||
(size_t)cmplen);
|
||||
else
|
||||
tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
|
||||
tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
|
||||
|
||||
/*
|
||||
* A match with a shorter tag means to search forward.
|
||||
@@ -1965,9 +1986,9 @@ line_read_in:
|
||||
*/
|
||||
if (tagcmp == 0)
|
||||
{
|
||||
if (cmplen < pats->headlen)
|
||||
if (cmplen < orgpat.headlen)
|
||||
tagcmp = -1;
|
||||
else if (cmplen > pats->headlen)
|
||||
else if (cmplen > orgpat.headlen)
|
||||
tagcmp = 1;
|
||||
}
|
||||
|
||||
@@ -2011,7 +2032,7 @@ line_read_in:
|
||||
}
|
||||
else if (state == TS_SKIP_BACK)
|
||||
{
|
||||
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
|
||||
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
|
||||
state = TS_STEP_FORWARD;
|
||||
else
|
||||
/* Have to skip back more. Restore the curr_offset
|
||||
@@ -2021,7 +2042,7 @@ line_read_in:
|
||||
}
|
||||
else if (state == TS_STEP_FORWARD)
|
||||
{
|
||||
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
|
||||
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
|
||||
{
|
||||
if ((off_t)ftell(fp) > search_info.match_offset)
|
||||
break; /* past last match */
|
||||
@@ -2032,7 +2053,7 @@ line_read_in:
|
||||
else
|
||||
#endif
|
||||
/* skip this match if it can't match */
|
||||
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
|
||||
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
|
||||
continue;
|
||||
|
||||
/*
|
||||
@@ -2083,41 +2104,41 @@ line_read_in:
|
||||
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
|
||||
cmplen = p_tl;
|
||||
/* if tag length does not match, don't try comparing */
|
||||
if (pats->len != cmplen)
|
||||
if (orgpat.len != cmplen)
|
||||
match = FALSE;
|
||||
else
|
||||
{
|
||||
if (pats->regmatch.rm_ic)
|
||||
if (orgpat.regmatch.rm_ic)
|
||||
{
|
||||
match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
|
||||
match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
|
||||
if (match)
|
||||
match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
|
||||
match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
|
||||
cmplen) == 0);
|
||||
}
|
||||
else
|
||||
match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
|
||||
match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Has a regexp: Also find tags matching regexp.
|
||||
*/
|
||||
match_re = FALSE;
|
||||
if (!match && pats->regmatch.regprog != NULL)
|
||||
if (!match && orgpat.regmatch.regprog != NULL)
|
||||
{
|
||||
int cc;
|
||||
|
||||
cc = *tagp.tagname_end;
|
||||
*tagp.tagname_end = NUL;
|
||||
match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
|
||||
match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
|
||||
if (match)
|
||||
{
|
||||
matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
|
||||
if (pats->regmatch.rm_ic)
|
||||
matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
|
||||
if (orgpat.regmatch.rm_ic)
|
||||
{
|
||||
pats->regmatch.rm_ic = FALSE;
|
||||
match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
|
||||
orgpat.regmatch.rm_ic = FALSE;
|
||||
match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
|
||||
(colnr_T)0);
|
||||
pats->regmatch.rm_ic = TRUE;
|
||||
orgpat.regmatch.rm_ic = TRUE;
|
||||
}
|
||||
}
|
||||
*tagp.tagname_end = cc;
|
||||
@@ -2174,7 +2195,7 @@ line_read_in:
|
||||
else
|
||||
mtt = MT_GL_OTH;
|
||||
}
|
||||
if (pats->regmatch.rm_ic && !match_no_ic)
|
||||
if (orgpat.regmatch.rm_ic && !match_no_ic)
|
||||
mtt += MT_IC_OFF;
|
||||
if (match_re)
|
||||
mtt += MT_RE_OFF;
|
||||
@@ -2187,35 +2208,6 @@ line_read_in:
|
||||
*/
|
||||
if (ga_grow(&ga_match[mtt], 1) == OK)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
char_u *conv_line = NULL;
|
||||
char_u *lbuf_line = lbuf;
|
||||
|
||||
if (vimconv.vc_type != CONV_NONE)
|
||||
{
|
||||
/* Convert the tag line from the encoding of the tags
|
||||
* file to 'encoding'. Then parse the line again. */
|
||||
conv_line = string_convert(&vimconv, lbuf, NULL);
|
||||
if (conv_line != NULL)
|
||||
{
|
||||
if (parse_tag_line(conv_line,
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
is_etag,
|
||||
#endif
|
||||
&tagp) == OK)
|
||||
lbuf_line = conv_line;
|
||||
else
|
||||
/* doesn't work, go back to unconverted line. */
|
||||
(void)parse_tag_line(lbuf,
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
is_etag,
|
||||
#endif
|
||||
&tagp);
|
||||
}
|
||||
}
|
||||
#else
|
||||
# define lbuf_line lbuf
|
||||
#endif
|
||||
if (help_only)
|
||||
{
|
||||
#ifdef FEAT_MULTI_LANG
|
||||
@@ -2307,7 +2299,7 @@ line_read_in:
|
||||
* without Emacs tags: <mtt><tag_fname><NUL><lbuf>
|
||||
*/
|
||||
len = (int)STRLEN(tag_fname)
|
||||
+ (int)STRLEN(lbuf_line) + 3;
|
||||
+ (int)STRLEN(lbuf) + 3;
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
if (is_etag)
|
||||
len += (int)STRLEN(ebuf) + 1;
|
||||
@@ -2337,7 +2329,7 @@ line_read_in:
|
||||
else
|
||||
*s++ = NUL;
|
||||
#endif
|
||||
STRCPY(s, lbuf_line);
|
||||
STRCPY(s, lbuf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2373,10 +2365,6 @@ line_read_in:
|
||||
else
|
||||
vim_free(mfp);
|
||||
}
|
||||
#ifdef FEAT_MBYTE
|
||||
/* Note: this makes the values in "tagp" invalid! */
|
||||
vim_free(conv_line);
|
||||
#endif
|
||||
}
|
||||
else /* Out of memory! Just forget about the rest. */
|
||||
{
|
||||
@@ -2415,19 +2403,12 @@ line_read_in:
|
||||
}
|
||||
#endif
|
||||
#ifdef FEAT_MBYTE
|
||||
if (pats == &convpat)
|
||||
{
|
||||
/* Go back from converted pattern to original pattern. */
|
||||
vim_free(pats->pat);
|
||||
vim_free(pats->regmatch.regprog);
|
||||
orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
|
||||
pats = &orgpat;
|
||||
}
|
||||
if (vimconv.vc_type != CONV_NONE)
|
||||
convert_setup(&vimconv, NULL, NULL);
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_TAG_BINS
|
||||
tag_file_sorted = NUL;
|
||||
if (sort_error)
|
||||
{
|
||||
EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
|
||||
@@ -2461,13 +2442,13 @@ line_read_in:
|
||||
#ifdef FEAT_TAG_BINS
|
||||
/* stop searching when already did a linear search, or when TAG_NOIC
|
||||
* used, and 'ignorecase' not set or already did case-ignore search */
|
||||
if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
|
||||
if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
|
||||
break;
|
||||
# ifdef FEAT_CSCOPE
|
||||
if (use_cscope)
|
||||
break;
|
||||
# endif
|
||||
pats->regmatch.rm_ic = TRUE; /* try another time while ignoring case */
|
||||
orgpat.regmatch.rm_ic = TRUE; /* try another time while ignoring case */
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2480,7 +2461,7 @@ line_read_in:
|
||||
|
||||
findtag_end:
|
||||
vim_free(lbuf);
|
||||
vim_free(pats->regmatch.regprog);
|
||||
vim_free(orgpat.regmatch.regprog);
|
||||
vim_free(tag_fname);
|
||||
#ifdef FEAT_EMACS_TAGS
|
||||
vim_free(ebuf);
|
||||
|
||||
@@ -29,7 +29,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test66.out test67.out test68.out test69.out test70.out \
|
||||
test71.out test72.out test73.out test74.out test75.out \
|
||||
test76.out test77.out test78.out test79.out test80.out \
|
||||
test81.out test82.out
|
||||
test81.out test82.out test83.out
|
||||
|
||||
.SUFFIXES: .in .out
|
||||
|
||||
@@ -131,3 +131,4 @@ test79.out: test79.in
|
||||
test80.out: test80.in
|
||||
test81.out: test81.in
|
||||
test82.out: test82.in
|
||||
test83.out: test83.in
|
||||
|
||||
@@ -29,7 +29,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test42.out test52.out test65.out test66.out test67.out \
|
||||
test68.out test69.out test71.out test72.out test73.out \
|
||||
test74.out test75.out test76.out test77.out test78.out \
|
||||
test79.out test80.out test81.out test82.out
|
||||
test79.out test80.out test81.out test82.out test83.out
|
||||
|
||||
SCRIPTS32 = test50.out test70.out
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test42.out test52.out test65.out test66.out test67.out \
|
||||
test68.out test69.out test71.out test72.out test73.out \
|
||||
test74.out test75.out test76.out test77.out test78.out \
|
||||
test79.out test80.out test81.out test82.out
|
||||
test79.out test80.out test81.out test82.out test83.out
|
||||
|
||||
SCRIPTS32 = test50.out test70.out
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test66.out test67.out test68.out test69.out test70.out \
|
||||
test71.out test72.out test73.out test74.out test75.out \
|
||||
test76.out test77.out test78.out test79.out test80.out \
|
||||
test81.out test82.out
|
||||
test81.out test82.out test83.out
|
||||
|
||||
.SUFFIXES: .in .out
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
|
||||
test66.out test67.out test68.out test69.out \
|
||||
test71.out test72.out test74.out test75.out test76.out \
|
||||
test77.out test78.out test79.out test80.out test81.out \
|
||||
test82.out
|
||||
test82.out test83.out
|
||||
|
||||
# Known problems:
|
||||
# Test 30: a problem around mac format - unknown reason
|
||||
|
||||
@@ -26,7 +26,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
|
||||
test64.out test65.out test66.out test67.out test68.out \
|
||||
test69.out test70.out test71.out test72.out test73.out \
|
||||
test74.out test75.out test76.out test77.out test78.out \
|
||||
test79.out test80.out test81.out test82.out
|
||||
test79.out test80.out test81.out test82.out test83.out
|
||||
|
||||
SCRIPTS_GUI = test16.out
|
||||
|
||||
@@ -72,7 +72,7 @@ test1.out: test1.in
|
||||
fi \
|
||||
else echo $* NO OUTPUT >>test.log; \
|
||||
fi"
|
||||
-rm -rf X* test.ok viminfo
|
||||
# -rm -rf X* test.ok viminfo
|
||||
|
||||
test49.out: test49.vim
|
||||
|
||||
|
||||
@@ -1308,6 +1308,20 @@ protected:
|
||||
int Test() { return FALSE; }
|
||||
|
||||
public: // comment
|
||||
void testfall();
|
||||
protected:
|
||||
void testfall();
|
||||
};
|
||||
|
||||
STARTTEST
|
||||
:set cino=(0,gs,hs
|
||||
2kdd]]=][
|
||||
ENDTEST
|
||||
|
||||
class Foo : public Bar
|
||||
{
|
||||
public:
|
||||
virtual void method1(void) = 0;
|
||||
virtual void method2(int arg1,
|
||||
int arg2,
|
||||
int arg3) = 0;
|
||||
|
||||
@@ -1190,6 +1190,16 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
class Foo : public Bar
|
||||
{
|
||||
public:
|
||||
virtual void method1(void) = 0;
|
||||
virtual void method2(int arg1,
|
||||
int arg2,
|
||||
int arg3) = 0;
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
foo()
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
xxx4asdf fail nop ok 9 333
|
||||
XX111XX
|
||||
XX111-XX
|
||||
---222---
|
||||
1. one
|
||||
2. two
|
||||
|
||||
2
src/testdir/test83-tags2
Normal file
2
src/testdir/test83-tags2
Normal file
@@ -0,0 +1,2 @@
|
||||
!_TAG_FILE_ENCODING cp932 //
|
||||
<EFBFBD>`<60>a<EFBFBD>b Xtags2.txt /<2F>`<60>a<EFBFBD>b
|
||||
102
src/testdir/test83-tags3
Normal file
102
src/testdir/test83-tags3
Normal file
@@ -0,0 +1,102 @@
|
||||
!_TAG_FILE_SORTED 1 //
|
||||
!_TAG_FILE_ENCODING cp932 //
|
||||
abc1 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc2 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc3 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc4 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc5 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc6 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc7 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc8 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc9 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc10 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc11 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc12 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc13 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc14 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc15 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc16 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc17 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc18 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc19 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc20 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc21 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc22 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc23 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc24 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc25 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc26 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc27 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc28 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc29 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc30 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc31 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc32 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc33 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc34 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc35 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc36 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc37 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc38 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc39 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc40 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc41 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc42 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc43 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc44 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc45 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc46 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc47 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc48 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc49 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc50 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc51 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc52 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc53 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc54 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc55 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc56 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc57 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc58 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc59 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc60 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc61 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc62 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc63 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc64 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc65 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc66 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc67 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc68 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc69 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc70 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc71 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc72 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc73 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc74 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc75 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc76 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc77 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc78 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc79 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc80 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc81 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc82 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc83 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc84 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc85 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc86 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc87 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc88 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc89 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc90 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc91 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc92 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc93 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc94 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc95 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc96 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc97 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc98 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc99 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc100 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
76
src/testdir/test83.in
Normal file
76
src/testdir/test83.in
Normal file
@@ -0,0 +1,76 @@
|
||||
Tests for tag search with !_TAG_FILE_ENCODING.
|
||||
|
||||
STARTTEST
|
||||
:so mbyte.vim
|
||||
:if !has('iconv')
|
||||
: e! test.ok
|
||||
: w! test.out
|
||||
: qa!
|
||||
:endif
|
||||
:set enc=utf8
|
||||
|
||||
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
|
||||
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
|
||||
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
|
||||
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
|
||||
|
||||
ggdG
|
||||
|
||||
:call setline('.', 'Results of test83')
|
||||
|
||||
:" case1:
|
||||
:new
|
||||
:set tags=Xtags1
|
||||
:let v:errmsg = ''
|
||||
:tag abcdefghijklmnopqrs
|
||||
:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
|
||||
: close
|
||||
: put ='case1: failed'
|
||||
:else
|
||||
: close
|
||||
: put ='case1: ok'
|
||||
:endif
|
||||
|
||||
:" case2:
|
||||
:new
|
||||
:set tags=test83-tags2
|
||||
:let v:errmsg = ''
|
||||
:tag /.BC
|
||||
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
|
||||
: close
|
||||
: put ='case2: failed'
|
||||
:else
|
||||
: close
|
||||
: put ='case2: ok'
|
||||
:endif
|
||||
|
||||
:" case3:
|
||||
:new
|
||||
:set tags=test83-tags3
|
||||
:let v:errmsg = ''
|
||||
:tag abc50
|
||||
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
|
||||
: close
|
||||
: put ='case3: failed'
|
||||
:else
|
||||
: close
|
||||
: put ='case3: ok'
|
||||
:endif
|
||||
:close
|
||||
|
||||
:wq! test.out
|
||||
ENDTEST
|
||||
|
||||
text for tags1
|
||||
abcdefghijklmnopqrs
|
||||
|
||||
text for tags2
|
||||
ABC
|
||||
|
||||
text for tags3
|
||||
ABC
|
||||
|
||||
tags1
|
||||
!_TAG_FILE_ENCODING utf-8 //
|
||||
abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
|
||||
tags1-end
|
||||
4
src/testdir/test83.ok
Normal file
4
src/testdir/test83.ok
Normal file
@@ -0,0 +1,4 @@
|
||||
Results of test83
|
||||
case1: ok
|
||||
case2: ok
|
||||
case3: ok
|
||||
@@ -379,6 +379,11 @@ static char *(features[]) =
|
||||
# else
|
||||
"-mouse_xterm",
|
||||
# endif
|
||||
# ifdef FEAT_MOUSE_URXVT
|
||||
"+mouse_urxvt",
|
||||
# else
|
||||
"-mouse_urxvt",
|
||||
# endif
|
||||
#endif
|
||||
#ifdef __QNX__
|
||||
# ifdef FEAT_MOUSE_PTERM
|
||||
@@ -709,6 +714,40 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
348,
|
||||
/**/
|
||||
347,
|
||||
/**/
|
||||
346,
|
||||
/**/
|
||||
345,
|
||||
/**/
|
||||
344,
|
||||
/**/
|
||||
343,
|
||||
/**/
|
||||
342,
|
||||
/**/
|
||||
341,
|
||||
/**/
|
||||
340,
|
||||
/**/
|
||||
339,
|
||||
/**/
|
||||
338,
|
||||
/**/
|
||||
337,
|
||||
/**/
|
||||
336,
|
||||
/**/
|
||||
335,
|
||||
/**/
|
||||
334,
|
||||
/**/
|
||||
333,
|
||||
/**/
|
||||
332,
|
||||
/**/
|
||||
331,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user