utils 0.0.37 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/bin/probe +12 -7
- data/lib/utils/config/vim/autoload/rails.vim +201 -364
- data/lib/utils/config/vim/plugin/rails.vim +6 -4
- data/lib/utils/editor.rb +8 -8
- data/lib/utils/version.rb +1 -1
- data/utils.gemspec +3 -3
- metadata +38 -24
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.38
|
data/bin/probe
CHANGED
@@ -29,36 +29,41 @@ end
|
|
29
29
|
|
30
30
|
$config = Utils::Config::ConfigFile.new
|
31
31
|
$config.parse_config_file File.expand_path('~/.utilsrc')
|
32
|
-
|
32
|
+
testrunner_args = []
|
33
|
+
if i = ARGV.index('--')
|
34
|
+
testrunner_args.concat ARGV[(i + 1)..-1]
|
35
|
+
ARGV[i..-1] = []
|
36
|
+
end
|
37
|
+
$opt = go 't:n:h-'
|
33
38
|
filename = ARGV.shift or fail "require filename or filename:line_number as first argument"
|
34
39
|
$opt['h'] and usage
|
35
40
|
case ($opt['t'] || $config.probe.test_framework).to_sym
|
36
41
|
when :rspec
|
37
42
|
if line_number = $opt['n']
|
38
|
-
cmd "rspec", '-I', $config.probe.include_dirs_argument, '-l', line_number ,
|
43
|
+
cmd "rspec", '-I', $config.probe.include_dirs_argument, '-l', line_number, filename, *testrunner_args
|
39
44
|
elsif filename =~ /^\s*([^:]+):(\d+)/
|
40
45
|
filename, line_number = $1, $2
|
41
46
|
puts "Running test at #{filename}:#{line_number}"
|
42
|
-
cmd "rspec", '-I', $config.probe.include_dirs_argument, '-l', line_number ,
|
47
|
+
cmd "rspec", '-I', $config.probe.include_dirs_argument, '-l', line_number, filename, *testrunner_args
|
43
48
|
else
|
44
49
|
puts "Running ALL tests in #{filename}"
|
45
|
-
cmd "rspec", '-I', $config.probe.include_dirs_argument, filename
|
50
|
+
cmd "rspec", '-I', $config.probe.include_dirs_argument, filename, *testrunner_args
|
46
51
|
end
|
47
52
|
when :'test-unit'
|
48
53
|
if testname = $opt['n']
|
49
|
-
cmd "testrb", '-I', $config.probe.include_dirs_argument, '-n', testname ,
|
54
|
+
cmd "testrb", '-I', $config.probe.include_dirs_argument, '-n', testname, filename, *testrunner_args
|
50
55
|
elsif filename =~ /^\s*([^:]+):(\d+)/
|
51
56
|
filename, line_number = $1, $2
|
52
57
|
lf = Tins::LinesFile.for_filename filename, line_number.to_i
|
53
58
|
if testname = lf.match_backward(/def\s+(\S+?)(?:\(|\s*$)/).full?(:first)
|
54
59
|
puts "Running test #{testname.inspect} at #{filename}:#{lf.line_number}"
|
55
|
-
cmd "testrb", '-I', $config.probe.include_dirs_argument, '-n', testname ,
|
60
|
+
cmd "testrb", '-I', $config.probe.include_dirs_argument, '-n', testname, filename, *testrunner_args
|
56
61
|
else
|
57
62
|
warn "no test found before line #{line_number}"
|
58
63
|
exit 1
|
59
64
|
end
|
60
65
|
else
|
61
66
|
puts "Running ALL tests in #{filename}"
|
62
|
-
cmd "testrb", '-I', $config.probe.include_dirs_argument, filename
|
67
|
+
cmd "testrb", '-I', $config.probe.include_dirs_argument, filename, *testrunner_args
|
63
68
|
end
|
64
69
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
" autoload/rails.vim
|
2
|
-
" Author: Tim Pope <
|
2
|
+
" Author: Tim Pope <http://tpo.pe/>
|
3
3
|
|
4
4
|
" Install this file as autoload/rails.vim.
|
5
5
|
|
6
6
|
if exists('g:autoloaded_rails') || &cp
|
7
7
|
finish
|
8
8
|
endif
|
9
|
-
let g:autoloaded_rails = '4.
|
9
|
+
let g:autoloaded_rails = '4.4'
|
10
10
|
|
11
11
|
let s:cpo_save = &cpo
|
12
12
|
set cpo&vim
|
@@ -44,6 +44,20 @@ function! s:compact(ary)
|
|
44
44
|
return s:sub(s:sub(s:gsub(a:ary,'\n\n+','\n'),'\n$',''),'^\n','')
|
45
45
|
endfunction
|
46
46
|
|
47
|
+
function! s:uniq(list)
|
48
|
+
let seen = {}
|
49
|
+
let i = 0
|
50
|
+
while i < len(a:list)
|
51
|
+
if has_key(seen,a:list[i])
|
52
|
+
call remove(a:list, i)
|
53
|
+
else
|
54
|
+
let seen[a:list[i]] = 1
|
55
|
+
let i += 1
|
56
|
+
endif
|
57
|
+
endwhile
|
58
|
+
return a:list
|
59
|
+
endfunction
|
60
|
+
|
47
61
|
function! s:scrub(collection,item)
|
48
62
|
" Removes item from a newline separated collection
|
49
63
|
let col = "\n" . a:collection
|
@@ -302,10 +316,10 @@ endfunction
|
|
302
316
|
|
303
317
|
call s:add_methods('readable',['end_of','last_opening_line','last_method_line','last_method','last_format','define_pattern'])
|
304
318
|
|
305
|
-
let s:view_types = 'rhtml,erb,rxml,builder,rjs,mab,liquid,haml,dryml,mn'
|
319
|
+
let s:view_types = split('rhtml,erb,rxml,builder,rjs,mab,liquid,haml,dryml,mn,slim',',')
|
306
320
|
|
307
321
|
function! s:viewspattern()
|
308
|
-
return '\%('.
|
322
|
+
return '\%('.join(s:view_types,'\|').'\)'
|
309
323
|
endfunction
|
310
324
|
|
311
325
|
function! s:controller(...)
|
@@ -344,8 +358,10 @@ function! s:readable_controller_name(...) dict abort
|
|
344
358
|
return s:sub(f,'.*<components/(.{-})/\k+\.\k+$','\1')
|
345
359
|
elseif f =~ '\<app/models/.*\.rb$' && self.type_name('mailer')
|
346
360
|
return s:sub(f,'.*<app/models/(.{-})\.rb$','\1')
|
347
|
-
elseif f =~ '
|
348
|
-
return s:sub(f,'
|
361
|
+
elseif f =~ '\<\%(public\|app/assets\)/stylesheets/.*\.css\%(\.\w\+\)\=$'
|
362
|
+
return s:sub(f,'.*<%(public|app/assets)/stylesheets/(.{-})\.css%(\.\w+)=$','\1')
|
363
|
+
elseif f =~ '\<\%(public\|app/assets\)/javascripts/.*\.js\%(\.\w\+\)\=$'
|
364
|
+
return s:sub(f,'.*<%(public|app/assets)/javascripts/(.{-})\.js%(\.\w+)=$','\1')
|
349
365
|
elseif a:0 && a:1
|
350
366
|
return rails#pluralize(self.model_name())
|
351
367
|
endif
|
@@ -510,7 +526,7 @@ function! rails#singularize(word)
|
|
510
526
|
return word
|
511
527
|
endif
|
512
528
|
let word = s:sub(word,'eople$','ersons')
|
513
|
-
let word = s:sub(word,'[aeio]@<!ies$','ys')
|
529
|
+
let word = s:sub(word,'%([Mm]ov|[aeio])@<!ies$','ys')
|
514
530
|
let word = s:sub(word,'xe[ns]$','xs')
|
515
531
|
let word = s:sub(word,'ves$','fs')
|
516
532
|
let word = s:sub(word,'ss%(es)=$','sss')
|
@@ -592,7 +608,7 @@ endfunction
|
|
592
608
|
|
593
609
|
function! s:buffer_name() dict abort
|
594
610
|
let app = self.app()
|
595
|
-
let f = s:gsub(fnamemodify(bufname(self.number()),':p'),'\\ @!','/')
|
611
|
+
let f = s:gsub(resolve(fnamemodify(bufname(self.number()),':p')),'\\ @!','/')
|
596
612
|
let f = s:sub(f,'/$','')
|
597
613
|
let sep = matchstr(f,'^[^\\/]\{3,\}\zs[\\/]')
|
598
614
|
if sep != ""
|
@@ -921,10 +937,7 @@ function! s:BufCommands()
|
|
921
937
|
command! -buffer -bar -nargs=0 -bang Rrefresh :if <bang>0|unlet! g:autoloaded_rails|source `=s:file`|endif|call s:Refresh(<bang>0)
|
922
938
|
if exists(":NERDTree")
|
923
939
|
command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rtree :NERDTree `=rails#app().path(<f-args>)`
|
924
|
-
elseif exists(":Project")
|
925
|
-
command! -buffer -bar -nargs=? Rtree :call s:Project(<bang>0,<q-args>)
|
926
940
|
endif
|
927
|
-
command! -buffer -bar -nargs=? Rproject :call s:warn("Warning: :Rproject has been deprecated in favor of :Rtree") | Rtree<bang> <args>
|
928
941
|
if exists("g:loaded_dbext")
|
929
942
|
command! -buffer -bar -nargs=? -complete=customlist,s:Complete_environments Rdbext :call s:BufDatabase(2,<q-args>)|let b:dbext_buffer_defaulted = 1
|
930
943
|
endif
|
@@ -997,29 +1010,17 @@ function! rails#new_app_command(bang,...)
|
|
997
1010
|
endif
|
998
1011
|
return
|
999
1012
|
endif
|
1000
|
-
let
|
1001
|
-
if a:1 !~ '^-' && a:1 !=# 'new'
|
1002
|
-
let dir = a:1
|
1003
|
-
elseif a:{a:0} =~ '[\/]'
|
1004
|
-
let dir = a:{a:0}
|
1005
|
-
else
|
1006
|
-
let dir = a:1
|
1007
|
-
endif
|
1008
|
-
let str = ""
|
1009
|
-
let c = 1
|
1010
|
-
while c <= a:0
|
1011
|
-
let str .= " " . s:rquote(expand(a:{c}))
|
1012
|
-
let c += 1
|
1013
|
-
endwhile
|
1014
|
-
let dir = expand(dir)
|
1015
|
-
let append = ""
|
1013
|
+
let args = map(copy(a:000),'expand(v:val)')
|
1016
1014
|
if a:bang
|
1017
|
-
let
|
1018
|
-
endif
|
1019
|
-
exe "!rails".append.str
|
1020
|
-
if filereadable(dir."/".g:rails_default_file)
|
1021
|
-
edit `=dir.'/'.g:rails_default_file`
|
1015
|
+
let args = ['--force'] + args
|
1022
1016
|
endif
|
1017
|
+
exe '!rails '.join(map(copy(args),'s:rquote(v:val)'),' ')
|
1018
|
+
for dir in args
|
1019
|
+
if dir !~# '^-' && filereadable(dir.'/'.g:rails_default_file)
|
1020
|
+
edit `=dir.'/'.g:rails_default_file`
|
1021
|
+
return
|
1022
|
+
endif
|
1023
|
+
endfor
|
1023
1024
|
endfunction
|
1024
1025
|
|
1025
1026
|
function! s:app_tags_command() dict
|
@@ -1029,6 +1030,8 @@ function! s:app_tags_command() dict
|
|
1029
1030
|
let cmd = "exuberant-ctags"
|
1030
1031
|
elseif executable("ctags-exuberant")
|
1031
1032
|
let cmd = "ctags-exuberant"
|
1033
|
+
elseif executable("exctags")
|
1034
|
+
let cmd = "exctags"
|
1032
1035
|
elseif executable("ctags")
|
1033
1036
|
let cmd = "ctags"
|
1034
1037
|
elseif executable("ctags.exe")
|
@@ -1108,6 +1111,8 @@ let s:efm_backtrace='%D(in\ %f),'
|
|
1108
1111
|
\.'%\\s%#from\ %f:%l:%m,'
|
1109
1112
|
\.'%\\s%#from\ %f:%l:,'
|
1110
1113
|
\.'%\\s#{RAILS_ROOT}/%f:%l:\ %#%m,'
|
1114
|
+
\.'%\\s%##\ %f:%l:%m,'
|
1115
|
+
\.'%\\s%##\ %f:%l,'
|
1111
1116
|
\.'%\\s%#[%f:%l:\ %#%m,'
|
1112
1117
|
\.'%\\s%#%f:%l:\ %#%m,'
|
1113
1118
|
\.'%\\s%#%f:%l:,'
|
@@ -1132,7 +1137,9 @@ function! s:Rake(bang,lnum,arg)
|
|
1132
1137
|
let old_makeprg = &l:makeprg
|
1133
1138
|
let old_errorformat = &l:errorformat
|
1134
1139
|
try
|
1135
|
-
if
|
1140
|
+
if exists('b:bundler_root') && b:bundler_root ==# rails#app().path()
|
1141
|
+
let &l:makeprg = 'bundle exec rake'
|
1142
|
+
else
|
1136
1143
|
let &l:makeprg = 'rake'
|
1137
1144
|
endif
|
1138
1145
|
let &l:errorformat = s:efm_backtrace
|
@@ -1267,9 +1274,9 @@ function! s:readable_default_rake_task(lnum) dict abort
|
|
1267
1274
|
let ver = matchstr(self.name(),'\<db/migrate/0*\zs\d*\ze_')
|
1268
1275
|
if ver != ""
|
1269
1276
|
let method = self.last_method(lnum)
|
1270
|
-
if method == "down"
|
1277
|
+
if method == "down" || lnum == 1
|
1271
1278
|
return "db:migrate:down VERSION=".ver
|
1272
|
-
elseif method == "up"
|
1279
|
+
elseif method == "up" || lnum == line('$')
|
1273
1280
|
return "db:migrate:up VERSION=".ver
|
1274
1281
|
elseif lnum > 0
|
1275
1282
|
return "db:migrate:down db:migrate:up VERSION=".ver
|
@@ -1374,6 +1381,10 @@ function! s:readable_preview_urls(lnum) dict abort
|
|
1374
1381
|
let urls = urls + [s:sub(s:sub(self.name(),'^public/stylesheets/sass/','/stylesheets/'),'\.s[ac]ss$','.css')]
|
1375
1382
|
elseif self.name() =~ '^public/'
|
1376
1383
|
let urls = urls + [s:sub(self.name(),'^public','')]
|
1384
|
+
elseif self.name() =~ '^app/assets/stylesheets/'
|
1385
|
+
let urls = urls + ['/assets/application.css']
|
1386
|
+
elseif self.name() =~ '^app/assets/javascripts/'
|
1387
|
+
let urls = urls + ['/assets/application.js']
|
1377
1388
|
elseif self.name() =~ '^app/stylesheets/'
|
1378
1389
|
let urls = urls + [s:sub(s:sub(self.name(),'^app/stylesheets/','/stylesheets/'),'\.less$','.css')]
|
1379
1390
|
elseif self.name() =~ '^app/scripts/'
|
@@ -1679,19 +1690,19 @@ endfunction
|
|
1679
1690
|
function! s:BufNavCommands()
|
1680
1691
|
command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rcd :cd `=rails#app().path(<q-args>)`
|
1681
1692
|
command! -buffer -bar -nargs=? -complete=customlist,s:Complete_cd Rlcd :lcd `=rails#app().path(<q-args>)`
|
1682
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rfind :call s:Find(<count>,'<bang>' ,<f-args>)
|
1683
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find REfind :call s:Find(<count>,'E<bang>',<f-args>)
|
1684
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RSfind :call s:Find(<count>,'S<bang>',<f-args>)
|
1685
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RVfind :call s:Find(<count>,'V<bang>',<f-args>)
|
1686
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RTfind :call s:Find(<count>,'T<bang>',<f-args>)
|
1687
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rsfind
|
1688
|
-
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rtabfind
|
1689
|
-
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit Redit :call s:Edit(<count>,'<bang>' ,<f-args>)
|
1690
|
-
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit REedit :call s:Edit(<count>,'E<bang>',<f-args>)
|
1691
|
-
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RSedit :call s:Edit(<count>,'S<bang>',<f-args>)
|
1692
|
-
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RVedit :call s:Edit(<count>,'V<bang>',<f-args>)
|
1693
|
-
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RTedit :call s:Edit(<count>,'T<bang>',<f-args>)
|
1694
|
-
command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_edit RDedit :call s:Edit(<count>,'<line1>D<bang>',<f-args>)
|
1693
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rfind :call s:warn( 'Rfind has been deprecated in favor of :1R or :find' )|call s:Find(<count>,'<bang>' ,<f-args>)
|
1694
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find REfind :call s:warn('REfind has been deprecated in favor of :1RE or :find')|call s:Find(<count>,'E<bang>',<f-args>)
|
1695
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RSfind :call s:warn('RSfind has been deprecated in favor of :1RS or :find')|call s:Find(<count>,'S<bang>',<f-args>)
|
1696
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RVfind :call s:warn('RVfind has been deprecated in favor of :1RV or :find')|call s:Find(<count>,'V<bang>',<f-args>)
|
1697
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find RTfind :call s:warn('RTfind has been deprecated in favor of :1RT or :find')|call s:Find(<count>,'T<bang>',<f-args>)
|
1698
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rsfind :call s:warn('Rsfind has been deprecated in favor of :1RS or :sfind')|<count>RSfind<bang> <args>
|
1699
|
+
command! -buffer -bar -nargs=* -count=1 -complete=customlist,s:Complete_find Rtabfind :call s:warn('Rtabfind has been deprecated in favor of :1RT or :tabfind')|<count>RTfind<bang> <args>
|
1700
|
+
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit Redit :call s:warn( 'Redit has been deprecated in favor of :R')|call s:Edit(<count>,'<bang>' ,<f-args>)
|
1701
|
+
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit REedit :call s:warn('REedit has been deprecated in favor of :RE')|call s:Edit(<count>,'E<bang>',<f-args>)
|
1702
|
+
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RSedit :call s:warn('RSedit has been deprecated in favor of :RS')|call s:Edit(<count>,'S<bang>',<f-args>)
|
1703
|
+
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RVedit :call s:warn('RVedit has been deprecated in favor of :RV')|call s:Edit(<count>,'V<bang>',<f-args>)
|
1704
|
+
command! -buffer -bar -nargs=* -bang -complete=customlist,s:Complete_edit RTedit :call s:warn('RTedit has been deprecated in favor of :RT')|call s:Edit(<count>,'T<bang>',<f-args>)
|
1705
|
+
command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_edit RDedit :call s:warn('RDedit has been deprecated in favor of :RD')|call s:Edit(<count>,'<line1>D<bang>',<f-args>)
|
1695
1706
|
command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related A :call s:Alternate('<bang>', <line1>,<line2>,<count>,<f-args>)
|
1696
1707
|
command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AE :call s:Alternate('E<bang>',<line1>,<line2>,<count>,<f-args>)
|
1697
1708
|
command! -buffer -bar -nargs=* -range=0 -complete=customlist,s:Complete_related AS :call s:Alternate('S<bang>',<line1>,<line2>,<count>,<f-args>)
|
@@ -1788,8 +1799,7 @@ function! s:Complete_find(ArgLead, CmdLine, CursorPos)
|
|
1788
1799
|
endfor
|
1789
1800
|
endif
|
1790
1801
|
endfor
|
1791
|
-
|
1792
|
-
return s:autocamelize(results,a:ArgLead)
|
1802
|
+
return s:autocamelize(sort(keys(seen)),a:ArgLead)
|
1793
1803
|
endfunction
|
1794
1804
|
|
1795
1805
|
function! s:Complete_edit(ArgLead, CmdLine, CursorPos)
|
@@ -1846,7 +1856,7 @@ function! s:findamethod(func,repl)
|
|
1846
1856
|
endfunction
|
1847
1857
|
|
1848
1858
|
function! s:findasymbol(sym,repl)
|
1849
|
-
return s:findit('\s
|
1859
|
+
return s:findit('\s*\%(:\%('.a:sym.'\)\s*=>\|\<'.a:sym.':\)\s*(\=\s*[@:'."'".'"]\(\f\+\)\>.\=',a:repl)
|
1850
1860
|
endfunction
|
1851
1861
|
|
1852
1862
|
function! s:findfromview(func,repl)
|
@@ -1901,10 +1911,10 @@ function! s:RailsFind()
|
|
1901
1911
|
let res = s:findasymbol('to','app/controllers/\1')
|
1902
1912
|
if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif
|
1903
1913
|
|
1904
|
-
let res = s:findamethod('root\s
|
1914
|
+
let res = s:findamethod('root\s*\%(:to\s*=>\|\<to:\)\s*','app/controllers/\1')
|
1905
1915
|
if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif
|
1906
1916
|
|
1907
|
-
let res = s:findamethod('\%(match\|get\|put\|post\|delete\|redirect\)\s*(\=\s*[:''"][^''"]*[''"]\=\s*\%(,\s*:to\s*\)
|
1917
|
+
let res = s:findamethod('\%(match\|get\|put\|post\|delete\|redirect\)\s*(\=\s*[:''"][^''"]*[''"]\=\s*\%(\%(,\s*:to\s*\)\==>\|,\s*to:\)\s*','app/controllers/\1')
|
1908
1918
|
if res =~ '#'|return s:sub(res,'#','_controller.rb#')|endif
|
1909
1919
|
|
1910
1920
|
let res = s:findamethod('layout','\=s:findlayout(submatch(1))')
|
@@ -1925,20 +1935,20 @@ function! s:RailsFind()
|
|
1925
1935
|
let res = s:findasymbol('template','app/views/\1')
|
1926
1936
|
if res != ""|return res|endif
|
1927
1937
|
|
1928
|
-
let res = s:sub(s:sub(s:findasymbol('partial','\1'),'^/',''),'
|
1938
|
+
let res = s:sub(s:sub(s:findasymbol('partial','\1'),'^/',''),'[^/]+$','_&')
|
1929
1939
|
if res != ""|return res."\n".s:findview(res)|endif
|
1930
1940
|
|
1931
|
-
let res = s:sub(s:sub(s:findfromview('render\s*(\=\s
|
1941
|
+
let res = s:sub(s:sub(s:findfromview('render\s*(\=\s*\%(:partial\s\+=>\|partial:\)\s*','\1'),'^/',''),'[^/]+$','_&')
|
1932
1942
|
if res != ""|return res."\n".s:findview(res)|endif
|
1933
1943
|
|
1934
|
-
let res = s:findamethod('render
|
1944
|
+
let res = s:findamethod('render\>\s*\%(:\%(template\|action\)\s\+=>\|template:\|action:\)\s*','\1.'.format.'\n\1')
|
1935
1945
|
if res != ""|return res|endif
|
1936
1946
|
|
1937
1947
|
let res = s:sub(s:findfromview('render','\1'),'^/','')
|
1938
1948
|
if buffer.type_name('view') | let res = s:sub(res,'[^/]+$','_&') | endif
|
1939
1949
|
if res != ""|return res."\n".s:findview(res)|endif
|
1940
1950
|
|
1941
|
-
let res = s:findamethod('redirect_to\s*(\=\s
|
1951
|
+
let res = s:findamethod('redirect_to\s*(\=\s*\%\(:action\s\+=>\|\<action:\)\s*','\1')
|
1942
1952
|
if res != ""|return res|endif
|
1943
1953
|
|
1944
1954
|
let res = s:findfromview('stylesheet_link_tag','public/stylesheets/\1')
|
@@ -2033,7 +2043,7 @@ function! s:RailsIncludefind(str,...)
|
|
2033
2043
|
" Classes should always be in .rb files
|
2034
2044
|
let str .= '.rb'
|
2035
2045
|
elseif line =~# ':partial\s*=>\s*'
|
2036
|
-
let str = s:sub(str,'
|
2046
|
+
let str = s:sub(str,'[^/]+$','_&')
|
2037
2047
|
let str = s:findview(str)
|
2038
2048
|
elseif line =~# '\<layout\s*(\=\s*' || line =~# ':layout\s*=>\s*'
|
2039
2049
|
let str = s:findview(s:sub(str,'^/=','layouts/'))
|
@@ -2124,6 +2134,7 @@ function! s:BufFinderCommands()
|
|
2124
2134
|
call s:addfilecmds("controller")
|
2125
2135
|
call s:addfilecmds("mailer")
|
2126
2136
|
call s:addfilecmds("migration")
|
2137
|
+
call s:addfilecmds("schema")
|
2127
2138
|
call s:addfilecmds("observer")
|
2128
2139
|
call s:addfilecmds("helper")
|
2129
2140
|
call s:addfilecmds("layout")
|
@@ -2229,11 +2240,21 @@ function! s:layoutList(A,L,P)
|
|
2229
2240
|
endfunction
|
2230
2241
|
|
2231
2242
|
function! s:stylesheetList(A,L,P)
|
2232
|
-
|
2243
|
+
let list = rails#app().relglob('app/assets/stylesheets/','**/*.*','')
|
2244
|
+
call map(list,'s:sub(v:val,"\\..*$","")')
|
2245
|
+
let list += rails#app().relglob('public/stylesheets/','**/*','.css')
|
2246
|
+
if rails#app().has('sass')
|
2247
|
+
call extend(list,rails#app().relglob('public/stylesheets/sass/','**/*','.s?ss'))
|
2248
|
+
call s:uniq(list)
|
2249
|
+
endif
|
2250
|
+
return s:completion_filter(list,a:A)
|
2233
2251
|
endfunction
|
2234
2252
|
|
2235
2253
|
function! s:javascriptList(A,L,P)
|
2236
|
-
|
2254
|
+
let list = rails#app().relglob('app/assets/javascripts/','**/*.*','')
|
2255
|
+
call map(list,'s:sub(v:val,"\\..*$","")')
|
2256
|
+
let list += rails#app().relglob("public/javascripts/","**/*",".js")
|
2257
|
+
return s:completion_filter(list,a:A)
|
2237
2258
|
endfunction
|
2238
2259
|
|
2239
2260
|
function! s:metalList(A,L,P)
|
@@ -2269,6 +2290,14 @@ function! s:migrationList(A,L,P)
|
|
2269
2290
|
endif
|
2270
2291
|
endfunction
|
2271
2292
|
|
2293
|
+
function! s:schemaList(A,L,P)
|
2294
|
+
let tables = s:readfile(rails#app().path('db/schema.rb'))
|
2295
|
+
let table_re = '^\s\+create_table\s["'':]\zs[^"'',]*\ze'
|
2296
|
+
call map(tables,'matchstr(v:val, table_re)')
|
2297
|
+
call filter(tables,'strlen(v:val)')
|
2298
|
+
return s:autocamelize(tables, a:A)
|
2299
|
+
endfunction
|
2300
|
+
|
2272
2301
|
function! s:unittestList(A,L,P)
|
2273
2302
|
let found = []
|
2274
2303
|
if rails#app().has('test')
|
@@ -2471,11 +2500,18 @@ function! s:app_migration(file) dict
|
|
2471
2500
|
else
|
2472
2501
|
let glob = '*'.rails#underscore(arg).'*rb'
|
2473
2502
|
endif
|
2474
|
-
let
|
2475
|
-
if
|
2476
|
-
|
2503
|
+
let files = split(glob(self.path('db/migrate/').glob),"\n")
|
2504
|
+
if arg == ''
|
2505
|
+
return get(files,-1,'')
|
2477
2506
|
endif
|
2478
|
-
|
2507
|
+
call map(files,'strpart(v:val,1+strlen(self.path()))')
|
2508
|
+
let keep = get(files,0,'')
|
2509
|
+
if glob =~# '^\*.*\*rb'
|
2510
|
+
let pattern = glob[1:-4]
|
2511
|
+
call filter(files,'v:val =~# ''db/migrate/\d\+_''.pattern.''\.rb''')
|
2512
|
+
let keep = get(files,0,keep)
|
2513
|
+
endif
|
2514
|
+
return keep
|
2479
2515
|
endfunction
|
2480
2516
|
|
2481
2517
|
call s:add_methods('app', ['migration'])
|
@@ -2491,6 +2527,15 @@ function! s:migrationEdit(cmd,...)
|
|
2491
2527
|
endif
|
2492
2528
|
endfunction
|
2493
2529
|
|
2530
|
+
function! s:schemaEdit(cmd,...)
|
2531
|
+
let cmd = s:findcmdfor(a:cmd)
|
2532
|
+
let schema = 'db/'.s:environment().'_structure.sql'
|
2533
|
+
if rails#app().has_file('db/schema.rb') || !rails#app().has_file(schema)
|
2534
|
+
let schema = 'db/schema.rb'
|
2535
|
+
endif
|
2536
|
+
call s:findedit(cmd,schema.(a:0 ? '#'.a:1 : ''))
|
2537
|
+
endfunction
|
2538
|
+
|
2494
2539
|
function! s:fixturesEdit(cmd,...)
|
2495
2540
|
if a:0
|
2496
2541
|
let c = rails#underscore(a:1)
|
@@ -2591,7 +2636,7 @@ function! s:findview(name)
|
|
2591
2636
|
return pre.name
|
2592
2637
|
else
|
2593
2638
|
for format in ['.'.s:format('html'), '']
|
2594
|
-
for type in
|
2639
|
+
for type in s:view_types
|
2595
2640
|
if self.app().has_file(pre.name.format.'.'.type)
|
2596
2641
|
return pre.name.format.'.'.type
|
2597
2642
|
endif
|
@@ -2652,7 +2697,12 @@ function! s:stylesheetEdit(cmd,...)
|
|
2652
2697
|
elseif rails#app().has('lesscss') && rails#app().has_file('app/stylesheets/'.name.'.less')
|
2653
2698
|
return s:EditSimpleRb(a:cmd,"stylesheet",name,"app/stylesheets/",".less",1)
|
2654
2699
|
else
|
2655
|
-
|
2700
|
+
let types = rails#app().relglob('app/assets/stylesheets/'.name,'.*','')
|
2701
|
+
if !empty(types)
|
2702
|
+
return s:EditSimpleRb(a:cmd,'stylesheet',name,'app/assets/stylesheets/',types[0],1)
|
2703
|
+
else
|
2704
|
+
return s:EditSimpleRb(a:cmd,'stylesheet',name,'public/stylesheets/','.css',1)
|
2705
|
+
endif
|
2656
2706
|
endif
|
2657
2707
|
endfunction
|
2658
2708
|
|
@@ -2663,7 +2713,12 @@ function! s:javascriptEdit(cmd,...)
|
|
2663
2713
|
elseif rails#app().has('coffee') && rails#app().has_file('app/scripts/'.name.'.js')
|
2664
2714
|
return s:EditSimpleRb(a:cmd,'javascript',name,'app/scripts/','.js',1)
|
2665
2715
|
else
|
2666
|
-
|
2716
|
+
let types = rails#app().relglob('app/assets/javascripts/'.name,'.*','')
|
2717
|
+
if !empty(types)
|
2718
|
+
return s:EditSimpleRb(a:cmd,'javascript',name,'app/assets/javascripts/',types[0],1)
|
2719
|
+
else
|
2720
|
+
return s:EditSimpleRb(a:cmd,'javascript',name,'public/javascripts/','.js',1)
|
2721
|
+
endif
|
2667
2722
|
endif
|
2668
2723
|
endfunction
|
2669
2724
|
|
@@ -3023,6 +3078,10 @@ function! s:readable_related(...) dict abort
|
|
3023
3078
|
return "config/application.rb\nconfig/environment.rb"
|
3024
3079
|
elseif f =~ '\<config/\%(application\|environment\)\.rb$'
|
3025
3080
|
return "config/database.yml"
|
3081
|
+
elseif f ==# 'Gemfile'
|
3082
|
+
return 'Gemfile.lock'
|
3083
|
+
elseif f ==# 'Gemfile.lock'
|
3084
|
+
return 'Gemfile'
|
3026
3085
|
elseif f =~ '\<db/migrate/'
|
3027
3086
|
let migrations = sort(self.app().relglob('db/migrate/','*','.rb'))
|
3028
3087
|
let me = matchstr(f,'\<db/migrate/\zs.*\ze\.rb$')
|
@@ -3309,9 +3368,9 @@ function! s:invertrange(beg,end)
|
|
3309
3368
|
endif
|
3310
3369
|
let add .= s:mkeep(line)
|
3311
3370
|
elseif line =~ '\<remove_index\>'
|
3312
|
-
let add = s:sub(s:sub(line,'<remove_index','add_index'),':column\s
|
3313
|
-
elseif line =~ '\<rename_\%(table\|column\)\>'
|
3314
|
-
let add = s:sub(line,'<rename_%(table\s*\(=\s
|
3371
|
+
let add = s:sub(s:sub(line,'<remove_index','add_index'),':column\s*\=\>\s*','')
|
3372
|
+
elseif line =~ '\<rename_\%(table\|column\|index\)\>'
|
3373
|
+
let add = s:sub(line,'<rename_%(table\s*\(=\s*|%(column|index)\s*\(=\s*[^,]*,\s*)\zs([^,]*)(,\s*)([^,]*)','\3\2\1')
|
3315
3374
|
elseif line =~ '\<change_column\>'
|
3316
3375
|
let add = s:migspc(line).'change_column'.s:mextargs(line,2).s:mkeep(line)
|
3317
3376
|
elseif line =~ '\<change_column_default\>'
|
@@ -3435,26 +3494,26 @@ endfunction
|
|
3435
3494
|
|
3436
3495
|
function! s:helpermethods()
|
3437
3496
|
return ""
|
3438
|
-
\."atom_feed audio_path audio_tag auto_discovery_link_tag
|
3439
|
-
\."button_to button_to_function "
|
3440
|
-
\."cache capture cdata_section check_box check_box_tag collection_select concat content_for content_tag content_tag_for csrf_meta_tag current_cycle cycle "
|
3441
|
-
\."date_select datetime_select debug distance_of_time_in_words distance_of_time_in_words_to_now div_for dom_class dom_id
|
3442
|
-
\."email_field email_field_tag
|
3443
|
-
\."favicon_link_tag field_set_tag fields_for file_field file_field_tag
|
3497
|
+
\."action_name atom_feed audio_path audio_tag auto_discovery_link_tag "
|
3498
|
+
\."button_tag button_to button_to_function "
|
3499
|
+
\."cache capture cdata_section check_box check_box_tag collection_select concat content_for content_tag content_tag_for controller controller_name controller_path convert_to_model cookies csrf_meta_tag csrf_meta_tags current_cycle cycle "
|
3500
|
+
\."date_select datetime_select debug distance_of_time_in_words distance_of_time_in_words_to_now div_for dom_class dom_id "
|
3501
|
+
\."email_field email_field_tag escape_javascript escape_once excerpt "
|
3502
|
+
\."favicon_link_tag field_set_tag fields_for file_field file_field_tag flash form_for form_tag "
|
3444
3503
|
\."grouped_collection_select grouped_options_for_select "
|
3445
|
-
\."hidden_field hidden_field_tag highlight "
|
3446
|
-
\."image_path image_submit_tag image_tag
|
3447
|
-
\."javascript_cdata_section javascript_include_tag javascript_path javascript_tag "
|
3448
|
-
\."l label label_tag link_to link_to_function link_to_if link_to_unless link_to_unless_current localize "
|
3504
|
+
\."headers hidden_field hidden_field_tag highlight "
|
3505
|
+
\."image_alt image_path image_submit_tag image_tag "
|
3506
|
+
\."j javascript_cdata_section javascript_include_tag javascript_path javascript_tag "
|
3507
|
+
\."l label label_tag link_to link_to_function link_to_if link_to_unless link_to_unless_current localize logger "
|
3449
3508
|
\."mail_to "
|
3450
3509
|
\."number_field number_field_tag number_to_currency number_to_human number_to_human_size number_to_percentage number_to_phone number_with_delimiter number_with_precision "
|
3451
3510
|
\."option_groups_from_collection_for_select options_for_select options_from_collection_for_select "
|
3452
|
-
\."password_field password_field_tag path_to_audio path_to_image path_to_javascript path_to_stylesheet path_to_video phone_field phone_field_tag pluralize "
|
3453
|
-
\."radio_button radio_button_tag range_field range_field_tag raw
|
3454
|
-
\."safe_concat sanitize sanitize_css search_field search_field_tag select select_date select_datetime select_day select_hour select_minute select_month select_second select_tag select_time select_year simple_format
|
3455
|
-
\."t tag telephone_field telephone_field_tag text_area text_area_tag text_field text_field_tag time_ago_in_words time_select time_zone_options_for_select time_zone_select translate truncate "
|
3456
|
-
\."
|
3457
|
-
\."video_path video_tag
|
3511
|
+
\."params password_field password_field_tag path_to_audio path_to_image path_to_javascript path_to_stylesheet path_to_video phone_field phone_field_tag pluralize provide "
|
3512
|
+
\."radio_button radio_button_tag range_field range_field_tag raw render request request_forgery_protection_token reset_cycle response "
|
3513
|
+
\."safe_concat safe_join sanitize sanitize_css search_field search_field_tag select select_date select_datetime select_day select_hour select_minute select_month select_second select_tag select_time select_year session simple_format strip_links strip_tags stylesheet_link_tag stylesheet_path submit_tag "
|
3514
|
+
\."t tag telephone_field telephone_field_tag text_area text_area_tag text_field text_field_tag time_ago_in_words time_select time_tag time_zone_options_for_select time_zone_select translate truncate "
|
3515
|
+
\."url_field url_field_tag url_for url_options "
|
3516
|
+
\."video_path video_tag "
|
3458
3517
|
\."word_wrap"
|
3459
3518
|
endfunction
|
3460
3519
|
|
@@ -3509,7 +3568,7 @@ function! s:BufSyntax()
|
|
3509
3568
|
syn keyword rubyRailsARCallbackMethod after_create after_destroy after_save after_update after_validation after_validation_on_create after_validation_on_update
|
3510
3569
|
syn keyword rubyRailsARCallbackMethod around_create around_destroy around_save around_update
|
3511
3570
|
syn keyword rubyRailsARCallbackMethod after_commit after_find after_initialize after_rollback after_touch
|
3512
|
-
syn keyword rubyRailsARClassMethod attr_accessible attr_protected establish_connection set_inheritance_column set_locking_column set_primary_key set_sequence_name set_table_name
|
3571
|
+
syn keyword rubyRailsARClassMethod attr_accessible attr_protected attr_readonly establish_connection set_inheritance_column set_locking_column set_primary_key set_sequence_name set_table_name
|
3513
3572
|
syn keyword rubyRailsARValidationMethod validate validates validate_on_create validate_on_update validates_acceptance_of validates_associated validates_confirmation_of validates_each validates_exclusion_of validates_format_of validates_inclusion_of validates_length_of validates_numericality_of validates_presence_of validates_size_of validates_uniqueness_of
|
3514
3573
|
syn keyword rubyRailsMethod logger
|
3515
3574
|
endif
|
@@ -3521,28 +3580,27 @@ function! s:BufSyntax()
|
|
3521
3580
|
syn keyword rubyRailsRenderMethod mail render
|
3522
3581
|
syn keyword rubyRailsControllerMethod attachments default helper helper_attr helper_method
|
3523
3582
|
endif
|
3524
|
-
if buffer.type_name('controller','view','helper')
|
3525
|
-
syn keyword rubyRailsMethod params request response session headers cookies flash
|
3526
|
-
syn keyword rubyRailsRenderMethod render
|
3527
|
-
syn keyword rubyRailsMethod logger polymorphic_path polymorphic_url
|
3528
|
-
endif
|
3529
3583
|
if buffer.type_name('helper','view')
|
3584
|
+
syn keyword rubyRailsViewMethod polymorphic_path polymorphic_url
|
3530
3585
|
exe "syn keyword rubyRailsHelperMethod ".s:gsub(s:helpermethods(),'<%(content_for|select)\s+','')
|
3531
3586
|
syn match rubyRailsHelperMethod '\<select\>\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!'
|
3532
3587
|
syn match rubyRailsHelperMethod '\<\%(content_for?\=\|current_page?\)'
|
3533
|
-
syn match rubyRailsViewMethod '\.\@<!\<\(h\|html_escape\|u\|url_encode
|
3588
|
+
syn match rubyRailsViewMethod '\.\@<!\<\(h\|html_escape\|u\|url_encode\)\>'
|
3534
3589
|
if buffer.type_name('view-partial')
|
3535
3590
|
syn keyword rubyRailsMethod local_assigns
|
3536
3591
|
endif
|
3537
3592
|
elseif buffer.type_name('controller')
|
3593
|
+
syn keyword rubyRailsMethod params request response session headers cookies flash
|
3594
|
+
syn keyword rubyRailsRenderMethod render
|
3595
|
+
syn keyword rubyRailsMethod logger polymorphic_path polymorphic_url
|
3538
3596
|
syn keyword rubyRailsControllerMethod helper helper_attr helper_method filter layout url_for serialize exempt_from_layout filter_parameter_logging hide_action cache_sweeper protect_from_forgery caches_page cache_page caches_action expire_page expire_action rescue_from
|
3539
3597
|
syn keyword rubyRailsRenderMethod head redirect_to render_to_string respond_with
|
3540
3598
|
syn match rubyRailsRenderMethod '\<respond_to\>?\@!'
|
3541
|
-
syn keyword rubyRailsFilterMethod before_filter append_before_filter prepend_before_filter after_filter append_after_filter prepend_after_filter around_filter append_around_filter prepend_around_filter skip_before_filter skip_after_filter
|
3599
|
+
syn keyword rubyRailsFilterMethod before_filter append_before_filter prepend_before_filter after_filter append_after_filter prepend_after_filter around_filter append_around_filter prepend_around_filter skip_before_filter skip_after_filter skip_filter
|
3542
3600
|
syn keyword rubyRailsFilterMethod verify
|
3543
3601
|
endif
|
3544
3602
|
if buffer.type_name('db-migration','db-schema')
|
3545
|
-
syn keyword rubyRailsMigrationMethod create_table change_table drop_table rename_table add_column rename_column change_column change_column_default remove_column add_index remove_index
|
3603
|
+
syn keyword rubyRailsMigrationMethod create_table change_table drop_table rename_table add_column rename_column change_column change_column_default remove_column add_index remove_index rename_index execute
|
3546
3604
|
endif
|
3547
3605
|
if buffer.type_name('test')
|
3548
3606
|
if !empty(rails#app().user_assertions())
|
@@ -3556,13 +3614,13 @@ function! s:BufSyntax()
|
|
3556
3614
|
syn keyword rubyRailsTestControllerMethod assert_response assert_redirected_to assert_template assert_recognizes assert_generates assert_routing assert_dom_equal assert_dom_not_equal assert_select assert_select_rjs assert_select_encoded assert_select_email assert_tag assert_no_tag
|
3557
3615
|
endif
|
3558
3616
|
elseif buffer.type_name('spec')
|
3559
|
-
syn keyword rubyRailsTestMethod describe context it its specify shared_examples_for it_should_behave_like before after subject fixtures controller_name helper_name
|
3617
|
+
syn keyword rubyRailsTestMethod describe context it its specify shared_examples_for it_should_behave_like before after around subject fixtures controller_name helper_name scenario feature background
|
3560
3618
|
syn match rubyRailsTestMethod '\<let\>!\='
|
3561
3619
|
syn keyword rubyRailsTestMethod violated pending expect double mock mock_model stub_model
|
3562
3620
|
syn match rubyRailsTestMethod '\.\@<!\<stub\>!\@!'
|
3563
3621
|
if !buffer.type_name('spec-model')
|
3564
3622
|
syn match rubyRailsTestControllerMethod '\.\@<!\<\%(get\|post\|put\|delete\|head\|process\|assigns\)\>'
|
3565
|
-
syn keyword rubyRailsTestControllerMethod integrate_views
|
3623
|
+
syn keyword rubyRailsTestControllerMethod integrate_views render_views
|
3566
3624
|
syn keyword rubyRailsMethod params request response session flash
|
3567
3625
|
syn keyword rubyRailsMethod polymorphic_path polymorphic_url
|
3568
3626
|
endif
|
@@ -3580,7 +3638,7 @@ function! s:BufSyntax()
|
|
3580
3638
|
syn keyword rubyRailsMethod debugger
|
3581
3639
|
syn keyword rubyRailsMethod alias_attribute alias_method_chain attr_accessor_with_default attr_internal attr_internal_accessor attr_internal_reader attr_internal_writer delegate mattr_accessor mattr_reader mattr_writer superclass_delegating_accessor superclass_delegating_reader superclass_delegating_writer
|
3582
3640
|
syn keyword rubyRailsMethod cattr_accessor cattr_reader cattr_writer class_inheritable_accessor class_inheritable_array class_inheritable_array_writer class_inheritable_hash class_inheritable_hash_writer class_inheritable_option class_inheritable_reader class_inheritable_writer inheritable_attributes read_inheritable_attribute reset_inheritable_attributes write_inheritable_array write_inheritable_attribute write_inheritable_hash
|
3583
|
-
syn keyword rubyRailsInclude require_dependency
|
3641
|
+
syn keyword rubyRailsInclude require_dependency
|
3584
3642
|
|
3585
3643
|
syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<="+ skip=+\\\\\|\\"+ end=+"+ contains=@rubyStringSpecial,railsOrderSpecial
|
3586
3644
|
syn region rubyString matchgroup=rubyStringDelimiter start=+\%(:order\s*=>\s*\)\@<='+ skip=+\\\\\|\\'+ end=+'+ contains=@rubyStringSpecial,railsOrderSpecial
|
@@ -3610,7 +3668,7 @@ function! s:BufSyntax()
|
|
3610
3668
|
syn cluster htmlArgCluster add=@rubyStringSpecial
|
3611
3669
|
syn cluster htmlPreProc add=@rubyStringSpecial
|
3612
3670
|
|
3613
|
-
elseif &syntax
|
3671
|
+
elseif &syntax =~# '^eruby\>' || &syntax == 'haml'
|
3614
3672
|
syn case match
|
3615
3673
|
if classes != ''
|
3616
3674
|
exe 'syn keyword '.&syntax.'RailsUserClass '.classes.' contained containedin=@'.&syntax.'RailsRegions'
|
@@ -3623,9 +3681,8 @@ function! s:BufSyntax()
|
|
3623
3681
|
exe 'syn keyword '.&syntax.'RailsHelperMethod '.s:gsub(s:helpermethods(),'<%(content_for|select)\s+','').' contained containedin=@'.&syntax.'RailsRegions'
|
3624
3682
|
exe 'syn match '.&syntax.'RailsHelperMethod "\<select\>\%(\s*{\|\s*do\>\|\s*(\=\s*&\)\@!" contained containedin=@'.&syntax.'RailsRegions'
|
3625
3683
|
exe 'syn match '.&syntax.'RailsHelperMethod "\<\%(content_for?\=\|current_page?\)" contained containedin=@'.&syntax.'RailsRegions'
|
3626
|
-
exe 'syn keyword '.&syntax.'RailsMethod debugger
|
3627
|
-
exe 'syn
|
3628
|
-
exe 'syn match '.&syntax.'RailsViewMethod "\.\@<!\<\(h\|html_escape\|u\|url_encode\|controller\)\>" contained containedin=@'.&syntax.'RailsRegions'
|
3684
|
+
exe 'syn keyword '.&syntax.'RailsMethod debugger polymorphic_path polymorphic_url contained containedin=@'.&syntax.'RailsRegions'
|
3685
|
+
exe 'syn match '.&syntax.'RailsViewMethod "\.\@<!\<\(h\|html_escape\|u\|url_encode\)\>" contained containedin=@'.&syntax.'RailsRegions'
|
3629
3686
|
if buffer.type_name('view-partial')
|
3630
3687
|
exe 'syn keyword '.&syntax.'RailsMethod local_assigns contained containedin=@'.&syntax.'RailsRegions'
|
3631
3688
|
endif
|
@@ -3642,10 +3699,10 @@ function! s:BufSyntax()
|
|
3642
3699
|
syn include @rubyTop syntax/ruby.vim
|
3643
3700
|
unlet g:main_syntax
|
3644
3701
|
syn cluster yamlRailsRegions contains=yamlRailsOneLiner,yamlRailsBlock,yamlRailsExpression
|
3645
|
-
syn region yamlRailsOneLiner matchgroup=yamlRailsDelimiter start="^%%\@!" end="$" contains=@rubyRailsTop
|
3646
|
-
syn region yamlRailsBlock matchgroup=yamlRailsDelimiter start="<%%\@!" end="%>" contains=@rubyTop
|
3647
|
-
syn region yamlRailsExpression matchgroup=yamlRailsDelimiter start="<%=" end="%>" contains=@rubyTop
|
3648
|
-
syn region yamlRailsComment matchgroup=yamlRailsDelimiter start="<%#" end="%>" contains=rubyTodo,@Spell
|
3702
|
+
syn region yamlRailsOneLiner matchgroup=yamlRailsDelimiter start="^%%\@!" end="$" contains=@rubyRailsTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend oneline
|
3703
|
+
syn region yamlRailsBlock matchgroup=yamlRailsDelimiter start="<%%\@!" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment
|
3704
|
+
syn region yamlRailsExpression matchgroup=yamlRailsDelimiter start="<%=" end="%>" contains=@rubyTop containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment
|
3705
|
+
syn region yamlRailsComment matchgroup=yamlRailsDelimiter start="<%#" end="%>" contains=rubyTodo,@Spell containedin=ALLBUT,@yamlRailsRegions,yamlRailsComment keepend
|
3649
3706
|
syn match yamlRailsMethod '\.\@<!\<\(h\|html_escape\|u\|url_encode\)\>' contained containedin=@yamlRailsRegions
|
3650
3707
|
if classes != ''
|
3651
3708
|
exe "syn keyword yamlRailsUserClass ".classes." contained containedin=@yamlRailsRegions"
|
@@ -3662,6 +3719,9 @@ function! s:BufSyntax()
|
|
3662
3719
|
set isk+=$
|
3663
3720
|
exe "syn keyword javascriptRailsFunction ".s:javascript_functions
|
3664
3721
|
|
3722
|
+
elseif &syntax == "scss" || &syntax == "sass"
|
3723
|
+
syn match sassFunction "\<\%(\%(asset\|image\|font\|video\|audio\|javascript\|stylesheet\)-\%(url\|path\)\)\>(\@=" contained
|
3724
|
+
syn match sassFunction "\<\asset-data-url\>(\@=" contained
|
3665
3725
|
endif
|
3666
3726
|
endif
|
3667
3727
|
call s:HiDefaults()
|
@@ -3763,101 +3823,14 @@ function! rails#log_syntax()
|
|
3763
3823
|
hi def link railslogHTTP Special
|
3764
3824
|
endfunction
|
3765
3825
|
|
3766
|
-
" }}}1
|
3767
|
-
" Statusline {{{1
|
3768
|
-
|
3769
|
-
function! s:addtostatus(letter,status)
|
3770
|
-
let status = a:status
|
3771
|
-
if status !~ 'rails' && g:rails_statusline
|
3772
|
-
let status=substitute(status,'\C%'.tolower(a:letter),'%'.tolower(a:letter).'%{rails#statusline()}','')
|
3773
|
-
if status !~ 'rails'
|
3774
|
-
let status=substitute(status,'\C%'.toupper(a:letter),'%'.toupper(a:letter).'%{rails#STATUSLINE()}','')
|
3775
|
-
endif
|
3776
|
-
endif
|
3777
|
-
return status
|
3778
|
-
endfunction
|
3779
|
-
|
3780
|
-
function! s:BufInitStatusline()
|
3781
|
-
if g:rails_statusline
|
3782
|
-
if &l:statusline == ''
|
3783
|
-
let &l:statusline = &g:statusline
|
3784
|
-
endif
|
3785
|
-
if &l:statusline == ''
|
3786
|
-
let &l:statusline='%<%f %h%m%r%='
|
3787
|
-
if &ruler
|
3788
|
-
let &l:statusline .= '%-14.(%l,%c%V%) %P'
|
3789
|
-
endif
|
3790
|
-
endif
|
3791
|
-
let &l:statusline = s:InjectIntoStatusline(&l:statusline)
|
3792
|
-
endif
|
3793
|
-
endfunction
|
3794
|
-
|
3795
|
-
function! s:InitStatusline()
|
3796
|
-
if g:rails_statusline
|
3797
|
-
if &g:statusline == ''
|
3798
|
-
let &g:statusline='%<%f %h%m%r%='
|
3799
|
-
if &ruler
|
3800
|
-
let &g:statusline .= '%-16( %l,%c-%v %)%P'
|
3801
|
-
endif
|
3802
|
-
endif
|
3803
|
-
let &g:statusline = s:InjectIntoStatusline(&g:statusline)
|
3804
|
-
endif
|
3805
|
-
endfunction
|
3806
|
-
|
3807
|
-
function! s:InjectIntoStatusline(status)
|
3808
|
-
let status = a:status
|
3809
|
-
if status !~ 'rails'
|
3810
|
-
let status = s:addtostatus('y',status)
|
3811
|
-
let status = s:addtostatus('r',status)
|
3812
|
-
let status = s:addtostatus('m',status)
|
3813
|
-
let status = s:addtostatus('w',status)
|
3814
|
-
let status = s:addtostatus('h',status)
|
3815
|
-
if status !~ 'rails'
|
3816
|
-
let status=substitute(status,'%=','%{rails#statusline()}%=','')
|
3817
|
-
endif
|
3818
|
-
if status !~ 'rails' && status != ''
|
3819
|
-
let status .= '%{rails#statusline()}'
|
3820
|
-
endif
|
3821
|
-
endif
|
3822
|
-
return status
|
3823
|
-
endfunction
|
3824
|
-
|
3825
|
-
function! rails#statusline(...)
|
3826
|
-
if exists("b:rails_root")
|
3827
|
-
let t = rails#buffer().type_name()
|
3828
|
-
if t != "" && a:0 && a:1
|
3829
|
-
return "[Rails-".t."]"
|
3830
|
-
else
|
3831
|
-
return "[Rails]"
|
3832
|
-
endif
|
3833
|
-
else
|
3834
|
-
return ""
|
3835
|
-
endif
|
3836
|
-
endfunction
|
3837
|
-
|
3838
|
-
function! rails#STATUSLINE(...)
|
3839
|
-
if exists("b:rails_root")
|
3840
|
-
let t = rails#buffer().type_name()
|
3841
|
-
if t != "" && a:0 && a:1
|
3842
|
-
return ",RAILS-".toupper(t)
|
3843
|
-
else
|
3844
|
-
return ",RAILS"
|
3845
|
-
endif
|
3846
|
-
else
|
3847
|
-
return ""
|
3848
|
-
endif
|
3849
|
-
endfunction
|
3850
|
-
|
3851
3826
|
" }}}1
|
3852
3827
|
" Mappings {{{1
|
3853
3828
|
|
3854
3829
|
function! s:BufMappings()
|
3855
|
-
nnoremap <buffer> <silent> <Plug>
|
3856
|
-
nnoremap <buffer> <silent> <Plug>
|
3857
|
-
nnoremap <buffer> <silent> <Plug>
|
3858
|
-
nnoremap <buffer> <silent> <Plug>
|
3859
|
-
nnoremap <buffer> <silent> <Plug>RailsVSplitFind :<C-U>RVfind<CR>
|
3860
|
-
nnoremap <buffer> <silent> <Plug>RailsTabFind :<C-U>RTfind<CR>
|
3830
|
+
nnoremap <buffer> <silent> <Plug>RailsFind :<C-U>call <SID>Find(v:count1,'E')<CR>
|
3831
|
+
nnoremap <buffer> <silent> <Plug>RailsSplitFind :<C-U>call <SID>Find(v:count1,'S')<CR>
|
3832
|
+
nnoremap <buffer> <silent> <Plug>RailsVSplitFind :<C-U>call <SID>Find(v:count1,'V')<CR>
|
3833
|
+
nnoremap <buffer> <silent> <Plug>RailsTabFind :<C-U>call <SID>Find(v:count1,'T')<CR>
|
3861
3834
|
if g:rails_mappings
|
3862
3835
|
if !hasmapto("<Plug>RailsFind")
|
3863
3836
|
nmap <buffer> gf <Plug>RailsFind
|
@@ -3868,12 +3841,6 @@ function! s:BufMappings()
|
|
3868
3841
|
if !hasmapto("<Plug>RailsTabFind")
|
3869
3842
|
nmap <buffer> <C-W>gf <Plug>RailsTabFind
|
3870
3843
|
endif
|
3871
|
-
if !hasmapto("<Plug>RailsAlternate")
|
3872
|
-
nmap <buffer> [f <Plug>RailsAlternate
|
3873
|
-
endif
|
3874
|
-
if !hasmapto("<Plug>RailsRelated")
|
3875
|
-
nmap <buffer> ]f <Plug>RailsRelated
|
3876
|
-
endif
|
3877
3844
|
if exists("$CREAM")
|
3878
3845
|
imap <buffer> <C-CR> <C-O><Plug>RailsFind
|
3879
3846
|
imap <buffer> <M-[> <C-O><Plug>RailsAlternate
|
@@ -3884,111 +3851,6 @@ function! s:BufMappings()
|
|
3884
3851
|
let v:errmsg = ""
|
3885
3852
|
endfunction
|
3886
3853
|
|
3887
|
-
" }}}1
|
3888
|
-
" Project {{{
|
3889
|
-
|
3890
|
-
function! s:Project(bang,arg)
|
3891
|
-
let rr = rails#app().path()
|
3892
|
-
exe "Project ".a:arg
|
3893
|
-
let line = search('^[^ =]*="'.s:gsub(rr,'[\/]','[\\/]').'"')
|
3894
|
-
let projname = s:gsub(fnamemodify(rr,':t'),'\=','-') " .'_on_rails'
|
3895
|
-
if line && a:bang
|
3896
|
-
let projname = matchstr(getline('.'),'^[^=]*')
|
3897
|
-
" Most of this would be unnecessary if the project.vim author had just put
|
3898
|
-
" the newlines AFTER each project rather than before. Ugh.
|
3899
|
-
norm zR0"_d%
|
3900
|
-
if line('.') > 2
|
3901
|
-
delete _
|
3902
|
-
endif
|
3903
|
-
if line('.') != line('$')
|
3904
|
-
.-2
|
3905
|
-
endif
|
3906
|
-
let line = 0
|
3907
|
-
elseif !line
|
3908
|
-
$
|
3909
|
-
endif
|
3910
|
-
if !line
|
3911
|
-
if line('.') > 1
|
3912
|
-
append
|
3913
|
-
|
3914
|
-
.
|
3915
|
-
endif
|
3916
|
-
let line = line('.')+1
|
3917
|
-
call s:NewProject(projname,rr)
|
3918
|
-
endif
|
3919
|
-
normal! zMzo
|
3920
|
-
if search("^ app=app {","W",line+10)
|
3921
|
-
normal! zo
|
3922
|
-
exe line
|
3923
|
-
endif
|
3924
|
-
normal! 0zt
|
3925
|
-
endfunction
|
3926
|
-
|
3927
|
-
function! s:NewProject(proj,rr)
|
3928
|
-
let line = line('.')+1
|
3929
|
-
let template = s:NewProjectTemplate(a:proj,a:rr)
|
3930
|
-
silent put =template
|
3931
|
-
exe line
|
3932
|
-
" Ugh. how else can I force detecting folds?
|
3933
|
-
setlocal foldmethod=manual
|
3934
|
-
norm! $%
|
3935
|
-
silent exe "doautocmd User ".s:escarg(a:rr)."/Rproject"
|
3936
|
-
let newline = line('.')
|
3937
|
-
exe line
|
3938
|
-
norm! $%
|
3939
|
-
if line('.') != newline
|
3940
|
-
call s:warn("Warning: Rproject autocommand failed to leave cursor at end of project")
|
3941
|
-
endif
|
3942
|
-
exe line
|
3943
|
-
setlocal foldmethod=marker
|
3944
|
-
setlocal nomodified
|
3945
|
-
" FIXME: make undo stop here
|
3946
|
-
if !exists("g:maplocalleader")
|
3947
|
-
silent! normal \R
|
3948
|
-
else " Needs to be tested
|
3949
|
-
exe 'silent! normal '.g:maplocalleader.'R'
|
3950
|
-
endif
|
3951
|
-
endfunction
|
3952
|
-
|
3953
|
-
function! s:NewProjectTemplate(proj,rr)
|
3954
|
-
let str = a:proj.'="'.a:rr."\" CD=. filter=\"*\" {\n"
|
3955
|
-
let str .= " app=app {\n"
|
3956
|
-
for dir in ['apis','controllers','helpers','models','views']
|
3957
|
-
let str .= s:addprojectdir(a:rr,'app',dir)
|
3958
|
-
endfor
|
3959
|
-
let str .= " }\n"
|
3960
|
-
let str .= " config=config {\n environments=environments {\n }\n }\n"
|
3961
|
-
let str .= " db=db {\n"
|
3962
|
-
let str .= s:addprojectdir(a:rr,'db','migrate')
|
3963
|
-
let str .= " }\n"
|
3964
|
-
let str .= " lib=lib filter=\"* */**/*.rb \" {\n tasks=tasks filter=\"**/*.rake\" {\n }\n }\n"
|
3965
|
-
let str .= " public=public {\n images=images {\n }\n javascripts=javascripts {\n }\n stylesheets=stylesheets {\n }\n }\n"
|
3966
|
-
if isdirectory(a:rr.'/spec')
|
3967
|
-
let str .= " spec=spec {\n"
|
3968
|
-
for dir in ['controllers','fixtures','helpers','models','views']
|
3969
|
-
let str .= s:addprojectdir(a:rr,'spec',dir)
|
3970
|
-
endfor
|
3971
|
-
let str .= " }\n"
|
3972
|
-
endif
|
3973
|
-
if isdirectory(a:rr.'/test')
|
3974
|
-
let str .= " test=test {\n"
|
3975
|
-
for dir in ['fixtures','functional','integration','mocks','unit']
|
3976
|
-
let str .= s:addprojectdir(a:rr,'test',dir)
|
3977
|
-
endfor
|
3978
|
-
let str .= " }\n"
|
3979
|
-
end
|
3980
|
-
let str .= "}\n"
|
3981
|
-
return str
|
3982
|
-
endfunction
|
3983
|
-
|
3984
|
-
function! s:addprojectdir(rr,parentdir,dir)
|
3985
|
-
if isdirectory(a:rr.'/'.a:parentdir.'/'.a:dir)
|
3986
|
-
return ' '.a:dir.'='.a:dir." filter=\"**\" {\n }\n"
|
3987
|
-
else
|
3988
|
-
return ''
|
3989
|
-
endif
|
3990
|
-
endfunction
|
3991
|
-
|
3992
3854
|
" }}}1
|
3993
3855
|
" Database {{{1
|
3994
3856
|
|
@@ -4008,7 +3870,7 @@ function! s:app_dbext_settings(environment) dict
|
|
4008
3870
|
let cmde = '}]; i=0; e=y[e] while e.respond_to?(:to_str) && (i+=1)<16; e.each{|k,v|puts k.to_s+%{=}+v.to_s}}'
|
4009
3871
|
let out = self.lightweight_ruby_eval(cmdb.a:environment.cmde)
|
4010
3872
|
let adapter = s:extractdbvar(out,'adapter')
|
4011
|
-
let adapter = get({'mysql2': 'mysql', 'postgresql': 'pgsql', 'sqlite3': 'sqlite', 'sqlserver': 'sqlsrv', 'sybase': 'asa', '
|
3873
|
+
let adapter = get({'mysql2': 'mysql', 'postgresql': 'pgsql', 'sqlite3': 'sqlite', 'sqlserver': 'sqlsrv', 'sybase': 'asa', 'oracle': 'ora'},adapter,adapter)
|
4012
3874
|
let dict['type'] = toupper(adapter)
|
4013
3875
|
let dict['user'] = s:extractdbvar(out,'username')
|
4014
3876
|
let dict['passwd'] = s:extractdbvar(out,'password')
|
@@ -4026,7 +3888,11 @@ function! s:app_dbext_settings(environment) dict
|
|
4026
3888
|
let dict['dbname'] = self.path(dict['dbname'])
|
4027
3889
|
endif
|
4028
3890
|
let dict['profile'] = ''
|
4029
|
-
|
3891
|
+
if adapter == 'ora'
|
3892
|
+
let dict['srvname'] = s:extractdbvar(out,'database')
|
3893
|
+
else
|
3894
|
+
let dict['srvname'] = s:extractdbvar(out,'host')
|
3895
|
+
endif
|
4030
3896
|
let dict['host'] = s:extractdbvar(out,'host')
|
4031
3897
|
let dict['port'] = s:extractdbvar(out,'port')
|
4032
3898
|
let dict['dsnname'] = s:extractdbvar(out,'dsn')
|
@@ -4155,15 +4021,15 @@ function! s:BufAbbreviations()
|
|
4155
4021
|
Rabbrev coo[ cookies
|
4156
4022
|
Rabbrev fl[ flash
|
4157
4023
|
Rabbrev rr( render
|
4158
|
-
Rabbrev ra( render :action\ =>\
|
4159
|
-
Rabbrev rc( render :controller\ =>\
|
4160
|
-
Rabbrev rf( render :file\ =>\
|
4161
|
-
Rabbrev ri( render :inline\ =>\
|
4162
|
-
Rabbrev rj( render :json\ =>\
|
4163
|
-
Rabbrev rl( render :layout\ =>\
|
4164
|
-
Rabbrev rp( render :partial\ =>\
|
4165
|
-
Rabbrev rt( render :text\ =>\
|
4166
|
-
Rabbrev rx( render :xml\ =>\
|
4024
|
+
Rabbrev ra( render :action\ =>\
|
4025
|
+
Rabbrev rc( render :controller\ =>\
|
4026
|
+
Rabbrev rf( render :file\ =>\
|
4027
|
+
Rabbrev ri( render :inline\ =>\
|
4028
|
+
Rabbrev rj( render :json\ =>\
|
4029
|
+
Rabbrev rl( render :layout\ =>\
|
4030
|
+
Rabbrev rp( render :partial\ =>\
|
4031
|
+
Rabbrev rt( render :text\ =>\
|
4032
|
+
Rabbrev rx( render :xml\ =>\
|
4167
4033
|
endif
|
4168
4034
|
if buffer.type_name('view','helper')
|
4169
4035
|
Rabbrev dotiw distance_of_time_in_words
|
@@ -4171,8 +4037,8 @@ function! s:BufAbbreviations()
|
|
4171
4037
|
endif
|
4172
4038
|
if buffer.type_name('controller')
|
4173
4039
|
Rabbrev re( redirect_to
|
4174
|
-
Rabbrev rea( redirect_to :action\ =>\
|
4175
|
-
Rabbrev rec( redirect_to :controller\ =>\
|
4040
|
+
Rabbrev rea( redirect_to :action\ =>\
|
4041
|
+
Rabbrev rec( redirect_to :controller\ =>\
|
4176
4042
|
Rabbrev rst( respond_to
|
4177
4043
|
endif
|
4178
4044
|
if buffer.type_name() ==# 'model' || buffer.type_name('model-arb')
|
@@ -4210,13 +4076,13 @@ function! s:BufAbbreviations()
|
|
4210
4076
|
Rabbrev asre( assert_response
|
4211
4077
|
Rabbrev art( assert_redirected_to
|
4212
4078
|
endif
|
4213
|
-
Rabbrev :a :action\ =>\
|
4079
|
+
Rabbrev :a :action\ =>\
|
4214
4080
|
" hax
|
4215
|
-
Rabbrev :c :co________\ =>\
|
4081
|
+
Rabbrev :c :co________\ =>\
|
4216
4082
|
inoreabbrev <buffer> <silent> :c <C-R>=<SID>TheCWord()<CR>
|
4217
|
-
Rabbrev :i :id\ =>\
|
4218
|
-
Rabbrev :o :object\ =>\
|
4219
|
-
Rabbrev :p :partial\ =>\
|
4083
|
+
Rabbrev :i :id\ =>\
|
4084
|
+
Rabbrev :o :object\ =>\
|
4085
|
+
Rabbrev :p :partial\ =>\
|
4220
4086
|
Rabbrev logd( logger.debug
|
4221
4087
|
Rabbrev logi( logger.info
|
4222
4088
|
Rabbrev logw( logger.warn
|
@@ -4231,7 +4097,6 @@ function! s:BufAbbreviations()
|
|
4231
4097
|
Rabbrev AM:: ActionMailer
|
4232
4098
|
Rabbrev AO:: ActiveModel
|
4233
4099
|
Rabbrev AE:: ActiveResource
|
4234
|
-
Rabbrev AWS:: ActionWebService
|
4235
4100
|
endif
|
4236
4101
|
endfunction
|
4237
4102
|
|
@@ -4508,37 +4373,14 @@ function! RailsBufInit(path)
|
|
4508
4373
|
let g:RAILS_HISTORY = s:sub(g:RAILS_HISTORY,'%(.{-}\n){,'.g:rails_history_size.'}\zs.*','')
|
4509
4374
|
endif
|
4510
4375
|
call app.source_callback("config/syntax.vim")
|
4511
|
-
if
|
4512
|
-
setlocal filetype=eruby
|
4513
|
-
elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:e") =~ '^\%(rjs\|rxml\|builder\|rake\|mab\)$'
|
4514
|
-
setlocal filetype=ruby
|
4515
|
-
elseif &ft =~ '^\%(conf\|ruby\)\=$' && expand("%:t") =~ '^\%(\%(Rake\|Gem\|Cap\)file\|Isolate\)$'
|
4516
|
-
setlocal filetype=ruby
|
4517
|
-
elseif &ft =~ '^\%(liquid\)\=$' && expand("%:e") == "liquid"
|
4518
|
-
setlocal filetype=liquid
|
4519
|
-
elseif &ft =~ '^\%(haml\|x\=html\)\=$' && expand("%:e") == "haml"
|
4520
|
-
setlocal filetype=haml
|
4521
|
-
elseif &ft =~ '^\%(sass\|conf\)\=$' && expand("%:e") == "sass"
|
4522
|
-
setlocal filetype=sass
|
4523
|
-
elseif &ft =~ '^\%(scss\|conf\)\=$' && expand("%:e") == "scss"
|
4524
|
-
setlocal filetype=scss
|
4525
|
-
elseif &ft =~ '^\%(lesscss\|conf\)\=$' && expand("%:e") == "less"
|
4526
|
-
setlocal filetype=lesscss
|
4527
|
-
elseif &ft =~ '^\%(dryml\)\=$' && expand("%:e") == "dryml"
|
4528
|
-
setlocal filetype=dryml
|
4529
|
-
elseif (&ft == "" || v:version < 701) && expand("%:e") =~ '^\%(rhtml\|erb\)$'
|
4530
|
-
setlocal filetype=eruby
|
4531
|
-
elseif (&ft == "" || v:version < 700) && expand("%:e") == 'yml'
|
4532
|
-
setlocal filetype=yaml
|
4533
|
-
elseif &ft =~ '^\%(conf\|yaml\)\=$' && expand("%:t") =~ '\.yml\.example$'
|
4376
|
+
if expand('%:t') =~ '\.yml\.example$'
|
4534
4377
|
setlocal filetype=yaml
|
4378
|
+
elseif expand('%:e') =~ '^\%(rjs\|rxml\|builder\|jbuilder\)$'
|
4379
|
+
setlocal filetype=ruby
|
4535
4380
|
elseif firsttime
|
4536
4381
|
" Activate custom syntax
|
4537
4382
|
let &syntax = &syntax
|
4538
4383
|
endif
|
4539
|
-
if firsttime
|
4540
|
-
call s:BufInitStatusline()
|
4541
|
-
endif
|
4542
4384
|
if expand('%:e') == 'log'
|
4543
4385
|
nnoremap <buffer> <silent> R :checktime<CR>
|
4544
4386
|
nnoremap <buffer> <silent> G :checktime<Bar>$<CR>
|
@@ -4618,7 +4460,7 @@ function! s:BufSettings()
|
|
4618
4460
|
endif
|
4619
4461
|
if has("gui_win32") || has("gui_running")
|
4620
4462
|
let code = '*.rb;*.rake;Rakefile'
|
4621
|
-
let templates = '*.'.
|
4463
|
+
let templates = '*.'.join(s:view_types,';*.')
|
4622
4464
|
let fixtures = '*.yml;*.csv'
|
4623
4465
|
let statics = '*.html;*.css;*.js;*.xml;*.xsd;*.sql;.htaccess;README;README_FOR_APP'
|
4624
4466
|
let b:browsefilter = ""
|
@@ -4630,9 +4472,9 @@ function! s:BufSettings()
|
|
4630
4472
|
\."All Files (*.*)\t*.*\n"
|
4631
4473
|
endif
|
4632
4474
|
call self.setvar('&includeexpr','RailsIncludeexpr()')
|
4633
|
-
call self.setvar('&suffixesadd', ".rb,.".
|
4475
|
+
call self.setvar('&suffixesadd', ".rb,.".join(s:view_types,',.'))
|
4634
4476
|
let ft = self.getvar('&filetype')
|
4635
|
-
if ft =~ '^\%(e\=ruby\|[yh]aml\|
|
4477
|
+
if ft =~ '^\%(e\=ruby\|[yh]aml\|coffee\|css\|s[ac]ss\|lesscss\)$'
|
4636
4478
|
call self.setvar('&shiftwidth',2)
|
4637
4479
|
call self.setvar('&softtabstop',2)
|
4638
4480
|
call self.setvar('&expandtab',1)
|
@@ -4641,7 +4483,6 @@ function! s:BufSettings()
|
|
4641
4483
|
endif
|
4642
4484
|
endif
|
4643
4485
|
if ft == 'ruby'
|
4644
|
-
call self.setvar('&suffixesadd',".rb,.".s:gsub(s:view_types,',',',.').",.yml,.csv,.rake,s.rb")
|
4645
4486
|
call self.setvar('&define',self.define_pattern())
|
4646
4487
|
" This really belongs in after/ftplugin/ruby.vim but we'll be nice
|
4647
4488
|
if exists('g:loaded_surround') && self.getvar('surround_101') == ''
|
@@ -4651,9 +4492,7 @@ function! s:BufSettings()
|
|
4651
4492
|
endif
|
4652
4493
|
elseif ft == 'yaml' || fnamemodify(self.name(),':e') == 'yml'
|
4653
4494
|
call self.setvar('&define',self.define_pattern())
|
4654
|
-
|
4655
|
-
elseif ft == 'eruby'
|
4656
|
-
call self.setvar('&suffixesadd',".".s:gsub(s:view_types,',',',.').",.rb,.css,.js,.html,.yml,.csv")
|
4495
|
+
elseif ft =~# '^eruby\>'
|
4657
4496
|
if exists("g:loaded_allml")
|
4658
4497
|
call self.setvar('allml_stylesheet_link_tag', "<%= stylesheet_link_tag '\r' %>")
|
4659
4498
|
call self.setvar('allml_javascript_include_tag', "<%= javascript_include_tag '\r' %>")
|
@@ -4676,7 +4515,7 @@ function! s:BufSettings()
|
|
4676
4515
|
call self.setvar('ragtag_doctype_index', 10)
|
4677
4516
|
endif
|
4678
4517
|
endif
|
4679
|
-
if ft
|
4518
|
+
if ft =~# '^eruby\>' || ft ==# 'yaml'
|
4680
4519
|
" surround.vim
|
4681
4520
|
if exists("g:loaded_surround")
|
4682
4521
|
" The idea behind the || part here is that one can normally define the
|
@@ -4720,9 +4559,7 @@ augroup railsPluginAuto
|
|
4720
4559
|
autocmd BufWritePost */tasks/**.rake call rails#cache_clear("rake_tasks")
|
4721
4560
|
autocmd BufWritePost */generators/** call rails#cache_clear("generators")
|
4722
4561
|
autocmd FileType * if exists("b:rails_root") | call s:BufSettings() | endif
|
4723
|
-
autocmd Syntax ruby,eruby,yaml,haml,javascript,coffee,railslog if exists("b:rails_root") | call s:BufSyntax() | endif
|
4724
|
-
autocmd QuickFixCmdPre make* call s:push_chdir()
|
4725
|
-
autocmd QuickFixCmdPost make* call s:pop_command()
|
4562
|
+
autocmd Syntax ruby,eruby,yaml,haml,javascript,coffee,railslog,sass,scss if exists("b:rails_root") | call s:BufSyntax() | endif
|
4726
4563
|
augroup END
|
4727
4564
|
|
4728
4565
|
" }}}1
|
@@ -1,7 +1,6 @@
|
|
1
1
|
" rails.vim - Detect a rails application
|
2
|
-
" Author: Tim Pope <
|
2
|
+
" Author: Tim Pope <http://tpo.pe/>
|
3
3
|
" GetLatestVimScripts: 1567 1 :AutoInstall: rails.vim
|
4
|
-
" URL: http://rails.vim.tpope.net/
|
5
4
|
|
6
5
|
" Install this file as plugin/rails.vim. See doc/rails.txt for details. (Grab
|
7
6
|
" it from the URL above if you don't have it.) To access it from Vim, see
|
@@ -60,7 +59,7 @@ call s:SetOptDefault("rails_ctags_arguments","--languages=-javascript")
|
|
60
59
|
call s:SetOptDefault("rails_default_file","README")
|
61
60
|
call s:SetOptDefault("rails_root_url",'http://localhost:3000/')
|
62
61
|
call s:SetOptDefault("rails_modelines",0)
|
63
|
-
call s:SetOptDefault("rails_menu"
|
62
|
+
call s:SetOptDefault("rails_menu",0)
|
64
63
|
call s:SetOptDefault("rails_gnu_screen",1)
|
65
64
|
call s:SetOptDefault("rails_history_size",5)
|
66
65
|
call s:SetOptDefault("rails_generators","controller\ngenerator\nhelper\nintegration_test\nmailer\nmetal\nmigration\nmodel\nobserver\nperformance_test\nplugin\nresource\nscaffold\nscaffold_controller\nsession_migration\nstylesheets")
|
@@ -80,6 +79,9 @@ function! s:escvar(r)
|
|
80
79
|
endfunction
|
81
80
|
|
82
81
|
function! s:Detect(filename)
|
82
|
+
if exists('b:rails_root')
|
83
|
+
return s:BufInit(b:rails_root)
|
84
|
+
endif
|
83
85
|
let fn = substitute(fnamemodify(a:filename,":p"),'\c^file://','','')
|
84
86
|
let sep = matchstr(fn,'^[^\\/]\{3,\}\zs[\\/]')
|
85
87
|
if sep != ""
|
@@ -108,7 +110,7 @@ function! s:Detect(filename)
|
|
108
110
|
return s:BufInit(fn)
|
109
111
|
endif
|
110
112
|
let ofn = fn
|
111
|
-
let fn = fnamemodify(ofn,':s?\(.*\)[\/]\(app\|config\|db\|doc\|features\|lib\|log\|public\|script\|spec\|stories\|test\|tmp\|vendor\)\($\|[\/].*$\)?\1?')
|
113
|
+
let fn = fnamemodify(ofn,':s?\(.*\)[\/]\(app\|config\|db\|doc\|extras\|features\|lib\|log\|public\|script\|spec\|stories\|test\|tmp\|vendor\)\($\|[\/].*$\)?\1?')
|
112
114
|
endwhile
|
113
115
|
return 0
|
114
116
|
endfunction
|
data/lib/utils/editor.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'tins/xt/full'
|
2
|
+
|
1
3
|
module Utils
|
2
4
|
class Editor
|
3
5
|
FILE_LINENUMBER_REGEXP = /^\s*([^:]+):(\d+)/
|
@@ -39,8 +41,10 @@ module Utils
|
|
39
41
|
@vim ||=
|
40
42
|
case `uname -s`
|
41
43
|
when /\Adarwin/i
|
42
|
-
if File.directory?('/
|
43
|
-
'/Applications/MacVim.app
|
44
|
+
if File.directory?(path = File.expand_path('~/Applications/MacVim.app')) or
|
45
|
+
File.directory?(path = File.expand_path('/Applications/MacVim.app'))
|
46
|
+
then
|
47
|
+
File.join(path, 'Contents/MacOS/Vim')
|
44
48
|
else
|
45
49
|
'vim'
|
46
50
|
end
|
@@ -80,7 +84,7 @@ module Utils
|
|
80
84
|
end
|
81
85
|
|
82
86
|
def expand_globs(filenames)
|
83
|
-
filenames.map { |f| Dir[f] }.flatten.uniq.sort
|
87
|
+
filenames.map { |f| Dir[f] }.flatten.uniq.sort.full? || filenames
|
84
88
|
end
|
85
89
|
|
86
90
|
def edit(*filenames)
|
@@ -114,11 +118,7 @@ module Utils
|
|
114
118
|
end
|
115
119
|
|
116
120
|
def edit_source_location(source_location)
|
117
|
-
|
118
|
-
edit_file_linenumber(source_location[0], source_location[1])
|
119
|
-
else
|
120
|
-
false
|
121
|
-
end
|
121
|
+
edit_file_linenumber(source_location[0], source_location[1])
|
122
122
|
end
|
123
123
|
|
124
124
|
def ensure_running
|
data/lib/utils/version.rb
CHANGED
data/utils.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "utils"
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.38"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Florian Frank"]
|
9
|
-
s.date = "2012-
|
9
|
+
s.date = "2012-03-01"
|
10
10
|
s.description = "This ruby gem provides some useful command line utilities"
|
11
11
|
s.email = "flori@ping.de"
|
12
12
|
s.executables = ["chroot-exec", "chroot-libs", "classify", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "myex", "number_files", "path", "probe", "same_files", "search", "sedit", "sshscreen", "strip_spaces", "unquarantine_apps", "untest", "utils-install-config", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.homepage = "http://github.com/flori/utils"
|
16
16
|
s.rdoc_options = ["--title", "Utils - Some useful command line utilities", "--main", "README.rdoc"]
|
17
17
|
s.require_paths = ["lib"]
|
18
|
-
s.rubygems_version = "1.8.
|
18
|
+
s.rubygems_version = "1.8.17"
|
19
19
|
s.summary = "Some useful command line utilities"
|
20
20
|
|
21
21
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.38
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gem_hadar
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153080320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.1.4
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153080320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: tins
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153079600 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.3'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153079600
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: term-ansicolor
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153078600 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153078600
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: dslkit
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153077740 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0.2'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153077740
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: pry-editline
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153037600 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153037600
|
69
69
|
description: This ruby gem provides some useful command line utilities
|
70
70
|
email: flori@ping.de
|
71
71
|
executables:
|
@@ -96,17 +96,28 @@ executables:
|
|
96
96
|
extensions: []
|
97
97
|
extra_rdoc_files:
|
98
98
|
- README.rdoc
|
99
|
-
-
|
100
|
-
|
101
|
-
-
|
102
|
-
|
103
|
-
-
|
104
|
-
|
105
|
-
-
|
106
|
-
|
107
|
-
-
|
108
|
-
|
109
|
-
-
|
99
|
+
- !binary |-
|
100
|
+
bGliL3V0aWxzL2NvbmZpZy9jb25maWdfZmlsZS5yYg==
|
101
|
+
- !binary |-
|
102
|
+
bGliL3V0aWxzL2NvbmZpZy5yYg==
|
103
|
+
- !binary |-
|
104
|
+
bGliL3V0aWxzL2VkaXRvci5yYg==
|
105
|
+
- !binary |-
|
106
|
+
bGliL3V0aWxzL2ZpbGVfeHQucmI=
|
107
|
+
- !binary |-
|
108
|
+
bGliL3V0aWxzL2ZpbmQucmI=
|
109
|
+
- !binary |-
|
110
|
+
bGliL3V0aWxzL2ZpbmRlci5yYg==
|
111
|
+
- !binary |-
|
112
|
+
bGliL3V0aWxzL2dyZXBwZXIucmI=
|
113
|
+
- !binary |-
|
114
|
+
bGliL3V0aWxzL21kNS5yYg==
|
115
|
+
- !binary |-
|
116
|
+
bGliL3V0aWxzL3BhdHRlcm5zLnJi
|
117
|
+
- !binary |-
|
118
|
+
bGliL3V0aWxzL3ZlcnNpb24ucmI=
|
119
|
+
- !binary |-
|
120
|
+
bGliL3V0aWxzLnJi
|
110
121
|
files:
|
111
122
|
- .gitignore
|
112
123
|
- COPYING
|
@@ -214,6 +225,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
214
225
|
- - ! '>='
|
215
226
|
- !ruby/object:Gem::Version
|
216
227
|
version: '0'
|
228
|
+
segments:
|
229
|
+
- 0
|
230
|
+
hash: 2842823016203684465
|
217
231
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
232
|
none: false
|
219
233
|
requirements:
|
@@ -222,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
236
|
version: '0'
|
223
237
|
requirements: []
|
224
238
|
rubyforge_project:
|
225
|
-
rubygems_version: 1.8.
|
239
|
+
rubygems_version: 1.8.17
|
226
240
|
signing_key:
|
227
241
|
specification_version: 3
|
228
242
|
summary: Some useful command line utilities
|