<?xml version="1.0" encoding="UTF-8"?>
<!--

CodeSense Libraries simply define lists of completions, categorized by keys. They don't define any criteria for when they should be used; this is the domain of a CodeSense Provider.

-->
<codesense version="1.0">
	
	<set name="com.macrabbit.html.tags">
	
		<!-- Default behavior -->
		<behavior>
			<append-dynamic>
				<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
				<transform-into>(?1::>$0&lt;/${completion}>)</transform-into>
			</append-dynamic>
		</behavior>
		
		
		<completion string="a">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: href="${1:http://}">${2:Link Text}&lt;/a>$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="meta">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1::${1: http-equiv="$2" content="$3"} />)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="link">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: rel="$1" href="$2" $3/>$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="script" ranking="+1">
			<behavior>
				<append-static> src="$1" type="text/javascript">&lt;/${completion}>$0</append-static>
			</behavior>
		</completion>
		
		<completion string="img">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: src="$1" alt="$2" $3/>$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="form">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: method="${1:post}" action="$2">$0&lt;/form>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="input">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: type="$1" name="$2" value="$3" />$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="label">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1::${1: for="$2"}>$0&lt;/label>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="span" ranking="+1">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1::${1: class="$2"}>$0&lt;/span>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="div" ranking="+1">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1::${1: id="$2"}>$0&lt;/div>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		
		<completion string="canvas">
			<behavior>
				<append-static> id="$1" width="${2:0}" height="${3:0}">&lt;/canvas>$0</append-static>
			</behavior>
		</completion>
		
		<completion string="abbr" />
		<completion string="acronym" />
		<completion string="address" />
		<completion string="applet" />
		<completion string="area" />
		<completion string="b" />
		<completion string="base" />
		<completion string="blockquote" />
		<completion string="body" />
		<completion string="button" />
		<completion string="caption" />
		<completion string="center" />
		<completion string="cite" />
		<completion string="code" />
		<completion string="col" />
		<completion string="colgroup" />
		<completion string="dd" />
		<completion string="del" />
		<completion string="dfn" />
		<completion string="dir" ranking="-1" />
		<completion string="dl" />
		<completion string="dt" />
		<completion string="em" />
		<completion string="fieldset" />
		<completion string="frame" />
		<completion string="frameset" />
		<completion string="h1" />
		<completion string="h2" />
		<completion string="h3" />
		<completion string="h4" />
		<completion string="h5" />
		<completion string="h6" />
		<completion string="head" />
		<completion string="html" />
		<completion string="i" />
		<completion string="iframe" />
		<completion string="ins" />
		<completion string="kdb" />
		<completion string="legend" />
		<completion string="li" />
		<completion string="map" />
		<completion string="menu" />
		<completion string="noframes" />
		<completion string="noscript" />
		<completion string="object" />
		<completion string="ol" />
		<completion string="optgroup" />
		<completion string="option" />
		<completion string="p" />
		<completion string="param" />
		<completion string="pre" />
		<completion string="q" />
		<completion string="samp" />
		<completion string="select" ranking="+1" />
		<completion string="small" />
		<completion string="strike" ranking="-1" />
		<completion string="strong" ranking="+1" />
		<completion string="style" ranking="+1" />
		<completion string="sub" />
		<completion string="sup" />
		<completion string="table" />
		<completion string="tbody" />
		<completion string="td" />
		<completion string="textarea" />
		<completion string="tfoot" />
		<completion string="th" />
		<completion string="thead" />
		<completion string="title" />
		<completion string="tr" />
		<completion string="tt" />
		<completion string="u" />
		<completion string="ul" />
		<completion string="var" />
		<!-- HTML 5 -->
		<completion string="article" />
		<completion string="aside" />
		<completion string="audio">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: src="$1"${2: preload="${3:none}"}${4: controls}>$0&lt;/${completion}>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="bdo" />
		<completion string="caption" />
		<completion string="command" />
		<completion string="datalist" />
		<completion string="details" />
		<completion string="figcaption" />
		<completion string="figure" />
		<completion string="footer" />
		<completion string="header" />
		<completion string="hgroup" />
		<completion string="keygen" />
		<completion string="mark" />
		<completion string="meter" />
		<completion string="nav" />
		<completion string="output" />
		<completion string="progress" />
		<completion string="rp" />
		<completion string="rt" />
		<completion string="ruby" />
		<completion string="samp" />
		<completion string="section" />
		<completion string="source">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: src="$1" type="$2" />$0)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="summary" />
		<completion string="time" />
		<completion string="video">
			<behavior>
				<append-dynamic>
					<matched-suffix>(\s*(?:/?>|[a-zA-Z]+=))|(?:/?[^>]|[^\s/])|$</matched-suffix>
					<transform-into>(?1:: src="$1"${2: preload="${3:none}"}${4: controls}>$0&lt;/${completion}>)</transform-into>
				</append-dynamic>
			</behavior>
		</completion>
		<completion string="wbr" />
	</set>
	
	<set name="com.macrabbit.html.tags.self-closing">
	
		<!-- Default behavior -->
		<behavior>
			<append-static> /></append-static>
		</behavior>
		
		<completion string="br" />
		<completion string="hr" />
		<completion string="wbr" />
	</set>
	
	<set name="com.macrabbit.html.entities">
		<behavior>
			<append-dynamic>
				<matched-suffix>(;)|[^;]</matched-suffix>
				<transform-into>(?1::;)</transform-into>
			</append-dynamic>
		</behavior>
		
		<completion string="amp"/>
		<completion string="bull"/>
		<completion string="cent"/>
		<completion string="copy"/>
		<completion string="deg"/>
		<completion string="euro"/>
		<completion string="hellip"/>
		<completion string="iquest"/>
		<completion string="mdash"/>
		<completion string="ndash"/>
		<completion string="nbsp"/>
		<completion string="pound"/>
		<completion string="reg"/>
		<completion string="yen"/>
		
		<completion string="quot"/>
		<completion string="lsquo"/>
		<completion string="rsquo"/>
		<completion string="ldquo"/>
		<completion string="rdquo"/>
		<completion string="lsaquo"/>
		<completion string="rsaquo"/>
		<completion string="laquo"/>
		<completion string="raquo"/>
		
		<completion string="larr"/>
		<completion string="uarr"/>
		<completion string="rarr"/>
		<completion string="darr"/>
		<completion string="harr"/>
		
		<completion string="times"/>
		<completion string="divide"/>
		<completion string="sup1"/>
		<completion string="sup2"/>
		<completion string="sup3"/>
		<completion string="frac12"/>
		<completion string="frac14"/>
		<completion string="frac34"/>
		<completion string="plusmn"/>
		<completion string="infin"/>
		<completion string="ne"/>
		<completion string="asymp"/>
		<completion string="le"/>
		<completion string="ge"/>
		<completion string="lt"/>
		<completion string="gt"/>
		
		<!--Unicode characters-->
		<completion string="Agrave"/>
		<completion string="Aacute"/>
		<completion string="Acirc"/>
		<completion string="Atilde"/>
		<completion string="Auml"/>
		<completion string="Aring"/>
		<completion string="Ccedil"/>
		<completion string="Egrave"/>
		<completion string="Eacute"/>
		<completion string="Ecirc"/>
		<completion string="Euml"/>
		<completion string="Igrave"/>
		<completion string="Iacute"/>
		<completion string="Icirc"/>
		<completion string="Iuml"/>
		<completion string="Ntilde"/>
		<completion string="Ograve"/>
		<completion string="Oacute"/>
		<completion string="Ocirc"/>
		<completion string="Otilde"/>
		<completion string="Ouml"/>
		<completion string="Oslash"/>
		<completion string="Ugrave"/>
		<completion string="Uacute"/>
		<completion string="Ucirc"/>
		<completion string="Uuml"/>
		<completion string="Yacute"/>
		<completion string="agrave" ranking="+1"/>
		<completion string="aacute" ranking="+1"/>
		<completion string="acirc" ranking="+1"/>
		<completion string="atilde" ranking="+1"/>
		<completion string="auml" ranking="+1"/>
		<completion string="aring" ranking="+1"/>
		<completion string="ccedil" ranking="+1"/>
		<completion string="egrave" ranking="+1"/>
		<completion string="eacute" ranking="+1"/>
		<completion string="ecirc" ranking="+1"/>
		<completion string="euml" ranking="+1"/>
		<completion string="igrave" ranking="+1"/>
		<completion string="iacute" ranking="+1"/>
		<completion string="icirc" ranking="+1"/>
		<completion string="iuml" ranking="+1"/>
		<completion string="ntilde" ranking="+1"/>
		<completion string="ograve" ranking="+1"/>
		<completion string="oacute" ranking="+1"/>
		<completion string="ocirc" ranking="+1"/>
		<completion string="otilde" ranking="+1"/>
		<completion string="ouml" ranking="+1"/>
		<completion string="oslash" ranking="+1"/>
		<completion string="ugrave" ranking="+1"/>
		<completion string="uacute" ranking="+1"/>
		<completion string="ucirc" ranking="+1"/>
		<completion string="uuml" ranking="+1"/>
		<completion string="yacute" ranking="+1"/>
		<completion string="yuml"/>
	</set>
</codesense>
