# HG changeset patch # User lbessard # Date 1218551227 -7200 # Node ID cd81a7a6e55c6137f56a1685d3a9a1bb45108b6a # Parent 520d2416ff4dce5b0cf7b8846d42c9216255b8a1 Adding support for highlighing compiling errors into PLCOpenEditor diff -r 520d2416ff4d -r cd81a7a6e55c plugger.py --- a/plugger.py Tue Aug 12 16:25:18 2008 +0200 +++ b/plugger.py Tue Aug 12 16:27:07 2008 +0200 @@ -592,7 +592,7 @@ from PLCControler import PLCControler from PLCOpenEditor import PLCOpenEditor, ProjectDialog from TextViewer import TextViewer -from plcopen.structures import IEC_KEYWORDS, AddPluginBlockList, ClearPluginTypes, PluginTypes +from plcopen.structures import IEC_KEYWORDS import runtime import re @@ -814,10 +814,10 @@ # Update PLCOpenEditor Plugin Block types from loaded plugins def RefreshPluginsBlockLists(self): if getattr(self, "PluggedChilds", None) is not None: - ClearPluginTypes() - AddPluginBlockList(self.BlockTypesFactory()) + self.ClearPluginTypes() + self.AddPluginBlockList(self.BlockTypesFactory()) for child in self.IterChilds(): - AddPluginBlockList(child.BlockTypesFactory()) + self.AddPluginBlockList(child.BlockTypesFactory()) if self.PLCEditor is not None: self.PLCEditor.RefreshEditor() @@ -906,7 +906,7 @@ # files are listed to stdout, and errors to stderr. status, result, err_result = ProcessLogger( logger, - "\"%s\" \"%s\" -I \"%s\" \"%s\""%( + "\"%s\" -f \"%s\" -I \"%s\" \"%s\""%( iec2c_path, self._getIECcodepath(), ieclib_path, buildpath), @@ -937,6 +937,9 @@ """ Method called by user to (re)build SoftPLC and plugin tree """ + if self.PLCEditor is not None: + self.PLCEditor.ClearErrors() + buildpath = self._getBuildPath() # Eventually create build dir @@ -1050,8 +1053,15 @@ self.EnableMethod("_Run", True) return True - - + + def ShowError(self, logger, from_location, to_location): + chunk_infos = self.GetChunkInfos(from_location, to_location) + self._EditPLC(logger) + for infos, (start_row, start_col) in chunk_infos: + start = (from_location[0] - start_row, from_location[1] - start_col) + end = (to_location[0] - start_row, to_location[1] - start_col) + self.PLCEditor.ShowError(infos, start, end) + def _showIECcode(self, logger): plc_file = self._getIECcodepath() new_dialog = wx.Frame(self.AppFrame)