package com.dubture.symfony.core.codeassist.contexts; import org.eclipse.php.internal.core.codeassist.contexts.QuotesContext; import org.eclipse.php.internal.core.util.text.PHPTextSequenceUtilities; import org.eclipse.php.internal.core.util.text.TextSequence; /** * Allow identifiers with dots. Like security.context * * @author zulus */ @SuppressWarnings("restriction") abstract public class QuoteIdentifierContext extends QuotesContext { @Override public String getPrefixWithoutProcessing() { if (hasWhitespaceBeforeCursor()) { return ""; //$NON-NLS-1$ } TextSequence statementText = getStatementText(); int statementLength = statementText.length(); int prefixEnd = PHPTextSequenceUtilities.readBackwardSpaces( statementText, statementLength); // read whitespace int prefixStart = PHPTextSequenceUtilities.readIdentifierStartIndex( getPHPVersion(), statementText, prefixEnd, true); while (prefixStart > 0 && statementText.charAt(prefixStart - 1) == '.') { prefixStart = PHPTextSequenceUtilities.readIdentifierStartIndex( getPHPVersion(), statementText, prefixStart - 1, true); } return statementText.subSequence(prefixStart, prefixEnd).toString(); } }