static boolean paragraphBreakingBlockMatches(MarkupLanguage language, String line, int offset) { ConfluenceLanguage markupLanguage = (ConfluenceLanguage) language; for (Block block : markupLanguage.getParagraphBreakingBlocks()) { if (block.canStart(line, offset)) { return true; } } return false; } }
@Override public void setClosed(boolean closed) { if (closed) { style = null; } super.setClosed(closed); } }
public Block startBlock(String line, int lineOffset) { if (isEmptyLine(line)) { // nothing starts on an empty line return null; } for (Block block : getBlocks()) { if (block.canStart(line, lineOffset)) { Block clone = block.clone(); if (clone == null) { // Special case for TableBlock: // Must not be cloned because 'canStart' needs // to be aware of the table state. return block; } return clone; } } return null; }
ConfluenceLanguage markupLanguage = (ConfluenceLanguage) getMarkupLanguage(); for (Block block : markupLanguage.getNestedBlocks()) { if (block.canStart(content, 0)) { nestedBlock = block.clone(); nestedBlock.setParser(getParser()); nestedBlock.setState(getState()); if (paraOpen) { int lineOffset = nestedBlock.processLine(content, 0); if (nestedBlock.isClosed()) { nestedBlock = null;
if (nestedBlocks != null && !nestedBlocks.isEmpty()) { Block nestedParent = nestedBlocks.peek(); int closeOffset = nestedParent.findCloseOffset(line, lineOffset); if (closeOffset != -1) { if (closeOffset > lineOffset) { } else { if (currentBlock != null) { currentBlock.setClosed(true); currentBlock = null; currentBlock.setMarkupLanguage(this); currentBlock.setState(state); currentBlock.setParser(parser); lineOffset = currentBlock.processLineContent(line, lineOffset); if (currentBlock.isClosed()) { currentBlock = null; } else if (currentBlock.beginNesting()) { if (nestedBlocks == null) { nestedBlocks = new Stack<Block>(); if (currentBlock != null && !currentBlock.isClosed()) { currentBlock.setClosed(true); if (!block.isClosed()) { block.setClosed(true);
@Override public MarkupLanguageConfiguration clone() { try { MarkupLanguageConfiguration copy = (MarkupLanguageConfiguration) super.clone(); copy.blocks = new ArrayList<Block>(blocks.size()); for (Block block : blocks) { copy.blocks.add(block.clone()); } copy.phraseModifiers = new ArrayList<PatternBasedElement>(phraseModifiers.size()); for (PatternBasedElement element : phraseModifiers) { copy.phraseModifiers.add(element.clone()); } copy.tokens = new ArrayList<PatternBasedElement>(tokens.size()); for (PatternBasedElement element : tokens) { copy.tokens.add(element.clone()); } return copy; } catch (CloneNotSupportedException e) { throw new IllegalStateException(e); } }
ConfluenceLanguage markupLanguage = (ConfluenceLanguage) getMarkupLanguage(); for (Block block : markupLanguage.getNestingBlocks()) { if (block.canStart(content, 0)) { nestedBlock = block.clone(); nestedBlock.setParser(getParser()); nestedBlock.setState(getState()); if (paraOpen) { int lineOffset = nestedBlock.processLine(content, 0); if (nestedBlock.isClosed()) { nestedBlock = null;
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (quoteBlockState != null && !quoteBlockState.isEmpty()) { closeOne(); } quoteBlockState = null; } super.setClosed(closed); }
if (block.canStart(line, offset)) { setClosed(true); return 0;
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (listState != null && !listState.isEmpty()) { closeOne(); } listState = null; } super.setClosed(closed); }
if (block.canStart(line, offset)) { setClosed(true); return 0;
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (!listState.isEmpty()) { closeOne(); } } super.setClosed(closed); }
@Override public int processLineContent(String line, int offset) { if (blockLineCount == 0) { Attributes attributes = new Attributes(); builder.beginBlock(BlockType.PARAGRAPH, attributes); } if (markupLanguage.isEmptyLine(line)) { setClosed(true); return 0; } TWikiLanguage textileLanguage = (TWikiLanguage) getMarkupLanguage(); for (Block block : textileLanguage.getParagraphBreakingBlocks()) { if (block.canStart(line, offset)) { setClosed(true); return 0; } } if (blockLineCount != 0) { builder.lineBreak(); } ++blockLineCount; textileLanguage.emitMarkupLine(getParser(), state, line, offset); return -1; }
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (listState != null && !listState.isEmpty()) { closeOne(); } listState = null; blockLineCount =0; builderLevel = -1; nesting = false; } super.setClosed(closed); }
@Override public int processLineContent(String line, int offset) { if (blockLineCount == 0) { Attributes attributes = new Attributes(); builder.beginBlock(BlockType.PARAGRAPH, attributes); } if (markupLanguage.isEmptyLine(line)) { setClosed(true); return -1; } ++blockLineCount; TracWikiLanguage markupLanguage = (TracWikiLanguage) getMarkupLanguage(); // paragraphs can have nested lists and other things for (Block block : markupLanguage.getParagraphBreakingBlocks()) { if (block.canStart(line, offset)) { setClosed(true); return 0; } } if (blockLineCount != 1) { // note: newlines don't automatically convert to line breaks builder.characters("\n"); //$NON-NLS-1$ } markupLanguage.emitMarkupLine(getParser(), state, line, offset); return -1; }
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (quoteBlockState != null && !quoteBlockState.isEmpty()) { closeOne(); } quoteBlockState = null; } super.setClosed(closed); }
@Override public int processLineContent(String line, int offset) { if (blockLineCount == 0) { Attributes attributes = new Attributes(); builder.beginBlock(BlockType.PARAGRAPH, attributes); } if (markupLanguage.isEmptyLine(line)) { setClosed(true); return -1; } ++blockLineCount; TracWikiLanguage markupLanguage = (TracWikiLanguage) getMarkupLanguage(); // paragraphs can have nested lists and other things for (Block block : markupLanguage.getParagraphBreakingBlocks()) { if (block.canStart(line, offset)) { setClosed(true); return 0; } } if (blockLineCount != 1) { // note: newlines don't automatically convert to line breaks builder.characters("\n"); //$NON-NLS-1$ } markupLanguage.emitMarkupLine(getParser(), state, line, offset); return -1; }
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (!listState.isEmpty()) { closeOne(); } } super.setClosed(closed); }
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (listState != null && !listState.isEmpty()) { closeOne(); } listState = null; } super.setClosed(closed); }
@Override public void setClosed(boolean closed) { if (closed && !isClosed()) { while (listState != null && !listState.isEmpty()) { closeOne(); } listState = null; } super.setClosed(closed); }