private ICompletionProposal escape(DocumentCommand command) { try { String charsetName= fFile.getCharset(); if (!charsetName.equals(fCharsetName)) { fCharsetName= charsetName; fCharsetEncoder= Charset.forName(fCharsetName).newEncoder(); } } catch (CoreException e) { return null; } String text= command.text; boolean escapeUnicodeChars= !fCharsetEncoder.canEncode(text); boolean escapeBackslash= (text.length() > 1) && ((escapeUnicodeChars && PropertiesFileEscapes.containsUnescapedBackslash(text)) || PropertiesFileEscapes.containsInvalidEscapeSequence(text)); if (!escapeUnicodeChars && !escapeBackslash) return null; command.text= PropertiesFileEscapes.escape(text, false, false, escapeUnicodeChars); if (escapeBackslash) { String proposalText= PropertiesFileEscapes.escape(text, false, true, escapeUnicodeChars); return new EscapeBackslashCompletionProposal(proposalText, command.offset, command.text.length(), PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_escapeBackslashesInOriginalString); } return null; }
private ICompletionProposal escape(DocumentCommand command) { try { String charsetName= fFile.getCharset(); if (!charsetName.equals(fCharsetName)) { fCharsetName= charsetName; fCharsetEncoder= Charset.forName(fCharsetName).newEncoder(); } } catch (CoreException e) { return null; } String text= command.text; boolean escapeUnicodeChars= !fCharsetEncoder.canEncode(text); boolean escapeBackslash= (text.length() > 1) && ((escapeUnicodeChars && PropertiesFileEscapes.containsUnescapedBackslash(text)) || PropertiesFileEscapes.containsInvalidEscapeSequence(text)); if (!escapeUnicodeChars && !escapeBackslash) return null; command.text= PropertiesFileEscapes.escape(text, false, false, escapeUnicodeChars); if (escapeBackslash) { String proposalText= PropertiesFileEscapes.escape(text, false, true, escapeUnicodeChars); return new EscapeBackslashCompletionProposal(proposalText, command.offset, command.text.length(), PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_escapeBackslashesInOriginalString); } return null; }
if (resultingCollections == null) return true; resultingCollections.add(new EscapeBackslashCompletionProposal(PropertiesFileEscapes.escape(text, false, true, false), proposalOffset, proposalLength, PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_escapeBackslashes)); return true; if (resultingCollections == null) return true; resultingCollections.add(new EscapeBackslashCompletionProposal(PropertiesFileEscapes.unescapeBackslashes(text), proposalOffset, proposalLength, PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_unescapeBackslashes)); return true;
if (resultingCollections == null) return true; resultingCollections.add(new EscapeBackslashCompletionProposal(PropertiesFileEscapes.escape(text, false, true, false), proposalOffset, proposalLength, PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_escapeBackslashes)); return true; if (resultingCollections == null) return true; resultingCollections.add(new EscapeBackslashCompletionProposal(PropertiesFileEscapes.unescapeBackslashes(text), proposalOffset, proposalLength, PropertiesFileEditorMessages.EscapeBackslashCompletionProposal_unescapeBackslashes)); return true;