diff options
-rw-r--r-- | runtime/ftplugin/eruby.vim | 64 | ||||
-rw-r--r-- | src/mbyte.c | 8 |
2 files changed, 50 insertions, 22 deletions
diff --git a/runtime/ftplugin/eruby.vim b/runtime/ftplugin/eruby.vim index 6d8b4eafd..4eb122cda 100644 --- a/runtime/ftplugin/eruby.vim +++ b/runtime/ftplugin/eruby.vim @@ -1,13 +1,13 @@ " Vim filetype plugin " Language: eRuby -" Maintainer: Doug Kearns <dougkearns@gmail.com> +" Maintainer: Tim Pope <vimNOSPAM@tpope.info> " Info: $Id$ " URL: http://vim-ruby.rubyforge.org " Anon CVS: See above site " Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Only do this when not done yet for this buffer -if (exists("b:did_ftplugin")) +if exists("b:did_ftplugin") finish endif @@ -16,26 +16,54 @@ set cpo-=C " Define some defaults in case the included ftplugins don't set them. let s:undo_ftplugin = "" -let s:browsefilter = "Ruby Files (*.rb)\t*.rb\n" . - \ "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . - \ "All Files (*.*)\t*.*\n" +let s:browsefilter = "All Files (*.*)\t*.*\n" let s:match_words = "" -runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim -unlet b:did_ftplugin +if !exists("g:eruby_default_subtype") + let g:eruby_default_subtype = "html" +endif + +if !exists("b:eruby_subtype") + let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") + let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+') + if b:eruby_subtype == '' + let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\)\+$','',''),'\.\zs\w\+$') + endif + if b:eruby_subtype == 'rhtml' + let b:eruby_subtype = 'html' + elseif b:eruby_subtype == 'rb' + let b:eruby_subtype = 'ruby' + elseif b:eruby_subtype == 'yml' + let b:eruby_subtype = 'yaml' + elseif b:eruby_subtype == 'js' + let b:eruby_subtype = 'javascript' + elseif b:eruby_subtype == 'txt' + " Conventional; not a real file type + let b:eruby_subtype = 'text' + elseif b:eruby_subtype == '' + let b:eruby_subtype = g:eruby_default_subtype + endif +endif + +if exists("b:eruby_subtype") && b:eruby_subtype != '' + exe "runtime! ftplugin/".b:eruby_subtype.".vim ftplugin/".b:eruby_subtype."_*.vim ftplugin/".b:eruby_subtype."/*.vim" +else + runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +endif +unlet! b:did_ftplugin " Override our defaults if these were set by an included ftplugin. if exists("b:undo_ftplugin") - let s:undo_ftplugin = b:undo_ftplugin - unlet b:undo_ftplugin + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin endif if exists("b:browsefilter") - let s:browsefilter = b:browsefilter - unlet b:browsefilter + let s:browsefilter = b:browsefilter + unlet b:browsefilter endif if exists("b:match_words") - let s:match_words = b:match_words - unlet b:match_words + let s:match_words = b:match_words + unlet b:match_words endif runtime! ftplugin/ruby.vim ftplugin/ruby_*.vim ftplugin/ruby/*.vim @@ -43,23 +71,23 @@ let b:did_ftplugin = 1 " Combine the new set of values with those previously included. if exists("b:undo_ftplugin") - let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin + let s:undo_ftplugin = b:undo_ftplugin . " | " . s:undo_ftplugin endif if exists ("b:browsefilter") - let s:browsefilter = b:browsefilter . s:browsefilter + let s:browsefilter = substitute(b:browsefilter,'\cAll Files (\*\.\*)\t\*\.\*\n','','') . s:browsefilter endif if exists("b:match_words") - let s:match_words = b:match_words . ',' . s:match_words + let s:match_words = b:match_words . ',' . s:match_words endif " Change the browse dialog on Win32 to show mainly eRuby-related files if has("gui_win32") - let b:browsefilter="eRuby Files (*.rhtml)\t*.rhtml\n" . s:browsefilter + let b:browsefilter="eRuby Files (*.erb, *.rhtml)\t*.erb;*.rhtml\n" . s:browsefilter endif " Load the combined list of match_words for matchit.vim if exists("loaded_matchit") - let b:match_words = s:match_words + let b:match_words = s:match_words endif " TODO: comments= diff --git a/src/mbyte.c b/src/mbyte.c index f508f8a1c..7edab4465 100644 --- a/src/mbyte.c +++ b/src/mbyte.c @@ -1492,7 +1492,7 @@ utf_composinglike(p1, p2) #endif /* - * Convert a UTF-8 byte string to a wide chararacter. Also get up to MAX_MCO + * Convert a UTF-8 byte string to a wide character. Also get up to MAX_MCO * composing characters. */ int @@ -1532,7 +1532,7 @@ utfc_ptr2char(p, pcc) } /* - * Convert a UTF-8 byte string to a wide chararacter. Also get up to MAX_MCO + * Convert a UTF-8 byte string to a wide character. Also get up to MAX_MCO * composing characters. Use no more than p[maxlen]. */ int @@ -2974,7 +2974,7 @@ enc_canonize(enc) } # endif - /* copy "enc" to allocted memory, with room for two '-' */ + /* copy "enc" to allocated memory, with room for two '-' */ r = alloc((unsigned)(STRLEN(enc) + 3)); if (r != NULL) { @@ -4080,7 +4080,7 @@ xim_reset(void) /* * HACK for Ami: This sequence of function calls makes Ami handle - * the IM reset gratiously, without breaking loads of other stuff. + * the IM reset graciously, without breaking loads of other stuff. * It seems to force English mode as well, which is exactly what we * want because it makes the Ami status display work reliably. */ |