@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { tokenSyntax.add(new EntityReferenceReplacementToken("(tm)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(TM)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(c)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(C)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(r)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(R)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new FootnoteReferenceReplacementToken()); if (configuration == null || !configuration.isOptimizeForRepositoryUsage()) { ResourceBundle res = ResourceBundle.getBundle(BUNDLE_NAME, configuration == null || configuration.getLocale() == null ? Locale.ENGLISH : configuration.getLocale()); tokenSyntax.add(new EntityWrappingReplacementToken( "\"", res.getString("quote_left"), res.getString("quote_right"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ tokenSyntax.add(new EntityWrappingReplacementToken( "'", res.getString("singlequote_left"), res.getString("singlequote_right"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=\\w)(')(?=\\w))", "#8217")); // apostrophe //$NON-NLS-1$ //$NON-NLS-2$ } tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(--)(?=\\s\\w))", "#8212")); // emdash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=\\w\\s)(-)(?=\\s\\w))", "#8211")); // endash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=\\d\\s)(x)(?=\\s\\d))", "#215")); // mul //$NON-NLS-1$ //$NON-NLS-2$ if (configuration == null || !configuration.isOptimizeForRepositoryUsage()) { tokenSyntax.add(new AcronymReplacementToken()); } }
state.setShift(previousShift + textLineOffset); for (;;) { PatternBasedElementProcessor phraseModifier = getPhraseModifierSyntax().findPatternBasedElement(line, offset); if (phraseModifier != null) {
PatternBasedElementProcessor tokenReplacement = getReplacementTokenSyntax().findPatternBasedElement(text, offset); if (tokenReplacement != null) {
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { boolean escapingHtml = configuration == null ? false : configuration.isEscapingHtmlAndXml(); phraseModifierSyntax.add(new HtmlEndTagPhraseModifier(escapingHtml)); phraseModifierSyntax.add(new HtmlStartTagPhraseModifier(escapingHtml)); phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.,\\\"'?!;:\\)\\(\\{\\}\\[\\]])|^)(?:", 0); //$NON-NLS-1$ phraseModifierSyntax.add(new EscapeTextilePhraseModifier()); phraseModifierSyntax.add(new SimpleTextilePhraseModifier("**", SpanType.BOLD, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("??", SpanType.CITATION, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("__", SpanType.ITALIC, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("_", SpanType.EMPHASIS, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("*", SpanType.STRONG, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("+", SpanType.INSERTED, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("~", SpanType.SUBSCRIPT, Mode.NORMAL)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("^", SpanType.SUPERSCRIPT, Mode.NORMAL)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("@", SpanType.CODE, Mode.SPECIAL)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("%", SpanType.SPAN, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleTextilePhraseModifier("-", SpanType.DELETED, Mode.NESTING)); //$NON-NLS-1$ phraseModifierSyntax.add(new ImageTextilePhraseModifier()); phraseModifierSyntax.add(new HyperlinkPhraseModifier()); // hyperlinks are actually a phrase modifier see bug 283093 phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! tokenSyntax.add(new BangEscapeToken()); tokenSyntax.add(new LineBreakToken()); tokenSyntax.beginGroup("(?:(?<=[\\s\\.\\\"'?!;:\\)\\(\\{\\}\\[\\]-])|^)(?:", 0); // always starts at the start of a line or after a non-word character excluding '!' and '-' //$NON-NLS-1$ tokenSyntax.add(new RevisionLogReplacementToken()); tokenSyntax.add(new ChangesetLinkReplacementToken()); tokenSyntax.add(new HyperlinkReplacementToken()); tokenSyntax.add(new ImpliedHyperlinkReplacementToken()); tokenSyntax.add(new TicketAttachmentLinkReplacementToken()); tokenSyntax.add(new TicketLinkReplacementToken()); tokenSyntax.add(new ReportLinkReplacementToken()); tokenSyntax.add(new MilestoneLinkReplacementToken()); tokenSyntax.add(new SourceLinkReplacementToken()); tokenSyntax.add(new WikiLinkReplacementToken()); if (configuration == null || configuration.isWikiWordLinking() == null || configuration.isWikiWordLinking()) { tokenSyntax.add(new WikiWordReplacementToken()); } tokenSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.,\\\"'?!;:\\)\\(\\[\\]])|^)(?:", 0); //$NON-NLS-1$ // phraseModifierSyntax.add(new HyperlinkPhraseModifier()); phraseModifierSyntax.add(new StrangePhraseModifier("*", SpanType.STRONG, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new StrangePhraseModifier("_", SpanType.EMPHASIS, true)); phraseModifierSyntax.add(new StrangePhraseModifier("??", SpanType.CITATION, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new StrangePhraseModifier("-", SpanType.DELETED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new StrangePhraseModifier("+", SpanType.UNDERLINED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new StrangePhraseModifier("^", SpanType.SUPERSCRIPT, false)); //$NON-NLS-1$ phraseModifierSyntax.add(new StrangePhraseModifier("~", SpanType.SUBSCRIPT, false)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleWrappedPhraseModifier("{{", "}}", SpanType.MONOSPACE, true)); //$NON-NLS-1$ //$NON-NLS-2$ phraseModifierSyntax.add(new ConfluenceWrappedPhraseModifier("{quote}", SpanType.QUOTE, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new ImagePhraseModifier()); //phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); // Lookahead expression causes problems! phraseModifierSyntax.endGroup(")", 0); //$NON-NLS-1$ phraseModifierSyntax.beginGroup("(?:", 0); //$NON-NLS-1$ phraseModifierSyntax.add(new HyperlinkPhraseModifier()); phraseModifierSyntax.endGroup(")", 0); //$NON-NLS-1$ }
@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { // tokenSyntax.add(new ImpliedHyperlinkReplacementToken()); tokenSyntax.add(new HyperlinkReplacementToken()); tokenSyntax.add(new AnchorReplacementToken()); tokenSyntax.add(new PatternLineBreakReplacementToken("(\\\\\\\\)")); // line break //$NON-NLS-1$ tokenSyntax.add(new EscapedCharacterReplacementToken()); // ORDER DEPENDENCY must come after line break tokenSyntax.add(new EntityReferenceReplacementToken("(tm)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(TM)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(c)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(C)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(r)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(R)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=\\w\\s)(---)(?=\\s\\w))", "#8212")); // emdash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=\\w\\s)(--)(?=\\s\\w))", "#8211")); // endash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternLiteralReplacementToken("(----)", "<hr/>")); // horizontal rule //$NON-NLS-1$ //$NON-NLS-2$ // Ordering - this replacement token must come last. tokenSyntax.add(new UnknownMacroReplacementToken()); }
@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! tokenSyntax.add(new BangEscapeToken()); tokenSyntax.add(new LineBreakToken()); tokenSyntax.beginGroup("(?:(?<=[\\s\\.\\\"'?!;:\\)\\(\\{\\}\\[\\]-])|^)(?:", 0); // always starts at the start of a line or after a non-word character excluding '!' and '-' //$NON-NLS-1$ tokenSyntax.add(new MacroReplacementToken()); tokenSyntax.add(new RevisionLogReplacementToken()); tokenSyntax.add(new ChangesetLinkReplacementToken()); tokenSyntax.add(new HyperlinkReplacementToken()); tokenSyntax.add(new ImpliedHyperlinkReplacementToken()); tokenSyntax.add(new TicketAttachmentLinkReplacementToken()); tokenSyntax.add(new TicketLinkReplacementToken()); tokenSyntax.add(new ReportLinkReplacementToken()); tokenSyntax.add(new MilestoneLinkReplacementToken()); tokenSyntax.add(new SourceLinkReplacementToken()); tokenSyntax.add(new WikiLinkReplacementToken()); if (configuration == null || configuration.isWikiWordLinking() == null || configuration.isWikiWordLinking()) { tokenSyntax.add(new WikiWordReplacementToken()); } tokenSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! boolean escapingHtml = configuration == null ? false : configuration.isEscapingHtmlAndXml(); phraseModifierSyntax.add(new AutoLinkSwitchPhraseModifier()); if (!escapingHtml) { phraseModifierSyntax.add(new HtmlStartTagPhraseModifier()); phraseModifierSyntax.add(new HtmlEndTagPhraseModifier()); } phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.,\\\"'?!;:\\)\\(\\{\\}\\[\\]])|^)(?:", 0); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("*", SpanType.BOLD)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("__", new SpanType[] { SpanType.BOLD, SpanType.ITALIC })); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("_", SpanType.ITALIC)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("==", new SpanType[] { SpanType.BOLD, SpanType.MONOSPACE })); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("=", SpanType.MONOSPACE)); //$NON-NLS-1$ phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ literalPhraseModifierSyntax.add(new HtmlStartTagPhraseModifier()); literalPhraseModifierSyntax.add(new HtmlEndTagPhraseModifier()); }
@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! tokenSyntax.add(new EntityReferenceReplacementToken("(tm)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(TM)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(c)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(C)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(r)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(R)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new LinkReplacementToken()); tokenSyntax.add(new ImpliedHyperlinkReplacementToken()); tokenSyntax.add(new ImpliedEmailLinkReplacementToken()); tokenSyntax.add(new WikiWordReplacementToken()); tokenSyntax.add(new IconReplacementToken()); literalTokenSyntax.add(new ImpliedHyperlinkReplacementToken()); }
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.,\\\"'?!;:\\)\\(\\[\\]])|^)(?:", 0); //$NON-NLS-1$ phraseModifierSyntax.add(new HyperlinkPhraseModifier()); phraseModifierSyntax.add(new SimplePhraseModifier("*", SpanType.STRONG, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new EmphasisPhraseModifier()); phraseModifierSyntax.add(new SimplePhraseModifier("??", SpanType.CITATION, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("-", SpanType.DELETED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("+", SpanType.UNDERLINED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("^", SpanType.SUPERSCRIPT, false)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("~", SpanType.SUBSCRIPT, false)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimpleWrappedPhraseModifier("{{", "}}", SpanType.MONOSPACE, false)); //$NON-NLS-1$ //$NON-NLS-2$ phraseModifierSyntax.add(new ConfluenceWrappedPhraseModifier("{quote}", SpanType.QUOTE, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new ColorPhraseModifier()); phraseModifierSyntax.add(new ImagePhraseModifier()); phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! phraseModifierSyntax.add(new MonospacePhraseModifier()); phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.\\\"'?!;:\\)\\(\\{\\}\\[\\]-])|^)(?:", 0); // always starts at the start of a line or after a non-word character excluding '!' and '-' //$NON-NLS-1$ phraseModifierSyntax.add(new EscapePhraseModifier()); phraseModifierSyntax.add(new SimplePhraseModifier("'''''", new SpanType[] { SpanType.BOLD, SpanType.ITALIC }, //$NON-NLS-1$ true)); phraseModifierSyntax.add(new SimplePhraseModifier("'''", SpanType.BOLD, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("''", SpanType.ITALIC, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("__", SpanType.UNDERLINED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("~~", SpanType.DELETED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("^", SpanType.SUPERSCRIPT, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier(",,", SpanType.SUBSCRIPT, true)); //$NON-NLS-1$ phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardPhraseModifiers(PatternBasedSyntax phraseModifierSyntax) { // IMPORTANT NOTE: Most items below have order dependencies. DO NOT REORDER ITEMS BELOW!! phraseModifierSyntax.add(new MonospacePhraseModifier()); phraseModifierSyntax.beginGroup("(?:(?<=[\\s\\.\\\"'?!;:\\)\\(\\{\\}\\[\\]-])|^)(?:", 0); // always starts at the start of a line or after a non-word character excluding '!' and '-' //$NON-NLS-1$ phraseModifierSyntax.add(new EscapePhraseModifier()); phraseModifierSyntax.add(new SimplePhraseModifier("'''''", new SpanType[] { SpanType.BOLD, SpanType.ITALIC }, //$NON-NLS-1$ true)); phraseModifierSyntax.add(new SimplePhraseModifier("'''", SpanType.BOLD, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("''", SpanType.ITALIC, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier("__", SpanType.UNDERLINED, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new DeletedPhraseModifier()); phraseModifierSyntax.add(new SimplePhraseModifier("^", SpanType.SUPERSCRIPT, true)); //$NON-NLS-1$ phraseModifierSyntax.add(new SimplePhraseModifier(",,", SpanType.SUBSCRIPT, true)); //$NON-NLS-1$ phraseModifierSyntax.endGroup(")(?=\\W|$)", 0); //$NON-NLS-1$ }
@Override protected void addStandardTokens(PatternBasedSyntax tokenSyntax) { tokenSyntax.add(new PatternLineBreakReplacementToken("(\\\\\\\\ ?)")); // line break //$NON-NLS-1$ tokenSyntax.add(new EscapedCharacterReplacementToken()); // ORDER DEPENDENCY must come after line break tokenSyntax.add(new EntityReferenceReplacementToken("(tm)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(TM)", "#8482")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(c)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(C)", "#169")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(r)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new EntityReferenceReplacementToken("(R)", "#174")); //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=(?:\\w\\s)|^)(---)(?=\\s\\w))", "#8212")); // emdash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternEntityReferenceReplacementToken("(?:(?<=(?:\\w\\s)|^)(--)(?=\\s\\w))", "#8211")); // endash //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new PatternLiteralReplacementToken("(----)", "<hr/>")); // horizontal rule //$NON-NLS-1$ //$NON-NLS-2$ tokenSyntax.add(new ImpliedHyperlinkReplacementToken()); tokenSyntax.add(new AnchorReplacementToken()); }
public void beginGroup(String regexFragment, int size) { add(regexFragment, size, true); }
public void endGroup(String regexFragment, int size) { add(regexFragment, size, false); }
/** * Indicate if newlines in the markup must cause a line break. If false, then the default markup language behaviour * should be observed. The default is false. */ public void addPhraseModifierExtensions(PatternBasedSyntax phraseModifierSyntax) { for (PatternBasedElement element : getPhraseModifiers()) { phraseModifierSyntax.add(element); } }
public void addTokenExtensions(PatternBasedSyntax tokenSyntax) { for (PatternBasedElement element : getPhraseModifiers()) { tokenSyntax.add(element); } }