@NotNull
  @Override
  public ThreeState shouldSkipAutopopup(
      @NotNull PsiElement contextElement, @NotNull PsiFile psiFile, int offset) {
    if (PsiUtil.isLeafElementOfType(contextElement, TokenSets.STRING_LITERALS)) {
      @SuppressWarnings("ConstantConditions")
      PsiElement parent = contextElement.getParent();
      if (parent != null) {
        for (PsiReference reference : parent.getReferences()) {
          if (!reference.isSoft()
              && reference
                  .getRangeInElement()
                  .shiftRight(parent.getTextOffset())
                  .containsOffset(offset)) {
            return ThreeState.NO;
          }
        }
      }

      return ThreeState.YES;
    }

    return ThreeState.UNSURE;
  }