|
1 | 1 | require 'rake' |
| 2 | +require 'rake/clean' |
2 | 3 |
|
3 | 4 | files = ['syntax/javascript.vim', 'indent/javascript.vim'] |
4 | 5 |
|
| 6 | +CLEAN.include 'tmp/*_ctags' |
| 7 | + |
5 | 8 | desc "Make zip file" |
6 | 9 | file 'javascript.zip' => files do |t| |
7 | 10 | File.unlink t.name if File.exists?(t.name) |
@@ -47,6 +50,40 @@ task :install do |
47 | 50 | end |
48 | 51 | end |
49 | 52 |
|
| 53 | +desc "Copy ~/.ctags to tmp/original_ctags" |
| 54 | +task :get_original_ctags do |
| 55 | + if File.exists?(File.expand_path("~/.ctags")) |
| 56 | + File.unlink('tmp/original_ctags') if File.exists?('tmp/original_ctags') |
| 57 | + FileUtils.cp(File.expand_path("~/.ctags"), 'tmp/original_ctags') |
| 58 | + elsif not File.exists?("tmp/original_ctags") |
| 59 | + File.open("tmp/original_ctags", "w") { } |
| 60 | + end |
| 61 | +end |
| 62 | + |
| 63 | +desc "Combine tmp/original_ctags and extras/ctags" |
| 64 | +file 'tmp/combined_ctags' => ['tmp/original_ctags', 'extras/ctags'] do |t| |
| 65 | + begin_string = '# Begin vim-javascript generated section' |
| 66 | + end_string = '# End vim-javascript generated section' |
| 67 | + File.unlink t.name if File.exists?(t.name) |
| 68 | + File.open(t.name,"w") do |out| |
| 69 | + orig = File.read('tmp/original_ctags') |
| 70 | + orig.each_line.inject(true) do |can_print, line| |
| 71 | + can_print = false if line.chomp == begin_string |
| 72 | + out.puts line if can_print |
| 73 | + can_print or line.chomp == end_string |
| 74 | + end |
| 75 | + out.puts begin_string |
| 76 | + out.puts "# generated at #{ Time.now }" |
| 77 | + out.puts File.read('extras/ctags') |
| 78 | + out.puts end_string |
| 79 | + end |
| 80 | +end |
| 81 | + |
| 82 | +desc "Add better javascript support to ctags" |
| 83 | +task :ctags => [:get_original_ctags, 'tmp/combined_ctags'] do |
| 84 | + FileUtils.cp('tmp/combined_ctags', File.expand_path('~/.ctags')) |
| 85 | +end |
| 86 | + |
50 | 87 | task 'zip' => 'javascript.zip' |
51 | 88 | task 'vimball' => 'javascript.vba' |
52 | 89 | task :default => [:zip, :vimball] |
0 commit comments