forked from aniani/vim
updated for version 7.0148
This commit is contained in:
226
runtime/autoload/zip.vim
Normal file
226
runtime/autoload/zip.vim
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
" zip.vim: Handles browsing zipfiles
|
||||||
|
" AUTOLOAD PORTION
|
||||||
|
" Date: Sep 16, 2005
|
||||||
|
" Version: 2
|
||||||
|
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
|
||||||
|
" License: Vim License (see vim's :help license)
|
||||||
|
" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1
|
||||||
|
" Permission is hereby granted to use and distribute this code,
|
||||||
|
" with or without modifications, provided that this copyright
|
||||||
|
" notice is copied with it. Like anything else that's free,
|
||||||
|
" zipPlugin.vim is provided *as is* and comes with no warranty
|
||||||
|
" of any kind, either expressed or implied. By using this
|
||||||
|
" plugin, you agree that in no event will the copyright
|
||||||
|
" holder be liable for any damages resulting from the use
|
||||||
|
" of this software.
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" Initialization: {{{1
|
||||||
|
let s:keepcpo= &cpo
|
||||||
|
set cpo&vim
|
||||||
|
if exists("g:loaded_zip")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:loaded_zip= "v2"
|
||||||
|
|
||||||
|
" ----------------
|
||||||
|
" Functions: {{{1
|
||||||
|
" ----------------
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" zip#Browse: {{{2
|
||||||
|
fun! zip#Browse(zipfile)
|
||||||
|
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
||||||
|
|
||||||
|
" sanity checks
|
||||||
|
if !executable("unzip")
|
||||||
|
echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("zip#Browse")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
if !filereadable(a:zipfile)
|
||||||
|
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("zip#Browse")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
if &ma != 1
|
||||||
|
set ma
|
||||||
|
endif
|
||||||
|
let w:zipfile= a:zipfile
|
||||||
|
|
||||||
|
setlocal noswapfile
|
||||||
|
setlocal buftype=nofile
|
||||||
|
setlocal bufhidden=hide
|
||||||
|
setlocal nobuflisted
|
||||||
|
setlocal nowrap
|
||||||
|
set ft=tar
|
||||||
|
|
||||||
|
" give header
|
||||||
|
exe "$put ='".'\"'." zip.vim version ".g:loaded_zip."'"
|
||||||
|
exe "$put ='".'\"'." Browsing zipfile ".a:zipfile."'"
|
||||||
|
exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
|
||||||
|
$put =''
|
||||||
|
0d
|
||||||
|
$
|
||||||
|
|
||||||
|
exe "silent r! unzip -l ".a:zipfile
|
||||||
|
$d
|
||||||
|
silent 4,$v/^\s\+\d\+\s\{0,5}\d/d
|
||||||
|
silent 4,$s/^\%(.*\)\s\+\(\S\)/\1/
|
||||||
|
|
||||||
|
setlocal noma nomod ro
|
||||||
|
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||||
|
|
||||||
|
" call Dret("zip#Browse")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" ZipBrowseSelect: {{{2
|
||||||
|
fun! s:ZipBrowseSelect()
|
||||||
|
" call Dfunc("ZipBrowseSelect() zipfile<".w:zipfile.">")
|
||||||
|
let fname= getline(".")
|
||||||
|
|
||||||
|
" sanity check
|
||||||
|
if fname =~ '^"'
|
||||||
|
" call Dret("ZipBrowseSelect")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
if fname =~ '/$'
|
||||||
|
echohl Error | echo "***error*** (zip#Browse) Please specify a file, not a directory" | echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("ZipBrowseSelect")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" call Decho("fname<".fname.">")
|
||||||
|
|
||||||
|
" get zipfile to the new-window
|
||||||
|
let zipfile= substitute(w:zipfile,'.zip$','','e')
|
||||||
|
|
||||||
|
new
|
||||||
|
wincmd _
|
||||||
|
exe "e zipfile:".zipfile.':'.fname
|
||||||
|
filetype detect
|
||||||
|
|
||||||
|
" call Dret("ZipBrowseSelect")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" zip#Read: {{{2
|
||||||
|
fun! zip#Read(fname,mode)
|
||||||
|
" call Dfunc("zip#Read(fname<".a:fname.">,mode=".a:mode.")")
|
||||||
|
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\):.*$','\1','')
|
||||||
|
let fname = substitute(a:fname,'zipfile:.\{-}:\(.*\)$','\1','')
|
||||||
|
" call Decho("zipfile<".zipfile."> fname<".fname.">")
|
||||||
|
|
||||||
|
exe "r! unzip -p ".zipfile." ".fname
|
||||||
|
|
||||||
|
" cleanup
|
||||||
|
0d
|
||||||
|
set nomod
|
||||||
|
|
||||||
|
" call Dret("zip#Read")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" zip#Write: {{{2
|
||||||
|
fun! zip#Write(fname)
|
||||||
|
" call Dfunc("zip#Write(fname<".a:fname.")")
|
||||||
|
|
||||||
|
" sanity checks
|
||||||
|
if !executable("zip")
|
||||||
|
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("zip#Write")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
if !exists("*mkdir")
|
||||||
|
echohl Error | echo "***error*** (zip#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("zip#Write")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let curdir= getcwd()
|
||||||
|
let tmpdir= tempname()
|
||||||
|
" call Decho("orig tempname<".tmpdir.">")
|
||||||
|
if tmpdir =~ '\.'
|
||||||
|
let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
|
||||||
|
endif
|
||||||
|
" call Decho("tmpdir<".tmpdir.">")
|
||||||
|
call mkdir(tmpdir,"p")
|
||||||
|
|
||||||
|
" attempt to change to the indicated directory
|
||||||
|
try
|
||||||
|
exe "cd ".escape(tmpdir,' \')
|
||||||
|
catch /^Vim\%((\a\+)\)\=:E344/
|
||||||
|
echohl Error | echo "***error*** (zip#Write) cannot cd to temporary directory" | Echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
" call Dret("zip#Write")
|
||||||
|
return
|
||||||
|
endtry
|
||||||
|
" call Decho("current directory now: ".getcwd())
|
||||||
|
|
||||||
|
" place temporary files under .../_ZIPVIM_/
|
||||||
|
if isdirectory("_ZIPVIM_")
|
||||||
|
call s:Rmdir("_ZIPVIM_")
|
||||||
|
endif
|
||||||
|
call mkdir("_ZIPVIM_")
|
||||||
|
cd _ZIPVIM_
|
||||||
|
" call Decho("current directory now: ".getcwd())
|
||||||
|
|
||||||
|
let zipfile = substitute(a:fname,'zipfile:\(.\{-}\):.*$','\1','')
|
||||||
|
let fname = substitute(a:fname,'zipfile:.\{-}:\(.*\)$','\1','')
|
||||||
|
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||||
|
if zipfile !~ '/'
|
||||||
|
let zipfile= curdir.'/'.zipfile
|
||||||
|
endif
|
||||||
|
" call Decho("zipfile<".zipfile."> fname<".fname.">")
|
||||||
|
|
||||||
|
call mkdir(dirpath,"p")
|
||||||
|
exe "w! ".fname
|
||||||
|
if executable("cygpath")
|
||||||
|
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
|
||||||
|
let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" call Decho("zip -u ".zipfile.".zip ".fname)
|
||||||
|
call system("zip -u ".zipfile.".zip ".fname)
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
|
||||||
|
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
|
endif
|
||||||
|
|
||||||
|
" cleanup and restore current directory
|
||||||
|
cd ..
|
||||||
|
call s:Rmdir("_ZIPVIM_")
|
||||||
|
exe "cd ".escape(curdir,' \')
|
||||||
|
setlocal nomod
|
||||||
|
|
||||||
|
" call Dret("zip#Write")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" Rmdir: {{{2
|
||||||
|
fun! s:Rmdir(fname)
|
||||||
|
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||||
|
if has("unix")
|
||||||
|
call system("/bin/rm -rf ".a:fname)
|
||||||
|
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
|
if &shell =~? "sh$"
|
||||||
|
call system("/bin/rm -rf ".a:fname)
|
||||||
|
else
|
||||||
|
call system("del /S ".a:fname)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
" call Dret("Rmdir")
|
||||||
|
endfun
|
||||||
|
|
||||||
|
" ------------------------------------------------------------------------
|
||||||
|
" Modelines And Restoration: {{{1
|
||||||
|
let &cpo= s:keepcpo
|
||||||
|
unlet s:keepcpo
|
||||||
|
" vim:ts=8 fdm=marker
|
38
runtime/compiler/eruby.vim
Normal file
38
runtime/compiler/eruby.vim
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
" Vim compiler file
|
||||||
|
" Language: eRuby
|
||||||
|
" Maintainer: Doug Kearns <djkea2 at gus.gscit.monash.edu.au>
|
||||||
|
" Info: $Id$
|
||||||
|
" URL: http://vim-ruby.sourceforge.net
|
||||||
|
" Anon CVS: See above site
|
||||||
|
" Licence: GPL (http://www.gnu.org)
|
||||||
|
" Disclaimer:
|
||||||
|
" This program is distributed in the hope that it will be useful,
|
||||||
|
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
" GNU General Public License for more details.
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "eruby"
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
|
||||||
|
CompilerSet makeprg=eruby
|
||||||
|
|
||||||
|
CompilerSet errorformat=eruby:\ %f:%l:%m,
|
||||||
|
\%E%f:%l:\ %m,
|
||||||
|
\%-Z%p^,
|
||||||
|
\%C%m,
|
||||||
|
\%-G%.%#
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
|
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 7.0aa. Last change: 2005 Sep 12
|
*eval.txt* For Vim version 7.0aa. Last change: 2005 Sep 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -4972,7 +4972,7 @@ then define the function like this: >
|
|||||||
echo "Done!"
|
echo "Done!"
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
The file name and the name used before the colon in the function must match
|
The file name and the name used before the # in the function must match
|
||||||
exactly, and the defined function must have the name exactly as it will be
|
exactly, and the defined function must have the name exactly as it will be
|
||||||
called.
|
called.
|
||||||
|
|
||||||
@@ -4983,9 +4983,6 @@ a path separator. Thus when calling a function: >
|
|||||||
|
|
||||||
Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
|
Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
|
||||||
|
|
||||||
The name before the first colon must be at least two characters long,
|
|
||||||
otherwise it looks like a scope, such as "s:".
|
|
||||||
|
|
||||||
This also works when reading a variable that has not been set yet: >
|
This also works when reading a variable that has not been set yet: >
|
||||||
|
|
||||||
:let l = foo#bar#lvar
|
:let l = foo#bar#lvar
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*filetype.txt* For Vim version 7.0aa. Last change: 2005 Aug 30
|
*filetype.txt* For Vim version 7.0aa. Last change: 2005 Sep 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -184,7 +184,8 @@ A. If you want to overrule all default file type checks.
|
|||||||
< 3. To use the new filetype detection you must restart Vim.
|
< 3. To use the new filetype detection you must restart Vim.
|
||||||
|
|
||||||
The files in the "ftdetect" directory are used after all the default
|
The files in the "ftdetect" directory are used after all the default
|
||||||
checks, thus they can overrule a previously detected file type.
|
checks, thus they can overrule a previously detected file type. But you
|
||||||
|
can also use |:setfiletype| to keep a previously detected filetype.
|
||||||
|
|
||||||
B. If you want to detect your file after the default file type checks.
|
B. If you want to detect your file after the default file type checks.
|
||||||
|
|
||||||
|
@@ -5294,7 +5294,6 @@ hebrew hebrew.txt /*hebrew*
|
|||||||
hebrew.txt hebrew.txt /*hebrew.txt*
|
hebrew.txt hebrew.txt /*hebrew.txt*
|
||||||
help various.txt /*help*
|
help various.txt /*help*
|
||||||
help-context help.txt /*help-context*
|
help-context help.txt /*help-context*
|
||||||
help-tags tags 1
|
|
||||||
help-translated various.txt /*help-translated*
|
help-translated various.txt /*help-translated*
|
||||||
help-xterm-window various.txt /*help-xterm-window*
|
help-xterm-window various.txt /*help-xterm-window*
|
||||||
help.txt help.txt /*help.txt*
|
help.txt help.txt /*help.txt*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2005 Sep 14
|
*todo.txt* For Vim version 7.0aa. Last change: 2005 Sep 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
|
Test11 fails sometimes. (athena, huge features)
|
||||||
|
|
||||||
ccomplete:
|
ccomplete:
|
||||||
- How to use a popup menu?
|
- How to use a popup menu?
|
||||||
- When a typedef or struct is local to a file only use it in that file?
|
- When a typedef or struct is local to a file only use it in that file?
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2005 Sep 13
|
*version7.txt* For Vim version 7.0aa. Last change: 2005 Sep 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1361,4 +1361,7 @@ searching for "qa" instead of quitting all windows.
|
|||||||
GUI: When scrolling with the scrollbar and there is a line that doesn't fit
|
GUI: When scrolling with the scrollbar and there is a line that doesn't fit
|
||||||
redrawing may fail. Make sure w_skipcol is valid before redrawing.
|
redrawing may fail. Make sure w_skipcol is valid before redrawing.
|
||||||
|
|
||||||
|
"dFxd;" deleted the character under the cursor, "d;" didn't remember the
|
||||||
|
exclusiveness of the motion.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
31
runtime/doc/zip.txt
Normal file
31
runtime/doc/zip.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
*zip.txt* Zip File Interface Sep 16, 2005
|
||||||
|
|
||||||
|
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
|
||||||
|
(remove NOSPAM from Campbell's email first)
|
||||||
|
Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 *zip-copyright*
|
||||||
|
Permission is hereby granted to use and distribute this code,
|
||||||
|
with or without modifications, provided that this copyright
|
||||||
|
notice is copied with it. Like anything else that's free,
|
||||||
|
zip.vim and zipPlugin.vim are provided *as is* and comes with no
|
||||||
|
warranty of any kind, either expressed or implied. By using this
|
||||||
|
plugin, you agree that in no event will the copyright holder be
|
||||||
|
liable for any damages resulting from the use of this software.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
1. Contents *zip* *zip-contents*
|
||||||
|
1. Contents..................................................|zip-contents|
|
||||||
|
2. Usage.....................................................|zip-usage|
|
||||||
|
3. History...................................................|zip-history|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
2. Usage *zip-usage* *zip-manual*
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
3. History *zip-history*
|
||||||
|
v2 Sep 16, 2005 * silenced some commands (avoiding hit-enter prompt)
|
||||||
|
* began testing under Windows; works thus far
|
||||||
|
* filetype detection fixed
|
||||||
|
v1 Sep 15, 2005 * Initial release, had browsin, reading, and writing
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
vim:tw=78:ts=8:ft=help
|
@@ -1,8 +1,20 @@
|
|||||||
" Vim filetype plugin
|
" Vim filetype plugin
|
||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Maintainer: Gavin Sinclair <gsinclair@soyabean.com.au>
|
" Maintainer: Gavin Sinclair <gsinclair at soyabean.com.au>
|
||||||
" Last Change: 2002/08/12
|
" Info: $Id$
|
||||||
" URL: www.soyabean.com.au/gavin/vim/index.html
|
" URL: http://vim-ruby.sourceforge.net
|
||||||
|
" Anon CVS: See above site
|
||||||
|
" Licence: GPL (http://www.gnu.org)
|
||||||
|
" Disclaimer:
|
||||||
|
" This program is distributed in the hope that it will be useful,
|
||||||
|
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
" GNU General Public License for more details.
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
"
|
||||||
|
" Original matchit support thanks to Ned Konz. See his ftplugin/ruby.vim at
|
||||||
|
" http://bike-nomad.com/vim/ruby.vim.
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if (exists("b:did_ftplugin"))
|
if (exists("b:did_ftplugin"))
|
||||||
@@ -10,5 +22,104 @@ if (exists("b:did_ftplugin"))
|
|||||||
endif
|
endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
" There are no known setting particularly appropriate for Ruby. Please
|
let s:cpo_save = &cpo
|
||||||
" contact the maintainer if you think of some.
|
set cpo&vim
|
||||||
|
|
||||||
|
" Matchit support
|
||||||
|
if exists("loaded_matchit") && !exists("b:match_words")
|
||||||
|
let b:match_ignorecase = 0
|
||||||
|
|
||||||
|
" TODO: improve optional do loops
|
||||||
|
let b:match_words =
|
||||||
|
\ '\%(' .
|
||||||
|
\ '\%(\%(\.\|\:\:\)\s*\)\@<!\<\%(class\|module\|begin\|def\|case\|for\|do\)\>' .
|
||||||
|
\ '\|' .
|
||||||
|
\ '\%(\%(^\|\.\.\.\=\|[\,;=([<>~\*/%!&^|+-]\)\s*\)\@<=\%(if\|unless\|until\|while\)\>' .
|
||||||
|
\ '\)' .
|
||||||
|
\ ':' .
|
||||||
|
\ '\%(' .
|
||||||
|
\ '\%(\%(\.\|\:\:\)\s*\)\@<!\<\%(else\|elsif\|ensure\|when\)\>' .
|
||||||
|
\ '\|' .
|
||||||
|
\ '\%(\%(^\|;\)\s*\)\@<=\<rescue\>' .
|
||||||
|
\ '\)' .
|
||||||
|
\ ':' .
|
||||||
|
\ '\%(\%(\.\|\:\:\)\s*\)\@<!\<end\>'
|
||||||
|
|
||||||
|
let b:match_skip =
|
||||||
|
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
||||||
|
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Interpolation\\|" .
|
||||||
|
\ "NoInterpolation\\|Escape\\|Comment\\|Documentation\\)\\>'"
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
|
setlocal include=^\\s*\\<\\(load\\\|\w*require\\)\\>
|
||||||
|
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
|
||||||
|
setlocal suffixesadd=.rb
|
||||||
|
|
||||||
|
" TODO:
|
||||||
|
"setlocal define=^\\s*def
|
||||||
|
|
||||||
|
setlocal comments=:#
|
||||||
|
setlocal commentstring=#\ %s
|
||||||
|
|
||||||
|
if !exists("s:rubypath")
|
||||||
|
if executable("ruby")
|
||||||
|
if &shellxquote == "'"
|
||||||
|
let s:rubypath = system('ruby -e "puts (begin; require %q{rubygems}; Gem.all_load_paths; rescue LoadError; []; end + $:).join(%q{,})"')
|
||||||
|
else
|
||||||
|
let s:rubypath = system("ruby -e 'puts (begin; require %q{rubygems}; Gem.all_load_paths; rescue LoadError; []; end + $:).join(%q{,})'")
|
||||||
|
endif
|
||||||
|
let s:rubypath = substitute(s:rubypath,',.$',',,','')
|
||||||
|
else
|
||||||
|
" If we can't call ruby to get its path, just default to using the
|
||||||
|
" current directory and the directory of the current file.
|
||||||
|
let s:rubypath = ".,,"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &l:path = s:rubypath
|
||||||
|
|
||||||
|
if has("gui_win32") && !exists("b:browsefilter")
|
||||||
|
let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
|
||||||
|
\ "All Files (*.*)\t*.*\n"
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< "
|
||||||
|
\ "| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
"
|
||||||
|
" Instructions for enabling "matchit" support:
|
||||||
|
"
|
||||||
|
" 1. Look for the latest "matchit" plugin at
|
||||||
|
"
|
||||||
|
" http://www.vim.org/scripts/script.php?script_id=39
|
||||||
|
"
|
||||||
|
" It is also packaged with Vim, in the $VIMRUNTIME/macros directory.
|
||||||
|
"
|
||||||
|
" 2. Copy "matchit.txt" into a "doc" directory (e.g. $HOME/.vim/doc).
|
||||||
|
"
|
||||||
|
" 3. Copy "matchit.vim" into a "plugin" directory (e.g. $HOME/.vim/plugin).
|
||||||
|
"
|
||||||
|
" 4. Ensure this file (ftplugin/ruby.vim) is installed.
|
||||||
|
"
|
||||||
|
" 5. Ensure you have this line in your $HOME/.vimrc:
|
||||||
|
" filetype plugin on
|
||||||
|
"
|
||||||
|
" 6. Restart Vim and create the matchit documentation:
|
||||||
|
"
|
||||||
|
" :helptags ~/.vim/doc
|
||||||
|
"
|
||||||
|
" Now you can do ":help matchit", and you should be able to use "%" on Ruby
|
||||||
|
" keywords. Try ":echo b:match_words" to be sure.
|
||||||
|
"
|
||||||
|
" Thanks to Mark J. Reed for the instructions. See ":help vimrc" for the
|
||||||
|
" locations of plugin directories, etc., as there are several options, and it
|
||||||
|
" differs on Windows. Email gsinclair@soyabean.com.au if you need help.
|
||||||
|
"
|
||||||
|
|
||||||
|
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
|
||||||
|
@@ -1,11 +1,20 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Maintainer: Gavin Sinclair <gsinclair@soyabean.com.au>
|
" Maintainer: Gavin Sinclair <gsinclair at soyabean.com.au>
|
||||||
" Last Change: 2003 May 11
|
" Developer: Nikolai Weibull <source at pcppopper.org>
|
||||||
" URL: www.soyabean.com.au/gavin/vim/index.html
|
" Info: $Id$
|
||||||
" Changes: (since vim 6.1)
|
" URL: http://vim-ruby.rubyforge.org/
|
||||||
" - indentation after a line ending in comma, etc, (even in a comment) was
|
" Anon CVS: See above site
|
||||||
" broken, now fixed (2002/08/14)
|
" Licence: GPL (http://www.gnu.org)
|
||||||
|
" Disclaimer:
|
||||||
|
" This program is distributed in the hope that it will be useful,
|
||||||
|
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
" GNU General Public License for more details.
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" 0. Initialization {{{1
|
||||||
|
" =================
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@@ -13,55 +22,363 @@ if exists("b:did_indent")
|
|||||||
endif
|
endif
|
||||||
let b:did_indent = 1
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
" Now, set up our indentation expression and keys that trigger it.
|
||||||
setlocal indentexpr=GetRubyIndent()
|
setlocal indentexpr=GetRubyIndent()
|
||||||
setlocal nolisp
|
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
|
||||||
setlocal nosmartindent
|
setlocal indentkeys+==end,=elsif,=when,=ensure,=rescue,==begin,==end
|
||||||
setlocal autoindent
|
|
||||||
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue
|
|
||||||
|
|
||||||
" Only define the function once.
|
" Only define the function once.
|
||||||
if exists("*GetRubyIndent")
|
if exists("*GetRubyIndent")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
" 1. Variables {{{1
|
||||||
|
" ============
|
||||||
|
|
||||||
|
" Regex of syntax group names that are or delimit string or are comments.
|
||||||
|
let s:syng_strcom = '\<ruby\%(String\|StringDelimiter\|ASCIICode' .
|
||||||
|
\ '\|Interpolation\|NoInterpolation\|Escape\|Comment\|Documentation\)\>'
|
||||||
|
|
||||||
|
" Regex of syntax group names that are strings or comments.
|
||||||
|
let s:syng_strcom2 = '\<ruby\%(String' .
|
||||||
|
\ '\|Interpolation\|NoInterpolation\|Escape\|Comment\|Documentation\)\>'
|
||||||
|
|
||||||
|
" Regex of syntax group names that are strings.
|
||||||
|
let s:syng_string =
|
||||||
|
\ '\<ruby\%(String\|Interpolation\|NoInterpolation\|Escape\)\>'
|
||||||
|
|
||||||
|
" Regex of syntax group names that are strings or documentation.
|
||||||
|
let s:syng_stringdoc =
|
||||||
|
\'\<ruby\%(String\|Interpolation\|NoInterpolation\|Escape\|Documentation\)\>'
|
||||||
|
|
||||||
|
" Expression used to check whether we should skip a match with searchpair().
|
||||||
|
let s:skip_expr =
|
||||||
|
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '".s:syng_strcom."'"
|
||||||
|
|
||||||
|
" Regex used for words that, at the start of a line, add a level of indent.
|
||||||
|
let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
|
||||||
|
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
|
||||||
|
\ '\|rescue\)\>' .
|
||||||
|
\ '\|\%([*+/,=:-]\|<<\|>>\)\s*\zs' .
|
||||||
|
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\)\>'
|
||||||
|
|
||||||
|
" Regex used for words that, at the start of a line, remove a level of indent.
|
||||||
|
let s:ruby_deindent_keywords =
|
||||||
|
\ '^\s*\zs\<\%(ensure\|else\|rescue\|elsif\|when\|end\)\>'
|
||||||
|
|
||||||
|
" Regex that defines the start-match for the 'end' keyword.
|
||||||
|
"let s:end_start_regex = '\%(^\|[^.]\)\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\|do\)\>'
|
||||||
|
" TODO: the do here should be restricted somewhat (only at end of line)?
|
||||||
|
let s:end_start_regex = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
|
||||||
|
\ '\|while\|until\|case\|unless\|begin\)\>' .
|
||||||
|
\ '\|\%([*+/,=:-]\|<<\|>>\)\s*\zs' .
|
||||||
|
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\)\>' .
|
||||||
|
\ '\|\<do\>'
|
||||||
|
|
||||||
|
" Regex that defines the middle-match for the 'end' keyword.
|
||||||
|
let s:end_middle_regex = '\<\%(ensure\|else\|\%(\%(^\|;\)\s*\)\@<=\<rescue\>\|when\|elsif\)\>'
|
||||||
|
|
||||||
|
" Regex that defines the end-match for the 'end' keyword.
|
||||||
|
let s:end_end_regex = '\%(^\|[^.]\)\@<=\<end\>'
|
||||||
|
|
||||||
|
" Expression used for searchpair() call for finding match for 'end' keyword.
|
||||||
|
let s:end_skip_expr = s:skip_expr .
|
||||||
|
\ ' || (expand("<cword>") == "do"' .
|
||||||
|
\ ' && getline(".") =~ "^\\s*\\<while\\|until\\|for\\>")'
|
||||||
|
|
||||||
|
" Regex that defines continuation lines, not including (, {, or [.
|
||||||
|
let s:continuation_regex = '\%([\\*+/.,=:-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
|
" Regex that defines continuation lines.
|
||||||
|
" TODO: this needs to deal with if ...: and so on
|
||||||
|
let s:continuation_regex2 =
|
||||||
|
\ '\%([\\*+/.,=:({[-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
|
" Regex that defines blocks.
|
||||||
|
let s:block_regex =
|
||||||
|
\ '\%(\<do\>\|{\)\s*\%(|\%([*@]\=\h\w*,\=\s*\)\%(,\s*[*@]\=\h\w*\)*|\)\=\s*\%(#.*\)\=$'
|
||||||
|
|
||||||
|
" 2. Auxiliary Functions {{{1
|
||||||
|
" ======================
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is inside a string, comment, or is ascii.
|
||||||
|
function s:IsInStringOrComment(lnum, col)
|
||||||
|
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_strcom
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is inside a string or comment.
|
||||||
|
function s:IsInStringOrComment2(lnum, col)
|
||||||
|
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_strcom2
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is inside a string.
|
||||||
|
function s:IsInString(lnum, col)
|
||||||
|
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_string
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is inside a string or documentation.
|
||||||
|
function s:IsInStringOrDocumentation(lnum, col)
|
||||||
|
return synIDattr(synID(a:lnum, a:col, 0), 'name') =~ s:syng_stringdoc
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
|
||||||
|
function s:PrevNonBlankNonString(lnum)
|
||||||
|
let in_block = 0
|
||||||
|
let lnum = prevnonblank(a:lnum)
|
||||||
|
while lnum > 0
|
||||||
|
" Go in and out of blocks comments as necessary.
|
||||||
|
" If the line isn't empty (with opt. comment) or in a string, end search.
|
||||||
|
let line = getline(lnum)
|
||||||
|
if line =~ '^=begin$'
|
||||||
|
if in_block
|
||||||
|
let in_block = 0
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
elseif !in_block && line =~ '^=end$'
|
||||||
|
let in_block = 1
|
||||||
|
elseif !in_block && line !~ '^\s*#.*$' && !(s:IsInStringOrComment(lnum, 1)
|
||||||
|
\ && s:IsInStringOrComment(lnum, strlen(line)))
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum = prevnonblank(lnum - 1)
|
||||||
|
endwhile
|
||||||
|
return lnum
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Find line above 'lnum' that started the continuation 'lnum' may be part of.
|
||||||
|
function s:GetMSL(lnum)
|
||||||
|
" Start on the line we're at and use its indent.
|
||||||
|
let msl = a:lnum
|
||||||
|
let lnum = s:PrevNonBlankNonString(a:lnum - 1)
|
||||||
|
while lnum > 0
|
||||||
|
" If we have a continuation line, or we're in a string, use line as MSL.
|
||||||
|
" Otherwise, terminate search as we have found our MSL already.
|
||||||
|
let line = getline(lnum)
|
||||||
|
let col = match(line, s:continuation_regex2) + 1
|
||||||
|
if (col > 0 && !s:IsInStringOrComment(lnum, col))
|
||||||
|
\ || s:IsInString(lnum, strlen(line))
|
||||||
|
let msl = lnum
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let lnum = s:PrevNonBlankNonString(lnum - 1)
|
||||||
|
endwhile
|
||||||
|
return msl
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if line 'lnum' has more opening brackets than closing ones.
|
||||||
|
function s:LineHasOpeningBrackets(lnum)
|
||||||
|
let open_0 = 0
|
||||||
|
let open_2 = 0
|
||||||
|
let open_4 = 0
|
||||||
|
let line = getline(a:lnum)
|
||||||
|
let pos = match(line, '[][(){}]', 0)
|
||||||
|
while pos != -1
|
||||||
|
if !s:IsInStringOrComment(a:lnum, pos + 1)
|
||||||
|
let idx = stridx('(){}[]', line[pos])
|
||||||
|
if idx % 2 == 0
|
||||||
|
let open_{idx} = open_{idx} + 1
|
||||||
|
else
|
||||||
|
let open_{idx - 1} = open_{idx - 1} - 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let pos = match(line, '[][(){}]', pos + 1)
|
||||||
|
endwhile
|
||||||
|
return (open_0 > 0) . (open_2 > 0) . (open_4 > 0)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:Match(lnum, regex)
|
||||||
|
let col = match(getline(a:lnum), a:regex) + 1
|
||||||
|
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:MatchLast(lnum, regex)
|
||||||
|
let line = getline(a:lnum)
|
||||||
|
let col = match(line, '.*\zs' . a:regex)
|
||||||
|
while col != -1 && s:IsInStringOrComment(a:lnum, col)
|
||||||
|
let line = strpart(line, 0, col)
|
||||||
|
let col = match(line, '.*' . a:regex)
|
||||||
|
endwhile
|
||||||
|
return col + 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" 3. GetRubyIndent Function {{{1
|
||||||
|
" =========================
|
||||||
|
|
||||||
function GetRubyIndent()
|
function GetRubyIndent()
|
||||||
" Find a non-blank line above the current line.
|
" 3.1. Setup {{{2
|
||||||
let lnum = prevnonblank(v:lnum - 1)
|
" ----------
|
||||||
|
|
||||||
|
" Set up variables for restoring position in file. Could use v:lnum here.
|
||||||
|
let vcol = col('.')
|
||||||
|
|
||||||
|
" 3.2. Work on the current line {{{2
|
||||||
|
" -----------------------------
|
||||||
|
|
||||||
|
" Get the current line.
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
let ind = -1
|
||||||
|
|
||||||
|
" If we got a closing bracket on an empty line, find its match and indent
|
||||||
|
" according to it. For parentheses we indent to its column - 1, for the
|
||||||
|
" others we indent to the containing line's MSL's level. Return -1 if fail.
|
||||||
|
let col = matchend(line, '^\s*[]})]')
|
||||||
|
if col > 0 && !s:IsInStringOrComment(v:lnum, col)
|
||||||
|
call cursor(v:lnum, col)
|
||||||
|
let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
|
||||||
|
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
|
||||||
|
let ind = line[col-1]==')' ? virtcol('.')-1 : indent(s:GetMSL(line('.')))
|
||||||
|
endif
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we have a =begin or =end set indent to first column.
|
||||||
|
if match(line, '^\s*\%(=begin\|=end\)$') != -1
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we have a deindenting keyword, find its match and indent to its level.
|
||||||
|
" TODO: this is messy
|
||||||
|
if s:Match(v:lnum, s:ruby_deindent_keywords)
|
||||||
|
" let lnum = s:PrevNonBlankNonString(v:lnum - 1)
|
||||||
|
"
|
||||||
|
" if lnum == 0
|
||||||
|
" return 0
|
||||||
|
" endif
|
||||||
|
"
|
||||||
|
" return indent(v:lnum) - &sw
|
||||||
|
call cursor(v:lnum, 1)
|
||||||
|
if searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
|
||||||
|
\ s:end_skip_expr) > 0
|
||||||
|
if strpart(getline('.'), 0, col('.') - 1) =~ '=\s*'
|
||||||
|
let ind = virtcol('.') - 1
|
||||||
|
else
|
||||||
|
let ind = indent('.')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If we are in a multi-line string or line-comment, don't do anything to it.
|
||||||
|
if s:IsInStringOrDocumentation(v:lnum, matchend(line, '^\s*') + 1)
|
||||||
|
return indent('.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" 3.3. Work on the previous line. {{{2
|
||||||
|
" -------------------------------
|
||||||
|
|
||||||
|
" Find a non-blank, non-multi-line string line above the current line.
|
||||||
|
let lnum = s:PrevNonBlankNonString(v:lnum - 1)
|
||||||
|
|
||||||
" At the start of the file use zero indent.
|
" At the start of the file use zero indent.
|
||||||
if lnum == 0
|
if lnum == 0
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If the line trailed with [*+,.(] - but not in a comment - trust the user
|
" Set up variables for current line.
|
||||||
if getline(lnum) =~ '\(\[^#\].*\)?\(\*\|\.\|+\|,\|(\)\(\s*#.*\)\=$'
|
let line = getline(lnum)
|
||||||
return -1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Add a 'shiftwidth' after lines beginning with:
|
|
||||||
" module, class, dev, if, for, while, until, else, elsif, case, when, {
|
|
||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
let flag = 0
|
|
||||||
if getline(lnum) =~ '^\s*\(module\>\|class\>\|def\>\|if\>\|for\>\|while\>\|until\>\|else\>\|elsif\>\|case\>\|when\>\|unless\|begin\|ensure\>\|rescue\>\)'
|
" If the previous line ended with a block opening, add a level of indent.
|
||||||
\ || getline(lnum) =~ '{\s*$'
|
if s:Match(lnum, s:block_regex)
|
||||||
\ || getline(lnum) =~ '\({\|\<do\>\).*|.*|\s*$'
|
return indent(s:GetMSL(lnum)) + &sw
|
||||||
\ || getline(lnum) =~ '\<do\>\(\s*#.*\)\=$'
|
|
||||||
let ind = ind + &sw
|
|
||||||
let flag = 1
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' after lines ending with
|
" If the previous line contained an opening bracket, and we are still in it,
|
||||||
" "end" when they begin with while, if, for, until
|
" add indent depending on the bracket type.
|
||||||
if flag == 1 && getline(lnum) =~ '\<end\>\(\s*#.*\)\=$'
|
if line =~ '[[({]'
|
||||||
let ind = ind - &sw
|
let counts = s:LineHasOpeningBrackets(lnum)
|
||||||
|
if counts[0] == '1' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
||||||
|
return virtcol('.')
|
||||||
|
elseif counts[1] == '1' || counts[2] == '1'
|
||||||
|
return ind + &sw
|
||||||
|
else
|
||||||
|
call cursor(v:lnum, vcol)
|
||||||
|
end
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' on end, else and, elsif, when and }
|
" If the previous line ended with an "end", match that "end"s beginning's
|
||||||
if getline(v:lnum) =~ '^\s*\(end\>\|else\>\|elsif\>\|when\>\|ensure\>\|rescue\>\|}\)'
|
" indent.
|
||||||
|
let col = s:Match(lnum, '\%(^\|[^.]\)\<end\>\s*\%(#.*\)\=$')
|
||||||
|
if col > 0
|
||||||
|
call cursor(lnum, col)
|
||||||
|
if searchpair(s:end_start_regex, '', s:end_end_regex, 'bW',
|
||||||
|
\ s:end_skip_expr) > 0
|
||||||
|
let n = line('.')
|
||||||
|
let ind = indent('.')
|
||||||
|
let msl = s:GetMSL(n)
|
||||||
|
if msl != n
|
||||||
|
let ind = indent(msl)
|
||||||
|
end
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
end
|
||||||
|
|
||||||
|
let col = s:Match(lnum, s:ruby_indent_keywords)
|
||||||
|
if col > 0
|
||||||
|
call cursor(lnum, col)
|
||||||
|
let ind = virtcol('.') - 1 + &sw
|
||||||
|
" let ind = indent(lnum) + &sw
|
||||||
|
" TODO: make this better (we need to count them) (or, if a searchpair
|
||||||
|
" fails, we know that something is lacking an end and thus we indent a
|
||||||
|
" level
|
||||||
|
if s:Match(lnum, s:end_end_regex)
|
||||||
|
let ind = indent('.')
|
||||||
|
endif
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
|
||||||
|
" 3.4. Work on the MSL line. {{{2
|
||||||
|
" --------------------------
|
||||||
|
|
||||||
|
" Set up variables to use and search for MSL to the previous line.
|
||||||
|
let p_lnum = lnum
|
||||||
|
let lnum = s:GetMSL(lnum)
|
||||||
|
|
||||||
|
" If the previous line wasn't a MSL and is continuation return its indent.
|
||||||
|
" TODO: the || s:IsInString() thing worries me a bit.
|
||||||
|
if p_lnum != lnum
|
||||||
|
if s:Match(p_lnum,s:continuation_regex)||s:IsInString(p_lnum,strlen(line))
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Set up more variables, now that we know we wasn't continuation bound.
|
||||||
|
let line = getline(lnum)
|
||||||
|
let msl_ind = indent(lnum)
|
||||||
|
|
||||||
|
" If the MSL line had an indenting keyword in it, add a level of indent.
|
||||||
|
" TODO: this does not take into account contrived things such as
|
||||||
|
" module Foo; class Bar; end
|
||||||
|
if s:Match(lnum, s:ruby_indent_keywords)
|
||||||
|
let ind = msl_ind + &sw
|
||||||
|
if s:Match(lnum, s:end_end_regex)
|
||||||
let ind = ind - &sw
|
let ind = ind - &sw
|
||||||
endif
|
endif
|
||||||
|
return ind
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If the previous line ended with [*+/.-=], indent one extra level.
|
||||||
|
if s:Match(lnum, s:continuation_regex)
|
||||||
|
if lnum == p_lnum
|
||||||
|
let ind = msl_ind + &sw
|
||||||
|
else
|
||||||
|
let ind = msl_ind
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" }}}2
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" vim:sw=2
|
" }}}1
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
|
||||||
|
572
runtime/keymap/tamil_tscii.vim
Normal file
572
runtime/keymap/tamil_tscii.vim
Normal file
@@ -0,0 +1,572 @@
|
|||||||
|
" Keymap file for the editing Tamil language files in TSCII encoding.
|
||||||
|
"
|
||||||
|
" Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
|
||||||
|
" Last updated: August 4, 2005
|
||||||
|
"
|
||||||
|
" You will need a fixed width TSCII font to use this encoding. The
|
||||||
|
" Avarangal TSCII fixed width font (TSC_AvarangalFxd) is used to test
|
||||||
|
" this keymap.
|
||||||
|
"
|
||||||
|
" Visit http://www.tscii.org for more information about the TSCII
|
||||||
|
" encoding.
|
||||||
|
"
|
||||||
|
let b:keymap_name = "tamil_tscii"
|
||||||
|
|
||||||
|
loadkeymap
|
||||||
|
|
||||||
|
" Uyir (Vowels) letters
|
||||||
|
a <char-171>
|
||||||
|
aa <char-172>
|
||||||
|
A <char-172>
|
||||||
|
i <char-173>
|
||||||
|
ii <char-174>
|
||||||
|
I <char-174>
|
||||||
|
u <char-175>
|
||||||
|
uu <char-176>
|
||||||
|
U <char-176>
|
||||||
|
e <char-177>
|
||||||
|
ee <char-178>
|
||||||
|
E <char-178>
|
||||||
|
ai <char-179>
|
||||||
|
o <char-180>
|
||||||
|
oo <char-181>
|
||||||
|
O <char-181>
|
||||||
|
au <char-182>
|
||||||
|
q <char-183>
|
||||||
|
|
||||||
|
" mey (Consonants) letters
|
||||||
|
k <char-236>
|
||||||
|
ka <char-184>
|
||||||
|
kaa <char-184><char-161>
|
||||||
|
kA <char-184><char-161>
|
||||||
|
ki <char-184><char-162>
|
||||||
|
kii <char-184><char-163>
|
||||||
|
kI <char-184><char-163>
|
||||||
|
ku <char-204>
|
||||||
|
kuu <char-220>
|
||||||
|
kU <char-220>
|
||||||
|
ke <char-166><char-184>
|
||||||
|
kee <char-167><char-184>
|
||||||
|
kE <char-167><char-184>
|
||||||
|
kai <char-168><char-184>
|
||||||
|
ko <char-166><char-184><char-161>
|
||||||
|
koo <char-167><char-184><char-161>
|
||||||
|
kO <char-167><char-184><char-161>
|
||||||
|
kau <char-166><char-184><char-199>
|
||||||
|
|
||||||
|
g <char-236>
|
||||||
|
ga <char-184>
|
||||||
|
gaa <char-184><char-161>
|
||||||
|
gA <char-184><char-161>
|
||||||
|
gi <char-184><char-162>
|
||||||
|
gii <char-184><char-163>
|
||||||
|
gI <char-184><char-163>
|
||||||
|
gu <char-204>
|
||||||
|
guu <char-220>
|
||||||
|
gU <char-220>
|
||||||
|
ge <char-166><char-184>
|
||||||
|
gee <char-167><char-184>
|
||||||
|
gE <char-167><char-184>
|
||||||
|
gai <char-168><char-184>
|
||||||
|
go <char-166><char-184><char-161>
|
||||||
|
goo <char-167><char-184><char-161>
|
||||||
|
gO <char-167><char-184><char-161>
|
||||||
|
gau <char-166><char-184><char-199>
|
||||||
|
|
||||||
|
ng <char-237>
|
||||||
|
nga <char-185>
|
||||||
|
ngaa <char-185><char-161>
|
||||||
|
ngA <char-185><char-161>
|
||||||
|
ngi <char-185><char-162>
|
||||||
|
ngii <char-185><char-163>
|
||||||
|
ngI <char-185><char-163>
|
||||||
|
ngu <char-153>
|
||||||
|
nguu <char-155>
|
||||||
|
ngU <char-155>
|
||||||
|
nge <char-166><char-185>
|
||||||
|
ngee <char-167><char-185>
|
||||||
|
ngE <char-167><char-185>
|
||||||
|
ngai <char-168><char-185>
|
||||||
|
ngo <char-166><char-185><char-161>
|
||||||
|
ngoo <char-167><char-185><char-161>
|
||||||
|
ngO <char-167><char-185><char-161>
|
||||||
|
ngau <char-166><char-185><char-199>
|
||||||
|
|
||||||
|
ch <char-238>
|
||||||
|
cha <char-186>
|
||||||
|
chaa <char-186><char-161>
|
||||||
|
chA <char-186><char-161>
|
||||||
|
chi <char-186><char-162>
|
||||||
|
chii <char-186><char-163>
|
||||||
|
chI <char-186><char-163>
|
||||||
|
chu <char-204>
|
||||||
|
chuu <char-221>
|
||||||
|
chU <char-221>
|
||||||
|
che <char-166><char-186>
|
||||||
|
chee <char-167><char-186>
|
||||||
|
chE <char-167><char-186>
|
||||||
|
chai <char-168><char-186>
|
||||||
|
cho <char-166><char-186><char-161>
|
||||||
|
choo <char-167><char-186><char-161>
|
||||||
|
chO <char-167><char-186><char-161>
|
||||||
|
chau <char-166><char-186><char-199>
|
||||||
|
|
||||||
|
s <char-238>
|
||||||
|
sa <char-186>
|
||||||
|
saa <char-186><char-161>
|
||||||
|
sA <char-186><char-161>
|
||||||
|
si <char-186><char-162>
|
||||||
|
sii <char-186><char-163>
|
||||||
|
sI <char-186><char-163>
|
||||||
|
su <char-204>
|
||||||
|
suu <char-221>
|
||||||
|
sU <char-221>
|
||||||
|
se <char-166><char-186>
|
||||||
|
see <char-167><char-186>
|
||||||
|
sE <char-167><char-186>
|
||||||
|
sai <char-168><char-186>
|
||||||
|
so <char-166><char-186><char-161>
|
||||||
|
soo <char-167><char-186><char-161>
|
||||||
|
sO <char-167><char-186><char-161>
|
||||||
|
sau <char-166><char-186><char-199>
|
||||||
|
|
||||||
|
nj <char-239>
|
||||||
|
nja <char-187>
|
||||||
|
njaa <char-187><char-161>
|
||||||
|
njA <char-187><char-161>
|
||||||
|
nji <char-187><char-162>
|
||||||
|
njii <char-187><char-163>
|
||||||
|
njI <char-187><char-163>
|
||||||
|
nju <char-154>
|
||||||
|
njuu <char-156>
|
||||||
|
njU <char-156>
|
||||||
|
nje <char-166><char-187>
|
||||||
|
njee <char-167><char-187>
|
||||||
|
njE <char-167><char-187>
|
||||||
|
njai <char-168><char-187>
|
||||||
|
njo <char-166><char-187><char-161>
|
||||||
|
njoo <char-167><char-187><char-161>
|
||||||
|
njO <char-167><char-187><char-161>
|
||||||
|
njau <char-166><char-187><char-199>
|
||||||
|
|
||||||
|
t <char-240>
|
||||||
|
ta <char-188>
|
||||||
|
taa <char-188><char-161>
|
||||||
|
tA <char-188><char-161>
|
||||||
|
ti <char-202>
|
||||||
|
tii <char-203>
|
||||||
|
tI <char-203>
|
||||||
|
tu <char-206>
|
||||||
|
tuu <char-222>
|
||||||
|
tU <char-222>
|
||||||
|
te <char-166><char-188>
|
||||||
|
tee <char-167><char-188>
|
||||||
|
tE <char-167><char-188>
|
||||||
|
tai <char-168><char-188>
|
||||||
|
to <char-166><char-188><char-161>
|
||||||
|
too <char-167><char-188><char-161>
|
||||||
|
tO <char-167><char-188><char-161>
|
||||||
|
tau <char-166><char-188><char-199>
|
||||||
|
|
||||||
|
d <char-240>
|
||||||
|
da <char-188>
|
||||||
|
daa <char-188><char-161>
|
||||||
|
dA <char-188><char-161>
|
||||||
|
di <char-202>
|
||||||
|
dii <char-203>
|
||||||
|
dI <char-203>
|
||||||
|
du <char-206>
|
||||||
|
duu <char-222>
|
||||||
|
dU <char-222>
|
||||||
|
de <char-166><char-188>
|
||||||
|
dee <char-167><char-188>
|
||||||
|
dE <char-167><char-188>
|
||||||
|
dai <char-168><char-188>
|
||||||
|
do <char-166><char-188><char-161>
|
||||||
|
doo <char-167><char-188><char-161>
|
||||||
|
dO <char-167><char-188><char-161>
|
||||||
|
dau <char-166><char-188><char-199>
|
||||||
|
|
||||||
|
N <char-241>
|
||||||
|
Na <char-189>
|
||||||
|
Naa <char-189><char-161>
|
||||||
|
NA <char-189><char-161>
|
||||||
|
Ni <char-189><char-162>
|
||||||
|
Nii <char-189><char-163>
|
||||||
|
NI <char-189><char-163>
|
||||||
|
Nu <char-207>
|
||||||
|
Nuu <char-223>
|
||||||
|
NU <char-223>
|
||||||
|
Ne <char-166><char-189>
|
||||||
|
Nee <char-167><char-189>
|
||||||
|
NE <char-167><char-189>
|
||||||
|
Nai <char-168><char-189>
|
||||||
|
No <char-166><char-189><char-161>
|
||||||
|
Noo <char-167><char-189><char-161>
|
||||||
|
NO <char-167><char-189><char-161>
|
||||||
|
Nau <char-166><char-189><char-199>
|
||||||
|
|
||||||
|
th <char-242>
|
||||||
|
tha <char-190>
|
||||||
|
thaa <char-190><char-161>
|
||||||
|
thA <char-190><char-161>
|
||||||
|
thi <char-190><char-162>
|
||||||
|
thii <char-190><char-163>
|
||||||
|
thI <char-190><char-163>
|
||||||
|
thu <char-208>
|
||||||
|
thuu <char-224>
|
||||||
|
thU <char-224>
|
||||||
|
the <char-166><char-190>
|
||||||
|
thee <char-167><char-190>
|
||||||
|
thE <char-167><char-190>
|
||||||
|
thai <char-168><char-190>
|
||||||
|
tho <char-166><char-190><char-161>
|
||||||
|
thoo <char-167><char-190><char-161>
|
||||||
|
thO <char-167><char-190><char-161>
|
||||||
|
thau <char-166><char-190><char-199>
|
||||||
|
|
||||||
|
w <char-243>
|
||||||
|
wa <char-191>
|
||||||
|
waa <char-191><char-161>
|
||||||
|
wA <char-191><char-161>
|
||||||
|
wi <char-191><char-162>
|
||||||
|
wii <char-191><char-163>
|
||||||
|
wI <char-191><char-163>
|
||||||
|
wu <char-209>
|
||||||
|
wuu <char-225>
|
||||||
|
wU <char-225>
|
||||||
|
we <char-166><char-191>
|
||||||
|
wee <char-167><char-191>
|
||||||
|
wE <char-167><char-191>
|
||||||
|
wai <char-168><char-191>
|
||||||
|
wo <char-166><char-191><char-161>
|
||||||
|
woo <char-167><char-191><char-161>
|
||||||
|
wO <char-167><char-191><char-161>
|
||||||
|
wau <char-166><char-191><char-199>
|
||||||
|
|
||||||
|
n- <char-243>
|
||||||
|
n-a <char-191>
|
||||||
|
n-aa <char-191><char-161>
|
||||||
|
n-A <char-191><char-161>
|
||||||
|
n-i <char-191><char-162>
|
||||||
|
n-ii <char-191><char-163>
|
||||||
|
n-I <char-191><char-163>
|
||||||
|
n-u <char-209>
|
||||||
|
n-uu <char-225>
|
||||||
|
n-U <char-225>
|
||||||
|
n-e <char-166><char-191>
|
||||||
|
n-ee <char-167><char-191>
|
||||||
|
n-E <char-167><char-191>
|
||||||
|
n-ai <char-168><char-191>
|
||||||
|
n-o <char-166><char-191><char-161>
|
||||||
|
n-oo <char-167><char-191><char-161>
|
||||||
|
n-O <char-167><char-191><char-161>
|
||||||
|
n-au <char-166><char-191><char-199>
|
||||||
|
|
||||||
|
p <char-244>
|
||||||
|
pa <char-192>
|
||||||
|
paa <char-192><char-161>
|
||||||
|
pA <char-192><char-161>
|
||||||
|
pi <char-192><char-162>
|
||||||
|
pii <char-192><char-163>
|
||||||
|
pI <char-192><char-163>
|
||||||
|
pu <char-210>
|
||||||
|
puu <char-226>
|
||||||
|
pU <char-226>
|
||||||
|
pe <char-166><char-192>
|
||||||
|
pee <char-167><char-192>
|
||||||
|
pE <char-167><char-192>
|
||||||
|
pai <char-168><char-192>
|
||||||
|
po <char-166><char-192><char-161>
|
||||||
|
poo <char-167><char-192><char-161>
|
||||||
|
pO <char-167><char-192><char-161>
|
||||||
|
pau <char-166><char-192><char-199>
|
||||||
|
|
||||||
|
b <char-244>
|
||||||
|
ba <char-192>
|
||||||
|
baa <char-192><char-161>
|
||||||
|
bA <char-192><char-161>
|
||||||
|
bi <char-192><char-162>
|
||||||
|
bii <char-192><char-163>
|
||||||
|
bI <char-192><char-163>
|
||||||
|
bu <char-210>
|
||||||
|
buu <char-226>
|
||||||
|
bU <char-226>
|
||||||
|
be <char-166><char-192>
|
||||||
|
bee <char-167><char-192>
|
||||||
|
bE <char-167><char-192>
|
||||||
|
bai <char-168><char-192>
|
||||||
|
bo <char-166><char-192><char-161>
|
||||||
|
boo <char-167><char-192><char-161>
|
||||||
|
bO <char-167><char-192><char-161>
|
||||||
|
bau <char-166><char-192><char-199>
|
||||||
|
|
||||||
|
m <char-245>
|
||||||
|
ma <char-193>
|
||||||
|
maa <char-193><char-161>
|
||||||
|
mA <char-193><char-161>
|
||||||
|
mi <char-193><char-162>
|
||||||
|
mii <char-193><char-163>
|
||||||
|
mI <char-193><char-163>
|
||||||
|
mu <char-211>
|
||||||
|
muu <char-227>
|
||||||
|
mU <char-227>
|
||||||
|
me <char-166><char-193>
|
||||||
|
mee <char-167><char-193>
|
||||||
|
mE <char-167><char-193>
|
||||||
|
mai <char-168><char-193>
|
||||||
|
mo <char-166><char-193><char-161>
|
||||||
|
moo <char-167><char-193><char-161>
|
||||||
|
mO <char-167><char-193><char-161>
|
||||||
|
mau <char-166><char-193><char-199>
|
||||||
|
|
||||||
|
y <char-246>
|
||||||
|
ya <char-194>
|
||||||
|
yaa <char-194><char-161>
|
||||||
|
yA <char-194><char-161>
|
||||||
|
yi <char-194><char-162>
|
||||||
|
yii <char-194><char-163>
|
||||||
|
yI <char-194><char-163>
|
||||||
|
yu <char-212>
|
||||||
|
yuu <char-228>
|
||||||
|
yU <char-228>
|
||||||
|
ye <char-166><char-194>
|
||||||
|
yee <char-167><char-194>
|
||||||
|
yE <char-167><char-194>
|
||||||
|
yai <char-168><char-194>
|
||||||
|
yo <char-166><char-194><char-161>
|
||||||
|
yoo <char-167><char-194><char-161>
|
||||||
|
yO <char-167><char-194><char-161>
|
||||||
|
yau <char-166><char-194><char-199>
|
||||||
|
|
||||||
|
r <char-247>
|
||||||
|
ra <char-195>
|
||||||
|
raa <char-195><char-161>
|
||||||
|
rA <char-195><char-161>
|
||||||
|
ri <char-195><char-162>
|
||||||
|
rii <char-195><char-163>
|
||||||
|
rI <char-195><char-163>
|
||||||
|
ru <char-213>
|
||||||
|
ruu <char-229>
|
||||||
|
rU <char-229>
|
||||||
|
re <char-166><char-195>
|
||||||
|
ree <char-167><char-195>
|
||||||
|
rE <char-167><char-195>
|
||||||
|
rai <char-168><char-195>
|
||||||
|
ro <char-166><char-195><char-161>
|
||||||
|
roo <char-167><char-195><char-161>
|
||||||
|
rO <char-167><char-195><char-161>
|
||||||
|
rau <char-166><char-195><char-199>
|
||||||
|
|
||||||
|
l <char-248>
|
||||||
|
la <char-196>
|
||||||
|
laa <char-196><char-161>
|
||||||
|
lA <char-196><char-161>
|
||||||
|
li <char-196><char-162>
|
||||||
|
lii <char-196><char-163>
|
||||||
|
lI <char-196><char-163>
|
||||||
|
lu <char-214>
|
||||||
|
luu <char-230>
|
||||||
|
lU <char-230>
|
||||||
|
le <char-166><char-196>
|
||||||
|
lee <char-167><char-196>
|
||||||
|
lE <char-167><char-196>
|
||||||
|
lai <char-168><char-196>
|
||||||
|
lo <char-166><char-196><char-161>
|
||||||
|
loo <char-167><char-196><char-161>
|
||||||
|
lO <char-167><char-196><char-161>
|
||||||
|
lau <char-166><char-196><char-199>
|
||||||
|
|
||||||
|
v <char-249>
|
||||||
|
va <char-197>
|
||||||
|
vaa <char-197><char-161>
|
||||||
|
vA <char-197><char-161>
|
||||||
|
vi <char-197><char-162>
|
||||||
|
vii <char-197><char-163>
|
||||||
|
vI <char-197><char-163>
|
||||||
|
vu <char-215>
|
||||||
|
vuu <char-231>
|
||||||
|
vU <char-231>
|
||||||
|
ve <char-166><char-197>
|
||||||
|
vee <char-167><char-197>
|
||||||
|
vE <char-167><char-197>
|
||||||
|
vai <char-168><char-197>
|
||||||
|
vo <char-166><char-197><char-161>
|
||||||
|
voo <char-167><char-197><char-161>
|
||||||
|
vO <char-167><char-197><char-161>
|
||||||
|
vau <char-166><char-197><char-199>
|
||||||
|
|
||||||
|
z <char-250>
|
||||||
|
za <char-198>
|
||||||
|
zaa <char-198><char-161>
|
||||||
|
zA <char-198><char-161>
|
||||||
|
zi <char-198><char-162>
|
||||||
|
zii <char-198><char-163>
|
||||||
|
zI <char-198><char-163>
|
||||||
|
zu <char-216>
|
||||||
|
zuu <char-232>
|
||||||
|
zU <char-232>
|
||||||
|
ze <char-166><char-198>
|
||||||
|
zee <char-167><char-198>
|
||||||
|
zE <char-167><char-198>
|
||||||
|
zai <char-168><char-198>
|
||||||
|
zo <char-166><char-198><char-161>
|
||||||
|
zoo <char-167><char-198><char-161>
|
||||||
|
zO <char-167><char-198><char-161>
|
||||||
|
zau <char-166><char-198><char-199>
|
||||||
|
|
||||||
|
L <char-251>
|
||||||
|
La <char-199>
|
||||||
|
Laa <char-199><char-161>
|
||||||
|
LA <char-199><char-161>
|
||||||
|
Li <char-199><char-162>
|
||||||
|
Lii <char-199><char-163>
|
||||||
|
LI <char-199><char-163>
|
||||||
|
Lu <char-217>
|
||||||
|
Luu <char-233>
|
||||||
|
LU <char-233>
|
||||||
|
Le <char-166><char-199>
|
||||||
|
Lee <char-167><char-199>
|
||||||
|
LE <char-167><char-199>
|
||||||
|
Lai <char-168><char-199>
|
||||||
|
Lo <char-166><char-199><char-161>
|
||||||
|
Loo <char-167><char-199><char-161>
|
||||||
|
LO <char-167><char-199><char-161>
|
||||||
|
Lau <char-166><char-199><char-199>
|
||||||
|
|
||||||
|
R <char-252>
|
||||||
|
Ra <char-200>
|
||||||
|
Raa <char-200><char-161>
|
||||||
|
RA <char-200><char-161>
|
||||||
|
Ri <char-200><char-162>
|
||||||
|
Rii <char-200><char-163>
|
||||||
|
RI <char-200><char-163>
|
||||||
|
Ru <char-218>
|
||||||
|
Ruu <char-234>
|
||||||
|
RU <char-234>
|
||||||
|
Re <char-166><char-200>
|
||||||
|
Ree <char-167><char-200>
|
||||||
|
RE <char-167><char-200>
|
||||||
|
Rai <char-168><char-200>
|
||||||
|
Ro <char-166><char-200><char-161>
|
||||||
|
Roo <char-167><char-200><char-161>
|
||||||
|
RO <char-167><char-200><char-161>
|
||||||
|
Rau <char-166><char-200><char-199>
|
||||||
|
|
||||||
|
n <char-253>
|
||||||
|
na <char-201>
|
||||||
|
naa <char-201><char-161>
|
||||||
|
nA <char-201><char-161>
|
||||||
|
ni <char-201><char-162>
|
||||||
|
nii <char-201><char-163>
|
||||||
|
nI <char-201><char-163>
|
||||||
|
nu <char-219>
|
||||||
|
nuu <char-235>
|
||||||
|
nU <char-235>
|
||||||
|
ne <char-166><char-201>
|
||||||
|
nee <char-167><char-201>
|
||||||
|
nE <char-167><char-201>
|
||||||
|
nai <char-168><char-201>
|
||||||
|
no <char-166><char-201><char-161>
|
||||||
|
noo <char-167><char-201><char-161>
|
||||||
|
nO <char-167><char-201><char-161>
|
||||||
|
nau <char-166><char-201><char-199>
|
||||||
|
|
||||||
|
" Grantha letters
|
||||||
|
j <char-136>
|
||||||
|
ja <char-131>
|
||||||
|
jaa <char-131><char-161>
|
||||||
|
jA <char-131><char-161>
|
||||||
|
ji <char-131><char-162>
|
||||||
|
jii <char-131><char-163>
|
||||||
|
jI <char-131><char-163>
|
||||||
|
ju <char-131><char-164>
|
||||||
|
juu <char-131><char-164>
|
||||||
|
jU <char-131><char-165>
|
||||||
|
je <char-166><char-131>
|
||||||
|
jee <char-167><char-131>
|
||||||
|
jE <char-167><char-131>
|
||||||
|
jai <char-168><char-131>
|
||||||
|
jo <char-166><char-131><char-161>
|
||||||
|
joo <char-167><char-131><char-161>
|
||||||
|
jO <char-167><char-131><char-161>
|
||||||
|
jau <char-166><char-131><char-199>
|
||||||
|
|
||||||
|
sh <char-137>
|
||||||
|
sha <char-132>
|
||||||
|
shaa <char-132><char-161>
|
||||||
|
shA <char-132><char-161>
|
||||||
|
shi <char-132><char-162>
|
||||||
|
shii <char-132><char-163>
|
||||||
|
shI <char-132><char-163>
|
||||||
|
shu <char-131><char-164>
|
||||||
|
shuu <char-131><char-164>
|
||||||
|
shU <char-131><char-165>
|
||||||
|
she <char-166><char-132>
|
||||||
|
shee <char-167><char-132>
|
||||||
|
shE <char-167><char-132>
|
||||||
|
shai <char-168><char-132>
|
||||||
|
sho <char-166><char-132><char-161>
|
||||||
|
shoo <char-167><char-132><char-161>
|
||||||
|
shO <char-167><char-132><char-161>
|
||||||
|
shau <char-166><char-132><char-199>
|
||||||
|
|
||||||
|
S <char-138>
|
||||||
|
Sa <char-133>
|
||||||
|
Saa <char-133><char-161>
|
||||||
|
SA <char-133><char-161>
|
||||||
|
Si <char-133><char-162>
|
||||||
|
Sii <char-133><char-163>
|
||||||
|
SI <char-133><char-163>
|
||||||
|
Su <char-133><char-164>
|
||||||
|
Suu <char-133><char-165>
|
||||||
|
SU <char-133><char-165>
|
||||||
|
Se <char-166><char-133>
|
||||||
|
See <char-167><char-133>
|
||||||
|
SE <char-167><char-133>
|
||||||
|
Sai <char-168><char-133>
|
||||||
|
So <char-166><char-133><char-161>
|
||||||
|
Soo <char-167><char-133><char-161>
|
||||||
|
SO <char-167><char-133><char-161>
|
||||||
|
Sau <char-166><char-133><char-199>
|
||||||
|
|
||||||
|
h <char-139>
|
||||||
|
ha <char-134>
|
||||||
|
haa <char-134><char-161>
|
||||||
|
hA <char-134><char-161>
|
||||||
|
hi <char-134><char-162>
|
||||||
|
hii <char-134><char-163>
|
||||||
|
hI <char-134><char-163>
|
||||||
|
hu <char-134><char-164>
|
||||||
|
huu <char-134><char-165>
|
||||||
|
hU <char-134><char-165>
|
||||||
|
he <char-166><char-134>
|
||||||
|
hee <char-167><char-134>
|
||||||
|
hE <char-167><char-134>
|
||||||
|
hai <char-168><char-134>
|
||||||
|
ho <char-166><char-134><char-161>
|
||||||
|
hoo <char-167><char-134><char-161>
|
||||||
|
hO <char-167><char-134><char-161>
|
||||||
|
hau <char-166><char-134><char-199>
|
||||||
|
|
||||||
|
x <char-140>
|
||||||
|
xa <char-135>
|
||||||
|
xaa <char-135><char-161>
|
||||||
|
xA <char-135><char-161>
|
||||||
|
xi <char-135><char-162>
|
||||||
|
xii <char-135><char-163>
|
||||||
|
xI <char-135><char-163>
|
||||||
|
xu <char-135><char-164>
|
||||||
|
xuu <char-135><char-165>
|
||||||
|
xU <char-135><char-165>
|
||||||
|
xe <char-166><char-135>
|
||||||
|
xee <char-167><char-135>
|
||||||
|
xE <char-167><char-135>
|
||||||
|
xai <char-168><char-135>
|
||||||
|
xo <char-166><char-135><char-161>
|
||||||
|
xoo <char-167><char-135><char-161>
|
||||||
|
xO <char-167><char-135><char-161>
|
||||||
|
xau <char-166><char-135><char-199>
|
||||||
|
|
||||||
|
sri <char-130>
|
||||||
|
|
@@ -10,7 +10,6 @@
|
|||||||
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
" GNU General Public License for more details.
|
" GNU General Public License for more details.
|
||||||
" ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
" For version 5.x: Clear all syntax items
|
" For version 5.x: Clear all syntax items
|
||||||
" For version 6.x: Quit when a syntax file was already loaded
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
@@ -33,9 +32,12 @@ else
|
|||||||
syn include @rubyTop syntax/ruby.vim
|
syn include @rubyTop syntax/ruby.vim
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syn region erubyOneLiner matchgroup=erubyDelimiter start="^\s*\zs%" end="$" contains=@rubyTop,erubyDelimiter keepend
|
syn cluster erubyRegions contains=erubyOneLiner,erubyBlock,erubyExpression,erubyComment
|
||||||
syn region erubyBlock matchgroup=erubyDelimiter start="<%=\=" end="%>" contains=@rubyTop containedin=ALLBUT,erubyComment keepend
|
|
||||||
syn region erubyComment matchgroup=erubyDelimiter start="<%#" end="%>" keepend
|
syn region erubyOneLiner matchgroup=erubyDelimiter start="^%%\@!" end="$" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend oneline
|
||||||
|
syn region erubyBlock matchgroup=erubyDelimiter start="<%%\@!" end="%>" contains=@rubyTop containedin=ALLBUT,@erubyRegions
|
||||||
|
syn region erubyExpression matchgroup=erubyDelimiter start="<%=" end="%>" contains=@rubyTop containedin=ALLBUT,@erubyRegions
|
||||||
|
syn region erubyComment matchgroup=erubyDelimiter start="<%#" end="%>" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" For version 5.7 and earlier: only when not done already
|
" For version 5.7 and earlier: only when not done already
|
||||||
@@ -59,4 +61,4 @@ if main_syntax == 'eruby'
|
|||||||
unlet main_syntax
|
unlet main_syntax
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" vim: sw=2 sts=2 ts=8 ff=unix nowrap:
|
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
|
||||||
|
@@ -2140,8 +2140,8 @@ op_tilde(oap)
|
|||||||
pos_T pos;
|
pos_T pos;
|
||||||
#ifdef FEAT_VISUAL
|
#ifdef FEAT_VISUAL
|
||||||
struct block_def bd;
|
struct block_def bd;
|
||||||
#endif
|
|
||||||
int todo;
|
int todo;
|
||||||
|
#endif
|
||||||
int did_change = 0;
|
int did_change = 0;
|
||||||
|
|
||||||
if (u_save((linenr_T)(oap->start.lnum - 1),
|
if (u_save((linenr_T)(oap->start.lnum - 1),
|
||||||
@@ -2195,16 +2195,13 @@ op_tilde(oap)
|
|||||||
else if (!oap->inclusive)
|
else if (!oap->inclusive)
|
||||||
dec(&(oap->end));
|
dec(&(oap->end));
|
||||||
|
|
||||||
for (todo = oap->end.col - pos.col + 1; todo > 0; --todo)
|
while (ltoreq(pos, oap->end))
|
||||||
{
|
{
|
||||||
#ifdef FEAT_MBYTE
|
|
||||||
if (has_mbyte)
|
|
||||||
todo -= (*mb_ptr2len)(ml_get_pos(&pos)) - 1;
|
|
||||||
#endif
|
|
||||||
did_change |= swapchar(oap->op_type, &pos);
|
did_change |= swapchar(oap->op_type, &pos);
|
||||||
if (inc(&pos) == -1) /* at end of file */
|
if (inc(&pos) == -1) /* at end of file */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (did_change)
|
if (did_change)
|
||||||
{
|
{
|
||||||
changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
|
changed_lines(oap->start.lnum, oap->start.col, oap->end.lnum + 1,
|
||||||
|
@@ -2931,7 +2931,7 @@ win_line(wp, lnum, startrow, endrow)
|
|||||||
wp->w_cursor.lnum = lnum;
|
wp->w_cursor.lnum = lnum;
|
||||||
wp->w_cursor.col = ptr - line;
|
wp->w_cursor.col = ptr - line;
|
||||||
len = spell_move_to(wp, FORWARD, TRUE, TRUE, &spell_attr);
|
len = spell_move_to(wp, FORWARD, TRUE, TRUE, &spell_attr);
|
||||||
if (len == 0 || wp->w_cursor.col > ptr - line)
|
if (len == 0 || (int)wp->w_cursor.col > ptr - line)
|
||||||
{
|
{
|
||||||
/* no bad word found at line start, don't check until end of a
|
/* no bad word found at line start, don't check until end of a
|
||||||
* word */
|
* word */
|
||||||
|
@@ -1440,6 +1440,11 @@ searchc(cap, t_cmd)
|
|||||||
/* For multi-byte re-use last bytes[] and bytelen. */
|
/* For multi-byte re-use last bytes[] and bytelen. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dir == BACKWARD)
|
||||||
|
cap->oap->inclusive = FALSE;
|
||||||
|
else
|
||||||
|
cap->oap->inclusive = TRUE;
|
||||||
|
|
||||||
p = ml_get_curline();
|
p = ml_get_curline();
|
||||||
col = curwin->w_cursor.col;
|
col = curwin->w_cursor.col;
|
||||||
len = (int)STRLEN(p);
|
len = (int)STRLEN(p);
|
||||||
|
@@ -34,7 +34,7 @@ test
|
|||||||
d<EFBFBD><EFBFBD>l
|
d<EFBFBD><EFBFBD>l
|
||||||
['deol', 'd<><64>r', 'test']
|
['deol', 'd<><64>r', 'test']
|
||||||
end
|
end
|
||||||
['put', 'test', 'uk']
|
['put', 'OK', 'test']
|
||||||
the
|
the
|
||||||
['put', 'uk', 'test']
|
['put', 'uk', 'test']
|
||||||
gebletegek
|
gebletegek
|
||||||
@@ -75,7 +75,7 @@ wrong
|
|||||||
bad
|
bad
|
||||||
['put', 'uk', 'OK']
|
['put', 'uk', 'OK']
|
||||||
inputs
|
inputs
|
||||||
['input', 'puts', 'put']
|
['input', 'puts', 'outputs']
|
||||||
comment
|
comment
|
||||||
['Comment']
|
['Comment']
|
||||||
ok
|
ok
|
||||||
@@ -153,7 +153,7 @@ endend
|
|||||||
startstart
|
startstart
|
||||||
['start start']
|
['start start']
|
||||||
wordend
|
wordend
|
||||||
['word end', 'wordword', 'word']
|
['word end', 'word', 'wordword']
|
||||||
wordstart
|
wordstart
|
||||||
['word start', 'bork start']
|
['word start', 'bork start']
|
||||||
startwordwordwordwordend
|
startwordwordwordwordend
|
||||||
@@ -211,7 +211,7 @@ mee
|
|||||||
meea2
|
meea2
|
||||||
['meea1', 'meea<65>', 'lead']
|
['meea1', 'meea<65>', 'lead']
|
||||||
prabar
|
prabar
|
||||||
['prebar', 'leadbar', 'bar']
|
['prebar', 'bar', 'leadbar']
|
||||||
probarbirk
|
probarbirk
|
||||||
['prebarbork']
|
['prebarbork']
|
||||||
middle
|
middle
|
||||||
@@ -243,7 +243,7 @@ mee
|
|||||||
meea2
|
meea2
|
||||||
['meea1', 'meea<65>', 'lead']
|
['meea1', 'meea<65>', 'lead']
|
||||||
prabar
|
prabar
|
||||||
['prebar', 'leadbar', 'bar']
|
['prebar', 'bar', 'leadbar']
|
||||||
probarmaat
|
probarmaat
|
||||||
['prebarmeat']
|
['prebarmeat']
|
||||||
middle
|
middle
|
||||||
|
@@ -34,7 +34,7 @@ test
|
|||||||
déôl
|
déôl
|
||||||
['deol', 'déôr', 'test']
|
['deol', 'déôr', 'test']
|
||||||
end
|
end
|
||||||
['put', 'test', 'uk']
|
['put', 'OK', 'test']
|
||||||
the
|
the
|
||||||
['put', 'uk', 'test']
|
['put', 'uk', 'test']
|
||||||
gebletegek
|
gebletegek
|
||||||
@@ -75,7 +75,7 @@ wrong
|
|||||||
bad
|
bad
|
||||||
['put', 'uk', 'OK']
|
['put', 'uk', 'OK']
|
||||||
inputs
|
inputs
|
||||||
['input', 'puts', 'put']
|
['input', 'puts', 'outputs']
|
||||||
comment
|
comment
|
||||||
['Comment']
|
['Comment']
|
||||||
ok
|
ok
|
||||||
@@ -153,7 +153,7 @@ endend
|
|||||||
startstart
|
startstart
|
||||||
['start start']
|
['start start']
|
||||||
wordend
|
wordend
|
||||||
['word end', 'wordword', 'word']
|
['word end', 'word', 'wordword']
|
||||||
wordstart
|
wordstart
|
||||||
['word start', 'bork start']
|
['word start', 'bork start']
|
||||||
startwordwordwordwordend
|
startwordwordwordwordend
|
||||||
@@ -211,7 +211,7 @@ mee
|
|||||||
meea2
|
meea2
|
||||||
['meea1', 'meeaé', 'lead']
|
['meea1', 'meeaé', 'lead']
|
||||||
prabar
|
prabar
|
||||||
['prebar', 'leadbar', 'bar']
|
['prebar', 'bar', 'leadbar']
|
||||||
probarbirk
|
probarbirk
|
||||||
['prebarbork']
|
['prebarbork']
|
||||||
middle
|
middle
|
||||||
@@ -243,7 +243,7 @@ mee
|
|||||||
meea2
|
meea2
|
||||||
['meea1', 'meeaé', 'lead']
|
['meea1', 'meeaé', 'lead']
|
||||||
prabar
|
prabar
|
||||||
['prebar', 'leadbar', 'bar']
|
['prebar', 'bar', 'leadbar']
|
||||||
probarmaat
|
probarmaat
|
||||||
['prebarmeat']
|
['prebarmeat']
|
||||||
middle
|
middle
|
||||||
|
@@ -36,5 +36,5 @@
|
|||||||
#define VIM_VERSION_NODOT "vim70aa"
|
#define VIM_VERSION_NODOT "vim70aa"
|
||||||
#define VIM_VERSION_SHORT "7.0aa"
|
#define VIM_VERSION_SHORT "7.0aa"
|
||||||
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
|
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
|
||||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 14)"
|
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 16)"
|
||||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 14, compiled "
|
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 16, compiled "
|
||||||
|
Reference in New Issue
Block a user