Java Code Examples for org.eclipse.jdt.core.formatter.IndentManipulation#isLineDelimiterChar()
The following examples show how to use
org.eclipse.jdt.core.formatter.IndentManipulation#isLineDelimiterChar() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: JavaDocCommentReader.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
/** * @see java.io.Reader#read() */ @Override public int read() { if (fCurrPos < fEndPos) { char ch= getChar(fCurrPos++); if (fWasNewLine && !IndentManipulation.isLineDelimiterChar(ch)) { while (fCurrPos < fEndPos && Character.isWhitespace(ch)) { ch= getChar(fCurrPos++); } if (ch == '*') { if (fCurrPos < fEndPos) { do { ch= getChar(fCurrPos++); } while (ch == '*'); } else { return -1; } } } fWasNewLine= IndentManipulation.isLineDelimiterChar(ch); return ch; } return -1; }
Example 2
Source File: JavaDocCommentReader.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * @see java.io.Reader#read() */ @Override public int read() { if (fCurrPos < fEndPos) { char ch= fBuffer.getChar(fCurrPos++); if (fWasNewLine && !IndentManipulation.isLineDelimiterChar(ch)) { while (fCurrPos < fEndPos && Character.isWhitespace(ch)) { ch= fBuffer.getChar(fCurrPos++); } if (ch == '*') { if (fCurrPos < fEndPos) { do { ch= fBuffer.getChar(fCurrPos++); } while (ch == '*'); } else { return -1; } } } fWasNewLine= IndentManipulation.isLineDelimiterChar(ch); return ch; } return -1; }
Example 3
Source File: NLSUtil.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 5 votes |
private static int findLineEnd(ICompilationUnit cu, int position) throws JavaModelException { IBuffer buffer= cu.getBuffer(); int length= buffer.getLength(); for (int i= position; i < length; i++) { if (IndentManipulation.isLineDelimiterChar(buffer.getChar(i))) { return i; } } return length; }
Example 4
Source File: NLSUtil.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private static int findLineEnd(ICompilationUnit cu, int position) throws JavaModelException { IBuffer buffer= cu.getBuffer(); int length= buffer.getLength(); for (int i= position; i < length; i++) { if (IndentManipulation.isLineDelimiterChar(buffer.getChar(i))) { return i; } } return length; }
Example 5
Source File: StubUtility.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
public static int getIndentUsed(IBuffer buffer, int offset, IJavaProject project) { int i= offset; // find beginning of line while (i > 0 && !IndentManipulation.isLineDelimiterChar(buffer.getChar(i - 1))) { i--; } return Strings.computeIndentUnits(buffer.getText(i, offset - i), project); }
Example 6
Source File: JavaSearchPage.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private SearchPatternData trySimpleTextSelection(ITextSelection selection) { String selectedText= selection.getText(); if (selectedText != null && selectedText.length() > 0) { int i= 0; while (i < selectedText.length() && !IndentManipulation.isLineDelimiterChar(selectedText.charAt(i))) { i++; } if (i > 0) { return new SearchPatternData(TYPE, REFERENCES, 0, fIsCaseSensitive, selectedText.substring(0, i), null, JavaSearchScopeFactory.ALL); } } return null; }
Example 7
Source File: JavaElementLine.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * @param element either an ICompilationUnit or an IClassFile * @param lineNumber the line number, starting at 0 * @param lineStartOffset the start offset of the line * @throws CoreException thrown when accessing of the buffer failed */ public JavaElementLine(ITypeRoot element, int lineNumber, int lineStartOffset) throws CoreException { fElement= element; fFlags= 0; IBuffer buffer= element.getBuffer(); if (buffer == null) { throw new CoreException(new Status(IStatus.ERROR, JavaUI.ID_PLUGIN, Messages.format( SearchMessages.JavaElementLine_error_nobuffer, BasicElementLabels.getFileName(element)))); } int length= buffer.getLength(); int i= lineStartOffset; char ch= buffer.getChar(i); while (lineStartOffset < length && IndentManipulation.isIndentChar(ch)) { ch= buffer.getChar(++i); } fLineStartOffset= i; StringBuffer buf= new StringBuffer(); while (i < length && !IndentManipulation.isLineDelimiterChar(ch)) { if (Character.isISOControl(ch)) { buf.append(' '); } else { buf.append(ch); } i++; if (i < length) ch= buffer.getChar(i); } fLineContents= buf.toString(); fLineNumber= lineNumber; }
Example 8
Source File: ASTRewriteAnalyzer.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private boolean needsNewLineForLineComment(ASTNode node, String formatted, int offset) { if (!this.lineCommentEndOffsets.isEndOfLineComment(getExtendedEnd(node), this.content)) { return false; } // copied code ends with a line comment, but doesn't contain the new line return offset < formatted.length() && !IndentManipulation.isLineDelimiterChar(formatted.charAt(offset)); }
Example 9
Source File: ASTRewriteAnalyzer.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private int getCurrentLineStart(String str, int pos) { for (int i= pos - 1; i>= 0; i--) { char ch= str.charAt(i); if (IndentManipulation.isLineDelimiterChar(ch)) { return i+1; } } return 0; }
Example 10
Source File: SelectionAwareSourceRangeComputer.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 4 votes |
private void initializeRanges() throws CoreException { fRanges = new HashMap<>(); if (fSelectedNodes.length == 0) { return; } fRanges.put(fSelectedNodes[0], super.computeSourceRange(fSelectedNodes[0])); int last = fSelectedNodes.length - 1; fRanges.put(fSelectedNodes[last], super.computeSourceRange(fSelectedNodes[last])); IJavaProject javaProject = ((CompilationUnit) fSelectedNodes[0].getRoot()).getTypeRoot().getJavaProject(); String sourceLevel = javaProject.getOption(JavaCore.COMPILER_SOURCE, true); String complianceLevel = javaProject.getOption(JavaCore.COMPILER_COMPLIANCE, true); IScanner scanner = ToolFactory.createScanner(true, false, false, sourceLevel, complianceLevel); char[] source = fDocumentPortionToScan.toCharArray(); scanner.setSource(source); fDocumentPortionToScan = null; // initializeRanges() is only called once TokenScanner tokenizer = new TokenScanner(scanner); int pos = tokenizer.getNextStartOffset(0, false); ASTNode currentNode = fSelectedNodes[0]; int newStart = Math.min(fSelectionStart + pos, currentNode.getStartPosition()); SourceRange range = fRanges.get(currentNode); fRanges.put(currentNode, new SourceRange(newStart, range.getLength() + range.getStartPosition() - newStart)); currentNode = fSelectedNodes[last]; int scannerStart = currentNode.getStartPosition() + currentNode.getLength() - fSelectionStart; tokenizer.setOffset(scannerStart); pos = scannerStart; int token = -1; try { while (true) { token = tokenizer.readNext(false); pos = tokenizer.getCurrentEndOffset(); } } catch (CoreException e) { } if (token == ITerminalSymbols.TokenNameCOMMENT_LINE) { int index = pos - 1; while (index >= 0 && IndentManipulation.isLineDelimiterChar(source[index])) { pos--; index--; } } int newEnd = Math.max(fSelectionStart + pos, currentNode.getStartPosition() + currentNode.getLength()); range = fRanges.get(currentNode); fRanges.put(currentNode, new SourceRange(range.getStartPosition(), newEnd - range.getStartPosition())); // The extended source range of the last child node can end after the selection. // We have to ensure that the source range of such child nodes is also capped by the selection range. // Example: (/*]*/TRANSFORMER::transform/*[*/) // Selection is between /*]*/ and /*[*/, but the extended range of the "transform" node actually includes /*[*/ as well. while (true) { List<ASTNode> children = ASTNodes.getChildren(currentNode); if (!children.isEmpty()) { ASTNode lastChild = children.get(children.size() - 1); SourceRange extRange = super.computeSourceRange(lastChild); if (extRange.getStartPosition() + extRange.getLength() > newEnd) { fRanges.put(lastChild, new SourceRange(extRange.getStartPosition(), newEnd - extRange.getStartPosition())); currentNode = lastChild; continue; } } break; } }
Example 11
Source File: SelectionAwareSourceRangeComputer.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
private void initializeRanges() throws CoreException { fRanges= new HashMap<ASTNode, SourceRange>(); if (fSelectedNodes.length == 0) return; fRanges.put(fSelectedNodes[0], super.computeSourceRange(fSelectedNodes[0])); int last= fSelectedNodes.length - 1; fRanges.put(fSelectedNodes[last], super.computeSourceRange(fSelectedNodes[last])); IScanner scanner= ToolFactory.createScanner(true, false, false, false); char[] source= fDocumentPortionToScan.toCharArray(); scanner.setSource(source); fDocumentPortionToScan= null; // initializeRanges() is only called once TokenScanner tokenizer= new TokenScanner(scanner); int pos= tokenizer.getNextStartOffset(0, false); ASTNode currentNode= fSelectedNodes[0]; int newStart= Math.min(fSelectionStart + pos, currentNode.getStartPosition()); SourceRange range= fRanges.get(currentNode); fRanges.put(currentNode, new SourceRange(newStart, range.getLength() + range.getStartPosition() - newStart)); currentNode= fSelectedNodes[last]; int scannerStart= currentNode.getStartPosition() + currentNode.getLength() - fSelectionStart; tokenizer.setOffset(scannerStart); pos= scannerStart; int token= -1; try { while (true) { token= tokenizer.readNext(false); pos= tokenizer.getCurrentEndOffset(); } } catch (CoreException e) { } if (token == ITerminalSymbols.TokenNameCOMMENT_LINE) { int index= pos - 1; while (index >= 0 && IndentManipulation.isLineDelimiterChar(source[index])) { pos--; index--; } } int newEnd= Math.max(fSelectionStart + pos, currentNode.getStartPosition() + currentNode.getLength()); range= fRanges.get(currentNode); fRanges.put(currentNode, new SourceRange(range.getStartPosition(), newEnd - range.getStartPosition())); }
Example 12
Source File: StringFix.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
private static ReplaceEdit getReplace(int offset, int length, IBuffer buffer, boolean removeLeadingIndents) { String replaceString= new String(); boolean hasMoreInComment= false; // look after the tag int next= offset + length; while (next < buffer.getLength()) { char ch= buffer.getChar(next); if (IndentManipulation.isIndentChar(ch)) { next++; // remove all whitespace } else if (IndentManipulation.isLineDelimiterChar(ch)) { length= next - offset; break; } else if (ch == '/') { next++; if (next == buffer.getLength() || buffer.getChar(next) != '/') { replaceString= "//"; //$NON-NLS-1$ } else { length= next - offset - 1; } hasMoreInComment= true; break; } else { replaceString= "//"; //$NON-NLS-1$ hasMoreInComment= true; break; } } if (!hasMoreInComment && removeLeadingIndents) { while (offset > 0 && IndentManipulation.isIndentChar(buffer.getChar(offset - 1))) { offset--; length++; } } if (length > 0) { ReplaceEdit replaceEdit= new ReplaceEdit(offset, length, replaceString); return replaceEdit; } else { return null; } }
Example 13
Source File: LineCommentEndOffsets.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 4 votes |
public boolean isEndOfLineComment(int offset, char[] content) { if (offset < 0 || (offset < content.length && !IndentManipulation.isLineDelimiterChar(content[offset]))) { return false; } return Arrays.binarySearch(getOffsets(), offset) >= 0; }