当前位置: 首页>>代码示例>>Java>>正文


Java BasedSequence.length方法代码示例

本文整理汇总了Java中com.vladsch.flexmark.util.sequence.BasedSequence.length方法的典型用法代码示例。如果您正苦于以下问题:Java BasedSequence.length方法的具体用法?Java BasedSequence.length怎么用?Java BasedSequence.length使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.vladsch.flexmark.util.sequence.BasedSequence的用法示例。


在下文中一共展示了BasedSequence.length方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setTextChars

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
@Override
public void setTextChars(BasedSequence textChars) {
    int textCharsLength = textChars.length();
    textOpeningMarker = textChars.subSequence(0, 1);
    text = textChars.subSequence(1, textCharsLength - 1).trim();
    textClosingMarker = textChars.subSequence(textCharsLength - 1, textCharsLength);
}
 
开发者ID:tiagohm,项目名称:MarkdownView,代码行数:8,代码来源:Twitter.java

示例2: perform

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
protected boolean perform(@NotNull LineSelectionManager manager, @NotNull Caret caret, @NotNull Range range, @NotNull ArrayList<CaretState> createCarets) {
    Editor editor = caret.getEditor();
    final BasedSequence chars = BasedSequenceImpl.of(editor.getDocument().getCharsSequence());
    boolean keepCaret = !isMoveFirstMatch();

    T matcher = prepareMatcher(manager, caret, range, chars);
    if (matcher != null) {
        // forward search withing range in document
        CaretMatch lastMatch = null;
        while (true) {
            CaretMatch match = nextMatch(matcher, chars, range, lastMatch);
            if (match == null) break;

            // found it, create or move caret here
            if (!keepCaret) {
                keepCaret = true;
                if (isMoveFirstMatch()) {
                    caret.moveToOffset(match.caretOffset);
                    caret.setSelection(match.selectionStart, match.selectionEnd);
                }
            } else {
                // create a new position if caret moved
                LogicalPosition offset = editor.offsetToLogicalPosition(match.caretOffset);
                LogicalPosition startOffset = editor.offsetToLogicalPosition(match.selectionStart);
                LogicalPosition endOffset = editor.offsetToLogicalPosition(match.selectionEnd);
                CaretState caretState = new CaretState(offset, startOffset, endOffset);
                createCarets.add(caretState);
            }

            if (isSingleMatch() || match.caretOffset + match.matchLength >= chars.length()) break;
            lastMatch = match;
        }
    }

    return keepCaret || isSingleMatch();
}
 
开发者ID:vsch,项目名称:MissingInActions,代码行数:37,代码来源:PatternSearchCaretHandler.java

示例3: InsertedRangeContext

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
public InsertedRangeContext(@NotNull BasedSequence charSequence, int beforeOffset, int afterOffset, int separators) {
    this.charSequence = charSequence;
    mySeparators = separators;
    this.textLength = charSequence.length();

    if (beforeOffset < 0) beforeOffset = 0;
    if (afterOffset > textLength) afterOffset = textLength;
    if (beforeOffset > afterOffset) beforeOffset = afterOffset;
    if (afterOffset < beforeOffset) afterOffset = beforeOffset;

    this.beforeOffset = beforeOffset;
    this.afterOffset = afterOffset;
    TextRange range = EditHelpers.getWordRangeAtOffsets(charSequence, beforeOffset, afterOffset, WORD_IDENTIFIER, false, true);
    this.expandedBeforeOffset = range.getStartOffset();
    this.expandedAfterOffset = range.getEndOffset();

    this.expandedPrefix = expandedBeforeOffset > beforeOffset ? "" : charSequence.subSequence(expandedBeforeOffset, beforeOffset).toString();
    this.expandedSuffix = expandedAfterOffset < afterOffset ? "" : charSequence.subSequence(afterOffset, expandedAfterOffset).toString();

    this.inserted = charSequence.subSequence(beforeOffset, afterOffset).toString();

    this.charBefore = beforeOffset > 0 && beforeOffset - 1 < textLength ? charSequence.charAt(beforeOffset - 1) : ' ';
    this.charAfter = afterOffset < textLength ? charSequence.charAt(afterOffset) : ' ';
    this.sBefore = String.valueOf(charBefore);
    this.sAfter = String.valueOf(charAfter);
    this.isWordStartAtStart = isWordStart(charSequence, beforeOffset, false);
    this.isWordEndAtStart = isWordEnd(charSequence, beforeOffset, false);
    this.isWordStartAtEnd = isWordStart(charSequence, afterOffset, false);
    this.isWordEndAtEnd = isWordEnd(charSequence, afterOffset, false);

    myWord = inserted;
    myStudiedWord = StudiedWord.of(myWord, mySeparators);
    myCaretDelta = 0;
    myPrefixRemoved = false;
}
 
开发者ID:vsch,项目名称:MissingInActions,代码行数:36,代码来源:InsertedRangeContext.java

示例4: extractNumber

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
/**
 * Extract a number from given sequence based on prefix/suffix, base and template
 *
 * @param charSequence character sequence from which to extract a number
 * @param numberBase
 * @return number or null if unable to extract
 */
public static long extractNumber(@NotNull CharSequence charSequence, @NotNull NumberingOptions options, int numberBase, @Nullable Ref<Integer> refMaxDigit) {
    BasedSequence chars = BasedSequenceImpl.of(charSequence).trim();

    if (!options.getPrefix().trim().isEmpty()) chars = chars.removePrefix(options.getPrefix().trim());
    if (!options.getSuffix().trim().isEmpty()) chars = chars.removeSuffix(options.getSuffix().trim());

    chars = chars.trim();

    // see if we have a template and it matches somewhat
    long number = 0;
    boolean negative = false;
    int maxDigit = refMaxDigit != null ? refMaxDigit.value : numberBase - 1;

    for (int i = 0; i < chars.length(); i++) {
        char c = chars.charAt(i);
        if (c == '-' && i == 0) {
            negative = true;
            continue;
        }

        int digit = c >= '0' && c <= '9' ? c - '0' : c >= 'a' && c <= 'z' ? c - 'a' + 10 : c >= 'A' && c <= 'A' ? c - 'A' + 10 : -1;
        if (maxDigit < digit) maxDigit = digit;
        if (digit < 0 || digit >= numberBase) continue;
        number *= numberBase;
        number += digit;
    }

    if (negative) {
        number = -number;
    }
    if (refMaxDigit != null) refMaxDigit.value = maxDigit;
    return number;
}
 
开发者ID:vsch,项目名称:MissingInActions,代码行数:41,代码来源:NumberSequenceGenerator.java

示例5: surroundSelectionAndReplaceMarker

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
private void surroundSelectionAndReplaceMarker(String leading, String trailing, String hint,
		DelimitedNode node, String newOpeningMarker, String newClosingMarker)
{
	IndexRange selection = textArea.getSelection();
	int start = selection.getStart();
	int end = selection.getEnd();

	String selectedText = textArea.getSelectedText();

	// remove leading and trailing whitespaces from selected text
	String trimmedSelectedText = selectedText.trim();
	if (trimmedSelectedText.length() < selectedText.length()) {
		start += selectedText.indexOf(trimmedSelectedText);
		end = start + trimmedSelectedText.length();
	}

	BasedSequence openingMarker = node.getOpeningMarker();
	BasedSequence closingMarker = node.getClosingMarker();

	int selStart = start + leading.length() + (newOpeningMarker.length() - openingMarker.length());
	int selEnd = selStart + trimmedSelectedText.length();

	// insert hint text if selection is empty
	if (hint != null && trimmedSelectedText.isEmpty()) {
		trimmedSelectedText = hint;
		selEnd = selStart + hint.length();
	}

	// replace text and update selection
	// Note: using single textArea.replaceText() to avoid multiple changes in undo history
	String before = textArea.getText(openingMarker.getEndOffset(), start);
	String after = textArea.getText(end, closingMarker.getStartOffset());
	replaceText(textArea, openingMarker.getStartOffset(), closingMarker.getEndOffset(),
			newOpeningMarker + before + leading + trimmedSelectedText + trailing + after + newClosingMarker );
	selectRange(textArea, selStart, selEnd);
}
 
开发者ID:JFormDesigner,项目名称:markdown-writer-fx,代码行数:37,代码来源:SmartEdit.java

示例6: createPopupActionGroup

import com.vladsch.flexmark.util.sequence.BasedSequence; //导入方法依赖的package包/类
@NotNull
protected DefaultActionGroup createPopupActionGroup(JComponent button, @Nullable Editor editor) {
    final DefaultActionGroup group = new DefaultActionGroup();

    if (editor != null) {
        final LineSelectionManager manager = LineSelectionManager.getInstance(editor);
        final RangeMarker[] markers = manager.getSavedSelections();
        BasedSequence chars = BasedSequenceImpl.of(editor.getDocument().getCharsSequence());
        final Range exclusionRange = excludeOverlap(editor);

        for (int i = markers.length; i-- > 0; ) {
            RangeMarker marker = markers[i];

            BasedSequence text = chars.subSequence(marker.getStartOffset(), marker.getEndOffset());
            BasedSequence label = text;

            if (text.length() > 40) {
                label = text.subSequence(0, 20).append(PrefixedSubSequence.of("…", text.subSequence(20, 20))).append(text.endSequence(20, 0));
            }

            label = label.replace("\n", "⏎");

            final int index = markers.length - i - 1;
            Document document = marker.getDocument();
            final int startLine = document.getLineNumber(marker.getStartOffset());
            final int endLine = document.getLineNumber(marker.getEndOffset());
            final int startColumn = marker.getStartOffset() - document.getLineStartOffset(startLine);
            final Icon icon;
            boolean disabled = false;

            if (exclusionRange != null) {
                Range range = new Range(marker.getStartOffset(), marker.getEndOffset());
                if (exclusionRange.doesContain(range) || range.doesContain(exclusionRange)) {
                    disabled = true;
                }
            }

            if (disabled) {
                icon = PluginIcons.Clipboard_disabled_caret;
            } else if (text.endsWith("\n") && startColumn == 0) {
                icon = PluginIcons.Clipboard_line_caret;
            } else if (startLine != endLine) {
                icon = PluginIcons.Clipboard_char_lines_caret;
            } else {
                icon = PluginIcons.Clipboard_char_caret;
            }

            final String actionText = String.format("line %d \"%s\"", startLine, text);
            final boolean isDisabled = disabled;

            DumbAwareAction action = new DumbAwareAction("\"" + label.toString() + "\"", actionText, icon) {
                @Override
                public void actionPerformed(final AnActionEvent e) {
                    if (!isDisabled) {
                        RangeMarker rangeMarker = manager.getRangeMarker();
                        manager.recallLastSelection(index, removeRangeMarker(e, editor, rangeMarker), false, true);
                        SelectionListActionBase.this.actionPerformed(e, editor, rangeMarker);
                    }
                }
            };

            group.add(action);
        }
    }

    return group;
}
 
开发者ID:vsch,项目名称:MissingInActions,代码行数:68,代码来源:SelectionListActionBase.java


注:本文中的com.vladsch.flexmark.util.sequence.BasedSequence.length方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。