dabo Commit
Revision 4296
Date: 2008-07-19 10:02:07 -0700 (Sat, 19 Jul 2008)
Author: Ed
Trac: http://svn.dabodev.com/trac/dabo/changeset/4296

Changed:
U   trunk/ide/ClassDesigner.py
U   trunk/ide/ClassDesignerEditor.py

Log:
Took Nate's recent fix and went one step further: the Class Designer will check 
for syntax errors before you can save code  when declaring imports. Also added 
an errorLog message when a syntax error is found in the _namespaceHacks() 
method; these can still arise if the developer edits the import declaration 
code outside of the Class Designer.


Diff:
Modified: trunk/ide/ClassDesigner.py
===================================================================
--- trunk/ide/ClassDesigner.py  2008-07-19 16:21:02 UTC (rev 4295)
+++ trunk/ide/ClassDesigner.py  2008-07-19 17:02:07 UTC (rev 4296)
@@ -1152,9 +1152,20 @@
 
                dlg = ImportEditDialog(None, 
BasePrefKey=self.BasePrefKey+".ImportEditDialog")
                dlg.edtImport.Text = txt
-               dlg.show()
-               if dlg.Accepted:
-                       self._classImportDict[frm] = dlg.edtImport.Text
+               showDialog = True
+               while showDialog:
+                       dlg.show()
+                       showDialog = dlg.Accepted
+                       if showDialog:
+                               # Check the syntax before storing
+                               txt = dlg.edtImport.Text
+                               try:
+                                       compile(txt.strip(), "", "exec")
+                                       self._classImportDict[frm] = txt
+                                       showDialog = dlg.Accepted = False
+                               except SyntaxError, e:
+                                       errMsg = _("Syntax Error: %s") % e
+                                       dabo.ui.stop(errMsg, _("Error Compiling 
Import Declarations"))
                dlg.release()
 
 

Modified: trunk/ide/ClassDesignerEditor.py
===================================================================
--- trunk/ide/ClassDesignerEditor.py    2008-07-19 16:21:02 UTC (rev 4295)
+++ trunk/ide/ClassDesignerEditor.py    2008-07-19 17:02:07 UTC (rev 4296)
@@ -64,8 +64,9 @@
                if imp:
                        try:
                                exec imp in self._namespaces
-                       except SyntaxError:
-                               pass #Just let namespace import fail.
+                       except SyntaxError, e:
+                               # Record the error so that the developer knows 
there is a problem.
+                               dabo.errorLog.write(_("Compilation error found 
in import code: %s") % e)
 
 
        def _getController(self):




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/[EMAIL PROTECTED]

Reply via email to