summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/compiler/haml.vim5
-rw-r--r--runtime/compiler/sass.vim5
-rw-r--r--runtime/doc/if_pyth.txt8
-rw-r--r--runtime/doc/index.txt3
-rw-r--r--runtime/doc/options.txt20
-rw-r--r--runtime/doc/pattern.txt4
-rw-r--r--runtime/doc/syntax.txt7
-rw-r--r--runtime/doc/tags6
-rw-r--r--runtime/doc/todo.txt113
-rw-r--r--runtime/indent/erlang.vim109
-rw-r--r--runtime/lang/menu_ru_ru.koi8-r.vim97
-rw-r--r--runtime/lang/menu_ru_ru.vim99
-rw-r--r--runtime/scripts.vim9
-rw-r--r--runtime/syntax/c.vim2
-rw-r--r--runtime/syntax/erlang.vim297
-rw-r--r--runtime/syntax/falcon.vim46
-rw-r--r--runtime/syntax/help.vim2
-rw-r--r--runtime/syntax/r.vim32
-rw-r--r--runtime/syntax/rst.vim9
19 files changed, 561 insertions, 312 deletions
diff --git a/runtime/compiler/haml.vim b/runtime/compiler/haml.vim
index faa1fd978..b06a672df 100644
--- a/runtime/compiler/haml.vim
+++ b/runtime/compiler/haml.vim
@@ -1,3 +1,8 @@
+" Vim compiler file
+" Compiler: Haml
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2013 May 30
+
if exists("current_compiler")
finish
endif
diff --git a/runtime/compiler/sass.vim b/runtime/compiler/sass.vim
index 8340b9c7d..376a52b30 100644
--- a/runtime/compiler/sass.vim
+++ b/runtime/compiler/sass.vim
@@ -1,3 +1,8 @@
+" Vim compiler file
+" Compiler: Sass
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+" Last Change: 2013 May 30
+
if exists("current_compiler")
finish
endif
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 7bd9b377e..165131e64 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 25
+*if_pyth.txt* For Vim version 7.3. Last change: 2013 Jun 02
VIM REFERENCE MANUAL by Paul Moore
@@ -340,7 +340,7 @@ The buffer object attributes are:
|BufFilePost| autocommands are launched.
b.number Buffer number. Can be used as |python-buffers| key.
Read-only.
- b.valid True or False. Buffer object becames invalid when
+ b.valid True or False. Buffer object becomes invalid when
corresponding buffer is wiped out.
The buffer object methods are:
@@ -446,7 +446,7 @@ Window attributes are:
row, col (read-only) On-screen window position in display cells.
First position is zero.
tabpage (read-only) Window tab page.
- valid (read-write) True or False. Window object becames invalid
+ valid (read-write) True or False. Window object becomes invalid
when corresponding window is closed.
The height attribute is writable only if the screen is split horizontally.
@@ -471,7 +471,7 @@ Tab page attributes are:
windows Like |python-windows|, but for current tab page.
vars The tab page |t:| variables.
window Current tabpage window.
- valid True or False. Tab page object becames invalid when
+ valid True or False. Tab page object becomes invalid when
corresponding tab page is closed.
TabPage object type is available using "TabPage" attribute of vim module.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 6b8d445e4..c2b1ca160 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.3. Last change: 2013 May 17
+*index.txt* For Vim version 7.3. Last change: 2013 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1510,6 +1510,7 @@ tag command action ~
|:sview| :sv[iew] split window and edit file read-only
|:swapname| :sw[apname] show the name of the current swap file
|:syntax| :sy[ntax] syntax highlighting
+|:syntime| :synti[me] measure syntax highlighting speed
|:syncbind| :sync[bind] sync scroll binding
|:t| :t same as ":copy"
|:tNext| :tN[ext] jump to previous matching tag
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6b01d7c17..d7f9db011 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.3. Last change: 2013 May 23
+*options.txt* For Vim version 7.3. Last change: 2013 Jun 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5132,7 +5132,18 @@ A jump table for the options with a short description can be found at |Q_op|.
characters are put before the number.
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
the number.
- When setting this option, 'relativenumber' is reset.
+ *number_relativenumber*
+ The 'relativenumber' option changes the displayed number to be
+ relative to the cursor. Together with 'number' there are these
+ four combinations (cursor in line 3):
+
+ 'nonu' 'nu' 'nonu' 'nu'
+ 'nornu' 'nornu' 'rnu' 'rnu'
+
+ |apple | 1 apple | 2 apple | 2 apple
+ |pear | 2 pear | 1 pear | 1 pear
+ |nobody | 3 nobody | 0 nobody |3 nobody
+ |there | 4 there | 1 there | 1 there
*'numberwidth'* *'nuw'*
'numberwidth' 'nuw' number (Vim default: 4 Vi default: 8)
@@ -5547,7 +5558,10 @@ A jump table for the options with a short description can be found at |Q_op|.
characters are put before the number.
See |hl-LineNr| and |hl-CursorLineNr| for the highlighting used for
the number.
- When setting this option, 'number' is reset.
+
+ The number in front of the cursor line also depends on the value of
+ 'number', see |number_relativenumber| for all combinations of the two
+ options.
*'remap'* *'noremap'*
'remap' boolean (default on)
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index e90e38839..69b4a9f22 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt* For Vim version 7.3. Last change: 2013 May 29
+*pattern.txt* For Vim version 7.3. Last change: 2013 Jun 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1232,7 +1232,7 @@ Suppose B is a base character and x and y are composing characters:
Bxy Byx yes (order ignored)
Bxy By no (x missing)
Bxy Bx no (y missing)
- Bx Bx yes (perfect mach)
+ Bx Bx yes (perfect match)
Bx By no (x missing)
Bx Bxy yes (extra y ignored)
Bx Byx yes (extra y ignored)
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 7f296d142..3779de12e 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 7.3. Last change: 2013 May 31
+*syntax.txt* For Vim version 7.3. Last change: 2013 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3957,7 +3957,7 @@ External matches *:syn-ext-match*
These extra regular expression items are available in region patterns:
- */\z(* */\z(\)* *E50* *E52*
+ */\z(* */\z(\)* *E50* *E52* *E879*
\z(\) Marks the sub-expression as "external", meaning that it can be
accessed from another pattern match. Currently only usable in
defining a syntax region start pattern.
@@ -5097,6 +5097,9 @@ If your syntax causes redrawing to be slow, here are a few hints on making it
faster. To see slowness switch on some features that usually interfere, such
as 'relativenumber' and |folding|.
+Note: this is only available when compiled with the |+profile| feature.
+You many need to build Vim with "huge" features.
+
To find out what patterns are consuming most time, get an overview with this
sequence: >
:syntime on
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f02c4c296..69ed5336d 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2876,6 +2876,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:syntax-enable syntax.txt /*:syntax-enable*
:syntax-on syntax.txt /*:syntax-on*
:syntax-reset syntax.txt /*:syntax-reset*
+:syntime syntax.txt /*:syntime*
:t change.txt /*:t*
:tN tagsrch.txt /*:tN*
:tNext tagsrch.txt /*:tNext*
@@ -4281,6 +4282,7 @@ E875 pattern.txt /*E875*
E876 pattern.txt /*E876*
E877 pattern.txt /*E877*
E878 pattern.txt /*E878*
+E879 syntax.txt /*E879*
E88 windows.txt /*E88*
E89 message.txt /*E89*
E90 message.txt /*E90*
@@ -7159,6 +7161,7 @@ notation intro.txt /*notation*
notepad gui_w32.txt /*notepad*
nr2char() eval.txt /*nr2char()*
nroff.vim syntax.txt /*nroff.vim*
+number_relativenumber options.txt /*number_relativenumber*
numbered-function eval.txt /*numbered-function*
o insert.txt /*o*
o_CTRL-V motion.txt /*o_CTRL-V*
@@ -7353,6 +7356,7 @@ python-bindeval if_pyth.txt /*python-bindeval*
python-bindeval-objects if_pyth.txt /*python-bindeval-objects*
python-buffer if_pyth.txt /*python-buffer*
python-buffers if_pyth.txt /*python-buffers*
+python-chdir if_pyth.txt /*python-chdir*
python-command if_pyth.txt /*python-command*
python-commands if_pyth.txt /*python-commands*
python-current if_pyth.txt /*python-current*
@@ -7360,11 +7364,13 @@ python-dynamic if_pyth.txt /*python-dynamic*
python-error if_pyth.txt /*python-error*
python-eval if_pyth.txt /*python-eval*
python-examples if_pyth.txt /*python-examples*
+python-fchdir if_pyth.txt /*python-fchdir*
python-input if_pyth.txt /*python-input*
python-options if_pyth.txt /*python-options*
python-output if_pyth.txt /*python-output*
python-pyeval if_pyth.txt /*python-pyeval*
python-range if_pyth.txt /*python-range*
+python-strwidth if_pyth.txt /*python-strwidth*
python-tabpage if_pyth.txt /*python-tabpage*
python-tabpages if_pyth.txt /*python-tabpages*
python-vars if_pyth.txt /*python-vars*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index e77fb55c5..5f0160323 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.3. Last change: 2013 Jun 01
+*todo.txt* For Vim version 7.3. Last change: 2013 Jun 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,33 +34,17 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
---- Python interface
-
-Patch from ZyX, May 30: Fix some possible memory problems
-
-Check: docs for .valid patch by ZyX, May 30
-Correction by Roland Eggner, May 31.
-
-Tests are disabled because they fail.
-
-Configure doesn't find Python 3 on Ubuntu 13.04. (Ken Takata, Apr 13)
-
-Python SystemExit exception is not handled properly. Patch to catch the
-exception and give an error. (Yasuhiro Matsumoto)
-Does not work, tests fail.
-
-Patch to complete after :py3. (Taro Muraoka, 2013 May 31)
-
-":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
-Patch to make os.chdir() handle side effects. (Xavier de Gaye, 2013 May 17)
-Update May 19, also for os.fchdir().
-Adds a $VIMRUNTIME/python directory.
-ZyX: OK to add python and python3 directory.
+Make it possible to test the status line: add screenchar(col, row).
+Use screen_getbytes().
+Could also add screenattr(col, row), but value is unpredictable.
+Functions to read the actual contents of the screen, so that things like
+conceal can be tested. (Nazri Ramliy, 2013 Feb 18)
-Mac: OS/X 10.4 with Python 2.5 installed: configure finds an extra argument
-that breaks the build. (Brian Victor, 2008 Sep 1)
+function() does not work like before. (lilydjwg, 2013 Jun 4)
+I guess this is caused by patch 7.3.1058:
+"Call of funcref does not succeed in other script."
-Patch to access screen under Python. (Marko Mahni, 2010 Jul 18)
+--- Python interface
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
@@ -71,8 +55,19 @@ Python: Be able to define a Python function that can be called directly from
Vim script. Requires converting the arguments and return value, like with
vim.bindeval().
+Python SystemExit exception is not handled properly. Patch to catch the
+exception and give an error. (Yasuhiro Matsumoto)
+Does not work, tests fail.
+
+Python: crash in test 86 because of int/size_t mixup? (Jun Takimoto, 2013 Jun
+6)
+
+Add a $VIMRUNTIME/python and $VIMRUNTIME/python3 directories?
+
--- runtime files
+Alternate html indent file by Andy Wokula, script 2075.
+
Syntax file for protocol buffers. (Feng Xiao, 2013 May 9)
Has an ugly copyright notice.
Add statement that it does not conflict with Vim license.
@@ -80,32 +75,22 @@ Add statement that it does not conflict with Vim license.
Patch for JavaScript syntax. (Kevin Locke, 2013 May 9)
Claudio didn't respond yet.
---- Fast regexp engine
-
-Error in HTML highlighting. (Hiroshi Shirosaki)
+upstream_dat, usserver_log et al. syntax files. (Rob Owens, 2013 Jun 5)
-Tests for \{-} : Requires trying to start at every position?
-If so, rename nfa_has_backref to nfa_dup_states and re-use it for this.
+--- New regexp engine
-Allow "^*" as a literal "*".
+Does not work (yet) with NFA:
+- \%u, \%x, \%o, \%d followed by a composing character
-Need more testing for \1 back references.
+Don't call nfa_regmatch() recursively if the "out" state is not going to be
+added anyway. In run log:
+ > Not adding state 6 to list 4. char -971: NFA_SKIP
Profiling:
+ ./vim -s ~/vim/test/alsa.vim
+ ./vim -s ~/vim/test/todo.vim
./vim -s ~/vim/test/loop.vim
- ./vim -s ~/vim/test/xml.vim (Fix: Uses the old engine, see
- bt_regexp_debug.log)
- Need \@<=
- NFA engine could not handle "[<]\@<=[^ /!?<>"']\+"
- NFA engine could not handle "<!--\_.\{-}-->"
-
-setting cpo_lit and cpo_bsl can be slow. Make them global.
-
-Get example files for many languages. Compare syntax highlighting with old and
-new regexp, find regexp constructs where NFA does not work correctly.
-source ~/vim/regexp/runold.vim to update the "old" files.
-source ~/vim/regexp/runnew.vim to update the "new" files
-source ~/vim/regexp/diff.vim to find differences
+ ./vim -s ~/vim/test/xml.vim
More test files from the src/pkg/regexp/testdata directory in the Go repo.
@@ -127,18 +112,14 @@ Performance tests:
- When lists are empty in nfa_regmatch() and match is true, it keeps looping
without doing anything.
-Does not work (yet) with NFA:
-- \z() \z1 .. "\z9": Previously matched text in syn HL.
-- ~: previous substitute pattern. Requires recursive compilation?
-- \%u, \%x, \%o, \%d followed by a composing character
-- \%V Visual
-- \%[abc]
-- \%' mark
-- \@< match before zero-width
-- \@> match whole pattern
+BT engine: After \@> match and failing submatches are not cleared.
+See test64.
--- bug fixes
+:wviminfo does not write old history entries. (Roland Eggner, 2013 Jun 5)
+Another message Jun 6.
+
Patch to avoid wrong error message for 1.0[0]. (Yasuhiro Matsumoto, 2013 May
1)
@@ -190,6 +171,9 @@ Patch by Christian Brabandt, Feb 16.
Issue 134: pasting in visual selection in empty buffer.
Patch by Christian Brabandt, 2013 May 22.
+Patch to fix "gn" on single character matches. (Christian Brabandt, 2013 Jun
+2)
+
'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt,
2012 Apr 2.
@@ -202,6 +186,12 @@ line.
":diffoff" does not restore options from before starting diff mode.
Patch by Christian Brabandt, 2013 May 26.
+Can't use multi-byte fill character in custom status line.
+Patch by Christian Wellenbrock, 2013 Jun 2. Update Jun 3 (second one).
+
+Patch to fix glob() and globpath() with escaped special characters.
+(Adnan Zafar, 2013 Jun 2, tests Jun 3)
+
--- slightly incompatible changes
Patch to load ~/.vim/vimrc when ~/.vimrc isn't found. (Lech Lorens, 2013 Apr
@@ -264,6 +254,9 @@ Patch to view coverage of the tests. (Nazri Ramliy, 2013 Feb 15)
Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
5)
+Bug with 'cursorline' in diff mode. Line being scrolled into view gets
+highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
+
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
May 17: with winlist() and tabpagelist().
May 19: with local variables.
@@ -356,6 +349,9 @@ Szamotulski, 2012 Nov 8)
Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott,
2012 Aug 11) Disallow :new when BufUnload is being handled?
+Patch to add ":ldo" and ":cdo", execute commands over quickfix list and
+location list. (Yegappan Lakshmanan, 2013 Jun 2)
+
MS-Windows resizing problems:
- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
20. Uses getWindowRect() instead of GetWindowPlacement()
@@ -549,6 +545,8 @@ Patch to make "z=" work when 'spell' is off. Does this have nasty side
effects? (Christian Brabandt, 2012 Aug 5)
Would also need to do this for spellbadword() and spellsuggest().
+Patch for variable tabstops.
+
On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
64 bits value. Change all number options to use nropt_T and define it to the
right type.
@@ -657,9 +655,6 @@ New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
"L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
2011 Feb 27)
-Functions to read the actual contents of the screen, so that things like
-conceal can be tested. (Nazri Ramliy, 2013 Feb 18)
-
Copy/paste between Vim and Google chrome doesn't work well for multi-byte
characters. (Ben Haskell, 2010 Sep 17)
When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -4336,7 +4331,7 @@ More advanced repeating commands:
- Add "." command for visual mode: redo last visual command (e.g. ":fmt").
7 Repeating "d:{cmd}" with "." doesn't work. (Benji Fisher) Somehow remember
the command line so that it can be repeated?
-- Add "gn": repeat last movement command. Including count.
+- Add command to repeat last movement. Including count.
- Add "." command after operator: repeat last command of same operator. E.g.
"c." will repeat last change, also when "x" used since then (Webb).
"y." will repeat last yank.
diff --git a/runtime/indent/erlang.vim b/runtime/indent/erlang.vim
index 416c40e93..c11bbeb4b 100644
--- a/runtime/indent/erlang.vim
+++ b/runtime/indent/erlang.vim
@@ -4,7 +4,7 @@
" Contributors: Edwin Fine <efine145_nospam01 at usa dot net>
" Pawel 'kTT' Salata <rockplayer.pl@gmail.com>
" Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
-" Last Update: 2013-Mar-05
+" Last Update: 2013-Jun-01
" License: Vim license
" URL: https://github.com/hcs42/vim-erlang
@@ -1086,62 +1086,74 @@ function! s:ErlangCalcIndent2(lnum, stack)
endif
endif
- elseif token == 'end'
- let [lnum_new, col_new] = s:SearchEndPair(lnum, curr_col)
+ elseif index(['end', ')', ']', '}', '>>'], token) != -1
- if lnum_new == 0
- return s:IndentError('Matching token for "end" not found',
- \token, stack)
- else
- if lnum_new != lnum
- call s:Log(' Tokenize for "end" <<<<')
- let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
- call s:Log(' >>>> Tokenize for "end"')
- endif
+ " If we can be sure that there is synchronization in the Erlang
+ " syntax, we use searchpair to make the script quicker. Otherwise we
+ " just push the token onto the stack and keep parsing.
+
+ " No synchronization -> no searchpair optimization
+ if !exists('b:erlang_syntax_synced')
+ call s:Push(stack, token)
- let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
- if !success | return i | endif
- let [token, curr_vcol, curr_col] = indtokens[i]
- call s:Log(' Match for "end" in line ' . lnum_new . ': ' .
- \string(indtokens[i]))
- endif
+ " We don't have searchpair optimization for '>>'
+ elseif token == '>>'
+ call s:Push(stack, token)
- elseif index([')', ']', '}'], token) != -1
+ elseif token == 'end'
+ let [lnum_new, col_new] = s:SearchEndPair(lnum, curr_col)
- call s:Push(stack, token)
+ if lnum_new == 0
+ return s:IndentError('Matching token for "end" not found',
+ \token, stack)
+ else
+ if lnum_new != lnum
+ call s:Log(' Tokenize for "end" <<<<')
+ let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
+ call s:Log(' >>>> Tokenize for "end"')
+ endif
+
+ let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
+ if !success | return i | endif
+ let [token, curr_vcol, curr_col] = indtokens[i]
+ call s:Log(' Match for "end" in line ' . lnum_new . ': ' .
+ \string(indtokens[i]))
+ endif
- " We have to escape '[', because this string will be interpreted as a
- " regexp
- let open_paren = (token == ')' ? '(' :
- \token == ']' ? '\[' :
- \ '{')
+ else " token is one of the following: ')', ']', '}'
- let [lnum_new, col_new] = s:SearchPair(lnum, curr_col,
- \open_paren, '', token)
+ call s:Push(stack, token)
- if lnum_new == 0
- return s:IndentError('Matching token not found',
- \token, stack)
- else
- if lnum_new != lnum
- call s:Log(' Tokenize the opening paren <<<<')
- let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
- call s:Log(' >>>>')
- endif
+ " We have to escape '[', because this string will be interpreted as a
+ " regexp
+ let open_paren = (token == ')' ? '(' :
+ \token == ']' ? '\[' :
+ \ '{')
- let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
- if !success | return i | endif
- let [token, curr_vcol, curr_col] = indtokens[i]
- call s:Log(' Match in line ' . lnum_new . ': ' .
- \string(indtokens[i]))
+ let [lnum_new, col_new] = s:SearchPair(lnum, curr_col,
+ \open_paren, '', token)
- " Go back to the beginning of the loop and handle the opening paren
- continue
+ if lnum_new == 0
+ return s:IndentError('Matching token not found',
+ \token, stack)
+ else
+ if lnum_new != lnum
+ call s:Log(' Tokenize the opening paren <<<<')
+ let [lnum, indtokens] = s:TokenizeLine(lnum_new, 'up')
+ call s:Log(' >>>>')
+ endif
+
+ let [success, i] = s:GetIndtokenAtCol(indtokens, col_new)
+ if !success | return i | endif
+ let [token, curr_vcol, curr_col] = indtokens[i]
+ call s:Log(' Match in line ' . lnum_new . ': ' .
+ \string(indtokens[i]))
+
+ " Go back to the beginning of the loop and handle the opening paren
+ continue
+ endif
endif
- elseif token == '>>'
- call s:Push(stack, token)
-
elseif token == ';'
if empty(stack)
@@ -1323,7 +1335,10 @@ function! ErlangIndent()
let curr_col = len(ml[1])
- if ml[2] == 'end'
+ " If we can be sure that there is synchronization in the Erlang
+ " syntax, we use searchpair to make the script quicker.
+ if ml[2] == 'end' && exists('b:erlang_syntax_synced')
+
let [lnum, col] = s:SearchEndPair(v:lnum, curr_col)
if lnum == 0
diff --git a/runtime/lang/menu_ru_ru.koi8-r.vim b/runtime/lang/menu_ru_ru.koi8-r.vim
index 0d4fbaa2a..e66b728e7 100644
--- a/runtime/lang/menu_ru_ru.koi8-r.vim
+++ b/runtime/lang/menu_ru_ru.koi8-r.vim
@@ -1,9 +1,10 @@
" Menu Translations: Russian
-" Maintainer: vassily ragosin <vrr[at]users.sourceforge.net>
-" Last Change: 26 Apr 2004
+" Maintainer: Sergey Alyoshin <alyoshin.s@gmail.com>
+" Previous Maintainer: vassily ragosin <vrr[at]users.sourceforge.net>
+" Last Change: 29 May 2013
" URL: cvs://cvs.sf.net:/cvsroot/ruvim/extras/menu/menu_ru_ru.vim
"
-" $Id: menu_ru_ru.koi8-r.vim,v 1.2 2004/06/16 11:19:21 vimboss Exp $
+" $Id: menu_ru_ru.vim,v 1.1 2004/06/13 16:09:10 vimboss Exp $
"
" Adopted for RuVim project by Vassily Ragosin.
" First translation: Tim Alexeevsky <realtim [at] mail.ru>,
@@ -50,6 +51,7 @@ menutrans &About &
" File menu
menutrans &Open\.\.\.<Tab>:e &\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &\ \.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew \ &\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &<Tab>:enew
menutrans &Close<Tab>:close &<Tab>:close
"--------------------
@@ -77,51 +79,57 @@ menutrans Put\ &After<Tab>]p \ &<Tab>]p
menutrans &Delete<Tab>x &<Tab>x
menutrans &Select\ All<Tab>ggVG &\ ӣ<Tab>ggVG
"--------------------
+" Athena GUI only
+menutrans &Find<Tab>/ &<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s \ \ &<Tab>:%s
+" End Athena GUI only
menutrans &Find\.\.\.<Tab>/ &\.\.\.<Tab>/
menutrans Find\ and\ Rep&lace\.\.\. \ \ &\.\.\.
menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s \ \ &\.\.\.<Tab>:%s
-menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s \ \ &\.\.\.<Tab>:s
+menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s \ \ &\.\.\.<Tab>:s
"--------------------
menutrans Settings\ &Window \ \ &
+menutrans Startup\ &Settings \ &
menutrans &Global\ Settings &\
menutrans F&ile\ Settings \ &
menutrans C&olor\ Scheme &\
menutrans &Keymap \ &
menutrans Select\ Fo&nt\.\.\. \ &\.\.\.
">>>----------------- Edit/Global settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! \ &\ <Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &\ <Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm! \ \ &<Tab>:set\ sm!
-menutrans &Context\ lines &\ \
-menutrans &Virtual\ Edit &\
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! \ &<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! &\ \ Vi<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\. &\ \ \ \.\.\.
-menutrans Ta&g\ Files\.\.\. \ &\.\.\.
-"
-menutrans Toggle\ &Toolbar &\
-menutrans Toggle\ &Bottom\ Scrollbar \ \ &
-menutrans Toggle\ &Left\ Scrollbar \ \ &
-menutrans Toggle\ &Right\ Scrollbar \ \ &
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! \ &\ <Tab>:set\ hls!
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &\ <Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm! \ \ &<Tab>:set\ sm!
+menutrans &Context\ lines &\ \
+menutrans &Virtual\ Edit &\
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! \ &<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! &\ \ Vi<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\. &\ \ \ \.\.\.
+menutrans Ta&g\ Files\.\.\. \ &\.\.\.
+"
+menutrans Toggle\ &Toolbar &\
+menutrans Toggle\ &Bottom\ Scrollbar \ \ &
+menutrans Toggle\ &Left\ Scrollbar \ \ &
+menutrans Toggle\ &Right\ Scrollbar \ \ &
">>>->>>------------- Edit/Global settings/Virtual edit
-menutrans Never
-menutrans Block\ Selection \ \
-menutrans Insert\ mode \ \
-menutrans Block\ and\ Insert \ \ \ \ \ \
-menutrans Always \
+menutrans Never
+menutrans Block\ Selection \ \
+menutrans Insert\ mode \ \
+menutrans Block\ and\ Insert \ \ \ \ \ \
+menutrans Always \
">>>----------------- Edit/File settings
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &\ <Tab>:set\ nu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list! &\ \ <Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &\ \ <Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! \ &\ <Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et! &\ \ <Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai! \ \ &<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin! \ \ \ &\ C<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &\ <Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! &\ \ <Tab>:set\ nru!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list! &\ \ <Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &\ \ <Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! \ &\ <Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et! &\ \ <Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai! \ \ &<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin! \ \ \ &\ C<Tab>:set\ cin!
">>>---
-menutrans &Shiftwidth &\
-menutrans Soft\ &Tabstop \ &
-menutrans Te&xt\ Width\.\.\. &\ \.\.\.
-menutrans &File\ Format\.\.\. &\ \.\.\.
+menutrans &Shiftwidth &\
+menutrans Soft\ &Tabstop \ &
+menutrans Te&xt\ Width\.\.\. &\ \.\.\.
+menutrans &File\ Format\.\.\. &\ \.\.\.
"
"
"
@@ -131,6 +139,7 @@ menutrans Jump\ &back<Tab>^T &\ <Tab>^T
menutrans Build\ &Tags\ File \ &\
"-------------------
menutrans &Folding \ \ &
+menutrans &Spelling &
menutrans &Diff &\ (diff)
"-------------------
menutrans &Make<Tab>:make &<Tab>:make
@@ -141,10 +150,26 @@ menutrans &Previous\ Error<Tab>:cp &\ <Tab>:cp
menutrans &Older\ List<Tab>:cold \ &\ \ <Tab>:cold
menutrans N&ewer\ List<Tab>:cnew \ &\ \ <Tab>:cnew
menutrans Error\ &Window &\
-menutrans &Set\ Compiler \ &
+menutrans Se&T\ Compiler \ &
"-------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd &\ \ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r \ &\ HEX<Tab>:%!xxd\ -r
+">>>---------------- Tools/Spelling
+menutrans &Spell\ Check\ On &\ \
+menutrans Spell\ Check\ &Off &\ \
+menutrans To\ &Next\ error<Tab>]s &\
+menutrans To\ &Previous\ error<Tab>[s &\
+menutrans Suggest\ &Corrections<Tab>z= \ &
+menutrans &Repeat\ correction<Tab>:spellrepall &\ \ \
+"-------------------
+menutrans Set\ language\ to\ "en" \ \ "en"
+menutrans Set\ language\ to\ "en_au" \ \ "en_au"
+menutrans Set\ language\ to\ "en_ca" \ \ "en_ca"
+menutrans Set\ language\ to\ "en_gb" \ \ "en_gb"
+menutrans Set\ language\ to\ "en_nz" \ \ "en_nz"
+menutrans Set\ language\ to\ "en_us" \ \ "en_us"
+menutrans &Find\ More\ Languages &\ \
+let g:menutrans_set_lang_to = ' '
">>>---------------- Folds
menutrans &Enable/Disable\ folds<Tab>zi /\ &<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv \ \ \ &<Tab>zv
@@ -219,7 +244,7 @@ menutrans M&in\ Height<Tab>^W1_ \ &<Tab>^W1_
menutrans Max\ &Width<Tab>^W\| \ &<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\| &\ <Tab>^W1\|
">>>----------------- Window/Move To
-menutrans &Top<Tab>^WK &<Tab>^WK
+menutrans &Top<Tab>^WK &<Tab>^WK
menutrans &Bottom<Tab>^WJ &<Tab>^WJ
menutrans &Left\ side<Tab>^WH &<Tab>^WH
menutrans &Right\ side<Tab>^WL &<Tab>^WL
diff --git a/runtime/lang/menu_ru_ru.vim b/runtime/lang/menu_ru_ru.vim
index 23a111ab7..69616083b 100644
--- a/runtime/lang/menu_ru_ru.vim
+++ b/runtime/lang/menu_ru_ru.vim
@@ -1,6 +1,7 @@
" Menu Translations: Russian
-" Maintainer: vassily ragosin <vrr[at]users.sourceforge.net>
-" Last Change: 26 Apr 2004
+" Maintainer: Sergey Alyoshin <alyoshin.s@gmail.com>
+" Previous Maintainer: vassily ragosin <vrr[at]users.sourceforge.net>
+" Last Change: 29 May 2013
" URL: cvs://cvs.sf.net:/cvsroot/ruvim/extras/menu/menu_ru_ru.vim
"
" $Id: menu_ru_ru.vim,v 1.1 2004/06/13 16:09:10 vimboss Exp $
@@ -50,6 +51,7 @@ menutrans &About &Заставка
" File menu
menutrans &Open\.\.\.<Tab>:e &Открыть\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp По&делить\ окно\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew Открыть\ в&кладку\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew &Новый<Tab>:enew
menutrans &Close<Tab>:close &Закрыть<Tab>:close
"--------------------
@@ -77,51 +79,57 @@ menutrans Put\ &After<Tab>]p Вклеить\ по&сле<Tab>]p
menutrans &Delete<Tab>x &Удалить<Tab>x
menutrans &Select\ All<Tab>ggVG В&ыделить\ всё<Tab>ggVG
"--------------------
+" Athena GUI only
+menutrans &Find<Tab>/ &Поиск<Tab>/
+menutrans Find\ and\ Rep&lace<Tab>:%s Поиск\ и\ &замена<Tab>:%s
+" End Athena GUI only
menutrans &Find\.\.\.<Tab>/ &Поиск\.\.\.<Tab>/
-menutrans Find\ and\ Rep&lace\.\.\. Поиск\ и\ &замена\.\.\.
-menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s Поиск\ и\ &замена\.\.\.<Tab>:%s
-menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s Поиск\ и\ &замена\.\.\.<Tab>:s
+menutrans Find\ and\ Rep&lace\.\.\. Поиск\ и\ &замена\.\.\.
+menutrans Find\ and\ Rep&lace\.\.\.<Tab>:%s Поиск\ и\ &замена\.\.\.<Tab>:%s
+menutrans Find\ and\ Rep&lace\.\.\.<Tab>:s Поиск\ и\ &замена\.\.\.<Tab>:s
"--------------------
menutrans Settings\ &Window Окно\ настройки\ &опций
+menutrans Startup\ &Settings Настройки\ запус&ка
menutrans &Global\ Settings &Глобальные\ настройки
menutrans F&ile\ Settings Настройки\ &файлов
menutrans C&olor\ Scheme &Цветовая\ схема
menutrans &Keymap Раскладка\ кл&авиатуры
menutrans Select\ Fo&nt\.\.\. Выбор\ &шрифта\.\.\.
">>>----------------- Edit/Global settings
-menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Подсветка\ &найденных\ соответствий<Tab>:set\ hls!
-menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &Регистронезависимый\ поиск<Tab>:set\ ic!
-menutrans Toggle\ &Showmatch<Tab>:set\ sm! Показывать\ парные\ &элементы<Tab>:set\ sm!
-menutrans &Context\ lines Стр&ок\ вокруг\ курсора
-menutrans &Virtual\ Edit Вир&туальное\ редактирование
-menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ &Вставки<Tab>:set\ im!
-menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! &Совместимость\ с\ Vi<Tab>:set\ cp!
-menutrans Search\ &Path\.\.\. &Путь\ для\ поиска\ файлов\.\.\.
-menutrans Ta&g\ Files\.\.\. Файлы\ &меток\.\.\.
-"
-menutrans Toggle\ &Toolbar &Инструментальная\ панель
-menutrans Toggle\ &Bottom\ Scrollbar Полоса\ прокрутки\ вни&зу
-menutrans Toggle\ &Left\ Scrollbar Полоса\ прокрутки\ с&лева
-menutrans Toggle\ &Right\ Scrollbar Полоса\ прокрутки\ спр&ава
+menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Подсветка\ &найденных\ соответствий<Tab>:set\ hls!
+menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &Регистронезависимый\ поиск<Tab>:set\ ic!
+menutrans Toggle\ &Showmatch<Tab>:set\ sm! Показывать\ парные\ &элементы<Tab>:set\ sm!
+menutrans &Context\ lines Стр&ок\ вокруг\ курсора
+menutrans &Virtual\ Edit Вир&туальное\ редактирование
+menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ &Вставки<Tab>:set\ im!
+menutrans Toggle\ Vi\ C&ompatible<Tab>:set\ cp! &Совместимость\ с\ Vi<Tab>:set\ cp!
+menutrans Search\ &Path\.\.\. &Путь\ для\ поиска\ файлов\.\.\.
+menutrans Ta&g\ Files\.\.\. Файлы\ &меток\.\.\.
+"
+menutrans Toggle\ &Toolbar &Инструментальная\ панель
+menutrans Toggle\ &Bottom\ Scrollbar Полоса\ прокрутки\ вни&зу
+menutrans Toggle\ &Left\ Scrollbar Полоса\ прокрутки\ с&лева
+menutrans Toggle\ &Right\ Scrollbar Полоса\ прокрутки\ спр&ава
">>>->>>------------- Edit/Global settings/Virtual edit
-menutrans Never Выключено
-menutrans Block\ Selection При\ выделении\ блока
-menutrans Insert\ mode В\ режиме\ Вставки
-menutrans Block\ and\ Insert При\ выделении\ блока\ и\ в\ режиме\ Вставки
-menutrans Always Включено\ всегда
+menutrans Never Выключено
+menutrans Block\ Selection При\ выделении\ блока
+menutrans Insert\ mode В\ режиме\ Вставки
+menutrans Block\ and\ Insert При\ выделении\ блока\ и\ в\ режиме\ Вставки
+menutrans Always Включено\ всегда
">>>----------------- Edit/File settings
-menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &Нумерация\ строк<Tab>:set\ nu!
-menutrans Toggle\ &List\ Mode<Tab>:set\ list! Отобра&жение\ невидимых\ символов<Tab>:set\ list!
-menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &Перенос\ длинных\ строк<Tab>:set\ wrap!
-menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Перенос\ &целых\ слов<Tab>:set\ lbr!
-menutrans Toggle\ &expand-tab<Tab>:set\ et! Про&белы\ вместо\ табуляции<Tab>:set\ et!
-menutrans Toggle\ &auto-indent<Tab>:set\ ai! Автоматическое\ форматирование\ &отступов<Tab>:set\ ai!
-menutrans Toggle\ &C-indenting<Tab>:set\ cin! Форматирование\ отступов\ в\ &стиле\ C<Tab>:set\ cin!
+menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &Нумерация\ строк<Tab>:set\ nu!
+menutrans Toggle\ relati&ve\ Line\ Numbering<Tab>:set\ rnu! Относите&льная\ нумерация\ строк<Tab>:set\ nru!
+menutrans Toggle\ &List\ Mode<Tab>:set\ list! Отобра&жение\ невидимых\ символов<Tab>:set\ list!
+menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! &Перенос\ длинных\ строк<Tab>:set\ wrap!
+menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! Перенос\ &целых\ слов<Tab>:set\ lbr!
+menutrans Toggle\ &expand-tab<Tab>:set\ et! Про&белы\ вместо\ табуляции<Tab>:set\ et!
+menutrans Toggle\ &auto-indent<Tab>:set\ ai! Автоматическое\ форматирование\ &отступов<Tab>:set\ ai!
+menutrans Toggle\ &C-indenting<Tab>:set\ cin! Форматирование\ отступов\ в\ &стиле\ C<Tab>:set\ cin!
">>>---
-menutrans &Shiftwidth Вели&чина\ отступа
-menutrans Soft\ &Tabstop Ширина\ &табуляции
-menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
-menutrans &File\ Format\.\.\. &Формат\ файла\.\.\.
+menutrans &Shiftwidth Вели&чина\ отступа
+menutrans Soft\ &Tabstop Ширина\ &табуляции
+menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
+menutrans &File\ Format\.\.\. &Формат\ файла\.\.\.
"
"
"
@@ -131,6 +139,7 @@ menutrans Jump\ &back<Tab>^T &Вернуться\ назад<Tab>^T
menutrans Build\ &Tags\ File Создать\ &файл\ меток
"-------------------
menutrans &Folding Работа\ со\ &складками
+menutrans &Spelling Пр&авописание
menutrans &Diff &Отличия\ (diff)
"-------------------
menutrans &Make<Tab>:make Ко&мпиляция<Tab>:make
@@ -141,10 +150,26 @@ menutrans &Previous\ Error<Tab>:cp П&редыдущая\ ошибка<Tab>:cp
menutrans &Older\ List<Tab>:cold Более\ стар&ый\ список\ ошибок<Tab>:cold
menutrans N&ewer\ List<Tab>:cnew Более\ све&жий\ список\ ошибок<Tab>:cnew
menutrans Error\ &Window Ок&но\ ошибок
-menutrans &Set\ Compiler Выбор\ &компилятора
+menutrans Se&T\ Compiler Выбор\ &компилятора
"-------------------
menutrans &Convert\ to\ HEX<Tab>:%!xxd П&еревести\ в\ HEX<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r Перевести\ и&з\ HEX<Tab>:%!xxd\ -r
+">>>---------------- Tools/Spelling
+menutrans &Spell\ Check\ On &Вкл\ проверку\ правописания
+menutrans Spell\ Check\ &Off Вы&кл\ проверку\ правописания
+menutrans To\ &Next\ error<Tab>]s &Следующая\ ошибка
+menutrans To\ &Previous\ error<Tab>[s &Предыдущая\ ошибка
+menutrans Suggest\ &Corrections<Tab>z= Предложить\ исп&равления
+menutrans &Repeat\ correction<Tab>:spellrepall Пов&торить\ исправление\ для\ всех
+"-------------------
+menutrans Set\ language\ to\ "en" Установить\ язык\ "en"
+menutrans Set\ language\ to\ "en_au" Установить\ язык\ "en_au"
+menutrans Set\ language\ to\ "en_ca" Установить\ язык\ "en_ca"
+menutrans Set\ language\ to\ "en_gb" Установить\ язык\ "en_gb"
+menutrans Set\ language\ to\ "en_nz" Установить\ язык\ "en_nz"
+menutrans Set\ language\ to\ "en_us" Установить\ язык\ "en_us"
+menutrans &Find\ More\ Languages &Найти\ больше\ языков
+let g:menutrans_set_lang_to = 'Установить язык'
">>>---------------- Folds
menutrans &Enable/Disable\ folds<Tab>zi Вкл/выкл\ &складки<Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv Открыть\ строку\ с\ &курсором<Tab>zv
@@ -219,7 +244,7 @@ menutrans M&in\ Height<Tab>^W1_ Минимальная\ высо&та<Tab>^W1
menutrans Max\ &Width<Tab>^W\| Максимальная\ &ширина<Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\| Минимал&ьная\ ширина<Tab>^W1\|
">>>----------------- Window/Move To
-menutrans &Top<Tab>^WK На&верх<Tab>^WK
+menutrans &Top<Tab>^WK В&верх<Tab>^WK
menutrans &Bottom<Tab>^WJ В&низ<Tab>^WJ
menutrans &Left\ side<Tab>^WH В&лево<Tab>^WH
menutrans &Right\ side<Tab>^WL В&право<Tab>^WL
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index 459b03064..251e4c8f0 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -152,6 +152,10 @@ if s:line1 =~ "^#!"
elseif s:name =~ 'cfengine'
set ft=cfengine
+ " Erlang scripts
+ elseif s:name =~ 'escript'
+ set ft=erlang
+
endif
unlet s:name
@@ -333,6 +337,11 @@ else
\ && s:line3 =~ '^Each sample counts as .* seconds.$'
set ft=gprof
+ " Erlang terms
+ " (See also: http://www.gnu.org/software/emacs/manual/html_node/emacs/Choosing-Modes.html#Choosing-Modes)
+ elseif s:line1 =~? '-\*-.*erlang.*-\*-'
+ set ft=erlang
+
" CVS diff
else
let s:lnum = 1
diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim
index ceb14103b..6a62fe376 100644
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2013 Mar 13
+" Last Change: 2013 Jun 06
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
diff --git a/runtime/syntax/erlang.vim b/runtime/syntax/erlang.vim
index f34a004df..5eb61440c 100644
--- a/runtime/syntax/erlang.vim
+++ b/runtime/syntax/erlang.vim
@@ -1,23 +1,32 @@
" Vim syntax file
" Language: Erlang (http://www.erlang.org)
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
-" Former Maintainer: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
-" Last Update: 2013-Mar-07
+" Last Update: 2013-Jun-01
" License: Vim license
" URL: https://github.com/hcs42/vim-erlang
+" Acknowledgements: This script was originally created by Kresimir Marzic [1].
+" The script was then revamped by Csaba Hoch [2]. During the revamp, the new
+" highlighting style and some code was taken from the Erlang syntax script
+" that is part of vimerl [3], created by Oscar Hellström [4] and improved by
+" Ricardo Catalinas Jiménez [5].
+
+" [1]: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
+" [2]: Csaba Hoch <csaba.hoch@gmail.com>
+" [3]: https://github.com/jimenezrick/vimerl
+" [4]: Oscar Hellström <oscar@oscarh.net> (http://oscar.hellstrom.st)
+" [5]: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
+
" Customization:
"
-" There are two optional sets of highlighting:
-"
-" 1. The BIFs (built-in functions) are highlighted by default. To disable
-" this, put the following line in your vimrc:
+" To use the old highlighting style, add this to your .vimrc:
"
-" let g:erlang_highlight_bifs = 0
+" let g:erlang_old_style_highlight = 1
"
-" 2. To enable highlighting some special atoms, put this in your vimrc:
+" To highlight further module attributes, add them to
+" ~/.vim/after/syntax/erlang.vim:
"
-" let g:erlang_highlight_special_atoms = 1
+" syn keyword erlangAttribute myattr1 myattr2 contained
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -35,94 +44,108 @@ if version >= 600
endif
" Comments
-syn match erlangComment '%.*$' contains=erlangCommentAnnotation,erlangTodo
-syn match erlangCommentAnnotation ' \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|private\|equiv\|spec\|throws\)' contained
-syn match erlangCommentAnnotation /`[^']*'/ contained
-syn keyword erlangTodo TODO FIXME XXX contained
+syn match erlangComment '%.*$' contains=erlangCommentAnnotation,erlangTodo
+syn match erlangCommentAnnotation ' \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|private\|equiv\|spec\|throws\)' contained
+syn match erlangCommentAnnotation /`[^']*'/ contained
+syn keyword erlangTodo TODO FIXME XXX contained
+syn match erlangShebang '^#!.*'
" Numbers (minimum base is 2, maximum is 36.)
-syn match erlangNumberInteger '\<\d\+\>'
-syn match erlangNumberInteger '\<\%([2-9]\|[12]\d\|3[0-6]\)\+#[[:alnum:]]\+\>'
-syn match erlangNumberFloat '\<\d\+\.\d\+\%([eE][+-]\=\d\+\)\=\>'
+syn match erlangNumberInteger '\<\d\+\>'
+syn match erlangNumberInteger '\<\%([2-9]\|[12]\d\|3[0-6]\)\+#[[:alnum:]]\+\>'
+syn match erlangNumberFloat '\<\d\+\.\d\+\%([eE][+-]\=\d\+\)\=\>'
" Strings, atoms, characters
-syn region erlangString start=/"/ end=/"/ contains=erlangStringModifier
-syn region erlangQuotedAtom start=/'/ end=/'/ contains=erlangQuotedAtomModifier
-syn match erlangStringModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
-syn match erlangQuotedAtomModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
-syn match erlangModifier '\$\%([^\\]\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\)'
-
-" Operators
-syn match erlangOperator '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/'
-syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse
-
-" Separators
-syn match erlangSeparator '(\|)\|{\|}\|\[\|]\||\|||\|;\|,\|?\|#'
-syn match erlangRightArrow '->'
-
-" Functions call
-syn match erlangFCall '\<\%(\a[[:alnum:]@]*\s*\.\s*\)*\a[[:alnum:]@]*\s*:\s*\a[[:alnum:]@]*\>'
+syn region erlangString start=/"/ end=/"/ contains=erlangStringModifier
+syn region erlangQuotedAtom start=/'/ end=/'/ contains=erlangQuotedAtomModifier
+syn match erlangStringModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
+syn match erlangQuotedAtomModifier '\~\a\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained
+syn match erlangModifier '\$\%([^\\]\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\)'
+
+" Operators, separators
+syn match erlangOperator '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/'
+syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse
+syn match erlangBracket '{\|}\|\[\|]\||\|||'
+syn match erlangPipe '|'
+syn match erlangRightArrow '->'
+
+" Atoms, function calls (order is important)
+syn match erlangAtom '\<\l[[:alnum:]_@]*' contains=erlangBoolean
+syn keyword erlangBoolean true false contained
+syn match erlangLocalFuncCall '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangBIF
+syn match erlangLocalFuncRef '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@='
+syn match erlangGlobalFuncCall '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangComment
+syn match erlangGlobalFuncRef '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@=' contains=erlangComment
+
+" Variables, macros, records
+syn match erlangVariable '\<[A-Z_][[:alnum:]_@]*'
+syn match erlangMacro '??\=[[:alnum:]_@]\+'
+syn match erlangMacro '\%(-define(\)\@<=[[:alnum:]_@]\+'
+syn match erlangRecord '#\s*\l[[:alnum:]_@]*'
+
+" Bitstrings
+syn match erlangBitType '\%(\/\%(\s\|\n\|%.*\n\)*\)\@<=\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\%(\%(\s\|\n\|%.*\n\)*-\%(\s\|\n\|%.*\n\)*\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\)*' contains=erlangComment
" Constants and Directives
-syn match erlangDirective '-\%(behaviour\|behavior\|compile\|define\|else\|endif\|export\|file\|ifdef\|ifndef\|import\|include_lib\|include\|module\|record\|undef\|author\|copyright\|doc\|vsn\|on_load\|export_type\)\>'
+syn match erlangUnknownAttribute '-\%(\s\|\n\|%.*\n\)*\l[[:alnum:]_@]*' contains=erlangComment
+syn match erlangAttribute '-\%(\s\|\n\|%.*\n\)*\%(behaviou\=r\|compile\|export\|file\|import\|module\|author\|copyright\|doc\|vsn\|on_load\|export_type\)' contains=erlangComment
+syn match erlangInclude '-\%(\s\|\n\|%.*\n\)*\%(include\|include_lib\)\>' contains=erlangComment
+syn match erlangRecordDef '-\%(\s\|\n\|%.*\n\)*record\>' contains=erlangComment
+syn match erlangDefine '-\%(\s\|\n\|%.*\n\)*\%(define\|undef\)\>' contains=erlangComment
+syn match erlangPreCondit '-\%(\s\|\n\|%.*\n\)*\%(ifdef\|ifndef\|else\|endif\)\>' contains=erlangComment
+syn match erlangType '-\%(\s\|\n\|%.*\n\)*\%(spec\|type\|opaque\|callback\)\>' contains=erlangComment
" Keywords
-syn keyword erlangKeyword after begin case catch cond end fun if let of query receive when try
-syn keyword erlangExtra true false
-
-
-if !exists("g:erlang_highlight_bifs") || g:erlang_highlight_bifs == 1
-
- " build-in-functions (BIFs)
- syn keyword erlangBIF abs alive apply atom_to_binary atom_to_list binary_part binary_to_atom binary_to_existing_atom binary_to_float binary_to_integer bitstring_to_list binary_to_list binary_to_term bit_size byte_size check_old_code check_process_code concat_binary date delete_module demonitor disconnect_node element erase error exit float float_to_binary float_to_list garbage_collect get get_keys group_leader halt hd integer_to_binary integer_to_list iolist_to_binary iolist_size is_alive is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_process_alive is_record is_reference is_tuple length link list_to_atom list_to_binary list_to_bitstring list_to_existing_atom list_to_float list_to_integer list_to_pid list_to_tuple load_module make_ref max min module_loaded monitor monitor_node node nodes now open_port pid_to_list port_close port_command port_connect pre_loaded process_flag process_flag process_info process purge_module put register registered round self setelement size spawn spawn_link spawn_monitor spawn_opt split_binary statistics term_to_binary throw time tl trunc tuple_size tuple_to_list unlink unregister whereis
-
-endif
-
-
-if exists("g:erlang_highlight_special_atoms") && g:erlang_highlight_special_atoms == 1
-
- " Processes
- syn keyword erlangProcess creation current_function dictionary
- syn keyword erlangProcess group_leader heap_size high initial_call
- syn keyword erlangProcess linked low memory_in_use message_queue
- syn keyword erlangProcess net_kernel node normal priority
- syn keyword erlangProcess reductions registered_name runnable
- syn keyword erlangProcess running stack_trace status timer
- syn keyword erlangProcess trap_exit waiting
-
- " Ports
- syn keyword erlangPort command count_in count_out creation in
- syn keyword erlangPort in_format linked node out owner packeting
-
- " Nodes
- syn keyword erlangNode atom_tables communicating creation
- syn keyword erlangNode current_gc current_reductions current_runtime
- syn keyword erlangNode current_wall_clock distribution_port
- syn keyword erlangNode entry_points error_handler friends
- syn keyword erlangNode garbage_collection magic_cookie magic_cookies
- syn keyword erlangNode module_table monitored_nodes name next_ref
- syn keyword erlangNode ports preloaded processes reductions
- syn keyword erlangNode ref_state registry runtime wall_clock
-
- " Reserved
- syn keyword erlangReserved apply_lambda module_info module_lambdas
- syn keyword erlangReserved record record_index record_info
-
- " Extras
- syn keyword erlangExtra badarg nocookie
-
- " Signals
- syn keyword erlangSignal badsig kill killed exit normal
-endif
+syn keyword erlangKeyword after begin case catch cond end fun if let of query
+syn keyword erlangKeyword receive when try
+
+" Build-in-functions (BIFs)
+syn keyword erlangBIF abs alive apply atom_to_binary atom_to_list contained
+syn keyword erlangBIF binary_part binary_to_atom contained
+syn keyword erlangBIF binary_to_existing_atom binary_to_float contained
+syn keyword erlangBIF binary_to_integer bitstring_to_list contained
+syn keyword erlangBIF binary_to_list binary_to_term bit_size contained
+syn keyword erlangBIF byte_size check_old_code check_process_code contained
+syn keyword erlangBIF concat_binary date delete_module demonitor contained
+syn keyword erlangBIF disconnect_node element erase error exit contained
+syn keyword erlangBIF float float_to_binary float_to_list contained
+syn keyword erlangBIF garbage_collect get get_keys group_leader contained
+syn keyword erlangBIF halt hd integer_to_binary integer_to_list contained
+syn keyword erlangBIF iolist_to_binary iolist_size is_alive contained
+syn keyword erlangBIF is_atom is_binary is_bitstring is_boolean contained
+syn keyword erlangBIF is_float is_function is_integer is_list contained
+syn keyword erlangBIF is_number is_pid is_port is_process_alive contained
+syn keyword erlangBIF is_record is_reference is_tuple length link contained
+syn keyword erlangBIF list_to_atom list_to_binary contained
+syn keyword erlangBIF list_to_bitstring list_to_existing_atom contained
+syn keyword erlangBIF list_to_float list_to_integer list_to_pid contained
+syn keyword erlangBIF list_to_tuple load_module make_ref max min contained
+syn keyword erlangBIF module_loaded monitor monitor_node node contained
+syn keyword erlangBIF nodes now open_port pid_to_list port_close contained
+syn keyword erlangBIF port_command port_connect pre_loaded contained
+syn keyword erlangBIF process_flag process_flag process_info contained
+syn keyword erlangBIF process purge_module put register registered contained
+syn keyword erlangBIF round self setelement size spawn spawn_link contained
+syn keyword erlangBIF spawn_monitor spawn_opt split_binary contained
+syn keyword erlangBIF statistics term_to_binary throw time tl contained
+syn keyword erlangBIF trunc tuple_size tuple_to_list unlink contained
+syn keyword erlangBIF unregister whereis contained
" Sync at the beginning of functions: if this is not used, multiline string
-" are not always recognized
+" are not always recognized, and the indentation script cannot use the
+" "searchpair" (because it would not always skip strings and comments when
+" looking for keywords and opening parens/brackets).
syn sync match erlangSync grouphere NONE "^[a-z]\s*("
+let b:erlang_syntax_synced = 1
+
+" Define the default highlighting. See ":help group-name" for the groups and
+" their colors.
+
+let s:old_style = (exists("g:erlang_old_style_highlight") && g:erlang_old_style_highlight == 1)
-" 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 highlighting yet
-if version >= 508 || !exists ("did_erlang_inits")
+if version >= 508 || !exists("did_erlang_inits")
if version < 508
let did_erlang_inits = 1
command -nargs=+ HiLink hi link <args>
@@ -130,46 +153,106 @@ if version >= 508 || !exists ("did_erlang_inits")
command -nargs=+ HiLink hi def link <args>
endif
- " erlang_characters
+ " Comments
HiLink erlangComment Comment
HiLink erlangCommentAnnotation Special
HiLink erlangTodo Todo
- HiLink erlangSeparator Normal
- HiLink erlangOperator Operator
- HiLink erlangRightArrow Operator
+ HiLink erlangShebang Comment
- HiLink erlangStartString String
+ " Numbers
+ HiLink erlangNumberInteger Number
+ HiLink erlangNumberFloat Float
+
+ " Strings, atoms, characters
HiLink erlangString String
- HiLink erlangStringModifier Special
- HiLink erlangStartQuotedAtom Type
- HiLink erlangQuotedAtom Type
+ if s:old_style
+ HiLink erlangQuotedAtom Type
+ else
+ HiLink erlangQuotedAtom String
+ endif
+
+ HiLink erlangStringModifier Special
HiLink erlangQuotedAtomModifier Special
+ HiLink erlangModifier Special
- HiLink erlangNumberInteger Number
- HiLink erlangNumberFloat Float
- HiLink erlangNumberHex Number
+ " Operators, separators
+ HiLink erlangOperator Operator
+ HiLink erlangRightArrow Operator
+ if s:old_style
+ HiLink erlangBracket Normal
+ HiLink erlangPipe Normal
+ else
+ HiLink erlangBracket Delimiter
+ HiLink erlangPipe Delimiter
+ endif
- HiLink erlangModifier Special
+ " Atoms, functions, variables, macros
+ if s:old_style
+ HiLink erlangAtom Normal
+ HiLink erlangLocalFuncCall Normal
+ HiLink erlangLocalFuncRef Normal
+ HiLink erlangGlobalFuncCall Function
+ HiLink erlangGlobalFuncRef Function
+ HiLink erlangVariable Normal
+ HiLink erlangMacro Normal
+ HiLink erlangRecord Normal
+ else
+ HiLink erlangAtom String
+ HiLink erlangLocalFuncCall Normal
+ HiLink erlangLocalFuncRef Normal
+ HiLink erlangGlobalFuncCall Normal
+ HiLink erlangGlobalFuncRef Normal
+ HiLink erlangVariable Identifier
+ HiLink erlangMacro Macro
+ HiLink erlangRecord Structure
+ endif
- " erlang_functions
- HiLink erlangFCall Function
- HiLink erlangBIF Function
+ " Bitstrings
+ if !s:old_style
+ HiLink erlangBitType Type
+ endif
+
+ " Constants and Directives
+ if s:old_style
+ HiLink erlangAttribute Type
+ HiLink erlangMacroDef Type
+ HiLink erlangUnknownAttribute Normal
+ HiLink erlangInclude Type
+ HiLink erlangRecordDef Type
+ HiLink erlangDefine Type
+ HiLink erlangPreCondit Type
+ HiLink erlangType Type
+ else
+ HiLink erlangAttribute Keyword
+ HiLink erlangMacroDef Macro
+ HiLink erlangUnknownAttribute Normal
+ HiLink erlangInclude Include
+ HiLink erlangRecordDef Keyword
+ HiLink erlangDefine Define
+ HiLink erlangPreCondit PreCondit
+ HiLink erlangType Type
+ endif
- " erlang_keywords
- HiLink erlangDirective Type
+ " Keywords
HiLink erlangKeyword Keyword
- HiLink erlangProcess Special
- HiLink erlangPort Special
- HiLink erlangNode Special
- HiLink erlangReserved Statement
- HiLink erlangExtra Statement
- HiLink erlangSignal Statement
+
+ " Build-in-functions (BIFs)
+ HiLink erlangBIF Function
+
+ if s:old_style
+ HiLink erlangBoolean Statement
+ HiLink erlangExtra Statement
+ HiLink erlangSignal Statement
+ else
+ HiLink erlangBoolean Boolean
+ HiLink erlangExtra Statement
+ HiLink erlangSignal Statement
+ endif
delcommand HiLink
endif
-
let b:current_syntax = "erlang"
" vim: sw=2 et
diff --git a/runtime/syntax/falcon.vim b/runtime/syntax/falcon.vim
index 0ff500ccc..1f6fefa9f 100644
--- a/runtime/syntax/falcon.vim
+++ b/runtime/syntax/falcon.vim
@@ -3,8 +3,8 @@
" Maintainer: Steven Oliver <oliver.steven@gmail.com>
" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
" Credits: Thanks the ruby.vim authors, I borrowed a lot!
+" Thanks to the lisp authors for the rainbow code!
" -------------------------------------------------------------------------------
-" GetLatestVimScripts: 2745 1 :AutoInstall: falcon.vim
" When wanted, highlight the trailing whitespace.
if exists("c_space_errors")
@@ -56,6 +56,7 @@ syn keyword falconBool true false
" Constants
syn keyword falconConst PI E nil
+syn match falconConstant "\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!"
" Comments
syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
@@ -116,6 +117,47 @@ syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+" Falcon rainbox to highlight parens in varying colors
+if exists("g:falcon_rainbow") && g:falcon_rainbow != 0
+ syn region falconParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen1
+ syn region falconParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen2
+ syn region falconParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen3
+ syn region falconParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen4
+ syn region falconParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen5
+ syn region falconParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen6
+ syn region falconParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen7
+ syn region falconParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen8
+ syn region falconParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen9
+ syn region falconParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@falconListCluster,falconParen0
+endif
+
+" Setup the colors for the rainbox
+if exists("g:falcon_rainbow") && g:falcon_rainbow != 0
+ if &bg == "dark"
+ hi def hlLevel0 ctermfg=red guifg=red1
+ hi def hlLevel1 ctermfg=yellow guifg=orange1
+ hi def hlLevel2 ctermfg=green guifg=yellow1
+ hi def hlLevel3 ctermfg=cyan guifg=greenyellow
+ hi def hlLevel4 ctermfg=magenta guifg=green1
+ hi def hlLevel5 ctermfg=red guifg=springgreen1
+ hi def hlLevel6 ctermfg=yellow guifg=cyan1
+ hi def hlLevel7 ctermfg=green guifg=slateblue1
+ hi def hlLevel8 ctermfg=cyan guifg=magenta1
+ hi def hlLevel9 ctermfg=magenta guifg=purple1
+ else
+ hi def hlLevel0 ctermfg=red guifg=red3
+ hi def hlLevel1 ctermfg=darkyellow guifg=orangered3
+ hi def hlLevel2 ctermfg=darkgreen guifg=orange2
+ hi def hlLevel3 ctermfg=blue guifg=yellow3
+ hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
+ hi def hlLevel5 ctermfg=red guifg=green4
+ hi def hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
+ hi def hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
+ hi def hlLevel8 ctermfg=blue guifg=darkslateblue
+ hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
+ endif
+endif
+
" Syntax Synchronizing
syn sync minlines=10 maxlines=100
@@ -132,6 +174,7 @@ if !exists("did_falcon_syn_inits")
HiLink falconComment Comment
HiLink falconCommentL Comment
HiLink falconConst Constant
+ HiLink falconConstants Constant
HiLink falconOperator Operator
HiLink falconSymbol Normal
HiLink falconSpaceError Error
@@ -153,3 +196,4 @@ endif
let b:current_syntax = "falcon"
" vim: set sw=4 sts=4 et tw=80 :
+
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index 68e0a1a7f..ee5563e6b 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2013 Apr 07
+" Last Change: 2013 Jun 02
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim
index d92f5c5bd..5e76e7af7 100644
--- a/runtime/syntax/r.vim
+++ b/runtime/syntax/r.vim
@@ -3,7 +3,7 @@
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
" Tom Payne <tom@tompayne.org>
-" Last Change: Sun Feb 20, 2011 12:06PM
+" Last Change: Sun May 19, 2013 05:59PM
" Filenames: *.R *.r *.Rhistory *.Rt
"
" NOTE: The highlighting of R functions is defined in the
@@ -30,7 +30,16 @@ endif
syn case match
" Comment
-syn match rComment contains=@Spell "\#.*"
+syn match rComment contains=@Spell "#.*"
+
+" Roxygen
+syn match rOKeyword contained "@\(param\|return\|name\|rdname\|examples\|include\|docType\)"
+syn match rOKeyword contained "@\(S3method\|TODO\|aliases\|alias\|assignee\|author\|callGraphDepth\|callGraph\)"
+syn match rOKeyword contained "@\(callGraphPrimitives\|concept\|exportClass\|exportMethod\|exportPattern\|export\|formals\)"
+syn match rOKeyword contained "@\(format\|importClassesFrom\|importFrom\|importMethodsFrom\|import\|keywords\)"
+syn match rOKeyword contained "@\(method\|nord\|note\|references\|seealso\|setClass\|slot\|source\|title\|usage\)"
+syn match rOComment contains=@Spell,rOKeyword "#'.*"
+
if &filetype == "rhelp"
" string enclosed in double quotes
@@ -65,7 +74,7 @@ syn keyword rConditional if else
syn keyword rRepeat for in repeat while
" Constant (not really)
-syn keyword rConstant T F LETTERS letters month.ab month.name pi
+syn keyword rConstant T F LETTERS letters month.abb month.name pi
syn keyword rConstant R.version.string
syn keyword rNumber NA_integer_ NA_real_ NA_complex_ NA_character_
@@ -105,8 +114,13 @@ syn match rOperator '-'
syn match rOperator '\*'
syn match rOperator '+'
syn match rOperator '='
-syn match rOperator "[|!<>^~`/:@]"
-syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
+if &filetype != "rmd" && &filetype != "rrst"
+ syn match rOperator "[|!<>^~/:]"
+else
+ syn match rOperator "[|!<>^~`/:]"
+endif
+syn match rOperator "%\{2}\|%\S*%"
+syn match rOpError '\*\{3}'
syn match rOpError '//'
syn match rOpError '&&&'
syn match rOpError '|||'
@@ -140,9 +154,11 @@ syn match rParenError "[\]}]" contained
runtime r-plugin/functions.vim
syn match rDollar display contained "\$"
+syn match rDollar display contained "@"
" List elements will not be highlighted as functions:
syn match rLstElmt "\$[a-zA-Z0-9\\._]*" contains=rDollar
+syn match rLstElmt "@[a-zA-Z0-9\\._]*" contains=rDollar
" Functions that may add new objects
syn keyword rPreProc library require attach detach source
@@ -156,7 +172,9 @@ endif
syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
" Name of object with spaces
-syn region rNameWSpace start="`" end="`"
+if &filetype != "rmd" && &filetype != "rrst"
+ syn region rNameWSpace start="`" end="`"
+endif
if &filetype == "rhelp"
syn match rhPreProc "^#ifdef.*"
@@ -169,6 +187,7 @@ hi def link rArrow Statement
hi def link rBoolean Boolean
hi def link rBraceError Error
hi def link rComment Comment
+hi def link rOComment Comment
hi def link rComplex Number
hi def link rConditional Conditional
hi def link rConstant Constant
@@ -195,6 +214,7 @@ hi def link rStatement Statement
hi def link rString String
hi def link rStrError Error
hi def link rType Type
+hi def link rOKeyword Title
let b:current_syntax="r"
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index b68089720..159d14ef3 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: reStructuredText documentation format
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2012-11-01
+" Latest Revision: 2013-06-03
if exists("b:current_syntax")
finish
@@ -135,10 +135,6 @@ execute 'syn match rstHyperlinkReference' .
syn match rstStandaloneHyperlink contains=@NoSpell
\ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"
-" TODO: Use better syncing. I don’t know the specifics of syncing well enough,
-" though.
-syn sync minlines=50 linebreaks=1
-
syn region rstCodeBlock contained matchgroup=rstDirective
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\s+
\ skip=+^$+
@@ -160,6 +156,9 @@ for code in g:rst_syntax_code_list
exe 'syn cluster rstDirectives add=rstDirective'.code
endfor
+" TODO: Use better syncing.
+syn sync minlines=50 linebreaks=2
+
hi def link rstTodo Todo
hi def link rstComment Comment
hi def link rstSections Title