本文整理汇总了Java中com.intellij.openapi.editor.markup.HighlighterLayer类的典型用法代码示例。如果您正苦于以下问题:Java HighlighterLayer类的具体用法?Java HighlighterLayer怎么用?Java HighlighterLayer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HighlighterLayer类属于com.intellij.openapi.editor.markup包,在下文中一共展示了HighlighterLayer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: highlightLine
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private void highlightLine(int index, NamedTextAttr namedTextAttr) {
UIUtil.invokeAndWaitIfNeeded((Runnable) () -> {
try {
MarkupModelEx markupModel = myEditor.getMarkupModel();
final Document doc = markupModel.getDocument();
final int lineStartOffset = doc.getLineStartOffset(index);
final int lineEndOffset = doc.getLineEndOffset(index);
// IDEA-53203: add ERASE_MARKER for manually defined attributes
markupModel.addRangeHighlighter(lineStartOffset, lineEndOffset,
HighlighterLayer.SELECTION - 1, TextAttributes.ERASE_MARKER,
HighlighterTargetArea.EXACT_RANGE);
RangeHighlighter rangeHighlight =
markupModel.addRangeHighlighter(lineStartOffset, lineEndOffset,
HighlighterLayer.SELECTION - 1, namedTextAttr,
HighlighterTargetArea.EXACT_RANGE);
rangeHighlight.setErrorStripeMarkColor(namedTextAttr.getErrorStripeColor());
rangeHighlight.setErrorStripeTooltip(namedTextAttr.getName());
} catch (Exception e) {
throw new RuntimeException(e);
}
});
}
示例2: actionPerformed
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
@Override
public void actionPerformed(AnActionEvent e) {
final Project project = e.getRequiredData(CommonDataKeys.PROJECT);
final Editor editor = e.getRequiredData(CommonDataKeys.EDITOR);
final HighlightManager highlightManager = HighlightManager.getInstance(project);
final RangeHighlighter[] highlighters =
((HighlightManagerImpl) highlightManager).getHighlighters(editor);
for (RangeHighlighter highlighter : highlighters) {
final TextAttributes ta = highlighter.getTextAttributes();
if (ta != null && ta instanceof NamedTextAttr
&& highlighter.getLayer() == HighlighterLayer.SELECTION - 1) {
highlightManager.removeSegmentHighlighter(editor, highlighter);
}
}
}
示例3: addMarkerAtOffset
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private RangeHighlighter addMarkerAtOffset(int offset, SearchMark mark) {
ApplicationManager.getApplication().assertIsDispatchThread();
final Document document = editor.getDocument();
if (0 <= offset && offset < document.getTextLength()) {
editor.getSettings().setLineMarkerAreaShown(true);
final int line = document.getLineNumber(offset);
final MarkupModel markupModel = editor.getMarkupModel();
RangeHighlighter highlighter;
highlighter = markupModel.addLineHighlighter(line, HighlighterLayer.ADDITIONAL_SYNTAX, null);
highlighter.setGutterIconRenderer(mark);
return highlighter;
} else {
return null;
}
}
示例4: testColumnModeSelectionWithCurrentBreakpointHighlighting
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
public void testColumnModeSelectionWithCurrentBreakpointHighlighting() {
init("line1\n" +
"line2");
setColumnModeOn();
Color breakpointColor = Color.RED;
myFixture.getEditor().getMarkupModel().addLineHighlighter(0,
HighlighterLayer.CARET_ROW + 1,
new TextAttributes(null, breakpointColor, null, null, 0));
Color currentDebuggingLineColor = Color.CYAN;
myFixture.getEditor().getMarkupModel().addLineHighlighter(0,
HighlighterLayer.SELECTION - 1,
new TextAttributes(null, currentDebuggingLineColor, null, null, 0));
mouse().clickAt(0, 4).dragTo(0, 6).release();
verifySplitting(false,
new Segment(0, 4, currentDebuggingLineColor),
new Segment(4, 5, SELECTION_BACKGROUND),
new Segment(5, 6, currentDebuggingLineColor).plus(1, SELECTION_BACKGROUND),
new Segment(6, 11, DEFAULT_BACKGROUND));
}
示例5: testLinesInRange
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
public void testLinesInRange() {
init(" line1\n" +
" line2");
Color breakpointColor = Color.RED;
myFixture.getEditor().getMarkupModel().addLineHighlighter(0,
HighlighterLayer.CARET_ROW + 1,
new TextAttributes(null, breakpointColor, null, null, 0));
verifySplitting(false,
new Segment(0, 5, breakpointColor),
new Segment(5, 10, breakpointColor),
new Segment(10, 11, breakpointColor),
new Segment(11, 16, DEFAULT_BACKGROUND),
new Segment(16, 21, DEFAULT_BACKGROUND));
}
示例6: installHighlighterSet
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
@NotNull
private HighlightersSet installHighlighterSet(@NotNull Info info, @NotNull Editor editor) {
final JComponent internalComponent = editor.getContentComponent();
internalComponent.addKeyListener(myEditorKeyListener);
editor.getScrollingModel().addVisibleAreaListener(myVisibleAreaListener);
final Cursor cursor = internalComponent.getCursor();
internalComponent.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
myFileEditorManager.addFileEditorManagerListener(myFileEditorManagerListener);
List<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
TextAttributes attributes = myEditorColorsManager.getGlobalScheme().getAttributes(EditorColors.REFERENCE_HYPERLINK_COLOR);
for (TextRange range : info.getRanges()) {
TextAttributes attr = NavigationUtil.patchAttributesColor(attributes, range, editor);
final RangeHighlighter highlighter = editor.getMarkupModel().addRangeHighlighter(range.getStartOffset(), range.getEndOffset(),
HighlighterLayer.SELECTION + 1,
attr,
HighlighterTargetArea.EXACT_RANGE);
highlighters.add(highlighter);
}
return new HighlightersSet(highlighters, editor, cursor, info);
}
示例7: syntaxError
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
protected void syntaxError(String annotation, Token offendingToken) {
// Annotation annot = new Annotation(20, 30, HighlightSeverity.ERROR, "Test!", "Test Message!");
// HighlightInfo info = HighlightInfo.fromAnnotation(annot);
// List<HighlightInfo> al = new ArrayList<HighlightInfo>();
// al.add(info);
// UpdateHighlightersUtil.setHighlightersToEditor(project, doc, 20, 30, al, null, 0)
final TextAttributes attr = new TextAttributes();
attr.setForegroundColor(JBColor.RED);
attr.setEffectColor(JBColor.RED);
attr.setEffectType(EffectType.WAVE_UNDERSCORE);
MarkupModel markupModel = editor.getMarkupModel();
RangeHighlighter h =
markupModel.addRangeHighlighter(startIndex+offendingToken.getStartIndex(),
startIndex+offendingToken.getStopIndex()+1,
HighlighterLayer.ERROR, // layer
attr,
HighlighterTargetArea.EXACT_RANGE);
h.putUserData(SYNTAX_HIGHLIGHTING_TAG, offendingToken); // store any non-null value to tag it
}
示例8: installHighlighterSet
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private HighlightersSet installHighlighterSet(Info info, Editor editor) {
final JComponent internalComponent = editor.getContentComponent();
internalComponent.addKeyListener(myEditorKeyListener);
editor.getScrollingModel().addVisibleAreaListener(myVisibleAreaListener);
final Cursor cursor = internalComponent.getCursor();
internalComponent.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
myFileEditorManager.addFileEditorManagerListener(myFileEditorManagerListener);
List<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
TextAttributes attributes = myEditorColorsManager.getGlobalScheme().getAttributes(EditorColors.REFERENCE_HYPERLINK_COLOR);
for (TextRange range : info.getRanges()) {
final RangeHighlighter highlighter = editor.getMarkupModel().addRangeHighlighter(range.getStartOffset(), range.getEndOffset(),
HighlighterLayer.SELECTION + 1,
attributes,
HighlighterTargetArea.EXACT_RANGE);
highlighters.add(highlighter);
}
return new HighlightersSet(highlighters, editor, cursor, info);
}
示例9: createHighlighter
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
public RangeHighlighter createHighlighter(@NotNull MarkupModelEx markup) {
final RangeHighlighter myHighlighter;
int line = getLine();
if (line >= 0) {
myHighlighter = markup.addPersistentLineHighlighter(line, HighlighterLayer.ERROR + 1, null);
if (myHighlighter != null) {
myHighlighter.setGutterIconRenderer(new MyGutterIconRenderer(this));
myHighlighter.setErrorStripeMarkColor(Color.black);
myHighlighter.setErrorStripeTooltip(getBookmarkTooltip());
}
}
else {
myHighlighter = null;
}
return myHighlighter;
}
示例10: addDecisionEventHighlighter
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
public Token addDecisionEventHighlighter(PreviewState previewState, MarkupModel markupModel,
DecisionEventInfo info, Color errorStripeColor,
EffectType effectType) {
TokenStream tokens = previewState.parsingResult.parser.getInputStream();
Token startToken = tokens.get(info.startIndex);
Token stopToken = tokens.get(info.stopIndex);
TextAttributes textAttributes =
new TextAttributes(JBColor.BLACK, JBColor.WHITE, errorStripeColor,
effectType, Font.PLAIN);
textAttributes.setErrorStripeColor(errorStripeColor);
final RangeHighlighter rangeHighlighter =
markupModel.addRangeHighlighter(
startToken.getStartIndex(), stopToken.getStopIndex()+1,
HighlighterLayer.ADDITIONAL_SYNTAX, textAttributes,
HighlighterTargetArea.EXACT_RANGE);
rangeHighlighter.putUserData(DECISION_EVENT_INFO_KEY, info);
rangeHighlighter.setErrorStripeMarkColor(errorStripeColor);
return startToken;
}
示例11: addGutter
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private static void addGutter(@NotNull Editor editor2,
@NotNull final Review review,
@NotNull FilePath filePath,
@Nullable final ContentRevision revision) {
if (revision == null) return;
for (Comment comment : review.getComments()) {
final String id = comment.getReviewItemId();
final String path = review.getPathById(id);
if (path != null && filePath.getPath().endsWith(path) &&
(review.isInPatch(comment) || revision.getRevisionNumber().asString().equals(comment.getRevision()))) {
int line = Integer.parseInt(comment.getLine()) - 1;
final RangeHighlighter highlighter = editor2.getMarkupModel().addLineHighlighter(line, HighlighterLayer.ERROR + 1, null);
final ReviewGutterIconRenderer gutterIconRenderer = new ReviewGutterIconRenderer(review, filePath, comment);
highlighter.setGutterIconRenderer(gutterIconRenderer);
}
}
}
示例12: createStatusHighlighter
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private void createStatusHighlighter() {
int line1 = myPatchDeletionRange.start;
int line2 = myPatchInsertionRange.end;
Color color = getStatusColor();
if (isResolved()) {
color = ColorUtil.mix(color, myViewer.getPatchEditor().getGutterComponentEx().getBackground(), 0.6f);
}
String tooltip = getStatusText();
EditorEx patchEditor = myViewer.getPatchEditor();
Document document = patchEditor.getDocument();
MarkupModelEx markupModel = patchEditor.getMarkupModel();
TextRange textRange = DiffUtil.getLinesRange(document, line1, line2);
RangeHighlighter highlighter = markupModel.addRangeHighlighter(textRange.getStartOffset(), textRange.getEndOffset(),
HighlighterLayer.LAST, null, HighlighterTargetArea.LINES_IN_RANGE);
PairConsumer<Editor, MouseEvent> clickHandler = getResultRange() != null ?
(e, event) -> myViewer.scrollToChange(this, Side.RIGHT, false) :
null;
highlighter.setLineMarkerRenderer(LineStatusMarkerRenderer.createRenderer(line1, line2, color, tooltip, clickHandler));
myHighlighters.add(highlighter);
}
示例13: createOperation
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
@Nullable
private MyGutterOperation createOperation(@Nonnull OperationType type) {
if (isResolved()) return null;
EditorEx editor = myViewer.getPatchEditor();
Document document = editor.getDocument();
int line = getPatchRange().start;
int offset = line == DiffUtil.getLineCount(document) ? document.getTextLength() : document.getLineStartOffset(line);
RangeHighlighter highlighter = editor.getMarkupModel().addRangeHighlighter(offset, offset,
HighlighterLayer.ADDITIONAL_SYNTAX,
null,
HighlighterTargetArea.LINES_IN_RANGE);
return new MyGutterOperation(highlighter, type);
}
示例14: installHighlighterSet
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
@Nonnull
private HighlightersSet installHighlighterSet(@Nonnull Info info, @Nonnull Editor editor) {
final JComponent internalComponent = editor.getContentComponent();
internalComponent.addKeyListener(myEditorKeyListener);
editor.getScrollingModel().addVisibleAreaListener(myVisibleAreaListener);
final Cursor cursor = internalComponent.getCursor();
internalComponent.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
myFileEditorManager.addFileEditorManagerListener(myFileEditorManagerListener);
List<RangeHighlighter> highlighters = new ArrayList<RangeHighlighter>();
TextAttributes attributes = myEditorColorsManager.getGlobalScheme().getAttributes(EditorColors.REFERENCE_HYPERLINK_COLOR);
for (TextRange range : info.getRanges()) {
TextAttributes attr = NavigationUtil.patchAttributesColor(attributes, range, editor);
final RangeHighlighter highlighter =
editor.getMarkupModel().addRangeHighlighter(range.getStartOffset(), range.getEndOffset(), HighlighterLayer.SELECTION + 1, attr, HighlighterTargetArea.EXACT_RANGE);
highlighters.add(highlighter);
}
return new HighlightersSet(highlighters, editor, cursor, info);
}
示例15: clearHighlights
import com.intellij.openapi.editor.markup.HighlighterLayer; //导入依赖的package包/类
private static void clearHighlights(Editor editor, HighlightManager highlightManager,
List<TextRange> toRemoves) {
if (editor instanceof EditorWindow) {
editor = ((EditorWindow) editor).getDelegate();
}
RangeHighlighter[] highlighters =
((HighlightManagerImpl) highlightManager).getHighlighters(editor);
Arrays.sort(highlighters, (o1, o2) -> o1.getStartOffset() - o2.getStartOffset());
Collections.sort(toRemoves, (o1, o2) -> o1.getStartOffset() - o2.getStartOffset());
int i = 0;
int j = 0;
while (i < highlighters.length && j < toRemoves.size()) {
RangeHighlighter highlighter = highlighters[i];
final TextAttributes ta = highlighter.getTextAttributes();
final TextRange textRange = TextRange.create(highlighter);
final TextRange toRemove = toRemoves.get(j);
if (ta != null && ta instanceof NamedTextAttr // wrap
&& highlighter.getLayer() == HighlighterLayer.SELECTION - 1 // wrap
&& toRemove.equals(textRange)) {
highlightManager.removeSegmentHighlighter(editor, highlighter);
i++;
} else if (toRemove.getStartOffset() > textRange.getEndOffset()) {
i++;
} else if (toRemove.getEndOffset() < textRange.getStartOffset()) {
j++;
} else {
i++;
j++;
}
}
}