@NotNull
  private InjectedCaret createInjectedCaret(@NotNull Caret caret) {
    synchronized (myInjectedCaretMap) {
      return myInjectedCaretMap.computeIfAbsent(caret, c->new InjectedCaret(myEditorWindow, c));
    }
  }
@NotNull
  private InjectedCaret createInjectedCaret(@NotNull Caret caret)