Sublime Forum

Revert/convert back to ST2 from ST3: Questions

#1

I’m a paid user of ST3 but need to revert back to ST2 due to the need to edit in-line CoffeeScript, see this:

Here’s an earlier ST2 post that refers to the inline CoffeeScript problem:


There does not seem to be a similar patch for ST3.

Questions: (Mainly because I’ve not used ST2)

  • Will my ST3 license work with ST2?
  • What steps do I need to take to revert? Ex:
    …Will my projects files still work or do I have to change the JSON format?
    …Can ST2 and ST3 coexist without interfering with each other?

If it turns out to be a pain, I may just skip all this and go to Atom … which also has the problem but is likely to be fixed due to github being a CoffeeScript shop.

Thanks,

– Owen

0 Likes

#2
  1. Yes, the license is for both ST2 and ST3 (unless you bought it before the ST3 announcement, then it is ST2 and ST3 “dev beta” license).
  2. If you used package control, you can try just moving your packages directory .Some plugins are compatible with both ST2 and ST3, but not all.
  3. Don’t think the format has changed, but I’m not really sure.
  4. Yes, you can have both installed on the same system.

With regards to the patch, the same entry will likely work with ST3. You can use github.com/skuroda/PackageResourceViewer to open the HTML.tmLanguage file. Replace the contents of the file with the following

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>html</string>
		<string>htm</string>
		<string>shtml</string>
		<string>xhtml</string>
		<string>phtml</string>
		<string>inc</string>
		<string>tmpl</string>
		<string>tpl</string>
		<string>ctp</string>
	</array>
	<key>firstLineMatch</key>
	<string>&lt;!(?i:DOCTYPE)|&lt;(?i:html)|&lt;\?(?i:php)</string>
	<key>foldingStartMarker</key>
	<string>(?x)
		(&lt;(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?&gt;
		|&lt;!--(?!.*--\s*&gt;)
		|^&lt;!--\ \#tminclude\ (?&gt;.*?--&gt;)$
		|&lt;\?(?:php)?.*\b(if|for(each)?|while)\b.+:
		|\{\{?(if|foreach|capture|literal|foreach|php|section|strip)
		|\{\s*($|\?&gt;\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
		)</string>
	<key>foldingStopMarker</key>
	<string>(?x)
		(&lt;/(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)&gt;
		|^(?!.*?&lt;!--).*?--\s*&gt;
		|^&lt;!--\ end\ tminclude\ --&gt;$
		|&lt;\?(?:php)?.*\bend(if|for(each)?|while)\b
		|\{\{?/(if|foreach|capture|literal|foreach|php|section|strip)
		|^^{]*\}
		)</string>
	<key>keyEquivalent</key>
	<string>^~H</string>
	<key>name</key>
	<string>HTML</string>
	<key>patterns</key>
	<array>
	      <dict>
         <key>begin</key>
		<string>(?:^\s+)?(&lt;)((?i:script))\b(?=^&gt;]*type *=^&gt;]*text/coffeescript)\b(?!^&gt;]*/&gt;)</string>
         <key>beginCaptures</key>
         <dict>
            <key>1</key>
            <dict>
               <key>name</key>
               <string>punctuation.definition.tag.html</string>
            </dict>
            <key>2</key>
            <dict>
               <key>name</key>
               <string>entity.name.tag.script.html</string>
            </dict>
         </dict>
         <key>end</key>
         <string>(?&lt;=&lt;/(script|SCRIPT))(&gt;)(?:\s*\n)?</string>
         <key>endCaptures</key>
         <dict>
            <key>2</key>
            <dict>
               <key>name</key>
               <string>punctuation.definition.tag.html</string>
            </dict>
         </dict>
         <key>name</key>
         <string>source.coffee.embedded.html</string>
         <key>patterns</key>
         <array>
            <dict>
               <key>include</key>
               <string>#tag-stuff</string>
            </dict>
            <dict>
               <key>begin</key>
               <string>(?&lt;!&lt;/(?:script|SCRIPT))(&gt;)</string>
               <key>captures</key>
               <dict>
                  <key>1</key>
                  <dict>
                     <key>name</key>
                     <string>punctuation.definition.tag.html</string>
                  </dict>
                  <key>2</key>
                  <dict>
                     <key>name</key>
                     <string>entity.name.tag.script.html</string>
                  </dict>
               </dict>
               <key>end</key>
               <string>(&lt;/)((?i:script))</string>
               <key>patterns</key>
               <array>
                  <dict>
                     <key>include</key>
                     <string>source.coffee</string>
                  </dict>
               </array>
            </dict>
         </array>
      </dict>
		<dict>
			<key>begin</key>
			<string>(&lt;)([a-zA-Z0-9:]++)(?=^&gt;]*&gt;&lt;/\2&gt;)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(&gt;)(&lt;)(/)(\2)(&gt;)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.html</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.any.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(&lt;\?)(xml)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.xml.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(\?&gt;)</string>
			<key>name</key>
			<string>meta.tag.preprocessor.xml.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-generic-attribute</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#string-double-quoted</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#string-single-quoted</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>&lt;!--</string>
			<key>captures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.comment.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>--\s*&gt;</string>
			<key>name</key>
			<string>comment.block.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>--</string>
					<key>name</key>
					<string>invalid.illegal.bad-comments-or-CDATA.html</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#embedded-code</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>&lt;!</string>
			<key>captures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>&gt;</string>
			<key>name</key>
			<string>meta.tag.sgml.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>(?i:DOCTYPE)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>entity.name.tag.doctype.html</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?=&gt;)</string>
					<key>name</key>
					<string>meta.tag.sgml.doctype.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>"^"&gt;]*"</string>
							<key>name</key>
							<string>string.quoted.double.doctype.identifiers-and-DTDs.html</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>\[CDATA\[</string>
					<key>end</key>
					<string>]](?=&gt;)</string>
					<key>name</key>
					<string>constant.other.inline-data.html</string>
				</dict>
				<dict>
					<key>match</key>
					<string>(\s*)(?!--|&gt;)\S(\s*)</string>
					<key>name</key>
					<string>invalid.illegal.bad-comments-or-CDATA.html</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>include</key>
			<string>#embedded-code</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?:^\s+)?(&lt;)((?i:style))\b(?!^&gt;]*/&gt;)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.style.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=&lt;/(?:[sS][tT][yY][lL][eE]))(&gt;)(?:\s*\n)?</string>
			<key>endCaptures</key>
			<dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.style.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>(?&lt;!&lt;/(?:[sS][tT][yY][lL][eE]))(&gt;)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.tag.begin.html</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.name.tag.style.html</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(&lt;/)((?i:style))</string>
					<key>contentName</key>
					<string>source.css.embedded.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>begin</key>
							<string>/\*</string>
							<key>captures</key>
							<dict>
								<key>0</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.css</string>
								</dict>
							</dict>
							<key>end</key>
							<string>\*/|(?=&lt;/[sS][tT][yY][lL][eE])</string>
							<key>name</key>
							<string>comment.block.css</string>
						</dict>
						<dict>
							<key>include</key>
							<string>source.css</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?:^\s+)?(&lt;)((?i:script))\b(?!^&gt;]*/&gt;)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.script.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=&lt;/([sS][cC][rR][iI][pP][tT]))(&gt;)(?:\s*\n)?</string>
			<key>endCaptures</key>
			<dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.script.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>(?&lt;!&lt;/(?:[sS][cC][rR][iI][pP][tT]))(&gt;)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.tag.end.html</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.name.tag.script.html</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(&lt;/)((?i:script))</string>
					<key>contentName</key>
					<string>source.js.embedded.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>captures</key>
							<dict>
								<key>1</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.js</string>
								</dict>
							</dict>
							<key>match</key>
							<string>(//).*?((?=&lt;/[sS][cC][rR][iI][pP][tT])|$\n?)</string>
							<key>name</key>
							<string>comment.line.double-slash.js</string>
						</dict>
						<dict>
							<key>begin</key>
							<string>/\*</string>
							<key>captures</key>
							<dict>
								<key>0</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.js</string>
								</dict>
							</dict>
							<key>end</key>
							<string>\*/|(?=&lt;/[sS][cC][rR][iI][pP][tT])</string>
							<key>name</key>
							<string>comment.block.js</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#php</string>
						</dict>
						<dict>
							<key>include</key>
							<string>source.js</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(&lt;/?)((?i:body|head|html)\b)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.structure.any.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(&gt;)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.structure.any.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(&lt;/?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.block.any.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(&gt;)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.block.any.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(&lt;/?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.inline.any.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>((?: ?/)?&gt;)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.inline.any.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(&lt;/?)([a-zA-Z0-9:]+)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.begin.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.tag.other.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(&gt;)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.tag.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.tag.other.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-stuff</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>include</key>
			<string>#entities</string>
		</dict>
		<dict>
			<key>match</key>
			<string>&lt;&gt;</string>
			<key>name</key>
			<string>invalid.illegal.incomplete.html</string>
		</dict>
		<dict>
			<key>match</key>
			<string>&lt;</string>
			<key>name</key>
			<string>invalid.illegal.bad-angle-bracket.html</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>embedded-code</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#ruby</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#php</string>
				</dict>
				<!--
				<dict>
					<key>include</key>
					<string>#smarty</string>
				</dict>
				-->
				<dict>
					<key>include</key>
					<string>#python</string>
				</dict>
			</array>
		</dict>
		<key>entities</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.entity.html</string>
						</dict>
						<key>3</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.entity.html</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(&amp;)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string>
					<key>name</key>
					<string>constant.character.entity.html</string>
				</dict>
				<dict>
					<key>match</key>
					<string>&amp;</string>
					<key>name</key>
					<string>invalid.illegal.bad-ampersand.html</string>
				</dict>
			</array>
		</dict>
		<key>php</key>
		<dict>
			<key>begin</key>
			<string>(?=(^\s*)?&lt;\?)</string>
			<key>end</key>
			<string>(?!(^\s*)?&lt;\?)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.php</string>
				</dict>
			</array>
		</dict>
		<key>python</key>
		<dict>
			<key>begin</key>
			<string>(?:^\s*)&lt;\?python(?!.*\?&gt;)</string>
			<key>end</key>
			<string>\?&gt;(?:\s*$\n)?</string>
			<key>contentName</key>
			<string>source.python.embedded.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.python</string>
				</dict>
			</array>
		</dict>
		<key>ruby</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>&lt;+#</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.erb</string>
						</dict>
					</dict>
					<key>end</key>
					<string>%&gt;</string>
					<key>name</key>
					<string>comment.block.erb</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>&lt;%+(?!&gt;)=?</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.section.embedded.ruby</string>
						</dict>
					</dict>
					<key>end</key>
					<string>-?%&gt;</string>
					<key>contentName</key>
					<string>source.ruby.embedded.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>captures</key>
							<dict>
								<key>1</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.ruby</string>
								</dict>
							</dict>
							<key>match</key>
							<string>(#).*?(?=-?%&gt;)</string>
							<key>name</key>
							<string>comment.line.number-sign.ruby</string>
						</dict>
						<dict>
							<key>include</key>
							<string>source.ruby</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>&lt;\?r(?!&gt;)=?</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.section.embedded.ruby.nitro</string>
						</dict>
					</dict>
					<key>end</key>
					<string>-?\?&gt;</string>
					<key>contentName</key>
					<string>source.ruby.nitro.embedded.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>captures</key>
							<dict>
								<key>1</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.ruby.nitro</string>
								</dict>
							</dict>
							<key>match</key>
							<string>(#).*?(?=-?\?&gt;)</string>
							<key>name</key>
							<string>comment.line.number-sign.ruby.nitro</string>
						</dict>
						<dict>
							<key>include</key>
							<string>source.ruby</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<!--
		<key>smarty</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>(\{(literal)\})</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>source.smarty.embedded.html</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>support.function.built-in.smarty</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(\{/(literal)\})</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>{{|{</string>
					<key>disabled</key>
					<integer>1</integer>
					<key>end</key>
					<string>}}|}</string>
					<key>name</key>
					<string>source.smarty.embedded.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.smarty</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		-->
		<key>string-double-quoted</key>
		<dict>
			<key>begin</key>
			<string>"</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.begin.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>"</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>string.quoted.double.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#embedded-code</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#entities</string>
				</dict>
			</array>
		</dict>
		<key>string-single-quoted</key>
		<dict>
			<key>begin</key>
			<string>'</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.begin.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>'</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.end.html</string>
				</dict>
			</dict>
			<key>name</key>
			<string>string.quoted.single.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#embedded-code</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#entities</string>
				</dict>
			</array>
		</dict>
		<key>tag-generic-attribute</key>
		<dict>
			<key>match</key>
			<string>\b([a-zA-Z\-:]+)</string>
			<key>name</key>
			<string>entity.other.attribute-name.html</string>
		</dict>
		<key>tag-id-attribute</key>
		<dict>
			<key>begin</key>
			<string>\b(id)\b\s*(=)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>entity.other.attribute-name.id.html</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.key-value.html</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;='|")</string>
			<key>name</key>
			<string>meta.attribute-with-value.id.html</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>"</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.html</string>
						</dict>
					</dict>
					<key>contentName</key>
					<string>meta.toc-list.id.html</string>
					<key>end</key>
					<string>"</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.html</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#embedded-code</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#entities</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>'</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.html</string>
						</dict>
					</dict>
					<key>contentName</key>
					<string>meta.toc-list.id.html</string>
					<key>end</key>
					<string>'</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.html</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.single.html</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#embedded-code</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#entities</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>tag-stuff</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#tag-id-attribute</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#tag-generic-attribute</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#string-double-quoted</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#string-single-quoted</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#embedded-code</string>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>text.html.basic</string>
	<key>uuid</key>
	<string>17994EC8-6B1D-11D9-AC3A-000D93589AF6</string>
</dict>
</plist>

I don’t do coffeescript development, so didn’t really test it much. Just grabbed a random coffeescript language definition from package control, and entered some sample code. Looked like it highlighted properly.

As a summary explanation, the solution was the same as what you posted. The default files are just packaged, so you have to place a file in the proper location to override the default bundled files. PackageResourceViewer makes this trivial though.

It’s probably worth mentioning that almost anything you could do in ST2, you can do in ST3. The steps to achieve those results may differ though. Saw in your other post a question about TM plugins, but going to answer here. As far as I know, TM plugins do not work in ST (not really the surprising). What does work across both editors are the language files.

0 Likes

#3

[quote=“skuroda”]…]

  1. If you used package control, you can try just moving your packages directory .Some plugins are compatible with both ST2 and ST3, but not all.
  2. Don’t think the format has changed, but I’m not really sure.

…]

It’s probably worth mentioning that almost anything you could do in ST2, you can do in ST3. The steps to achieve those results may differ though. Saw in your other post a question about TM plugins, but going to answer here. As far as I know, TM plugins do not work in ST (not really the surprising). What does work across both editors are the language files.[/quote]

  1. See also my comment on reddit. It’s the same for the other direction.
  2. It has not. The only things that are incomptabible are your “sublime-workspace” files and they don’t really contain important information (e.g. open files, window layout, search history etc.).

This is correct. The main thing that changed between ST2 and ST3 is the plugin interface and since you are not a plugin developer this will likely not affect you much, except when the plugins you use have not been ported.

The parts of “tmBundles” that SublimeText supports and actually uses itself are: tmTheme, tmLanguage and tmPreferences. Technically ST even recognizes tmBundles as valid ST packages, but that is some pretty useless knowledge.

PS: Am I the only one who constantly wants to use Markdown instead of BBCode for links?

0 Likes

#4

Wow! Thanks for all the help. I’ll stick with ST3 as long as I can fix problems. I am a bit concerned about ST in general, the support seems to be slowing.

Thanks again,

– Owen

0 Likes

#5

Just curious: do people prefer ST3? Or do folks generally stay with ST2? Any interesting differences?

0 Likes

#6

I mainly use ST3 because its API is better, except for the removal of “view.begin_edit()” and the like. And it’s faster.

0 Likes