public OutlineItem parse(OutlineItem root, String markup) { if (markup == null || markup.length() == 0 || markupLanguage == null) { root.setLength(markup == null ? 0 : markup.length()); return root; } root.setLength(markup.length()); markupLanguage.setFilterGenerativeContents(true); markupLanguage.setBlocksOnly(isBlocksOnly()); try { OutlineBuilder outlineBuilder = (OutlineBuilder) createOutlineUpdater(root); outlineBuilder.idGenerator.setGenerationStrategy(markupLanguage.getIdGenerationStrategy()); MarkupParser markupParser = new MarkupParser(); markupParser.setBuilder(outlineBuilder); markupParser.setMarkupLanguage(markupLanguage); markupParser.parse(markup); } finally { markupLanguage.setFilterGenerativeContents(false); markupLanguage.setBlocksOnly(false); } return root; }
markupLanguage.setFilterGenerativeContents(true); PartitionBuilder partitionBuilder = new PartitionBuilder(startOffset, markupLanguage.isBlocksOnly()); markupParser.setBuilder(partitionBuilder);
markupLanguage.setEnableMacros(true); markupLanguage.setBlocksOnly(false); markupLanguage.setFilterGenerativeContents(false);
public void reparse(IDocument document, Block block) { MarkupParser markupParser = new MarkupParser(markupLanguage); markupLanguage.setBlocksOnly(false); markupLanguage.setFilterGenerativeContents(true); PartitionBuilder partitionBuilder = new PartitionBuilder(block.getOffset(), false); markupParser.setBuilder(partitionBuilder); try { markupParser.parse(document.get(block.getOffset(), block.getLength())); for (Segment<?> s : partitionBuilder.outerBlock.getChildren().asList()) { if (s.getOffset() == block.getOffset()) { if (s instanceof Block) { block.replaceChildren(s); block.setSpansComputed(true); break; } } } } catch (BadLocationException e) { throw new IllegalStateException(e); } }