<?xml version="1.0" encoding="UTF-8"?>
<codesense>
	
	<!-- Keywords -->
	<!-- These needs their own lookup because they can be used inline -->
	<provider>
		<selector>ruby, ruby *:not(string,string *,comment)</selector>
		<completions>com.macrabbit.ruby.keywords.block-forms</completions>
		<complete-match capture="1">^\s*([a-zA-Z]*)</complete-match>
	</provider>
	<provider>
		<selector>ruby, ruby *:not(string,string *,comment)</selector>
		<completions>com.macrabbit.ruby.keywords.control</completions>
		<complete-match>(?&lt;!\.|\[|\(|,)\b[a-zA-Z]*</complete-match>
	</provider>
	<provider>
		<selector>ruby, ruby *:not(string,string *,comment)</selector>
		<completions>com.macrabbit.ruby.keywords</completions>
		<complete-match>(?&lt;!\.)\b[a-zA-Z]*</complete-match>
	</provider>
	
	<!-- Built-in Functions -->
	<provider>
		<selector>ruby, ruby *:not(string,string *,comment)</selector>
		<completions>com.macrabbit.ruby.builtin.functions</completions>
		<complete-match>(?&lt;!\.)\b[a-zA-Z_]*</complete-match>
	</provider>
	
	<!-- Common Built-in Methods -->
	<provider>
		<selector>ruby, ruby *:not(string,string *,comment)</selector>
		<completions>com.macrabbit.ruby.builtin.methods</completions>
		<complete-match capture="1">\.([a-zA-Z_]+)</complete-match>
	</provider>
	
</codesense>