Java Code Examples for org.eclipse.jface.text.TypedPosition#getLength()
The following examples show how to use
org.eclipse.jface.text.TypedPosition#getLength() .
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: DocumentPartitioner.java From xtext-eclipse with Eclipse Public License 2.0 | 5 votes |
private boolean isOpenSingleLineCommentPartition(TypedPosition position, int offset) throws BadLocationException { if (position.isDeleted()) { return false; } int endOffset = position.getOffset() + position.getLength(); if (offset != endOffset) { return false; } if (!TerminalsTokenTypeToPartitionMapper.SL_COMMENT_PARTITION.equals(position.getType())) { return false; } int line = fDocument.getLineOfOffset(offset - 1); return fDocument.getLineDelimiter(line) == null; }
Example 2
Source File: JsniFormattingUtil.java From gwt-eclipse-plugin with Eclipse Public License 1.0 | 4 votes |
public static TextEdit format(IDocument document, TypedPosition partition, Map<String, String> javaFormattingPrefs, Map<String, String> javaScriptFormattingPrefs, String original) { try { // Extract the JSNI block out of the document int offset = partition.getOffset(); int length = partition.getLength(); // Determine the line delimiter, indent string, and tab/indent widths String lineDelimiter = TextUtilities.getDefaultLineDelimiter(document); int tabWidth = IndentManipulation.getTabWidth(javaFormattingPrefs); int indentWidth = IndentManipulation.getIndentWidth(javaFormattingPrefs); // Get indentation level of the first line of the JSNI block (this should // be the line containing the JSNI method declaration) int methodDeclarationOffset = getMethodDeclarationOffset(document, offset); int jsniLine1 = document.getLineOfOffset(methodDeclarationOffset); int methodIndentLevel = getLineIndentLevel(document, jsniLine1, tabWidth, indentWidth); DefaultCodeFormatter defaultCodeFormatter = new DefaultCodeFormatter( javaFormattingPrefs); String indentLine = defaultCodeFormatter.createIndentationString(methodIndentLevel); // Extract the JSNI body out of the block and split it up by line String jsniSource = document.get(offset, length); String body = JsniParser.extractMethodBody(jsniSource); String formattedJs; // JSNI Java references mess up the JS formatter, so replace them // with place holder values JsniJavaRefReplacementResult replacementResults = replaceJsniJavaRefs(body); body = replacementResults.getJsni(); TextEdit formatEdit = CodeFormatterUtil.format2( CodeFormatter.K_STATEMENTS, body, methodIndentLevel + 1, lineDelimiter, javaScriptFormattingPrefs); if (formatEdit != null) { body = restoreJsniJavaRefs(replacementResults); Document d = new Document(body); formatEdit.apply(d); formattedJs = d.get(); if (!formattedJs.startsWith(lineDelimiter)) { formattedJs = lineDelimiter + formattedJs; } if (!formattedJs.endsWith(lineDelimiter)) { formattedJs = formattedJs + lineDelimiter; } formattedJs = formattedJs + indentLine; formattedJs = "/*-{" + formattedJs + "}-*/"; } else { if (original == null) { return null; } formattedJs = original; // formatting failed, use the original string } return new ReplaceEdit(offset, length, formattedJs); } catch (Exception e) { GWTPluginLog.logError(e); return null; } }