added install command, also now saves class/ref opening settings when SC closes
This commit is contained in:
parent
067f4cb869
commit
0add10c6a4
|
@ -0,0 +1,52 @@
|
||||||
|
<?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>beforeRunningCommand</key>
|
||||||
|
<string>nop</string>
|
||||||
|
<key>command</key>
|
||||||
|
<string>#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
def could_not_locate
|
||||||
|
puts "<span style='color:red'>There was a problem</span><br/>"
|
||||||
|
puts "Probably, you do not have SuperCollider installed, or you are using a non-standard user support directory.<br/><br/>"
|
||||||
|
puts "You will need to manually copy <code>supercollider-tmbundle/Support/classes/TextMate.sc</code> into your SC class path"
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "=======================================<br/>"
|
||||||
|
puts "Textmate SuperCollider bundle<br/>"
|
||||||
|
puts "by <a href='http://rfwatson.github.com'>R.Watson</a>.<br/>"
|
||||||
|
puts "=======================================<br/><br/>"
|
||||||
|
|
||||||
|
if File.exists?(File.expand_path("~/Library/Application Support/SuperCollider/Extensions/TextMate.sc"))
|
||||||
|
puts "<span style='color:green'>SuperCollider bundle already installed</span>.<br/>"
|
||||||
|
else
|
||||||
|
if not File.directory?(File.expand_path("~/Library/Application Support/SuperCollider/Extensions"))
|
||||||
|
could_not_locate
|
||||||
|
else
|
||||||
|
if system %Q{ln -s '#{ENV['TM_BUNDLE_SUPPORT']}/classes/TextMate.sc' '#{File.expand_path("~/Library/Application Support/SuperCollider/Extensions/TextMate.sc")}'}
|
||||||
|
puts "<span style='color:green'>Successfully installed TextMate class</span>.<br/><br/>"
|
||||||
|
puts "Relaunch SuperCollider to complete installation."
|
||||||
|
else
|
||||||
|
puts "There was an error installing the class file.<br/><br/>"
|
||||||
|
could_not_locate
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
</string>
|
||||||
|
<key>fallbackInput</key>
|
||||||
|
<string>document</string>
|
||||||
|
<key>input</key>
|
||||||
|
<string>selection</string>
|
||||||
|
<key>keyEquivalent</key>
|
||||||
|
<string>$@</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Install</string>
|
||||||
|
<key>output</key>
|
||||||
|
<string>showAsHTML</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>source.supercollider</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>BB37ACE9-8262-4AF6-B3C6-43DC0AF2B370</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -1,9 +1,18 @@
|
||||||
TextMate {
|
TextMate {
|
||||||
classvar menu, <openClassInTextMate, <openReferencesInTextMate;
|
classvar menu, <openClassInTextMate, <openReferencesInTextMate;
|
||||||
|
|
||||||
|
*saveState {
|
||||||
|
(
|
||||||
|
classfiles: openClassInTextMate.state,
|
||||||
|
references: openReferencesInTextMate.state
|
||||||
|
).writeArchive("%/.textmate-settings".format(Platform.userAppSupportDir));
|
||||||
|
}
|
||||||
|
|
||||||
*initClass {
|
*initClass {
|
||||||
var opt;
|
var opt;
|
||||||
|
|
||||||
|
var settings = Object.readArchive("%/.textmate-settings".format(Platform.userAppSupportDir));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
menu = CocoaMenuItem(nil, 7, "TextMate", true);
|
menu = CocoaMenuItem(nil, 7, "TextMate", true);
|
||||||
|
|
||||||
|
@ -17,13 +26,24 @@ TextMate {
|
||||||
|
|
||||||
openClassInTextMate = CocoaMenuItem(menu, 1, "Open class files in TextMate", false) { |item|
|
openClassInTextMate = CocoaMenuItem(menu, 1, "Open class files in TextMate", false) { |item|
|
||||||
item.state = item.state.not;
|
item.state = item.state.not;
|
||||||
|
this.saveState;
|
||||||
};
|
};
|
||||||
openClassInTextMate.state = true;
|
openClassInTextMate.state = settings.classfiles;
|
||||||
|
|
||||||
openReferencesInTextMate = CocoaMenuItem(menu, 2, "Open references in TextMate", false) { |item|
|
openReferencesInTextMate = CocoaMenuItem(menu, 2, "Open references in TextMate", false) { |item|
|
||||||
item.state = item.state.not;
|
item.state = item.state.not;
|
||||||
|
this.saveState;
|
||||||
|
};
|
||||||
|
openReferencesInTextMate.state = settings.references;
|
||||||
|
|
||||||
|
CocoaMenuItem(menu, 3, "About SuperCollider bundle", false) { |item|
|
||||||
|
Document.new.string = "TextMate-SuperCollider bundle
|
||||||
|
|
||||||
|
by R.Watson
|
||||||
|
|
||||||
|
For documentation and source code,
|
||||||
|
http://rfwatson.github.com"
|
||||||
};
|
};
|
||||||
openReferencesInTextMate.state = true;
|
|
||||||
} {
|
} {
|
||||||
"TextMate found a problem installing CocoaMenuItems - you may be running SC 3.2 or older, or booting from command-line.".warn
|
"TextMate found a problem installing CocoaMenuItems - you may be running SC 3.2 or older, or booting from command-line.".warn
|
||||||
}
|
}
|
Loading…
Reference in New Issue