本文整理汇总了Java中org.fxmisc.richtext.model.StyleSpansBuilder类的典型用法代码示例。如果您正苦于以下问题:Java StyleSpansBuilder类的具体用法?Java StyleSpansBuilder怎么用?Java StyleSpansBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
StyleSpansBuilder类属于org.fxmisc.richtext.model包,在下文中一共展示了StyleSpansBuilder类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: highlight
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
public StyleSpans<Collection<String>> highlight(String text) {
Matcher matcher = PATTERN.matcher(text);
int lastKeywordEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while(matcher.find()) {
String styleClass
= matcher.group("KEYWORD") != null ? "keyword"
: matcher.group("STRING") != null ? "string"
: matcher.group("COMMENT") != null ? "comment"
: matcher.group("LABEL") != null ? "label"
: null;
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKeywordEnd);
spansBuilder.add(Collections.singleton(styleClass), matcher.end() - matcher.start());
lastKeywordEnd = matcher.end();
}
if(lastKeywordEnd == 0) {
return highlightMisspelled(text);
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKeywordEnd);
return spansBuilder.create();
}
开发者ID:kasirgalabs,项目名称:ETUmulator,代码行数:22,代码来源:SyntaxHighlighter.java
示例2: highlightMisspelled
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private StyleSpans<Collection<String>> highlightMisspelled(String text) {
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
BreakIterator wb = BreakIterator.getWordInstance();
wb.setText(text);
int lastIndex = wb.first();
int lastKeywordEnd = 0;
while(lastIndex != BreakIterator.DONE) {
int firstIndex = lastIndex;
lastIndex = wb.next();
if(lastIndex != BreakIterator.DONE
&& Character.isLetterOrDigit(text.charAt(firstIndex))) {
String word = text.substring(firstIndex, lastIndex).toLowerCase();
if(!dictionary.contains(word)) {
spansBuilder.add(Collections.emptyList(), firstIndex - lastKeywordEnd);
spansBuilder.add(Collections.singleton("underlined"), lastIndex - firstIndex);
lastKeywordEnd = lastIndex;
}
}
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKeywordEnd);
return spansBuilder.create();
}
开发者ID:kasirgalabs,项目名称:ETUmulator,代码行数:23,代码来源:SyntaxHighlighter.java
示例3: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
public static StyleSpans<Collection<String>> computeHighlighting(String text, Pattern pattern) {
Matcher matcher = pattern.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder
= new StyleSpansBuilder<>();
while (matcher.find()) {
String styleClass =
matcher.group("KEYWORD") != null ? "keyword" :
matcher.group("PAREN") != null ? "paren" :
matcher.group("BRACE") != null ? "brace" :
matcher.group("BRACKET") != null ? "bracket" :
matcher.group("SEMICOLON") != null ? "semicolon" :
matcher.group("DIGIT") != null ? "digit" :
matcher.group("STRING") != null ? "string" :
matcher.group("COMMENT") != null ? "comment" :
null; /* never happens */
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
spansBuilder.add(Collections.singletonList(styleClass), matcher.end() - matcher.start());
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:iazarny,项目名称:gitember,代码行数:24,代码来源:HighlightProvider.java
示例4: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private StyleSpans<Collection<String>> computeHighlighting(String text) {
Matcher matcher = pattern.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while (matcher.find()) {
String styleClass = null;
String s;
if ((s = matcher.group("IDENTIFIER")) != null) {
for (String command : ExpressionInterpreter.getSupportedCommands()) {
if (s.equalsIgnoreCase(command)) {
styleClass = "command";
break;
}
}
if (s.equals("_x")) {
styleClass = "magic-var";
}
} else if (matcher.group("NUMBER") != null) {
styleClass = "number";
} else if (matcher.group("STRING") != null) {
styleClass = "string";
} else if (matcher.group("COMMENT") != null) {
styleClass = "comment";
}
if (styleClass == null) {
continue;
}
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
spansBuilder.add(Collections.singleton(styleClass), matcher.end() - matcher.start());
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:kayler-renslow,项目名称:arma-dialog-creator,代码行数:38,代码来源:ExpressionEvaluatorPopup.java
示例5: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
text = text.replaceAll("%%", "__");//prevent matching %%1 or %%%%1. We can't remove the %% however because that would mess with the indexes
Matcher matcher = PATTERN.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while (matcher.find()) {
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
spansBuilder.add(Collections.singleton("param"), matcher.end() - matcher.start());
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:kayler-renslow,项目名称:arma-dialog-creator,代码行数:14,代码来源:StringTableLanguageTokenEditor.java
示例6: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
SyntaxHighlighter.highlight(text, "html", (length, style) -> {
spansBuilder.add(toSpanStyle(style), length);
});
return spansBuilder.create();
}
开发者ID:JFormDesigner,项目名称:markdown-writer-fx,代码行数:8,代码来源:HtmlSourcePreview.java
示例7: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
Matcher matcher = XML_TAG.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while (matcher.find()) {
spansBuilder.add(Collections.<String>emptyList(), matcher.start() - lastKwEnd);
if (matcher.group("COMMENT") != null) {
spansBuilder.add(Collections.singleton("comment"), matcher.end() - matcher.start());
} else {
if (matcher.group("ELEMENT") != null) {
String attributesText = matcher.group(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_OPEN_BRACKET) - matcher.start(GROUP_OPEN_BRACKET));
spansBuilder.add(Collections.singleton("anytag"), matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_OPEN_BRACKET));
if (!attributesText.isEmpty()) {
lastKwEnd = 0;
Matcher amatcher = ATTRIBUTES.matcher(attributesText);
while (amatcher.find()) {
spansBuilder.add(Collections.<String>emptyList(), amatcher.start() - lastKwEnd);
spansBuilder.add(Collections.singleton("attribute"), amatcher.end(GROUP_ATTRIBUTE_NAME) - amatcher.start(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("tagmark"), amatcher.end(GROUP_EQUAL_SYMBOL) - amatcher.end(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("avalue"), amatcher.end(GROUP_ATTRIBUTE_VALUE) - amatcher.end(GROUP_EQUAL_SYMBOL));
lastKwEnd = amatcher.end();
}
if (attributesText.length() > lastKwEnd)
spansBuilder.add(Collections.<String>emptyList(), attributesText.length() - lastKwEnd);
}
lastKwEnd = matcher.end(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_CLOSE_BRACKET) - lastKwEnd);
}
}
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.<String>emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:aalmiray,项目名称:bootstrapfx,代码行数:41,代码来源:XMLEditor.java
示例8: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
BreakIterator wb = BreakIterator.getWordInstance();
wb.setText(text);
int lastIndex = wb.first();
int lastKwEnd = 0;
while(lastIndex != BreakIterator.DONE) {
int firstIndex = lastIndex;
lastIndex = wb.next();
if (lastIndex != BreakIterator.DONE
&& Character.isLetterOrDigit(text.charAt(firstIndex))) {
String word = text.substring(firstIndex, lastIndex).toLowerCase();
if (!dictionary.contains(word)) {
spansBuilder.add(Collections.emptyList(), firstIndex - lastKwEnd);
spansBuilder.add(Collections.singleton("underlined"), lastIndex - firstIndex);
lastKwEnd = lastIndex;
}
System.err.println();
}
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:FXMisc,项目名称:RichTextFX,代码行数:29,代码来源:SpellChecking.java
示例9: computeHighlightingByRegex
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
public static StyleSpans<Collection<String>> computeHighlightingByRegex(String text) {
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<Collection<String>>();
Matcher cssMatcher = CSS_PATTERN.matcher(text);
int lastKwEnd = 0;
while (cssMatcher.find()) {
spansBuilder.add(Collections.emptyList(), cssMatcher.start() - lastKwEnd);
if (cssMatcher.group(Element.MUTI_COMMENT) != null) {
spansBuilder.add(Collections.singleton(Element.MUTI_COMMENT), cssMatcher.end() - cssMatcher.start());
} else {
if (cssMatcher.group(Element.CSS) != null) {
String selectorText = cssMatcher.group(GROUP_SELECTOR);
if (!selectorText.isEmpty()) {
lastKwEnd = 0;
Matcher selectorMatcher = SELECTOR_PATTERN.matcher(selectorText);
while (selectorMatcher.find()) {
spansBuilder.add(Collections.emptyList(), selectorMatcher.start() - lastKwEnd);
spansBuilder.add(Collections.emptyList(), selectorMatcher.end(1) - selectorMatcher.start(1));
String prefix = selectorMatcher.group(1);
List<String> list = new ArrayList<>();
switch (prefix) {
case "#":
list.add(Element.SELECTOR_ID);
break;
case ".":
list.add(Element.SELECTOR_CLASS);
break;
case ":":
list.add(Element.SELECTOR_STATE);
break;
case " ":
case "\n":
list.add(Element.SELECTOR_JAVACLASS);
break;
}
spansBuilder.add(list, selectorMatcher.end(2) - selectorMatcher.start(2));
lastKwEnd = selectorMatcher.end();
}
if (selectorText.length() > lastKwEnd) {
spansBuilder.add(Collections.emptyList(), selectorText.length() - lastKwEnd);
}
}
spansBuilder.add(Collections.singleton(Element.LEFT_BRACE),
cssMatcher.end(GROUP_LEFT_BRACE) - cssMatcher.start(GROUP_LEFT_BRACE));
String entriesText = cssMatcher.group(GROUP_VALUES);
if (!entriesText.isEmpty()) {
lastKwEnd = 0;
Matcher entryMatcher = ENTRY_PATTERN.matcher(entriesText);
while (entryMatcher.find()) {
spansBuilder.add(Collections.emptyList(), entryMatcher.start() - lastKwEnd);
if (entryMatcher.group(Element.MUTI_COMMENT) != null) {
spansBuilder
.add(Collections.singleton(Element.MUTI_COMMENT), entryMatcher.end() - entryMatcher.start());
} else {
if (entryMatcher.group(Element.ENTRY) != null) {
spansBuilder.add(Collections.singleton(Element.KEY),
entryMatcher.end(GROUP_KEY) - entryMatcher.start(GROUP_KEY));
spansBuilder.add(Collections.singleton(Element.COLON),
entryMatcher.end(GROPU_COLON) - entryMatcher.start(GROPU_COLON));
spansBuilder.add(Collections.singleton(Element.VALUE),
entryMatcher.end(GROUP_VALUE) - entryMatcher.start(GROUP_VALUE));
spansBuilder.add(Collections.singleton(Element.SEMICOLON),
entryMatcher.end(GROUP_SEMICOLON) - entryMatcher.start(GROUP_SEMICOLON));
}
}
lastKwEnd = entryMatcher.end();
}
if (entriesText.length() > lastKwEnd) {
spansBuilder.add(Collections.emptyList(), entriesText.length() - lastKwEnd);
}
}
lastKwEnd = cssMatcher.end(GROUP_VALUES);
spansBuilder.add(Collections.singleton(Element.RIGHT_BRACE), cssMatcher.end(GROUP_RIGHT_BRACE) - lastKwEnd);
}
}
lastKwEnd = cssMatcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:XDean,项目名称:CSS-Editor-FX,代码行数:82,代码来源:CSSHighLight.java
示例10: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
Matcher matcher = PATTERN.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while(matcher.find()) {
spansBuilder.add(Collections.emptyList(), matcher.start(GROUP_NODE_NAME) - lastKwEnd);
spansBuilder.add(STYLE_NODE, groupLength(matcher, GROUP_NODE_NAME));
String attributesText = matcher.group(GROUP_ATTRS);
if(!attributesText.isEmpty()) {
lastKwEnd = 0;
Matcher amatcher = ATTRIBUTES.matcher(attributesText);
while(amatcher.find()) {
if (amatcher.start() > lastKwEnd)
spansBuilder.add(Collections.emptyList(), amatcher.start() - lastKwEnd);
Collection<String> style = null;
int length = amatcher.end() - amatcher.start();
if (amatcher.group(GROUP_ATTR_NAME) != null) {
style = STYLE_ATTR_NAME;
length--;
} else if (amatcher.group(GROUP_ATTR_STRING) != null)
style = STYLE_ATTR_VALUE;
else if (amatcher.group(GROUP_ATTR_NUMBER) != null)
style = STYLE_ATTR_VALUE;
else if (amatcher.group(GROUP_ATTR_PUNCTATION) != null)
style = STYLE_PUNCTATION;
else
style = Collections.emptyList();
spansBuilder.add(style, length);
if (style == STYLE_ATTR_NAME)
spansBuilder.add(STYLE_PUNCTATION, 1);
lastKwEnd = amatcher.end();
}
if(attributesText.length() > lastKwEnd)
spansBuilder.add(Collections.emptyList(), attributesText.length() - lastKwEnd);
}
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:JFormDesigner,项目名称:markdown-writer-fx,代码行数:45,代码来源:ASTPreview.java
示例11: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
/**
* Highlights tag marks, tags, comments and attributes of the XML text
*
* @param text
* The XML text to be highlighted
* @return A StyleSpans with the highlighted text.
*/
public static StyleSpans<Collection<String>> computeHighlighting(String text) {
Matcher matcher = XML_TAG.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while (matcher.find()) {
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
if (matcher.group("COMMENT") != null) {
spansBuilder.add(Collections.singleton("comment"), matcher.end() - matcher.start());
} else {
if (matcher.group("ELEMENT") != null) {
String attributesText = matcher.group(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"),
matcher.end(GROUP_OPEN_BRACKET) - matcher.start(GROUP_OPEN_BRACKET));
if (matcher.start(GROUP_NAMESPACE) != -1 && matcher.end(GROUP_NAMESPACE) != -1) {
spansBuilder.add(Collections.singleton("namespace"),
matcher.end(GROUP_NAMESPACE) - matcher.end(GROUP_OPEN_BRACKET));
spansBuilder.add(Collections.singleton("anytag"),
matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_NAMESPACE));
} else {
spansBuilder.add(Collections.singleton("anytag"),
matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_OPEN_BRACKET));
}
if (!attributesText.isEmpty()) {
lastKwEnd = 0;
Matcher amatcher = ATTRIBUTES.matcher(attributesText);
while (amatcher.find()) {
spansBuilder.add(Collections.emptyList(), amatcher.start() - lastKwEnd);
spansBuilder.add(Collections.singleton("attribute"),
amatcher.end(GROUP_ATTRIBUTE_NAME) - amatcher.start(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("tagmark"),
amatcher.end(GROUP_EQUAL_SYMBOL) - amatcher.end(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("avalue"),
amatcher.end(GROUP_ATTRIBUTE_VALUE) - amatcher.end(GROUP_EQUAL_SYMBOL));
lastKwEnd = amatcher.end();
}
if (attributesText.length() > lastKwEnd)
spansBuilder.add(Collections.emptyList(), attributesText.length() - lastKwEnd);
}
lastKwEnd = matcher.end(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_CLOSE_BRACKET) - lastKwEnd);
}
}
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:keeps,项目名称:roda-in,代码行数:62,代码来源:XMLEditor.java
示例12: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
private static StyleSpans<Collection<String>> computeHighlighting(String text) {
Matcher matcher = XML_TAG.matcher(text);
int lastKwEnd = 0;
StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
while(matcher.find()) {
spansBuilder.add(Collections.emptyList(), matcher.start() - lastKwEnd);
if(matcher.group("COMMENT") != null) {
spansBuilder.add(Collections.singleton("comment"), matcher.end() - matcher.start());
}
else {
if(matcher.group("ELEMENT") != null) {
String attributesText = matcher.group(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_OPEN_BRACKET) - matcher.start(GROUP_OPEN_BRACKET));
spansBuilder.add(Collections.singleton("anytag"), matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_OPEN_BRACKET));
if(!attributesText.isEmpty()) {
lastKwEnd = 0;
Matcher amatcher = ATTRIBUTES.matcher(attributesText);
while(amatcher.find()) {
spansBuilder.add(Collections.emptyList(), amatcher.start() - lastKwEnd);
spansBuilder.add(Collections.singleton("attribute"), amatcher.end(GROUP_ATTRIBUTE_NAME) - amatcher.start(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("tagmark"), amatcher.end(GROUP_EQUAL_SYMBOL) - amatcher.end(GROUP_ATTRIBUTE_NAME));
spansBuilder.add(Collections.singleton("avalue"), amatcher.end(GROUP_ATTRIBUTE_VALUE) - amatcher.end(GROUP_EQUAL_SYMBOL));
lastKwEnd = amatcher.end();
}
if(attributesText.length() > lastKwEnd)
spansBuilder.add(Collections.emptyList(), attributesText.length() - lastKwEnd);
}
lastKwEnd = matcher.end(GROUP_ATTRIBUTES_SECTION);
spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_CLOSE_BRACKET) - lastKwEnd);
}
}
lastKwEnd = matcher.end();
}
spansBuilder.add(Collections.emptyList(), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:FXMisc,项目名称:RichTextFX,代码行数:45,代码来源:XMLEditor.java
示例13: computeHighlighting
import org.fxmisc.richtext.model.StyleSpansBuilder; //导入依赖的package包/类
@NotNull
private static StyleSpans<Collection<String>> computeHighlighting(@NotNull final String text) {
final Matcher matcher = PATTERN.matcher(text);
final StyleSpansBuilder<Collection<String>> spansBuilder = new StyleSpansBuilder<>();
int lastKwEnd = 0;
while (matcher.find()) {
String styleClass = matcher.group("SEVERITY") != null ? "log-severity" : null;
if (styleClass == null) {
styleClass = matcher.group("FRAMEWORK") != null ? "log-framework" : null;
}
if (styleClass == null) {
styleClass = matcher.group("CLASS") != null ? "log-class" : null;
}
spansBuilder.add(singleton("plain-code"), matcher.start() - lastKwEnd);
spansBuilder.add(singleton(styleClass), matcher.end() - matcher.start());
lastKwEnd = matcher.end();
}
spansBuilder.add(singleton("plain-code"), text.length() - lastKwEnd);
return spansBuilder.create();
}
开发者ID:JavaSaBr,项目名称:jmonkeybuilder,代码行数:31,代码来源:LogView.java
注:本文中的org.fxmisc.richtext.model.StyleSpansBuilder类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论