<?xml version="1.0" encoding="UTF-8"?>
<codesense version="1.0">
	<!-- Keywords -->
	<set name="com.macrabbit.ruby.keywords.control">
		<!-- Blocks -->
		<completion string="begin">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1::
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="case">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1::
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="class">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s+\S|\S)|\s*$</matched-suffix>
					<transform-into>(?1:: ${1:MyClass}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="def">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s+\S|\S)|\s*$</matched-suffix>
					<transform-into>(?1:: ${1:myFunction}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="do">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1::
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="else" />
		<completion string="elsif">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1::
	$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="for">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:item} in ${2:items}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="if"/>
		<completion string="module">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:MyModule}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="unless"/>
		<completion string="until" />
		<completion string="when">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:condition}
	$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="while" />
	</set>
	
	<set name="com.macrabbit.ruby.keywords.block-forms">
		<completion string="else">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1::
	$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="if">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:condition}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="unless">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${condition}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="until">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:condition}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="while">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*$)|\S</matched-suffix>
					<transform-into>(?1:: ${1:condition}
	$0
end)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
	</set>
	
	<set name="com.macrabbit.ruby.keywords">
		<!-- Standalone keywords -->
		<completion string="alias" />
		<completion string="and" />
		<completion string="break" />
		<completion string="defined?" />
		<completion string="end" />
		<completion string="ensure" />
		<completion string="in" />
		<completion string="include" />
		<completion string="next" />
		<completion string="not" />
		<completion string="or" />
		<completion string="private" />
		<completion string="protected" />
		<completion string="public" />
		<completion string="redo" />
		<completion string="rescue" />
		<completion string="retry" />
		<completion string="return" />
		<completion string="then" />
		<completion string="undef" />
		<completion string="yield" />
		<completion string="__ENCODING__" />
		<completion string="__FILE__" />
		<completion string="__LINE__" />
		
		<completion string="super" />
		<completion string="self" />
		<completion string="true" />
		<completion string="false" />
		<completion string="nil" />
	</set>
	
	<!-- TODO: fill in completions for functions and methods -->
	
	<!-- Built-in Functions -->
	<!-- Okay, so technically everything in Ruby is an object. However, these are included in Object, which means they are available everywhere as function calls. Which is good enough for me. -->
	<!-- http://www.ruby-doc.org/core/classes/Kernel.html -->
	<!-- FIXME: functions/methods that take blocks could accept either { ... } or do ... end; how to deal with this in CodeSense? -->
	<set name="com.macrabbit.ruby.builtin.functions">
		<completion string="Array">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:argument}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="Float">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:argument}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="Integer">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:argument}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="String">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:argument}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="URI">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:uri_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="abort" />
		<completion string="at_exit">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{ ${1:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="autoload">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:module}, ${2:filename}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="binding" />
		<completion string="block_given?" />
		<completion string="iterator?" />
		<completion string="callcc">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:cont}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="caller">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:start}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="catch">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\) {${2:|$3|} ${4:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="chomp">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::${1:(${2:string}\)})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="chomp!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::${1:(${2:string}\)})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="chop" />
		<completion string="chop!" />
		<completion string="eval">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:string}${2:, ${3:binding}, ${4:filename}, ${5:linenumber}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="exec">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:command}${2:, ${3:arg, ...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="exit" />
		<completion string="raise" />
		<completion string="fail" />
		<completion string="format">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:format_string}${2:, ${3:arguments...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sprintf">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:format_string}${2:, ${3:arguments...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gets" />
		<completion string="global_variables" />
		<completion string="gsub">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gsub!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="proc">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{ ${1:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="lambda">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{ ${1:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="load">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:filename}${2:, ${3:wrap}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="local_variables" />
		<completion string="loop">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{ ${1:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="open">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:path}${2:, ${3:mode}, ${4:permissions}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="p">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="pretty_inspect" />
		<completion string="print">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="printf">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:string}${2:, ${3:object, ...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="putc">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:integer}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="puts">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rand" />
		<completion string="readline" />
		<completion string="readlines" />
		<completion string="require">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:library}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="scan">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="set_trace_func">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:procedure}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sleep" />
		<completion string="split" />
		<completion string="srand" />
		<completion string="sub">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sub!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="syscall">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:number}${2:, ${3:arguments, ...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="system">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:command}${2:, ${3:argument, ...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="test">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:int_cmd}, ${2:file1}${3:, ${4:file1}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="throw">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:object}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="trace_var">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:command}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="untrace_var">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:command}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="warn">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:message}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
	</set>
	
	<!-- Common Built-in methods -->
	<set name="com.macrabbit.ruby.builtin.methods">
		<!-- Object (shared by all no matter what) -->
		<completion string="new" />
		<completion string="__id__" />
		<completion string="object_id" />
		<completion string="equal?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="eql?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="send">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:args...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="__send__">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:args...}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="class" />
		<completion string="clone" />
		<completion string="display" />
		<completion string="dup" />
		<completion string="to_enum" />
		<completion string="enum_for" />
		<completion string="extend">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:module, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="freeze" />
		<completion string="frozen?" />
		<completion string="hash" />
		<completion string="fixnum" />
		<completion string="inspect" />
		<completion string="instance_eval" />
		<completion string="instance_of?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:class}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="instance_variable_defined?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="instance_variable_get">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="instance_variable_set">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}, ${2:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="instance_variables" />
		<completion string="is_a?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:class}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="kind_of?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:class}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="method">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="methods" />
		<completion string="nil?" />
		<completion string="private_methods" />
		<completion string="protected_methods" />
		<completion string="public_methods" />
		<completion string="remove_instance_variables">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="respond_to?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}${2:, ${3:include_private}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="singleton_method_added">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="singleton_method_removed">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="singleton_method_undefined">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1::symbol}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="singleton_methods" />
		<completion string="taint" />
		<completion string="tainted?" />
		<completion string="to_a" />
		<completion string="to_s" />
		<completion string="untaint" />
		<!-- Array -->
		<completion string="slice">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::($1\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="slice!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::($1\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="assoc">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="at">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:index}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="clear" />
		<completion string="collect">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="collect!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="map">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="map!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="compact" />
		<completion string="compact!" />
		<completion string="concat">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="delete">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="delete_at">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:index}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="delete_if">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_index">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:index}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="empty?" />
		<completion string="fetch">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:index}${2:, ${3:default}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="fill"/>
		<completion string="first" />
		<completion string="flatten" />
		<completion string="flatten!" />
		<completion string="include?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="index">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="replace">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="insert">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:index}, ${2:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="inspect" />
		<completion string="join" />
		<completion string="last" />
		<completion string="length" />
		<completion string="nitems" />
		<completion string="pop" />
		<completion string="push">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rassoc">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:key}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="reject">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="reject!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="reverse" />
		<completion string="reverse!" />
		<completion string="reverse_each">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rindex">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="select">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:item}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="shift" />
		<completion string="size" />
		<completion string="sort" />
		<completion string="sort!" />
		<completion string="to_ary" />
		<completion string="transpose" />
		<completion string="uniq" />
		<completion string="uniq!" />
		<completion string="unshift">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="values_at">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:selector, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="zip">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:arg, ...}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="other_array" />
		<!-- Comparable -->
		<completion string="between?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:min}, ${2:max}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<!-- Enumerable -->
		<completion string="all?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::${1:{|${2:object}| ${3:block} }})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="any?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::${1:{|${2:object}| ${3:block} }})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="detect">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="find">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_with_index">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}, ${2:index}| ${3:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="find_all">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="grep">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}\) ${2:{|${3:object}| ${4:block} }})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="member?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:object}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="inject">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:\{|\())|\s*[^{(]|\s*$</matched-suffix>
					<transform-into>(?1::${1:(${2:initial}\) }{|${3:memo}, ${4:object}| ${5:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="max">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::${1:{|${2:a}, ${3:b}| ${4:block} }})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="min">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::${1:{|${2:a}, ${3:b}| ${4:block} }})</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="partition">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sort_by">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:object}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="entries" />
		<!-- Hash -->
		<completion string="store">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:key}, ${2:value}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="default" />
		<completion string="default_proc" />
		<completion string="each_key">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:key}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_pair">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:key_value_array}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_value">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:value}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="has_key?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:key}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="key?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:key}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="has_value?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:value}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="value?">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:value}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="invert" />
		<completion string="keys" />
		<completion string="merge">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="merge!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="update">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rehash" />
		<completion string="to_hash" />
		<!-- Integer -->
		<completion string="to_i" />
		<completion string="to_int" />
		<completion string="floor" />
		<completion string="ceil" />
		<completion string="round" />
		<completion string="truncate" />
		<completion string="chr" />
		<completion string="downto">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::(${1:limit}\) {|${2:i}| ${3:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gcd">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gcdlcm">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="integer?" />
		<completion string="lcm">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="next" />
		<completion string="succ" />
		<completion string="times">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:i}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="to_r" />
		<completion string="upto">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::(${1:limit}\) {|${2:i}| ${3:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<!-- Float -->
		<completion string="modulo">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="abs" />
		<completion string="divmod">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="finite?" />
		<completion string="infinite?" />
		<completion string="nan?" />
		<completion string="to_f" />
		<completion string="zero?" />
		<!-- Fixnum -->
		<completion string="div">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="id2name" />
		<completion string="power!" />
		<completion string="quo">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rdiv">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rpower" />
		<completion string="to_sym" />
		<!-- Numeric -->
		<completion string="angle" />
		<completion string="arg" />
		<completion string="coerce">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="conj" />
		<completion string="conjugate" />
		<completion string="im" />
		<completion string="imag" />
		<completion string="image" />
		<completion string="nonzero?" />
		<completion string="polar" />
		<completion string="real" />
		<completion string="remainder">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:numeric}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="step">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::(${1:limit}, ${2:step}\) {|${3:i}| ${4:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<!-- Regexp -->
		<completion string="match">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="casefold?" />
		<completion string="kcode" />
		<completion string="options" />
		<completion string="source" />
		<!-- String -->
		<completion string="capitalize" />
		<completion string="capitalize!" />
		<completion string="casecmp">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="center">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:integer}${2:, ${3:padding_string}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="chomp" />
		<completion string="chop" />
		<completion string="chop!" />
		<completion string="count" />
		<completion string="crypt" />
		<completion string="delete!" />
		<completion string="downcase" />
		<completion string="downcase!" />
		<completion string="dump" />
		<completion string="each_line">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::${1:(${2:separator}\) }{|${3:substring}| ${4:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_byte">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:fixnum}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="each_char">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*\{)|\s*[^{]|\s*$</matched-suffix>
					<transform-into>(?1::{|${1:char}| ${2:block} })</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gsub">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="gsub!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="hex" />
		<completion string="intern" />
		<completion string="ljust">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior><behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:integer}${2:, ${3:padding_string}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="lstrip" />
		<completion string="lstrip!" />
		<completion string="succ!" />
		<completion string="next!" />
		<completion string="oct" />
		<completion string="rjust">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:integer}${2:, ${3:padding_string}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="rstrip" />
		<completion string="rstrip!" />
		<completion string="squeeze" />
		<completion string="squeeze!" />
		<completion string="strip"/>
		<completion string="strip!"/>
		<completion string="sub">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sub!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:pattern}${2:, ${3:replacement}}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="sum" />
		<completion string="swapcase" />
		<completion string="swapcase!" />
		<completion string="tr">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:from_string}, ${2:to_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="tr!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:from_string}, ${2:to_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="tr_s">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:from_string}, ${2:to_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="tr_s!">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:from_string}, ${2:to_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="unpack">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:format}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="upcase" />
		<completion string="upcase!" />
		<completion string="upto">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s|\()|[^\s(]</matched-suffix>
					<transform-into>(?1::(${1:other_string}\))</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
	</set>
</codesense>