Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

SELECT STUFF!!!!!1!

  • Loading branch information...
commit 3ee518ce8caba8c7f029b77218b6dd563483b708 0 parents
Thomas Aylott authored
71 Macros/Balance Jr Back.tmMacro
@@ -0,0 +1,71 @@
+<?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>commands</key>
+ <array>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>action</key>
+ <string>findPrevious</string>
+ <key>findInProjectIgnoreCase</key>
+ <true/>
+ <key>findInProjectRegularExpression</key>
+ <false/>
+ <key>findString</key>
+ <string>(?xm)
+&lt;(\w+)[^&gt;]*&gt;(?&gt;[^&lt;]*?&lt;/\1&gt;) # HTML Tags Balanced
+|(?&lt;=[^/]&gt;)[^&gt;&lt;]*(?=&lt;/) # HTML &gt;Contents&lt;/
+|(?&lt;=&lt;!--\s).*?(?=\s--&gt;) # HTML Comments
+|\b[\w-]+\b(?=\s*=) # HTML Attribute name
+|\s\b[\w-]+\b=\"[^\"]*\" # HTML Attribute name value pair
+|(?&lt;=\")[^\"\n&lt;&gt;]*(?=\") # HTML Compatible String Double
+|&lt;[^&gt;\n]*/?&gt; # HTML Tags
+
+|&lt;%.*?%&gt; # Embedded Source
+|(?&lt;=&lt;%[-@#=]\s).*?(?=\s-?%&gt;) # The contents of various other forms of Embedded Source
+|(?&lt;=&lt;%\s).*?(?=\s-?%&gt;) # The contents of Embedded Source
+
+|(?&lt;=/\*).*?(?=\*/) # /* Contents of Comment Blocks */
+|/\*.*?\*/ # /* Comment Blocks */
+
+|(?&lt;=\')[^\'\n]*?(?=\') # 'String Single'
+|(?&lt;=\")[^\"\n]*(?=\") # String Double
+|(?&lt;=\[)[^\[\]\n]*?(?=\]) # [Square Brackets]
+|(?&lt;=\{)[^\{\}\n]*?(?=\}) # {Curly Brackets}
+
+|\#[0-9a-fA-F]{3,6} # Hex Colors
+|(?&lt;![\d])-?\d+(?:\.\d+)?(?!=\d) # Number 123 123.123 -123
+|[@$!]\w+\b # @variables $variables !etc
+
+|(?&lt;=[\(,:])[^\(\),\n]*(?=[\),;]) # Comma Delimitated
+# Thomas Aylott &lt;oblivious@subtleGradient.com&gt; #
+# Balance Jr. Regular Expression version 2.8 #</string>
+ <key>ignoreCase</key>
+ <true/>
+ <key>regularExpression</key>
+ <true/>
+ <key>replaceAllScope</key>
+ <string>selection</string>
+ <key>replaceString</key>
+ <string>subtleGradient</string>
+ <key>wrapAround</key>
+ <true/>
+ </dict>
+ <key>command</key>
+ <string>findWithOptions:</string>
+ </dict>
+ </array>
+ <key>keyEquivalent</key>
+ <string></string>
+ <key>name</key>
+ <string>Balance Jr Back</string>
+ <key>scopeType</key>
+ <string>local</string>
+ <key>useGlobalClipboard</key>
+ <true/>
+ <key>uuid</key>
+ <string>558D7FAD-9A7D-41C1-AB86-2DB93973711D</string>
+</dict>
+</plist>
71 Macros/Balance Jr Forward.tmMacro
@@ -0,0 +1,71 @@
+<?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>commands</key>
+ <array>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>action</key>
+ <string>findNext</string>
+ <key>findInProjectIgnoreCase</key>
+ <true/>
+ <key>findInProjectRegularExpression</key>
+ <false/>
+ <key>findString</key>
+ <string>(?xm)
+&lt;(\w+)[^&gt;]*&gt;(?&gt;[^&lt;]*?&lt;/\1&gt;) # HTML Tags Balanced
+|(?&lt;=[^/]&gt;)[^&gt;&lt;]*(?=&lt;/) # HTML &gt;Contents&lt;/
+|(?&lt;=&lt;!--\s).*?(?=\s--&gt;) # HTML Comments
+|\b[\w-]+\b(?=\s*=) # HTML Attribute name
+|\s\b[\w-]+\b=\"[^\"]*\" # HTML Attribute name value pair
+|(?&lt;=\")[^\"\n&lt;&gt;]*(?=\") # HTML Compatible String Double
+|&lt;[^&gt;\n]*/?&gt; # HTML Tags
+
+|&lt;%.*?%&gt; # Embedded Source
+|(?&lt;=&lt;%[-@#=]\s).*?(?=\s-?%&gt;) # The contents of various other forms of Embedded Source
+|(?&lt;=&lt;%\s).*?(?=\s-?%&gt;) # The contents of Embedded Source
+
+|(?&lt;=/\*).*?(?=\*/) # /* Contents of Comment Blocks */
+|/\*.*?\*/ # /* Comment Blocks */
+
+|(?&lt;=\')[^\'\n]*?(?=\') # 'String Single'
+|(?&lt;=\")[^\"\n]*(?=\") # String Double
+|(?&lt;=\[)[^\[\]\n]*?(?=\]) # [Square Brackets]
+|(?&lt;=\{)[^\{\}\n]*?(?=\}) # {Curly Brackets}
+
+|\#[0-9a-fA-F]{3,6} # Hex Colors
+|(?&lt;![\d])-?\d+(?:\.\d+)?(?!=\d) # Number 123 123.123 -123
+|[@$!]\w+\b # @variables $variables !etc
+
+|(?&lt;=[\(,:])[^\(\),\n]*(?=[\),;]) # Comma Delimitated
+# Thomas Aylott &lt;oblivious@subtleGradient.com&gt; #
+# Balance Jr. Regular Expression version 2.8 #</string>
+ <key>ignoreCase</key>
+ <true/>
+ <key>regularExpression</key>
+ <true/>
+ <key>replaceAllScope</key>
+ <string>selection</string>
+ <key>replaceString</key>
+ <string>subtleGradient</string>
+ <key>wrapAround</key>
+ <true/>
+ </dict>
+ <key>command</key>
+ <string>findWithOptions:</string>
+ </dict>
+ </array>
+ <key>keyEquivalent</key>
+ <string></string>
+ <key>name</key>
+ <string>Balance Jr Forward</string>
+ <key>scopeType</key>
+ <string>local</string>
+ <key>useGlobalClipboard</key>
+ <true/>
+ <key>uuid</key>
+ <string>33E4BFCF-83DF-4029-9A8C-8F00B9DD2241</string>
+</dict>
+</plist>
225 Macros/Select Balanced (HT|X)ML Tags.tmMacro
@@ -0,0 +1,225 @@
+<?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>bundleUUID</key>
+ <string>B5A22967-2E6A-4B66-9C71-DA8762C01E27</string>
+ <key>commands</key>
+ <array>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>action</key>
+ <string>findNext</string>
+ <key>findInProjectIgnoreCase</key>
+ <true/>
+ <key>findInProjectRegularExpression</key>
+ <false/>
+ <key>findString</key>
+ <string>￳</string>
+ <key>ignoreCase</key>
+ <false/>
+ <key>regularExpression</key>
+ <false/>
+ <key>replaceAllScope</key>
+ <string>document</string>
+ <key>replaceString</key>
+ <string>$1</string>
+ <key>wrapAround</key>
+ <true/>
+ </dict>
+ <key>command</key>
+ <string>findWithOptions:</string>
+ </dict>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>export __CF_USER_TEXT_ENCODING=0x1F5:0x8000100:0x8000100
+perl -Xe '
+##########################################
+## Select Balanced (HT|X)ML Tags: bug report/feature request to Hans-Jörg Bibiko bibiko@eva.mpg.de
+###########################################
+BEGIN {
+ if (!eval { require HTML::Parser}) {
+ print STDERR "The Perl package HTML::Parser is not installed!\n\nExecute in Terminal:\nsudo -H cpan -i HTML::Parser\n\nHint: You need install Apple\x27s developer toolkit (gcc compiler).";
+ exit 1;
+ }
+}
+
+our @stack = (); our $start; our $end;
+
+$utf8a = q{
+ [\x00-\x7F]
+ | [\xC2-\xDF][\x80-\xBF]
+ | \xE0[\xA0-\xBF][\x80-\xBF]
+ | [\xE1-\xEF][\x80-\xBF][\x80-\xBF]
+ | \xF0[\x90-\xBF][\x80-\xBF][\x80-\xBF]
+ | [\xF1-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]
+ | \xF8[\x88-\xBF][\x80-\xBF][\x80-\xBF][\x80-\xBF]
+ | [\xF9-\xFB][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ | \xFC[\x84-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ | \xFD[\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ };
+
+undef $/;
+$org = &lt;&gt;;
+if(defined($ENV{"TM_INPUT_START_LINE"})) {
+ $line = $ENV{"TM_INPUT_START_LINE"}-1;
+ $line_index = $ENV{"TM_INPUT_START_LINE_INDEX"}+0;
+} else {
+ $line = $ENV{"TM_LINE_NUMBER"}-1;
+ $line_index = $ENV{"TM_LINE_INDEX"}+0;
+}
+
+# get position of the caret and set it to $curindex
+our $curindex = 0; $count = $line;
+while($count--){
+ $curindex = index($org,"\n",$curindex);
+ $curindex++;
+}
+$curindex += $line_index;
+
+@ign_tag = ();
+if(defined($ENV{"TM_HTML_EMPTY_TAGS"})) {
+ @ign_tag = split(/\|/, $ENV{"TM_HTML_EMPTY_TAGS"});
+ push(@ign_tag,map{$_."/"}@ign_tag);
+}
+$xmlmode = ($ENV{"TM_MODE"} =~ m/(xml|property list|xlst)/i) ? 1 : 0;
+
+###### parse left from caret
+
+# adjust curindex if curindex is inside of a tag
+our $p = HTML::Parser-&gt;new( api_version =&gt; 3,
+ start_h =&gt; [\&amp;starttag_l0,"offset, offset_end"],
+ end_h =&gt; [\&amp;endtag_l0, "offset_end"],
+);
+
+$p-&gt;ignore_tags( @ign_tag );
+$p-&gt;xml_mode($xmlmode);
+$p-&gt;parse($org);
+
+# start parse left from caret
+@stack = ();
+$p = HTML::Parser-&gt;new( api_version =&gt; 3,
+ start_h =&gt; [\&amp;starttag_left,"tagname, offset, line, offset_end"],
+ end_h =&gt; [\&amp;endtag_left, "tagname"],
+);
+$p-&gt;ignore_tags( @ign_tag );
+$p-&gt;xml_mode($xmlmode);
+$text = substr($org,0,$curindex);
+$p-&gt;parse($text);
+
+$start = shift(@stack);
+
+# calculate $column for setting the caret and check for the very left edge of a multi-line block
+$offset = rindex(substr($text,0,$start-&gt;[1]), "\n");
+$offtext = substr($org, $offset+1, $start-&gt;[1]-$offset);
+$offtext =~ m/^([ \t]*?)&lt;$/;$a=$1;
+$offtext =~ m/^(.*?)&lt;$/; $b=$1;
+## in case that close tag is not the very right edge
+@len = $offtext =~ /$utf8a/gox;
+$column_temp = $#len+1;
+$column = $column_temp;
+$start_temp = $start-&gt;[1];
+$is_edge = 0;
+if(length($a)==length($b)) { $start-&gt;[1] -= length($a); $column = 1; $is_edge = 1; }
+undef $text;
+
+####### search right from caret
+@stack = ();
+
+$p = HTML::Parser-&gt;new( api_version =&gt; 3,
+ start_h =&gt; [\&amp;starttag_right,"tagname"],
+ end_h =&gt; [\&amp;endtag_right, "tagname, offset_end"],
+);
+
+$p-&gt;ignore_tags( @ign_tag );
+$p-&gt;xml_mode($xmlmode);
+
+# readjust caret
+$curindex = $start-&gt;[3];
+
+$p-&gt;parse(substr($org,$curindex,length($org)-$curindex));
+
+# check for the very right edge of a multi-line block
+if($is_edge) {
+ $offtext = substr($org,$end-&gt;[1]+$curindex,length($org)-$end-&gt;[1]-$curindex);
+ $offtext = substr($offtext,0,index($offtext,"\n"));
+ $offtext =~ m/^([ \t]*$)/m; $a=$1;
+ $offtext =~ m/^(.*?)$/m; $b=$1;
+ if(length($a)==length($b)){
+ $end-&gt;[1] += length($1)+1;
+ } else {
+ $column = $column_temp;
+ $start-&gt;[1] = $start_temp;
+ }
+}
+
+# exit if no open tag is found
+if(!length($start-&gt;[0])){ print STDERR "No balanced tags found!"; exit 1; }
+
+# warn if open and close tag names differ
+print STDERR "Please verify start/end tag:\n\n\x27$start-&gt;[0]\x27 ≠ \x27$end-&gt;[0]\x27" if($start-&gt;[0] ne $end-&gt;[0]);
+
+# set the caret and return the chunk
+system("open \"txmt://open/?line=$start-&gt;[2]&amp;column=$column\"");
+print substr($org,$start-&gt;[1],$end-&gt;[1]+$curindex-$start-&gt;[1]);
+
+sub starttag_l0 {
+ ($offset, $offset_end) = @_;
+ if($offset&gt;=$curindex) {
+ $curindex = $adjustindex + 1;
+ $p-&gt;eof(); return;
+ }
+ $adjustindex = $offset_end;
+}
+sub endtag_l0 {
+ ($offset_end) = @_;
+ if($offset_end&gt;$curindex) {
+ $curindex = $adjustindex + 1;
+ $p-&gt;eof(); return;
+ }
+ $adjustindex = $offset_end;
+}
+sub starttag_left { unshift(@stack, [@_]); }
+sub endtag_left { ($tag) = @_; while(@stack) { last if (shift(@stack)-&gt;[0] eq $tag) }; }
+sub starttag_right { unshift(@stack, [@_]); }
+sub endtag_right {
+ ($tag, $offset_end) = @_;
+ if(!@stack){ $end = [$tag,$offset_end]; $p-&gt;eof() if ($end-&gt;[0] eq $tag); }
+ else { while(@stack) { last if (shift(@stack)-&gt;[0] eq $tag) }; }
+}
+
+' | pbcopy -pboard find</string>
+ <key>input</key>
+ <string>document</string>
+ <key>keyEquivalent</key>
+ <string>^1</string>
+ <key>name</key>
+ <string>start</string>
+ <key>output</key>
+ <string>showAsTooltip</string>
+ <key>uuid</key>
+ <string>44875D0C-086B-4B25-9F6F-79B9BAA1C03A</string>
+ </dict>
+ <key>command</key>
+ <string>executeCommandWithOptions:</string>
+ </dict>
+ <dict>
+ <key>command</key>
+ <string>findNext:</string>
+ </dict>
+ </array>
+ <key>keyEquivalent</key>
+ <string>@B</string>
+ <key>name</key>
+ <string>Select Balanced (HT|X)ML Tags</string>
+ <key>scope</key>
+ <string>text.html -(comment.block.html) -(text.html source), text.xml -(comment.block.xml) -(text.xml source)</string>
+ <key>uuid</key>
+ <string>154ED053-9860-4249-B159-E7A8D7482AE5</string>
+</dict>
+</plist>
179 Macros/Select Content of Balanced (HT|X)ML Tags.tmMacro
@@ -0,0 +1,179 @@
+<?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>bundleUUID</key>
+ <string>B5A22967-2E6A-4B66-9C71-DA8762C01E27</string>
+ <key>commands</key>
+ <array>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>action</key>
+ <string>findNext</string>
+ <key>findInProjectIgnoreCase</key>
+ <true/>
+ <key>findInProjectRegularExpression</key>
+ <false/>
+ <key>findString</key>
+ <string>￳</string>
+ <key>ignoreCase</key>
+ <false/>
+ <key>regularExpression</key>
+ <false/>
+ <key>replaceAllScope</key>
+ <string>document</string>
+ <key>replaceString</key>
+ <string>$1</string>
+ <key>wrapAround</key>
+ <true/>
+ </dict>
+ <key>command</key>
+ <string>findWithOptions:</string>
+ </dict>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>export __CF_USER_TEXT_ENCODING=0x1F5:0x8000100:0x8000100
+perl -Xe '
+##########################################
+## Select Content of Balanced (HT|X)ML Tags: bug report/feature request to Hans-Jörg Bibiko bibiko@eva.mpg.de
+###########################################
+BEGIN {
+ if (!eval { require HTML::Parser}) {
+ print STDERR "The Perl package HTML::Parser is not installed!\n\nExecute in Terminal:\nsudo -H cpan -i HTML::Parser\n\nHint: You need install Apple\x27s developer toolkit (gcc compiler).";
+ exit 1;
+ }
+}
+
+our @stack = (); our $start; our $end;
+
+$utf8a = q{
+ [\x00-\x7F]
+ | [\xC2-\xDF][\x80-\xBF]
+ | \xE0[\xA0-\xBF][\x80-\xBF]
+ | [\xE1-\xEF][\x80-\xBF][\x80-\xBF]
+ | \xF0[\x90-\xBF][\x80-\xBF][\x80-\xBF]
+ | [\xF1-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]
+ | \xF8[\x88-\xBF][\x80-\xBF][\x80-\xBF][\x80-\xBF]
+ | [\xF9-\xFB][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ | \xFC[\x84-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ | \xFD[\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF][\x88-\xBF]
+ };
+
+undef $/;
+$org = &lt;&gt;;
+if(defined($ENV{"TM_INPUT_START_LINE"})) {
+ $line = $ENV{"TM_INPUT_START_LINE"}-1;
+ $line_index = $ENV{"TM_INPUT_START_LINE_INDEX"}+0;
+} else {
+ $line = $ENV{"TM_LINE_NUMBER"}-1;
+ $line_index = $ENV{"TM_LINE_INDEX"}+0;
+}
+
+# get position of the caret and set it to $curindex
+our $curindex = 0; $count = $line;
+while($count--){
+ $curindex = index($org,"\n",$curindex);
+ $curindex++;
+}
+$curindex += $line_index;
+# avoid endless loop for a selection
+$curindex-- if(defined($ENV{"TM_INPUT_START_LINE"}));
+@ign_tag = ();
+if(defined($ENV{"TM_HTML_EMPTY_TAGS"})) {
+ @ign_tag = split(/\|/, $ENV{"TM_HTML_EMPTY_TAGS"});
+ push(@ign_tag,map{$_."/"}@ign_tag);
+}
+$xmlmode = ($ENV{"TM_MODE"} =~ m/(xml|property list|xlst)/i) ? 1 : 0;
+
+###### parse left from caret
+
+# start parse left from caret
+@stack = ();
+$p = HTML::Parser-&gt;new( api_version =&gt; 3,
+ start_h =&gt; [\&amp;starttag_left,"tagname, offset, line, offset_end"],
+ end_h =&gt; [\&amp;endtag_left, "tagname"],
+);
+$p-&gt;ignore_tags( @ign_tag );
+$p-&gt;xml_mode($xmlmode);
+$text = substr($org,0,$curindex);
+$p-&gt;parse($text);
+
+$start = shift(@stack);
+# calculate $column for setting the caret
+$offset = rindex(substr($text,0,$start-&gt;[3]), "\n");
+$offtext = substr($org, $offset+1, $start-&gt;[3]-$offset);
+@len = $offtext =~ /$utf8a/gox;
+$column = $#len + 1;
+
+undef $text;
+
+####### search right from caret
+@stack = ();
+
+$p = HTML::Parser-&gt;new( api_version =&gt; 3,
+ start_h =&gt; [\&amp;starttag_right,"tagname"],
+ end_h =&gt; [\&amp;endtag_right, "tagname, offset"],
+);
+
+$p-&gt;ignore_tags( @ign_tag );
+$p-&gt;xml_mode($xmlmode);
+
+# readjust caret
+$curindex = $start-&gt;[3];
+
+$p-&gt;parse(substr($org,$curindex,length($org)-$curindex));
+
+# exit if no open tag is found
+if(!length($start-&gt;[0])){ print STDERR "No balanced tags found!"; exit 1; }
+
+# warn if open and close tag names differ
+print STDERR "Please verify start/end tag:\n\n\x27$start-&gt;[0]\x27 ≠ \x27$end-&gt;[0]\x27" if($start-&gt;[0] ne $end-&gt;[0]);
+
+# set the caret and return the chunk
+system("open \"txmt://open/?line=$start-&gt;[2]&amp;column=$column\"");
+print substr($org,$start-&gt;[3],$end-&gt;[1]+$curindex-$start-&gt;[3]);
+
+sub starttag_left { unshift(@stack, [@_]); }
+sub endtag_left { ($tag) = @_; while(@stack) { last if (shift(@stack)-&gt;[0] eq $tag) }; }
+sub starttag_right { unshift(@stack, [@_]); }
+sub endtag_right {
+ ($tag, $offset) = @_;
+ if(!@stack){ $end = [$tag,$offset]; $p-&gt;eof() if ($end-&gt;[0] eq $tag); }
+ else { while(@stack) { last if (shift(@stack)-&gt;[0] eq $tag) }; }
+}
+
+' | pbcopy -pboard find</string>
+ <key>input</key>
+ <string>document</string>
+ <key>keyEquivalent</key>
+ <string>^1</string>
+ <key>name</key>
+ <string>start</string>
+ <key>output</key>
+ <string>showAsTooltip</string>
+ <key>uuid</key>
+ <string>44875D0C-086B-4B25-9F6F-79B9BAA1C03A</string>
+ </dict>
+ <key>command</key>
+ <string>executeCommandWithOptions:</string>
+ </dict>
+ <dict>
+ <key>command</key>
+ <string>findNext:</string>
+ </dict>
+ </array>
+ <key>keyEquivalent</key>
+ <string>~@B</string>
+ <key>name</key>
+ <string>Select Content of Balanced (HT|X)ML Tags</string>
+ <key>scope</key>
+ <string>text.html -(comment.block.html) -(text.html source), text.xml -(comment.block.xml) -(text.xml source)</string>
+ <key>uuid</key>
+ <string>A0A40B0E-7E6C-4D71-AF5B-27712243CB08</string>
+</dict>
+</plist>
50 Macros/Select Folding Group.tmMacro
@@ -0,0 +1,50 @@
+<?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>commands</key>
+ <array>
+ <dict>
+ <key>command</key>
+ <string>toggleFolding:</string>
+ </dict>
+ <dict>
+ <key>command</key>
+ <string>moveToBeginningOfLine:</string>
+ </dict>
+ <dict>
+ <key>command</key>
+ <string>moveDownAndModifySelection:</string>
+ </dict>
+ <dict>
+ <key>argument</key>
+ <dict>
+ <key>action</key>
+ <string>replaceAll</string>
+ <key>findInProjectIgnoreCase</key>
+ <false/>
+ <key>findInProjectRegularExpression</key>
+ <false/>
+ <key>findString</key>
+ <string>^</string>
+ <key>ignoreCase</key>
+ <false/>
+ <key>regularExpression</key>
+ <true/>
+ <key>replaceAllScope</key>
+ <string>selection</string>
+ <key>wrapAround</key>
+ <true/>
+ </dict>
+ <key>command</key>
+ <string>findWithOptions:</string>
+ </dict>
+ </array>
+ <key>keyEquivalent</key>
+ <string>^</string>
+ <key>name</key>
+ <string>Select Folding Group</string>
+ <key>uuid</key>
+ <string>5854EC0D-70A8-4A45-ABD6-5654B036F831</string>
+</dict>
+</plist>
30 README.md
@@ -0,0 +1,30 @@
+Select Stuff
+============
+
+Balance Jr
+----------
+*Created by [Thomas Aylott](http://subtlegradient.com/ "Howdy")*
+
+Select the most obvious thing. Try it.
+
+* Balance Jr Back — **HOME**
+* Balance Jr Forward — **END**
+
+Select Folding Group
+--------------------
+*Created by [Thomas Aylott](http://subtlegradient.com/ "Howdy")*
+
+Select the current folding group. Undoable.
+&#x2318;Z moves your cursor back to its previous location.
+
+* Select Folding Group — **&#x2303;F1**
+
+Select Balanced Tags
+--------------------
+*Created by [Hans-Jörg Bibiko](http://www.bibiko.de/ "Homepage - Hans-Jörg Bibiko")*
+
+Select the current HTML / XML tag or its contents.
+Repeatable. Keep running the command to select the next parent tag.
+
+* Select Balanced (HT|X)ML Tags — **&#x2318;&#x21E7;B**
+* Select Content of Balanced (HT|X)ML Tags — **&#x2318;&#x2325;&#x21E7;B**
33 info.plist
@@ -0,0 +1,33 @@
+<?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>mainMenu</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>558D7FAD-9A7D-41C1-AB86-2DB93973711D</string>
+ <string>33E4BFCF-83DF-4029-9A8C-8F00B9DD2241</string>
+ <string>------------------------------------</string>
+ <string>5854EC0D-70A8-4A45-ABD6-5654B036F831</string>
+ <string>------------------------------------</string>
+ <string>154ED053-9860-4249-B159-E7A8D7482AE5</string>
+ <string>A0A40B0E-7E6C-4D71-AF5B-27712243CB08</string>
+ </array>
+ <key>submenus</key>
+ <dict/>
+ </dict>
+ <key>name</key>
+ <string>Select Stuff</string>
+ <key>ordering</key>
+ <array>
+ <string>558D7FAD-9A7D-41C1-AB86-2DB93973711D</string>
+ <string>33E4BFCF-83DF-4029-9A8C-8F00B9DD2241</string>
+ <string>5854EC0D-70A8-4A45-ABD6-5654B036F831</string>
+ <string>154ED053-9860-4249-B159-E7A8D7482AE5</string>
+ <string>A0A40B0E-7E6C-4D71-AF5B-27712243CB08</string>
+ </array>
+ <key>uuid</key>
+ <string>93E68DB2-9697-4A0C-AF72-1DF13FCC0B58</string>
+</dict>
+</plist>
Please sign in to comment.
Something went wrong with that request. Please try again.