StringKind (PsiElement leaf, IElementType contentTokenType) { if (contentTokenType == GSTRING_CONTENT) { PsiElement parent = leaf.getParent(); // template string content PsiElement gParent = parent.getParent(); // template string element if (isMultiline(gParent)) { // "....${}...<here>" return StringKind.TRIPLE_DOUBLE_QUOTED; } else { // """....${}...<here>""" return StringKind.DOUBLE_QUOTED; } } else if (contentTokenType == SLASHY_CONTENT) { // /....${}...<here>/ return StringKind.SLASHY; } else if (contentTokenType == DOLLAR_SLASHY_CONTENT) { // $/...${}...<here>/$ return StringKind.DOLLAR_SLASHY; } return null; }