remi-vimilicious 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. data/lib/vimilicious.rb +34 -0
  2. data/vimilicious.gemspec +1 -1
  3. metadata +1 -1
data/lib/vimilicious.rb CHANGED
@@ -77,6 +77,38 @@ def current_line
77
77
  current_buffer.line
78
78
  end
79
79
 
80
+ # deletes the current buffer (closes the file)
81
+ #
82
+ # :ruby clear
83
+ def clear
84
+ cmd 'bd!'
85
+ end
86
+
87
+ # create a vim user command that calls a ruby method or block
88
+ #
89
+ # :ruby create_command :test # creates a :Test command that calls a 'test' method
90
+ # :ruby create_command 'test', :hi # creates a :Test command that calls a 'hi' method
91
+ # :ruby create_command(:test){ puts 'hi' } # creates a :Test command that calls the block passed in
92
+ #
93
+ # BLOCKS NOT YET SUPPORTED
94
+ def create_command name, method = nil, &block
95
+ command_name = name.to_s.capitalize
96
+ method_name = (method.nil?) ? name.to_s : method.to_s
97
+ function_name = command_name + 'AutoGeneratedFunction'
98
+
99
+ # create a function that calls method (or block)
100
+ if block.nil?
101
+ cmd %[fu! #{ function_name }(...)\n ruby #{ method_name } *eval("\#{ vim_eval('string(a:000)') }")\nendfu]
102
+ else
103
+ generated_method = command_name + '_auto_generated_method'
104
+ Kernel.module_eval { define_method generated_method, block }
105
+ cmd %[fu! #{ function_name }(...)\n ruby #{ generated_method } *eval("\#{ vim_eval('string(a:000)') }")\nendfu]
106
+ end
107
+
108
+ # create a vim command that calls the vim function
109
+ cmd %{command! -nargs=* #{ command_name } call #{ function_name }(<f-args>)}
110
+ end
111
+
80
112
  # get the word under the cursor
81
113
  #
82
114
  # :ruby puts "the cursor is on top of the word: #{current_word}"
@@ -89,3 +121,5 @@ def current_word filter=/[,'`\.:\(\)\[\]\}\{]/, replace_with=''
89
121
  word.gsub!(filter,replace_with) unless word.empty?
90
122
  word
91
123
  end
124
+
125
+ ### COMMANDS ###
data/vimilicious.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "vimilicious"
3
- s.version = "0.1.0"
3
+ s.version = "0.1.1"
4
4
  s.date = "2008-06-15"
5
5
  s.summary = "vim-ruby library for making vim easy"
6
6
  s.email = "remi@remitaylor.com"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remi-vimilicious
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - remi Taylor