A Sublime Text plugin to execute ruby code and update # =>
markers with the results using the xmpfilter component of rcodetools.
Installation consists of two parts: the rcodetools gem (Ruby Markers requires the use of xmpfilter which is a tool packaged with this gem) and the Ruby Markers Sublime Text package.
The rcodetools gem must be installed on in order for the Ruby Markers plugin to function properly. Assuming you have ruby and rubygems installed, install the rcodetools gem:
$ gem install rcodetools
rbenv users, please note that you will have to run $ rbenv rehash
after installing the gem in order for rbenv to recognize the xmpfilter command.
Using Package Control (recommended):
- Use
Cmd+Shift+P
orCtrl+Shift+P
to open the Command Palette, then selectPackage Control: Install Package
. - Look for
Ruby Markers
and install it.
Or, determine the Packages
path for your OS
- OS X:
~/Library/Application\ Support/Sublime\ Text\ 2/Packages
or~/Library/Application\ Support/Sublime\ Text\ /Packages
- Windows:
%APPDATA%\Sublime Text 2\Packages\
or%APPDATA%\Sublime Text 3\Packages\
- Linux:
~/.config/sublime-text-2/Packages/
or~/.config/sublime-text-3/Packages/
and clone the plugin via git:
$ git clone https://github.com/mmims/sublime-text-2-ruby-markers.git "<Sublime Text Packages folder>/Ruby Markers"
Use Alt+Shift+u
or Tools -> Execute and Update '# =>' Markers
to run the Ruby code through the xmpfilter and update the current buffer with the results.
If you have a Ruby script that looks like:
3.times { puts "Hello, World!" }
Running the plugin will update the buffer with:
3.times { puts "Hello World!" }
# >> Hello World!
# >> Hello World!
# >> Hello World!
Code annotation is performed by using typing # =>
at the end of the line you want to annotate. There is a ruby snippet that can speed up using this by typing #
then tab
.
If you have a Ruby script that looks like:
def fib(n)
n < 2 ? n : fib(n-1) + fib(n-2)
end
fib(11) # =>
fib(23) # =>
Running the plugin will update the buffer with:
def fib(n)
n < 2 ? n : fib(n-1) + fib(n-2)
end
fib(11) # => 89
fib(23) # => 28657
Settings are accessible through via Preferences -> Package Settings -> Ruby Markers
. The Settings - Default
option contains the defaults for all settings. When configuring settings, use the Settings - User
option so that
your changes will not be overwritten by updates to the plugin. The settings files use json
syntax.
Specifies a list of paths to search for the rbenv tool. Default setting:
"rbenv_paths": [
"~/.rbenv/bin/rbenv",
"/usr/local/bin/rbenv"
]
Specifies which ruby version manager to use. Valid settings are: auto
, rbenv
, rvm
, or none
. Default setting:
"ruby_manager": "auto"
Specifies a list of paths to search for the rvm tool. Default setting:
"rvm_paths": [
"~/.rvm/bin/rvm-auto-ruby",
"/usr/local/rvm/bin/rvm-auto-ruby"
]
Set to true to strip stdout comments (# >>
) before updating the buffer. Default setting:
"strip_stdout": false
Specifies the location of the xmpfilter executable for Linux & OSX systems. Default setting:
"xmpfilter_bin_posix": ["xmpfilter"]
Specifies the location of the xmpfilter executable for Windows systems. Default setting:
"xmpfilter_bin_win": ["xmpfilter.bat"]
Set to true to suppress standard output. Default setting:
"xmpfilter_quiet": false
Set to true to replace # =>
with Test::Unit assertions instead of annotations. Default setting:
"xmpfilter_rails": false
Set to false to ignore warnings ruby warnings in annotations. Default setting:
"xmpfilter_warnings": true
Deprecated. Use ruby_manager
instead.
Deprecated. Use ruby_manager
instead.
Deprecated. Use rbenv_paths
instead.