String (String text) { @NonNls String msg = ""; msg += ";\n nonPhysicalOrInjected=" + isNonPhysicalOrInjected(SharedImplUtil.getContainingFile(this)); msg += ";\n buffer=" + text; try { msg += ";\n this=" + this; } catch (StackOverflowError e) { msg += ";\n this.toString produces SOE"; } int shitStart = textMatches(text, 0); msg += ";\n matches until " + shitStart; LeafElement leaf = findLeafElementAt(Math.abs(shitStart)); msg += ";\n element there=" + leaf; if (leaf != null) { PsiElement psi = leaf.getPsi(); msg += ";\n leaf.text=" + leaf.getText(); msg += ";\n leaf.psi=" + psi; msg += ";\n leaf.lang=" + (psi == null ? null : psi.getLanguage()); msg += ";\n leaf.type=" + leaf.getElementType(); } PsiElement psi = getPsi(); if (psi != null) { boolean valid = psi.isValid(); msg += ";\n psi.valid=" + valid; if (valid) { PsiFile file = psi.getContainingFile(); if (file != null) { msg += ";\n psi.file=" + file; msg += ";\n psi.file.tl=" + file.getTextLength(); msg += ";\n psi.file.lang=" + file.getLanguage(); msg += ";\n psi.file.vp=" + file.getViewProvider(); msg += ";\n psi.file.vp.lang=" + file.getViewProvider().getLanguages(); msg += ";\n psi.file.vp.lang=" + file.getViewProvider().getLanguages(); PsiElement fileLeaf = file.findElementAt(getTextRange().getStartOffset()); LeafElement myLeaf = findLeafElementAt(0); msg += ";\n leaves at start=" + fileLeaf + " and " + myLeaf; } } } return msg; }