summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-03-02 16:19:40 +0100
committerBram Moolenaar <Bram@vim.org>2010-03-02 16:19:40 +0100
commit5e3dae8b6ba205faf78af4b6eaeb5947c309ca59 (patch)
treedc22b80fe00fec131b97235c3b701f0ebe5b2d06 /runtime
parent42b4ddab9585411e53c16cddc93e727a5db7f567 (diff)
Updated runtime an documentation files.
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/fold.txt12
-rw-r--r--runtime/doc/if_mzsch.txt9
-rw-r--r--runtime/doc/message.txt26
-rw-r--r--runtime/doc/todo.txt47
-rw-r--r--runtime/doc/usr_22.txt4
-rw-r--r--runtime/doc/visual.txt10
-rw-r--r--runtime/filetype.vim5
-rw-r--r--runtime/ftplugin/cucumber.vim131
-rw-r--r--runtime/indent/cucumber.vim59
-rw-r--r--runtime/lang/menu_ko_kr.euckr.vim30
-rw-r--r--runtime/lang/menu_ko_kr.utf-8.vim30
-rw-r--r--runtime/syntax/cf.vim693
-rw-r--r--runtime/syntax/cucumber.vim117
13 files changed, 819 insertions, 354 deletions
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 5d465f44f3..60704c598a 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt* For Vim version 7.2. Last change: 2009 Dec 22
+*fold.txt* For Vim version 7.2. Last change: 2010 Feb 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -274,7 +274,7 @@ zf{motion} or
Also see |fold-create-marker|.
*zF*
-zF Create a fold for N lines. Works like "zf".
+zF Create a fold for [count] lines. Works like "zf".
:{range}fo[ld] *:fold* *:fo*
Create a fold for the lines in {range}. Works like "zf".
@@ -399,24 +399,24 @@ MOVING OVER FOLDS ~
[z Move to the start of the current open fold. If already at the
start, move to the start of the fold that contains it. If
there is no containing fold, the command fails.
- When a count is used, repeats the command N times.
+ When a count is used, repeats the command [count] times.
*]z*
]z Move to the end of the current open fold. If already at the
end, move to the end of the fold that contains it. If there
is no containing fold, the command fails.
- When a count is used, repeats the command N times.
+ When a count is used, repeats the command [count] times.
*zj*
zj Move downwards to the start of the next fold. A closed fold
is counted as one fold.
- When a count is used, repeats the command N times.
+ When a count is used, repeats the command [count] times.
This command can be used after an |operator|.
*zk*
zk Move upwards to the end of the previous fold. A closed fold
is counted as one fold.
- When a count is used, repeats the command N times.
+ When a count is used, repeats the command [count] times.
This command can be used after an |operator|.
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index 484d09aa8a..3fe235cf89 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt* For Vim version 7.2. Last change: 2010 Jan 19
+*if_mzsch.txt* For Vim version 7.2. Last change: 2010 Feb 11
VIM REFERENCE MANUAL by Sergey Khorev
@@ -185,8 +185,7 @@ Buffers *mzscheme-buffer*
current buffer will be used.
(get-buff-line-list {start} {end} [buffer])
Get a list of lines in a buffer. {Start}
- and {end} are 1-based. {Start} is
- inclusive, {end} - exclusive.
+ and {end} are 1-based and inclusive.
(set-buff-line-list {start} {end} {string-list} [buffer])
Set a list of lines in a buffer. If
string-list is #f or null, the lines get
@@ -200,8 +199,8 @@ Buffers *mzscheme-buffer*
Insert a list of lines into a buffer after
{linenr}. If {linenr} is 0, lines will be
inserted at start.
- (curr-buff) Get the current buffer. Use procedures
- from "vimcmd" module to change it.
+ (curr-buff) Get the current buffer. Use other MzScheme
+ interface procedures to change it.
(buff-count) Get count of total buffers in the editor.
(get-next-buff [buffer]) Get next buffer.
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 0ac2e9961b..a66e72f0e3 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt* For Vim version 7.2. Last change: 2009 Oct 28
+*message.txt* For Vim version 7.2. Last change: 2010 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -72,7 +72,7 @@ LIST OF MESSAGES
Hangul automata ERROR
block was not locked
Didn't get block nr {N}?
- ml_timestamp: Didn't get block 0??
+ ml_upd_block0(): Didn't get block 0??
pointer block id wrong {N}
Updated too many blocks?
get_varp ERROR
@@ -128,7 +128,6 @@ The color name {name} is unknown. See |gui-colors| for a list of colors that
are available on most systems.
*E458* >
- Cannot allocate colormap entry for "xxxx"
Cannot allocate colormap entry, some colors may be incorrect
This means that there are not enough colors available for Vim. It will still
@@ -180,7 +179,7 @@ manually delete the link or the file, or change the permissions so that Vim
can overwrite.
*E46* >
- Cannot set read-only variable "{name}"
+ Cannot change read-only variable "{name}"
You are trying to assign a value to an argument of a function |a:var| or a Vim
internal variable |v:var| which is read-only.
@@ -279,8 +278,8 @@ Writing a file was not completed successfully. The file is probably
incomplete.
*E13* *E189* >
- File exists (use ! to override)
- "{filename}" exists (use ! to override)
+ File exists (add ! to override)
+ "{filename}" exists (add ! to override)
You are protected from accidentally overwriting a file. When you want to
write anyway, use the same command, but add a "!" just after the command.
@@ -349,7 +348,7 @@ the other way around. It should be used like this: {foo,bar}. This matches
"foo" and "bar".
*E315* >
- ml_get: invalid lnum:
+ ml_get: invalid lnum: {number}
This is an internal Vim error. Please try to find out how it can be
reproduced, and submit a bug report |bugreport.vim|.
@@ -420,8 +419,8 @@ mapping. All variations of this command give the same message: ":cunmap",
|:map-<buffer>|
*E37* *E89* >
- No write since last change (use ! to override)
- No write since last change for buffer {N} (use ! to override)
+ No write since last change (add ! to override)
+ No write since last change for buffer {N} (add ! to override)
You are trying to |abandon| a file that has changes. Vim protects you from
losing your work. You can either write the changed file with ":w", or, if you
@@ -477,7 +476,7 @@ This only happens on systems with 16 bit ints: The compiled regexp pattern is
longer than about 65000 characters. Try using a shorter pattern.
*E45* >
- 'readonly' option is set (use ! to override)
+ 'readonly' option is set (add ! to override)
You are trying to write a file that was marked as read-only. To write the
file anyway, either reset the 'readonly' option, or add a '!' character just
@@ -641,7 +640,7 @@ bit to be reset. It should be safe to reload the file. Set 'autoread' to
automatically reload the file.
*E211* >
- Warning: File "{filename}" no longer available
+ File "{filename}" no longer available
The file which you have started editing has disappeared, or is no longer
accessible. Make sure you write the buffer somewhere to avoid losing
@@ -688,6 +687,7 @@ no argument has been specified.
*E474* *E475* >
Invalid argument
+ Invalid argument: {arg}
An Ex command has been executed, but an invalid argument has been specified.
@@ -715,8 +715,8 @@ A range was specified for an Ex command that doesn't permit one. See
Vim cannot create a temporary file.
*E484* *E485* >
- Can't open file %s"
- Can't read file %s"
+ Can't open file {filename}
+ Can't read file {filename}
Vim cannot read a temporary file.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 05917c7250..be18874699 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.2. Last change: 2010 Feb 09
+*todo.txt* For Vim version 7.2. Last change: 2010 Mar 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,30 +30,22 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Patch for crash in netbeans on join command. (Xavier de Gaye, 2010 Feb 5)
+Patch for access to freed memory. (Dominique Pelle, 2010 Feb 28)
-Patch for mzscheme docs. (Sergey Khorev, 2010 Jan 29)
+Update pythoncomplete. (Aaron Griffin, 2010 Feb 25)
-Patch to support netbeans in Unix console Vim. (Xavier de Gaye, 2009 Apr 26)
-Now with Mercurial repository (2010 Jan 2)
-
-Warnings for Python 2.6.4. (Dominique Pelle, 2010 Jan 31)
-
-Patch for better fix for Win64. (Sergey Khorev, 2010 Feb 4)
+Patch for Visual Studio 2010. (George Reilly, 2010 Feb 26)
+Test 69 breaks.
-Patch for error messages. (Dominique Pelle, 2010 Feb 5)
-Patch for visual-operators text (Dominique Pelle, 2010 Feb 6)
+With cmdline window open, can drag the status line above it, but not another
+one. (Jean Johner, 2010 Feb 27)
-Patch for Win64 MingW struct size. (Andy Kittner, 2010 Feb 7)
+I often see pasted text (from Firefox, to Vim in xterm) appear twice.
+Also, Vim in xterm sometimes loses copy/paste ability (probably after running
+an external command).
-Patch for Perl interface with Perl 5.10. (Sergey Khorev, 2010 Feb 5)
-
-Patch for xxd to support "-r -p" as documented. (James Vega, 2010 Feb 8)
-
-Win32: patch for cross compile xxd and GvimExt. (Markus Heidelberg, 2009 Mar
-18) Also update INSTALLpc.txt?
-Patch for xxd/Make_cyg.mak. (Chris Sutcliffe, 2009 Jun 10) Included in the
-above?
+In netrw, click on last status lines causes netrw to open the last entry in
+the window. (Jean Johner, 2010 Feb 26)
iconv() doesn't fail on an illegal character, as documented. (Yongwei Wu, 2009
Nov 15, example Nov 26) Add argument to specify whether iconv() should fail
@@ -63,15 +55,18 @@ Add local time at start of --startuptime output.
Requires configure check for localtime().
Use format year-month-day hr:min:sec.
+":s" summary in :folddo is not correct. (Jean Johner, 2010 Feb 20)
+
Shell not recognized properly if it ends in "csh -f". (James Vega, 2009 Nov 3)
Find tail? Might have a / in argument. Find space? Might have space in
path.
+Patch to support netbeans in Unix console Vim. (Xavier de Gaye, 2009 Apr 26)
+Now with Mercurial repository (2010 Jan 2)
+
Crash when assigning s: to variable, pointer becomes invalid later.
(Yukihiro Nakadaira, 2009 Oct 12, confirmed by Dominique Pelle)
-ml_get error when using SiSU syntax. (Nathan Thomas, 2009 Oct 29)
-
Coverity: ask someone to create new user: Dominique.
look into reported defects: http://scan.coverity.com/rung2.html
@@ -139,11 +134,6 @@ Probably needs a bit of work.
List of encoding aliases. (Takao Fujiware, 2009 Jul 18)
Are they all OK? Update Jul 22.
-Patch for Ruby sockets. (todesking/Ariya Mizutani, 2008 Jul 1,24)
-Confirmed by Anton Sharonov, 2008 Dec 26.
-
-Patch for Ruby 1.9. (Msaki Suketa, 2009 Jul 21, Jul 26)
-
Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26)
8 For ":find" and ":sfind" expand files found in 'path'.
Update 2009 Mar 28.
@@ -1136,6 +1126,9 @@ When switching between windows the cursor is often put in the middle.
Remember the relative position and restore that, just like lnum and col are
restored. (Luc St-Louis)
+Patch for adding "J" flag to 'cinoptions': placement of jump label.
+(Manuel Konig, 2010 Feb 19) Update by Lech Lorens, Feb 22.
+
Vim 7.3:
- Use latest autoconf (2.65)
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index 45bd2f4aa5..750f923f36 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt* For Vim version 7.2. Last change: 2007 Aug 14
+*usr_22.txt* For Vim version 7.2. Last change: 2010 Feb 21
VIM USER MANUAL - by Bram Moolenaar
@@ -54,7 +54,7 @@ You can see these items:
*.c files, etc)
5. How to get help (use the <F1> key), and an abbreviated listing
of available commands
-6. A listing of files, including "../", which allows one to to list
+6. A listing of files, including "../", which allows one to list
the parent directory.
If you have syntax highlighting enabled, the different parts are highlighted
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index c04db4a0e6..7348ea9db7 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt* For Vim version 7.2. Last change: 2009 Oct 14
+*visual.txt* For Vim version 7.2. Last change: 2010 Feb 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -211,10 +211,18 @@ The objects that can be used are:
ib inner () block |v_ib|
aB a {} block (with braces) |v_aB|
iB inner {} block |v_iB|
+ at a <tag> </tag> block (with tags) |v_at|
+ it inner <tag> </tag> block |v_it|
a< a <> block (with <>) |v_a<|
i< inner <> block |v_i<|
a[ a [] block (with []) |v_a[|
i[ inner [] block |v_i[|
+ a" a double quoted string (with quotes) |v_aquote|
+ i" inner double quoted string |v_iquote|
+ a' a single quoted string (with quotes) |v_a'|
+ i' inner simple quoted string |v_i'|
+ a` a string in backticks (with backticks) |v_a`|
+ i` inner string in backticks |v_i`|
Additionally the following commands can be used:
: start Ex command for highlighted lines (1) |v_:|
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 5665cc293c..140f0c561c 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2009 Dec 24
+" Last Change: 2010 Feb 24
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -529,6 +529,9 @@ au BufNewFile,BufRead *.qc setf c
" Configure files
au BufNewFile,BufRead *.cfg setf cfg
+" Cucumber
+au BufNewFile,BufRead *.feature setf cucumber
+
" Communicating Sequential Processes
au BufNewFile,BufRead *.csp,*.fdr setf csp
diff --git a/runtime/ftplugin/cucumber.vim b/runtime/ftplugin/cucumber.vim
new file mode 100644
index 0000000000..8ef8c2399b
--- /dev/null
+++ b/runtime/ftplugin/cucumber.vim
@@ -0,0 +1,131 @@
+" Vim filetype plugin
+" Language: Cucumber
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal formatoptions-=t formatoptions+=croql
+setlocal comments=:# commentstring=#\ %s
+setlocal omnifunc=CucumberComplete
+
+let b:undo_ftplugin = "setl fo< com< cms< ofu<"
+
+let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
+
+if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
+ nmap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
+ nmap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
+ nmap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
+ nmap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
+ let b:undo_ftplugin .= "| sil! iunmap! <C-]>| sil! iunmap! <C-W>]| sil! iunmap! <C-W><C-]>| sil! iunmap! <C-W>}"
+endif
+
+function! s:jump(command,count)
+ let steps = s:steps('.')
+ if len(steps) == 0 || len(steps) < a:count
+ return 'echoerr "No matching step found"'
+ elseif len(steps) > 1 && !a:count
+ return 'echoerr "Multiple matching steps found"'
+ else
+ let c = a:count ? a:count-1 : 0
+ return a:command.' +'.steps[c][1].' '.escape(steps[c][0],' %#')
+ endif
+endfunction
+
+function! s:allsteps()
+ let step_pattern = '\C^\s*\K\k*\>\s*\zs\S.\{-\}\ze\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
+ let steps = []
+ for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
+ let lines = readfile(file)
+ let num = 0
+ for line in lines
+ let num += 1
+ if line =~ step_pattern
+ let type = matchstr(line,'\w\+')
+ let steps += [[file,num,type,matchstr(line,step_pattern)]]
+ endif
+ endfor
+ endfor
+ return steps
+endfunction
+
+function! s:steps(lnum)
+ let c = indent(a:lnum) + 1
+ while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$'
+ let c = c + 1
+ endwhile
+ let step = matchstr(getline(a:lnum)[c-1 : -1],'^\s*\zs.\{-\}\ze\s*$')
+ return filter(s:allsteps(),'s:stepmatch(v:val[3],step)')
+endfunction
+
+function! s:stepmatch(receiver,target)
+ if a:receiver =~ '^[''"].*[''"]$'
+ let pattern = '^'.escape(substitute(a:receiver[1:-2],'$\w\+','(.*)','g'),'/').'$'
+ elseif a:receiver =~ '^/.*/$'
+ let pattern = a:receiver[1:-2]
+ elseif a:receiver =~ '^%r..*.$'
+ let pattern = escape(a:receiver[3:-2],'/')
+ else
+ return 0
+ endif
+ try
+ let vimpattern = substitute(substitute(pattern,'\\\@<!(?:','%(','g'),'\\\@<!\*?','{-}','g')
+ if a:target =~# '\v'.vimpattern
+ return 1
+ endif
+ catch
+ endtry
+ if has("ruby")
+ ruby VIM.command("return #{if (begin; Kernel.eval('/'+VIM.evaluate('pattern')+'/'); rescue SyntaxError; end) === VIM.evaluate('a:target') then 1 else 0 end}")
+ else
+ return 0
+ endif
+endfunction
+
+function! s:bsub(target,pattern,replacement)
+ return substitute(a:target,'\C\\\@<!'.a:pattern,a:replacement,'g')
+endfunction
+
+function! CucumberComplete(findstart,base) abort
+ let indent = indent('.')
+ let group = synIDattr(synID(line('.'),indent+1,1),'name')
+ let type = matchstr(group,'\Ccucumber\zs\%(Given\|When\|Then\)')
+ let e = matchend(getline('.'),'^\s*\S\+\s')
+ if type == '' || col('.') < col('$') || e < 0
+ return -1
+ endif
+ if a:findstart
+ return e
+ endif
+ let steps = []
+ for step in s:allsteps()
+ if step[2] ==# type
+ if step[3] =~ '^[''"]'
+ let steps += [step[3][1:-2]]
+ elseif step[3] =~ '^/\^.*\$/$'
+ let pattern = step[3][2:-3]
+ let pattern = substitute(pattern,'\C^(?:|I )','I ','')
+ let pattern = s:bsub(pattern,'\\[Sw]','w')
+ let pattern = s:bsub(pattern,'\\d','1')
+ let pattern = s:bsub(pattern,'\\[sWD]',' ')
+ let pattern = s:bsub(pattern,'\[\^\\\="\]','_')
+ let pattern = s:bsub(pattern,'[[:alnum:]. _-][?*]?\=','')
+ let pattern = s:bsub(pattern,'\[\([^^]\).\{-\}\]','\1')
+ let pattern = s:bsub(pattern,'+?\=','')
+ let pattern = s:bsub(pattern,'(\([[:alnum:]. -]\{-\}\))','\1')
+ let pattern = s:bsub(pattern,'\\\([[:punct:]]\)','\1')
+ if pattern !~ '[\\()*?]'
+ let steps += [pattern]
+ endif
+ endif
+ endif
+ endfor
+ call filter(steps,'strpart(v:val,0,strlen(a:base)) ==# a:base')
+ return sort(steps)
+endfunction
+
+" vim:set sts=2 sw=2:
diff --git a/runtime/indent/cucumber.vim b/runtime/indent/cucumber.vim
new file mode 100644
index 0000000000..8cbbc39743
--- /dev/null
+++ b/runtime/indent/cucumber.vim
@@ -0,0 +1,59 @@
+" Vim indent file
+" Language: Cucumber
+" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal autoindent
+setlocal indentexpr=GetCucumberIndent()
+setlocal indentkeys=o,O,*<Return>,<:>,0<Bar>,0#,=,!^F
+
+" Only define the function once.
+if exists("*GetCucumberIndent")
+ finish
+endif
+
+function! s:syn(lnum)
+ return synIDattr(synID(a:lnum,1+indent(a:lnum),1),'name')
+endfunction
+
+function! GetCucumberIndent()
+ let line = getline(prevnonblank(v:lnum-1))
+ let cline = getline(v:lnum)
+ let syn = s:syn(prevnonblank(v:lnum-1))
+ let csyn = s:syn(v:lnum)
+ if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:'
+ return 0
+ elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
+ return 2 * &sw
+ elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
+ return &sw
+ elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
+ return &sw
+ elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
+ return 3 * &sw
+ elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
+ return 2 * &sw
+ elseif cline =~# '^\s*@' && (s:syn(nextnonblank(v:lnum+1)) == 'cucumberFeature' || getline(nextnonblank(v:lnum+1)) =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
+ return 0
+ elseif line =~# '^\s*@'
+ return &sw
+ elseif cline =~# '^\s*|' && line =~# '^\s*|'
+ return indent(prevnonblank(v:lnum-1))
+ elseif cline =~# '^\s*|' && line =~# '^\s*[^|#]'
+ return indent(prevnonblank(v:lnum-1)) + &sw
+ elseif cline =~# '^\s*[^|# \t]' && line =~# '^\s*|'
+ return indent(prevnonblank(v:lnum-1)) - &sw
+ elseif cline =~# '^\s*$' && line =~# '^\s*|'
+ let in = indent(prevnonblank(v:lnum-1))
+ return in == indent(v:lnum) ? in : in - &sw
+ elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && getline(v:lnum+1) =~# '\S'
+ return indent(getline(v:lnum+1))
+ endif
+ return indent(prevnonblank(v:lnum-1))
+endfunction
+
+" vim:set sts=2 sw=2:
diff --git a/runtime/lang/menu_ko_kr.euckr.vim b/runtime/lang/menu_ko_kr.euckr.vim
index 5e2851ee9e..11809cf9c5 100644
--- a/runtime/lang/menu_ko_kr.euckr.vim
+++ b/runtime/lang/menu_ko_kr.euckr.vim
@@ -1,6 +1,6 @@
" Menu Translations: Korean
" Maintainer: SungHyun Nam <goweol@gmail.com>
-" Last Change: 2008 Sep 17
+" Last Change: 2010 Feb 18
" Quit when menu translations have already been done.
if exists("did_menu_trans")
@@ -14,19 +14,21 @@ scriptencoding euc-kr
menutrans &Help (&H)
menutrans &Overview<Tab><F1> (&O)<Tab><F1>
menutrans &User\ Manual \ Ŵ(&U)
-menutrans &How-to\ links ϳ\ (&H)
-menutrans &GUI (&G)
+menutrans &How-to\ links Ͽ\ (&H)
+menutrans &GUI GUI(&G)
menutrans &Find\.\.\. ã(&F)\.\.\.
menutrans &Credits \ (&C)
menutrans Co&pying ۱(&p)
+menutrans &Sponsor/Register Ŀ/(&S)
menutrans O&rphans (&r)
-menutrans &Version (&V)
+menutrans &Version (&V)
menutrans &About \ α׷(&A)
" File menu
menutrans &File (&F)
menutrans &Open\.\.\.<Tab>:e (&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp \ (&l)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew \ \.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew ο(&N)<Tab>:enew
menutrans &Close<Tab>:close ݱ(&C)<Tab>:close
menutrans &Save<Tab>:w (&S)<Tab>:w
@@ -52,6 +54,7 @@ menutrans &Select\ All<Tab>ggVG \ (&S)<Tab>ggVG
menutrans &Find\.\.\. ã(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. ãƼ\ ٲٱ(&l)\.\.\.
menutrans Settings\ &Window \ â(&W)
+menutrans Startup\ &Settings \ (&S)
" Edit/Global Settings
menutrans &Global\ Settings \ (&G)
@@ -104,6 +107,21 @@ menutrans &Jump\ to\ this\ tag<Tab>g^] \ ǥ\ (&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T ڷ\ (&b)<Tab>^T
menutrans Build\ &Tags\ File ǥ\ \ (&T)
+menutrans &Spelling \ ˻(&S)
+menutrans &Spell\ Check\ On \ ˻\ (&S)
+menutrans Spell\ Check\ &Off \ ˻\ (&O)
+menutrans To\ &Next\ error<Tab>]s \ (&N)<Tab>]s
+menutrans To\ &Previous\ error<Tab>[s \ (&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z= \ (&C)<Tab>z=
+menutrans &Repeat\ correction<Tab>:spellrepall \ ݺ(&R)<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 ٸ\ \ ã(&F)
+
" Tools.Fold Menu
menutrans &Folding (&F)
" open close folds
@@ -134,7 +152,7 @@ menutrans &Update (&U)
menutrans &Get\ Block \ (&G)
menutrans &Put\ Block \ ֱ(&P)
-menutrans &Make<Tab>:make Make(&M)<Tab>:make
+menutrans &Make<Tab>:make (&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl \ \ (&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! ޽\ \ (&i)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn \ (&N)<Tab>:cn
@@ -145,7 +163,7 @@ menutrans Error\ &Window \ â(&W)
menutrans &Update<Tab>:cwin (&U)<Tab>:cwin
menutrans &Open<Tab>:copen (&O)<Tab>:copen
menutrans &Close<Tab>:cclose ݱ(&C)<Tab>:cclose
-menutrans &Set\ Compiler Ϸ\ (&S)
+menutrans Se&T\ Compiler Ϸ\ (&T)
menutrans &Convert\ to\ HEX<Tab>:%!mc\ vim:xxd \ ȯ<Tab>:%!mc\ vim:xxd
menutrans &Convert\ to\ HEX<Tab>:%!xxd \ ȯ(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!mc\ vim:xxd\ -r \ ȯ(&r)<Tab>:%!mc\ vim:xxd\ -r
diff --git a/runtime/lang/menu_ko_kr.utf-8.vim b/runtime/lang/menu_ko_kr.utf-8.vim
index d0b1cc0b95..ef461737c0 100644
--- a/runtime/lang/menu_ko_kr.utf-8.vim
+++ b/runtime/lang/menu_ko_kr.utf-8.vim
@@ -1,6 +1,6 @@
" Menu Translations: Korean
" Maintainer: SungHyun Nam <goweol@gmail.com>
-" Last Change: 2008 Sep 17
+" Last Change: 2010 Feb 18
" Quit when menu translations have already been done.
if exists("did_menu_trans")
@@ -14,19 +14,21 @@ scriptencoding utf-8
menutrans &Help 도움말(&H)
menutrans &Overview<Tab><F1> 개관(&O)<Tab><F1>
menutrans &User\ Manual 사용자\ 매뉴얼(&U)
-menutrans &How-to\ links 어찌하나\ 목록(&H)
-menutrans &GUI 구이(&G)
+menutrans &How-to\ links 하우투\ 목록(&H)
+menutrans &GUI GUI(&G)
menutrans &Find\.\.\. 찾기(&F)\.\.\.
menutrans &Credits 고마운\ 분(&C)
menutrans Co&pying 저작권(&p)
+menutrans &Sponsor/Register 후원/등록(&S)
menutrans O&rphans 고아(&r)
-menutrans &Version 버전(&V)
+menutrans &Version 버젼(&V)
menutrans &About 이\ 프로그램은(&A)
" File menu
menutrans &File 파일(&F)
menutrans &Open\.\.\.<Tab>:e 열기(&O)\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp 나눠서\ 열기(&l)\.\.\.<Tab>:sp
+menutrans Open\ Tab\.\.\.<Tab>:tabnew 탭\ 열기\.\.\.<Tab>:tabnew
menutrans &New<Tab>:enew 새로운(&N)<Tab>:enew
menutrans &Close<Tab>:close 닫기(&C)<Tab>:close
menutrans &Save<Tab>:w 저장(&S)<Tab>:w
@@ -52,6 +54,7 @@ menutrans &Select\ All<Tab>ggVG 모두\ 고르기(&S)<Tab>ggVG
menutrans &Find\.\.\. 찾기(&F)\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. 찾아서\ 바꾸기(&l)\.\.\.
menutrans Settings\ &Window 설정\ 창(&W)
+menutrans Startup\ &Settings 시작\ 설정(&S)
" Edit/Global Settings
menutrans &Global\ Settings 전역\ 설정(&G)
@@ -104,6 +107,21 @@ menutrans &Jump\ to\ this\ tag<Tab>g^] 이\ 꼬리표로\ 가기(&J)<Tab>g^]
menutrans Jump\ &back<Tab>^T 뒤로\ 가기(&b)<Tab>^T
menutrans Build\ &Tags\ File 꼬리표\ 파일\ 만들기(&T)
+menutrans &Spelling 맞춤법\ 검사(&S)
+menutrans &Spell\ Check\ On 맞춤법\ 검사\ 시작(&S)
+menutrans Spell\ Check\ &Off 맞춤법\ 검사\ 끝(&O)
+menutrans To\ &Next\ error<Tab>]s 다음\ 에러로(&N)<Tab>]s
+menutrans To\ &Previous\ error<Tab>[s 이전\ 에러로(&P)<Tab>[s
+menutrans Suggest\ &Corrections<Tab>z= 수정\ 제안(&C)<Tab>z=
+menutrans &Repeat\ correction<Tab>:spellrepall 수정\ 반복(&R)<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 다른\ 언어\ 찾기(&F)
+
" Tools.Fold Menu
menutrans &Folding 접기(&F)
" open close folds
@@ -134,7 +152,7 @@ menutrans &Update 갱신(&U)
menutrans &Get\ Block 블럭\ 가져오기(&G)
menutrans &Put\ Block 블럭\ 집어넣기(&P)
-menutrans &Make<Tab>:make Make(&M)<Tab>:make
+menutrans &Make<Tab>:make 빌드(&M)<Tab>:make
menutrans &List\ Errors<Tab>:cl 에러\ 목록\ 보기(&L)<Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! 메시지\ 목록\ 보기(&i)<Tab>:cl!
menutrans &Next\ Error<Tab>:cn 다음\ 에러(&N)<Tab>:cn
@@ -145,7 +163,7 @@ menutrans Error\ &Window 에러\ 창(&W)
menutrans &Update<Tab>:cwin 갱신(&U)<Tab>:cwin
menutrans &Open<Tab>:copen 열기(&O)<Tab>:copen
menutrans &Close<Tab>:cclose 닫기(&C)<Tab>:cclose
-menutrans &Set\ Compiler 컴파일러\ 설정(&S)
+menutrans Se&T\ Compiler 컴파일러\ 설정(&T)
menutrans &Convert\ to\ HEX<Tab>:%!mc\ vim:xxd 십육진으로\ 변환<Tab>:%!mc\ vim:xxd
menutrans &Convert\ to\ HEX<Tab>:%!xxd 십육진으로\ 변환(&C)<Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!mc\ vim:xxd\ -r 원래대로\ 변환(&r)<Tab>:%!mc\ vim:xxd\ -r
diff --git a/runtime/syntax/cf.vim b/runtime/syntax/cf.vim
index bda24d79c4..63d976d9ce 100644
--- a/runtime/syntax/cf.vim
+++ b/runtime/syntax/cf.vim
@@ -1,321 +1,440 @@
" Vim syntax file
-" Language: ColdFusion
-" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
-" Last Change: 2007 Nov 19
-" Filenames: *.cfc *.cfm
-" Version: Macromedia ColdFusion MX 7
-" Usage: Note that ColdFusion has its own comment syntax
-" i.e. <!--- --->
-
-" For version 5.x, clear all syntax items.
-" For version 6.x+, quit if a syntax file is already loaded.
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
+" Language: CFML
+" Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
+" Last Change: 2010-03-02
+" Filenames: *.cfc *.cfm
+" Version: Adobe ColdFusion 9
+" Usage: This file contains both syntax definitions
+" and a list of known builtin tags, functions and keywords.
+" Refs -
+" http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS8f0cc78011fffa71866534d11cdad96e4e-8000.html
+" http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17324-8000.html
+" TODO:
+" Support the limited array literal and struct literal syntax in CF8+.
+" Highlight namespaced tags fom cfimport.
+" Complete CF9+ cfscript support.
+" Railo support.
+" Options:
+" d_noinclude_html - set to prevent HTML highlighting. Use this if you are not working on HTML.
+
+" Quit if a syntax file is already loaded.
+if exists("b:current_syntax")
finish
endif
-" Use all the stuff from the HTML syntax file.
-" TODO remove this; CFML is not a superset of HTML
-if version < 600
- source <sfile>:p:h/html.vim
+if exists("d_noinclude_html")
+ " Define alternatives to the HTML syntax file.
+
+ " Copied from html.vim - the rules for matching a CF tag match those for HTML/SGML.
+ " CFML syntax is more permissive when it comes to superfluous <> chars.
+ syn region htmlString contained start=+"+ end=+"+ contains=@htmlPreproc
+ syn region htmlString contained start=+'+ end=+'+ contains=@htmlPreproc
+ syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc
+ " Hacked htmlTag so that it only matches cf tags and not random <> chars.
+ syn region htmlEndTag start=+</cf+ end=+>+ contains=htmlTagN,htmlTagError
+ syn region htmlTag start=+<\s*cf[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,@htmlPreproc,@htmlArgCluster
+ syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,@htmlTagNameCluster
+ syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,@htmlTagNameCluster
+ syn match htmlTagError contained "[^>]<"ms=s+1
else
+ " Use all the stuff from the HTML syntax file.
+ " This means eg HTML comments are highlighted as comments, even if they include cf tags.
runtime! syntax/html.vim
endif
-syn sync fromstart
-syn sync maxlines=200
-syn case ignore
+syn sync fromstart
+syn sync maxlines=200
+syn case ignore
" Scopes and keywords.
-syn keyword cfScope contained cgi cffile cookie request caller this thistag
-syn keyword cfScope contained cfcatch variables application server session client form url attributes
-syn keyword cfScope contained arguments
-syn keyword cfBool contained yes no true false
+syn keyword cfScope contained cgi cffile cookie request caller this thistag
+syn keyword cfScope contained cfcatch variables application server session client form url local
+syn keyword cfScope contained arguments super cfhttp attributes error
+syn keyword cfBool contained yes no true false
" Operator strings.
-syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
-syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>"
-syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
-syn match cfOperatorMatch contained "[\+\-\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
-syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
+" ColdFusion <=7:
+syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
+syn match cfOperatorMatch contained "+"
+syn match cfOperatorMatch contained "\-"
+syn match cfOperatorMatch contained "[\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
+syn match cfOperatorMatch contained "\<\(not\_s\+\)\?equal\>"
+syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>"
+syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
+" ColdFusion 8:
+syn keyword cfOperator containe