editors/TextViewer.py
changeset 1847 6198190bc121
parent 1833 2269739dd098
child 1850 614396cbffbf
equal deleted inserted replaced
1846:14b40afccd69 1847:6198190bc121
   284                 if values[1] == "function":
   284                 if values[1] == "function":
   285                     event.SetDragText(blocktype+"(\n    "+hint+")")
   285                     event.SetDragText(blocktype+"(\n    "+hint+")")
   286                 else:
   286                 else:
   287                     event.SetDragText(blockname+"(\n    "+hint+")")
   287                     event.SetDragText(blockname+"(\n    "+hint+")")
   288             elif values[1] == "location":
   288             elif values[1] == "location":
   289                 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   289                 _pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   290                 if len(values) > 2 and pou_type == "program":
   290                 if len(values) > 2 and pou_type == "program":
   291                     var_name = values[3]
   291                     var_name = values[3]
   292                     dlg = wx.TextEntryDialog(
   292                     dlg = wx.TextEntryDialog(
   293                         self.ParentWindow,
   293                         self.ParentWindow,
   294                         _("Confirm or change variable name"),
   294                         _("Confirm or change variable name"),
   337                         self.RefreshVariableTree()
   337                         self.RefreshVariableTree()
   338                         event.SetDragText(var_name)
   338                         event.SetDragText(var_name)
   339                 else:
   339                 else:
   340                     event.SetDragText("")
   340                     event.SetDragText("")
   341             elif values[1] == "NamedConstant":
   341             elif values[1] == "NamedConstant":
   342                 pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   342                 _pou_name, pou_type = self.Controler.GetEditedElementType(self.TagName, self.Debug)
   343                 if pou_type == "program":
   343                 if pou_type == "program":
   344                     initval = values[0]
   344                     initval = values[0]
   345                     var_name = values[3]
   345                     var_name = values[3]
   346                     dlg = wx.TextEntryDialog(
   346                     dlg = wx.TextEntryDialog(
   347                         self.ParentWindow,
   347                         self.ParentWindow,
   495             self.Functions = {}
   495             self.Functions = {}
   496             for category in self.Controler.GetBlockTypes(self.TagName, self.Debug):
   496             for category in self.Controler.GetBlockTypes(self.TagName, self.Debug):
   497                 for blocktype in category["list"]:
   497                 for blocktype in category["list"]:
   498                     blockname = blocktype["name"].upper()
   498                     blockname = blocktype["name"].upper()
   499                     if blocktype["type"] == "function" and blockname not in self.Keywords and blockname not in self.Variables.keys():
   499                     if blocktype["type"] == "function" and blockname not in self.Keywords and blockname not in self.Variables.keys():
   500                         interface = dict([(name, {}) for name, type, modifier in blocktype["inputs"] + blocktype["outputs"] if name != ''])
   500                         interface = dict([(name, {}) for name, _type, _modifier in blocktype["inputs"] + blocktype["outputs"] if name != ''])
   501                         for param in ["EN", "ENO"]:
   501                         for param in ["EN", "ENO"]:
   502                             if param not in interface:
   502                             if param not in interface:
   503                                 interface[param] = {}
   503                                 interface[param] = {}
   504                         if blockname in self.Functions:
   504                         if blockname in self.Functions:
   505                             self.Functions[blockname]["interface"].update(interface)
   505                             self.Functions[blockname]["interface"].update(interface)
   515         self.Variables = self.GenerateVariableTree(
   515         self.Variables = self.GenerateVariableTree(
   516             [(variable.Name, variable.Type, variable.Tree)
   516             [(variable.Name, variable.Type, variable.Tree)
   517              for variable in self.Controler.GetEditedElementInterfaceVars(
   517              for variable in self.Controler.GetEditedElementInterfaceVars(
   518                 self.TagName, True, self.Debug)])
   518                 self.TagName, True, self.Debug)])
   519         if self.Controler.GetEditedElementType(self.TagName, self.Debug)[1] == "function" or words[0] == "T" and self.TextSyntax == "IL":
   519         if self.Controler.GetEditedElementType(self.TagName, self.Debug)[1] == "function" or words[0] == "T" and self.TextSyntax == "IL":
   520             return_type, (var_tree, var_dimension) = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, True, self.Debug)
   520             return_type, (var_tree, _var_dimension) = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, True, self.Debug)
   521             if return_type is not None:
   521             if return_type is not None:
   522                 self.Variables[words[-1].upper()] = self.GenerateVariableTree(var_tree)
   522                 self.Variables[words[-1].upper()] = self.GenerateVariableTree(var_tree)
   523             else:
   523             else:
   524                 self.Variables[words[-1].upper()] = {}
   524                 self.Variables[words[-1].upper()] = {}
   525 
   525 
   526     def GenerateVariableTree(self, list):
   526     def GenerateVariableTree(self, list):
   527         tree = {}
   527         tree = {}
   528         for var_name, var_type, (var_tree, var_dimension) in list:
   528         for var_name, _var_type, (var_tree, _var_dimension) in list:
   529             tree[var_name.upper()] = self.GenerateVariableTree(var_tree)
   529             tree[var_name.upper()] = self.GenerateVariableTree(var_tree)
   530         return tree
   530         return tree
   531 
   531 
   532     def IsValidVariable(self, name, context):
   532     def IsValidVariable(self, name, context):
   533         return context is not None and context.get(name, None) is not None
   533         return context is not None and context.get(name, None) is not None
   816             self.ClearHighlights(SEARCH_RESULT_HIGHLIGHT)
   816             self.ClearHighlights(SEARCH_RESULT_HIGHLIGHT)
   817 
   817 
   818             self.SearchParams = search_params
   818             self.SearchParams = search_params
   819             self.SearchResults = [
   819             self.SearchResults = [
   820                 (infos[1:], start, end, SEARCH_RESULT_HIGHLIGHT)
   820                 (infos[1:], start, end, SEARCH_RESULT_HIGHLIGHT)
   821                 for infos, start, end, text in
   821                 for infos, start, end, _text in
   822                 self.Search(search_params)]
   822                 self.Search(search_params)]
   823             self.CurrentFindHighlight = None
   823             self.CurrentFindHighlight = None
   824 
   824 
   825         if len(self.SearchResults) > 0:
   825         if len(self.SearchResults) > 0:
   826             if self.CurrentFindHighlight is not None:
   826             if self.CurrentFindHighlight is not None: