<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -4,40 +4,39 @@ Text Editor Actions Javascript Loader
 A loader class to execute JSCocoa scripts in Espresso
 '''
 
-import os
+import os.path
 
-from Foundation import *
 from JavaScriptCore import JSValueRef
-import objc
 
 import JSCocoaFramework
 
+import tea_actions as tea
 from TEALoader import TEALoader
 from espresso import *
 
-# This really shouldn't be necessary thanks to the Foundation import
-# but for some reason the plugin dies without it
-NSObject = objc.lookUpClass('NSObject')
 
 class TEAJavascriptLoader(TEALoader):
     '''
     Dynamically loads up JSCocoa and executes a Javascript file
     '''
-    @objc.signature('B@:@')
-    def performActionWithContext_error_(self, context):
+    @objc.signature('B@:@@')
+    def performActionWithContext_error_(self, context, error):
         '''
         Populates JSCocoa with necessary objects, runs the script
         '''
         if self.script is None:
             tea.log('No script found')
             return False
-        self.script += '.js'
         # Check for user script overrides
+        if self.script[-3:] != '.js':
+            script = self.script + '.js'
+        else:
+            script = self.script
         file = os.path.join(os.path.expanduser(
             '~/Library/Application Support/Espresso/TEA/Scripts/'
-        ), self.script)
+        ), script)
         if not os.path.exists(file):
-            file = os.path.join(self.bundle_path, 'TEA', self.script)
+            file = os.path.join(self.bundle_path, 'TEA', script)
         if not os.path.exists(file):
             # File doesn't exist in the bundle, either, so something is screwy
             return tea.say(
@@ -48,7 +47,7 @@ class TEAJavascriptLoader(TEALoader):
                 '~/Library/Application Support/Espresso/TEA/Scripts'
             )
         # Initialize JSCocoa
-        JSCocoa = objc.lookUpClass('JSCocoaController')
+        JSCocoa = objc.lookUpClass('JSCocoa')
         jsc = JSCocoa.new()
         # Populate Javascript with important objects
         jsc.setObject_withName_(context, 'context')</diff>
      <filename>src/Contents/Resources/TEAJavascriptLoader.py</filename>
    </modified>
    <modified>
      <diff>@@ -60,8 +60,8 @@ class TEALoader(NSObject):
         else:
             return True
     
-    @objc.signature('B@:@')
-    def performActionWithContext_error_(self, context):
+    @objc.signature('B@:@@')
+    def performActionWithContext_error_(self, context, error):
         '''
         Gathers the necessary info, populates the environment, and runs
         the script</diff>
      <filename>src/Contents/Resources/TEALoader.py</filename>
    </modified>
    <modified>
      <diff>@@ -22,8 +22,8 @@ class TEAPreferences(NSObject):
     def canPerformActionWithContext_(self, context):
         return True
     
-    @objc.signature('B@:@')
-    def performActionWithContext_error_(self, context):
+    @objc.signature('B@:@@')
+    def performActionWithContext_error_(self, context, error):
         '''
         Presents a preferences window for the user to set TEA-specific
         preferences</diff>
      <filename>src/Contents/Resources/TEAPreferences.py</filename>
    </modified>
    <modified>
      <diff>@@ -16,8 +16,8 @@ class TEASpacesToTabs(TEAforEspresso):
     numSpaces = objc.IBOutlet()
     spinner = objc.IBOutlet()
     
-    @objc.signature('B@:@')
-    def performActionWithContext_error_(self, context):
+    @objc.signature('B@:@@')
+    def performActionWithContext_error_(self, context, error):
         '''
         Gets the user's preferred number of spaces and switches the 
         indentation style accordingly</diff>
      <filename>src/Contents/Resources/TEASpacesToTabs.py</filename>
    </modified>
    <modified>
      <diff>@@ -99,8 +99,8 @@ class TEAforEspresso(NSObject):
         else:
             return True
     
-    @objc.signature('B@:@')
-    def performActionWithContext_error_(self, context):
+    @objc.signature('B@:@@')
+    def performActionWithContext_error_(self, context, error):
         '''Imports and calls the action's act() method'''
         target_module = load_action(self.action, *self.search_paths)
         if target_module is None:</diff>
      <filename>src/Contents/Resources/TEAforEspresso.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7197e6e093a66f7cb013e530bbcd1ec391abaab4</id>
    </parent>
  </parents>
  <author>
    <name>Ian Beck</name>
    <email>ian@onecrayon.com</email>
  </author>
  <url>http://github.com/subtleGradient/tea-for-espresso/commit/077c98a30d9ce82faca2330b32e4454fdc16f05b</url>
  <id>077c98a30d9ce82faca2330b32e4454fdc16f05b</id>
  <committed-date>2009-07-03T08:00:12-07:00</committed-date>
  <authored-date>2009-07-03T08:00:12-07:00</authored-date>
  <message>Added error parameters; fixed bug with multiple script lookups</message>
  <tree>e3a797b8c13a262d3332d038d79d53d2e177add6</tree>
  <committer>
    <name>Ian Beck</name>
    <email>ian@onecrayon.com</email>
  </committer>
</commit>
