editors/TextViewer.py
changeset 1060 ac9896336b90
parent 1057 3837e165b3f9
child 1065 36b7ce528911
equal deleted inserted replaced
1059:50246061d5c6 1060:ac9896336b90
    78     ERROR_HIGHLIGHT: STC_PLC_ERROR,
    78     ERROR_HIGHLIGHT: STC_PLC_ERROR,
    79     SEARCH_RESULT_HIGHLIGHT: STC_PLC_SEARCH_RESULT,
    79     SEARCH_RESULT_HIGHLIGHT: STC_PLC_SEARCH_RESULT,
    80 }
    80 }
    81 
    81 
    82 def GetCursorPos(old, new):
    82 def GetCursorPos(old, new):
       
    83     if old == "":
       
    84         return 0
    83     old_length = len(old)
    85     old_length = len(old)
    84     new_length = len(new)
    86     new_length = len(new)
    85     common_length = min(old_length, new_length)
    87     common_length = min(old_length, new_length)
    86     i = 0
    88     i = 0
    87     for i in xrange(common_length):
    89     for i in xrange(common_length):
   443         
   445         
   444         if self.Controler is not None:
   446         if self.Controler is not None:
   445             self.ResetBuffer()
   447             self.ResetBuffer()
   446             self.DisableEvents = True
   448             self.DisableEvents = True
   447             old_cursor_pos = self.GetCurrentPos()
   449             old_cursor_pos = self.GetCurrentPos()
       
   450             line = self.Editor.GetFirstVisibleLine()
       
   451             column = self.Editor.GetXOffset()
   448             old_text = self.GetText()
   452             old_text = self.GetText()
   449             new_text = self.Controler.GetEditedElementText(self.TagName, self.Debug)
   453             new_text = self.Controler.GetEditedElementText(self.TagName, self.Debug)
   450             self.SetText(new_text)
   454             if old_text != new_text:
   451             new_cursor_pos = GetCursorPos(old_text, new_text)
   455                 self.SetText(new_text)
   452             if new_cursor_pos != None:
   456                 new_cursor_pos = GetCursorPos(old_text, new_text)
   453                 self.Editor.GotoPos(new_cursor_pos)
   457                 self.Editor.LineScroll(column, line)
   454             else:
   458                 if new_cursor_pos != None:
   455                 self.Editor.GotoPos(old_cursor_pos)
   459                     self.Editor.GotoPos(new_cursor_pos)
   456             self.Editor.ScrollToColumn(0)
   460                 else:
   457             self.RefreshJumpList()
   461                     self.Editor.GotoPos(old_cursor_pos)
   458             self.Editor.EmptyUndoBuffer()
   462                 self.RefreshJumpList()
       
   463                 self.Editor.EmptyUndoBuffer()
   459             self.DisableEvents = False
   464             self.DisableEvents = False
   460             
   465             
   461             self.RefreshVariableTree()
   466             self.RefreshVariableTree()
   462             
   467             
   463             self.TypeNames = [typename.upper() for typename in self.Controler.GetDataTypes(self.TagName, True, self.Debug)]
   468             self.TypeNames = [typename.upper() for typename in self.Controler.GetDataTypes(self.TagName, True, self.Debug)]