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)] |