Add the conceal patch from Vince Negri.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 7d5e6d6..fda756f 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1163,6 +1163,13 @@
A variable name that is preceded with "w:" is local to the current window. It
is deleted when the window is closed.
+One local window variable is predefined:
+ *w:ownsyntax-variable* *ownsyntax*
+w:ownsyntax Set to 1 if the window has an independent syntax installed
+ via the |:ownsyntax| command. The default for a window is
+ 0. Syntax scripts can use this to determine whether they
+ should set b:current_syntax or w:current_syntax.
+
*tabpage-variable* *t:var*
A variable name that is preceded with "t:" is local to the current tab page,
It is deleted when the tab page is closed. {not available when compiled
@@ -5772,7 +5779,7 @@
Return the name of the undo file that would be used for a file
with name {name} when writing. This uses the 'undodir'
option, finding directories that exist. It does not check if
- the undo file exist.
+ the undo file exists.
{name} is always expanded to the full path, since that is what
is used internally.
Useful in combination with |:wundo| and |:rundo|.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 63efd1c..c021edf 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1707,6 +1707,25 @@
combination with "menu" or "menuone".
+'conceallevel' 'conc' *'conceallevel'* *'conc'*
+ number (default 0)
+ local to window
+ {not in Vi}
+ {not available when compiled without the |+conceal|
+ feature}
+ Determine how text with the "conceal" syntax attribute is shown:
+
+ 'conceallevel' Effect
+ 0 Text is shown normally
+ 1 Each block of concealed text is replaced with the
+ character defined in 'listchars' (default is a dash)
+ and highlighted with the "Conceal" highlight group.
+ 2 Concealed text is completely hidden unless it has a
+ custom replacement character defined (see
+ |:syn-cchar|.
+ 3 Concealed text is completely hidden.
+
+
*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
'confirm' 'cf' boolean (default off)
global
@@ -2132,6 +2151,20 @@
Give messages when adding a cscope database. See |cscopeverbose|.
NOTE: This option is reset when 'compatible' is set.
+ *'cursorbind'* *'crb'* *'nocursorbind'* *'nocrb'*
+'cursorbind' 'crb' boolean (default off)
+ local to window
+ {not in Vi}
+ {not available when compiled without the |+cursorbind|
+ feature}
+ When this option is set, as the cursor in the current
+ window moves other cursorbound windows (windows that also have
+ this option set) move their cursors to the corresponding line and
+ column. This option is useful for viewing the
+ differences between two versions of a file (see 'diff'); in diff mode,
+ inserted and deleted lines (though not characters within a line) are
+ taken into account.
+
*'cursorcolumn'* *'cuc'* *'nocursorcolumn'* *'nocuc'*
'cursorcolumn' 'cuc' boolean (default off)
@@ -3615,7 +3648,7 @@
f:Folded,F:FoldColumn,A:DiffAdd,
C:DiffChange,D:DiffDelete,T:DiffText,
>:SignColumn,B:SpellBad,P:SpellCap,
- R:SpellRare,L:SpellLocal,
+ R:SpellRare,L:SpellLocal,-:Conceal,
+:Pmenu,=:PmenuSel,
x:PmenuSbar,X:PmenuThumb")
global
@@ -3659,6 +3692,8 @@
|hl-SpellCap| P word that should start with capital|spell|
|hl-SpellRare| R rare word |spell|
|hl-SpellLocal| L word from other region |spell|
+ |hl-Conceal| - the placeholders used for concealed characters
+ (see 'conceallevel')
|hl-Pmenu| + popup menu normal line
|hl-PmenuSel| = popup menu normal line
|hl-PmenuSbar| x popup menu scrollbar
@@ -4416,6 +4451,8 @@
precedes:c Character to show in the first column, when 'wrap'
is off and there is text preceding the character
visible in the first column.
+ conceal:c Character to show in place of concealed text, when
+ 'conceallevel' is set to 1.
nbsp:c Character to show for a non-breakable space (character
0xA0, 160). Left blank when omitted.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 109276f..47a1aac 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -35,7 +35,8 @@
13. Linking groups |:highlight-link|
14. Cleaning up |:syn-clear|
15. Highlighting tags |tag-highlight|
-16. Color xterms |xterm-color|
+16. Window-local syntax |:ownsyntax|
+17. Color xterms |xterm-color|
{Vi does not have any of these commands}
@@ -3115,12 +3116,14 @@
Not all commands accept all arguments. This table shows which arguments
can not be used for all commands:
*E395* *E396*
- contains oneline fold display extend ~
-:syntax keyword - - - - -
-:syntax match yes - yes yes yes
-:syntax region yes yes yes yes yes
+ contains oneline fold display extend concealends~
+:syntax keyword - - - - - -
+:syntax match yes - yes yes yes -
+:syntax region yes yes yes yes yes yes
These arguments can be used for all three commands:
+ conceal
+ cchar
contained
containedin
nextgroup
@@ -3129,6 +3132,27 @@
skipnl
skipempty
+conceal *conceal* *:syn-conceal*
+
+When the "conceal" argument is given, the item is marked as concealable.
+Whether or not it is actually concealed depends on the setting on the
+'conceallevel' option.
+
+concealends *:syn-concealends*
+
+When the "concealends" argument is given, the start and end matches of
+the region, but not the contents of the region, are marked as concealable.
+Whether or not they are actually concealed depends on the setting on the
+'conceallevel' option. The ends of a region can only be concealed separately
+in this way when they have their own highlighting via "matchgroup"
+
+cchar *:syn-cchar*
+
+The "cchar" argument defines the character shown in place of the item
+when it is concealed (setting "cchar" only makes sense when the conceal
+argument is given.) If "cchar" is not set then the default conceal
+character defined in the 'listchars' option is used. Example: >
+ :syntax match Entity "&" conceal cchar=&
contained *:syn-contained*
@@ -3385,6 +3409,16 @@
"contains" arguments to make that work (omitted for simplicity of the
example).
+IMPLICIT CONCEAL *:syn-conceal-implicit*
+
+:sy[ntax] conceal [on|off]
+ This defines if the following ":syntax" commands will define keywords,
+ matches or regions with the "conceal" flag set. After ":syn conceal
+ on", all subsequent ":syn keyword", ":syn match" or ":syn region"
+ defined will have the "conceal" flag set implicitly. ":syn conceal
+ off" returns to the normal state where the "conceal" flag must be
+ given explicitly.
+
==============================================================================
7. Syntax patterns *:syn-pattern* *E401* *E402*
@@ -4169,6 +4203,9 @@
'highlight' option default. Note that the highlighting depends on the value
of 'background'. You can see the current settings with the ":highlight"
command.
+ *hl-Conceal*
+Conceal placeholder characters substituted for concealed
+ text (see 'conceallevel')
*hl-Cursor*
Cursor the character under the cursor
*hl-CursorIM*
@@ -4472,6 +4509,28 @@
autocmd BufRead,BufNewFile *.[ch] endif
==============================================================================
+16. Window-local syntax *:ownsyntax*
+
+Normally all windows on a buffer share the same syntax settings. It is
+possible, however, to set a particular window on a file to have its own
+private syntax setting. A possible example would be to edit LaTeX source
+with conventional highlighting in one window, while seeing the same source
+highlighted differently (so as to hide control sequences and indicate bold,
+italic etc regions) in another. The 'scrollbind' option is useful here.
+
+To set the current window to have the syntax "foo", separately from all other
+windows on the buffer: >
+ :ownsyntax foo
+
+Once a window has its own syntax, syntax commands executed from other windows
+on the same buffer (including :syntax clear) have no effect. Conversely,
+syntax commands executed from that window do not effect other windows on the
+same buffer.
+
+A window with its own syntax reverts to normal behaviour when another buffer
+is loaded into that window.
+
+==============================================================================
16. Color xterms *xterm-color* *color-xterm*
Most color xterms have only eight colors. If you don't get colors with the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 632f288..18cd16b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -134,6 +134,8 @@
'complete' options.txt /*'complete'*
'completefunc' options.txt /*'completefunc'*
'completeopt' options.txt /*'completeopt'*
+'conc' options.txt /*'conc'*
+'conceallevel' options.txt /*'conceallevel'*
'confirm' options.txt /*'confirm'*
'consk' options.txt /*'consk'*
'conskey' options.txt /*'conskey'*
@@ -143,6 +145,7 @@
'cpo' options.txt /*'cpo'*
'cpoptions' options.txt /*'cpoptions'*
'cpt' options.txt /*'cpt'*
+'crb' options.txt /*'crb'*
'cryptmethod' options.txt /*'cryptmethod'*
'cscopepathcomp' options.txt /*'cscopepathcomp'*
'cscopeprg' options.txt /*'cscopeprg'*
@@ -158,6 +161,7 @@
'csverb' options.txt /*'csverb'*
'cuc' options.txt /*'cuc'*
'cul' options.txt /*'cul'*
+'cursorbind' options.txt /*'cursorbind'*
'cursorcolumn' options.txt /*'cursorcolumn'*
'cursorline' options.txt /*'cursorline'*
'cwh' options.txt /*'cwh'*
@@ -482,12 +486,14 @@
'noconskey' options.txt /*'noconskey'*
'nocopyindent' options.txt /*'nocopyindent'*
'nocp' options.txt /*'nocp'*
+'nocrb' options.txt /*'nocrb'*
'nocscopetag' options.txt /*'nocscopetag'*
'nocscopeverbose' options.txt /*'nocscopeverbose'*
'nocst' options.txt /*'nocst'*
'nocsverb' options.txt /*'nocsverb'*
'nocuc' options.txt /*'nocuc'*
'nocul' options.txt /*'nocul'*
+'nocursorbind' options.txt /*'nocursorbind'*
'nocursorcolumn' options.txt /*'nocursorcolumn'*
'nocursorline' options.txt /*'nocursorline'*
'nodeco' options.txt /*'nodeco'*
@@ -1120,8 +1126,10 @@
+cmdline_hist various.txt /*+cmdline_hist*
+cmdline_info various.txt /*+cmdline_info*
+comments various.txt /*+comments*
++conceal various.txt /*+conceal*
+cryptv various.txt /*+cryptv*
+cscope various.txt /*+cscope*
++cursorbind various.txt /*+cursorbind*
+cursorshape various.txt /*+cursorshape*
+debug various.txt /*+debug*
+dialog_con various.txt /*+dialog_con*
@@ -2495,6 +2503,7 @@
:ounmap map.txt /*:ounmap*
:ounme gui.txt /*:ounme*
:ounmenu gui.txt /*:ounmenu*
+:ownsyntax syntax.txt /*:ownsyntax*
:p various.txt /*:p*
:pc windows.txt /*:pc*
:pclose windows.txt /*:pclose*
@@ -2761,8 +2770,12 @@
:syn syntax.txt /*:syn*
:syn-arguments syntax.txt /*:syn-arguments*
:syn-case syntax.txt /*:syn-case*
+:syn-cchar syntax.txt /*:syn-cchar*
:syn-clear syntax.txt /*:syn-clear*
:syn-cluster syntax.txt /*:syn-cluster*
+:syn-conceal syntax.txt /*:syn-conceal*
+:syn-conceal-implicit syntax.txt /*:syn-conceal-implicit*
+:syn-concealends syntax.txt /*:syn-concealends*
:syn-contained syntax.txt /*:syn-contained*
:syn-containedin syntax.txt /*:syn-containedin*
:syn-contains syntax.txt /*:syn-contains*
@@ -4956,6 +4969,7 @@
complex-change change.txt /*complex-change*
complex-repeat repeat.txt /*complex-repeat*
compress pi_gzip.txt /*compress*
+conceal syntax.txt /*conceal*
confirm() eval.txt /*confirm()*
connection-refused message.txt /*connection-refused*
console-menus gui.txt /*console-menus*
@@ -6019,6 +6033,7 @@
hit-return message.txt /*hit-return*
hitest.vim syntax.txt /*hitest.vim*
hjkl usr_02.txt /*hjkl*
+hl-Conceal syntax.txt /*hl-Conceal*
hl-Cursor syntax.txt /*hl-Cursor*
hl-CursorColumn syntax.txt /*hl-CursorColumn*
hl-CursorIM syntax.txt /*hl-CursorIM*
@@ -6895,6 +6910,7 @@
os_vms.txt os_vms.txt /*os_vms.txt*
os_win32.txt os_win32.txt /*os_win32.txt*
other-features vi_diff.txt /*other-features*
+ownsyntax eval.txt /*ownsyntax*
p change.txt /*p*
page-down intro.txt /*page-down*
page-up intro.txt /*page-up*
@@ -8200,6 +8216,7 @@
vt100-function-keys term.txt /*vt100-function-keys*
w motion.txt /*w*
w32-clientserver remote.txt /*w32-clientserver*
+w:ownsyntax-variable eval.txt /*w:ownsyntax-variable*
w:var eval.txt /*w:var*
warningmsg-variable eval.txt /*warningmsg-variable*
white-space pattern.txt /*white-space*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 27039a2..12c6b68 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1082,6 +1082,10 @@
Vim 7.3:
+- Included conceal patch.
+ remove w:ownsyntax, automatically set w:current_syntax to the value of
+ b:current_syntax after loading a syntax file.
+ :ownsyntax only sets w:current_syntax.
- using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu.
Use register_shell_extension()? (George Reilly, 2010 May 26)
Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi
@@ -1108,10 +1112,6 @@
- Create a helphelp.txt file, move instructions there to write help files from
various.txt and list by Tony.
Patches to include:
-- Include conceal patch?
- http://vince.negri.googlepages.com/
- http://vim.wikia.com/wiki/Patch_to_conceal_parts_of_lines
- http://sites.google.com/site/vincenegri/conceal-ownsyntax.diff?attredirects=0
- Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25)
- Minor patches from Dominique Pelle, 2010 May 15
- Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10)
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 3f1d061..63b279b 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -293,8 +293,10 @@
N *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
N *+comments* |'comments'| support
+m *+conceal* "conceal" support, see ||conceal|| |:syn-conceal| etc.
N *+cryptv* encryption support |encryption|
B *+cscope* |cscope| support
+m *+cursorbind* |'cursorbind'| support
m *+cursorshape* |termcap-cursor-shape| support
m *+debug* Compiled for debugging.
N *+dialog_gui* Support for |:confirm| with GUI dialog.