info-level logging and some recovery for range marker invalidation (EA-28886)

This commit is contained in:
peter
2011-08-08 20:57:23 +02:00
parent 594d4d47d2
commit 06f89a5129
2 changed files with 10 additions and 9 deletions
@@ -28,6 +28,7 @@ import com.intellij.ide.DataManager;
import com.intellij.injected.editor.EditorWindow;
import com.intellij.lang.Language;
import com.intellij.lang.injection.InjectedLanguageManager;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.application.AccessToken;
import com.intellij.openapi.application.ApplicationAdapter;
import com.intellij.openapi.application.ApplicationManager;
@@ -608,16 +609,16 @@ public class CodeCompletionHandlerBase implements CodeInsightActionHandler {
item.handleInsert(context);
PostprocessReformattingAspect.getInstance(indicator.getProject()).doPostponedFormatting();
final int tailOffset = context.getTailOffset();
if (tailOffset >= 0) {
if (context.shouldAddCompletionChar()) {
if (context.shouldAddCompletionChar()) {
int tailOffset = context.getTailOffset();
if (tailOffset < 0) {
LOG.info("tailOffset<0 after inserting " + item + " of " + item.getClass());
tailOffset = editor.getCaretModel().getOffset();
} else {
editor.getCaretModel().moveToOffset(tailOffset);
EditorActionManager.getInstance().getTypedAction().getHandler().execute(editor, completionChar, DataManager.getInstance()
.getDataContext(editor.getContentComponent()));
}
}
else {
LOG.error("tailOffset<0 after inserting " + item + " of " + item.getClass());
DataContext dataContext = DataManager.getInstance().getDataContext(editor.getContentComponent());
EditorActionManager.getInstance().getTypedAction().getHandler().execute(editor, completionChar, dataContext);
}
context.stopWatching();
editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE);
@@ -106,7 +106,7 @@ public class RangeMarkerImpl extends UserDataHolderBase implements RangeMarkerEx
private static void reportInvalidation(RangeMarkerEx markerEx, Object e) {
if (markerEx.isTrackInvalidation()) {
LOG.error("Range marker invalidated: "+markerEx +"; say thanks to the "+e);
LOG.info("Range marker invalidated: "+markerEx +"; say thanks to the "+e);
}
}