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


Java EditorFragmentComponent类代码示例

本文整理汇总了Java中com.intellij.codeInsight.hint.EditorFragmentComponent的典型用法代码示例。如果您正苦于以下问题:Java EditorFragmentComponent类的具体用法?Java EditorFragmentComponent怎么用?Java EditorFragmentComponent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: createEditorComponent

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
@NotNull
private static Pair<JComponent, Integer> createEditorComponent(@NotNull Range range,
                                                               @NotNull Editor editor,
                                                               @NotNull LineStatusTracker tracker,
                                                               @Nullable List<DiffFragment> wordDiff) {
  if (range.getType() == Range.INSERTED) return Pair.create(null, 0);

  DocumentEx doc = (DocumentEx)tracker.getVcsDocument();
  EditorEx uEditor = (EditorEx)EditorFactory.getInstance().createViewer(doc, tracker.getProject());
  uEditor.setColorsScheme(editor.getColorsScheme());

  FileType fileType = tracker.getVirtualFile().getFileType();
  DiffUtil.setEditorCodeStyle(tracker.getProject(), uEditor, fileType);

  EditorHighlighterFactory highlighterFactory = EditorHighlighterFactory.getInstance();
  EditorHighlighter highlighter = highlighterFactory.createEditorHighlighter(tracker.getProject(), getFileName(tracker.getDocument()));
  uEditor.setHighlighter(highlighter);

  if (wordDiff != null) {
    int vcsStartShift = tracker.getVcsTextRange(range).getStartOffset();
    for (DiffFragment fragment : wordDiff) {
      int vcsStart = vcsStartShift + fragment.getStartOffset1();
      int vcsEnd = vcsStartShift + fragment.getEndOffset1();
      TextDiffType type = getDiffType(fragment);

      DiffDrawUtil.createInlineHighlighter(uEditor, vcsStart, vcsEnd, type);
    }
  }

  JComponent fragmentComponent =
    EditorFragmentComponent.createEditorFragmentComponent(uEditor, range.getVcsLine1(), range.getVcsLine2(), false, false);
  int leftBorder = fragmentComponent.getBorder().getBorderInsets(fragmentComponent).left;

  EditorFactory.getInstance().releaseEditor(uEditor);

  return Pair.create(fragmentComponent, leftBorder);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:38,代码来源:LineStatusTrackerDrawing.java

示例2: showScopeHint

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
private void showScopeHint(final int lbraceStart, final int lbraceEnd) {
  LogicalPosition bracePosition = myEditor.offsetToLogicalPosition(lbraceStart);
  Point braceLocation = myEditor.logicalPositionToXY(bracePosition);
  final int y = braceLocation.y;
  myAlarm.addRequest(
      new Runnable() {
        @Override
        public void run() {
          if (!myEditor.getComponent().isShowing()) return;
          Rectangle viewRect = myEditor.getScrollingModel().getVisibleArea();
          if (y < viewRect.y) {
            int start = lbraceStart;
            if (!(myPsiFile instanceof PsiPlainTextFile) && myPsiFile.isValid()) {
              PsiDocumentManager.getInstance(myProject).commitAllDocuments();
              start = BraceMatchingUtil.getBraceMatcher(getFileTypeByOffset(lbraceStart), PsiUtilCore
                .getLanguageAtOffset(myPsiFile, lbraceStart)).getCodeConstructStart(myPsiFile, lbraceStart);
            }
            TextRange range = new TextRange(start, lbraceEnd);
            int line1 = myDocument.getLineNumber(range.getStartOffset());
            int line2 = myDocument.getLineNumber(range.getEndOffset());
            line1 = Math.max(line1, line2 - 5);
            range = new TextRange(myDocument.getLineStartOffset(line1), range.getEndOffset());
            LightweightHint hint = EditorFragmentComponent.showEditorFragmentHint(myEditor, range, true, true);
            myEditor.putUserData(HINT_IN_EDITOR_KEY, hint);
          }
        }
      },
      300, ModalityState.stateForComponent(myEditor.getComponent()));
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:BraceHighlightingHandler.java

示例3: showScopeHint

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
private void showScopeHint(final int lbraceStart, final int lbraceEnd) {
  LogicalPosition bracePosition = myEditor.offsetToLogicalPosition(lbraceStart);
  Point braceLocation = myEditor.logicalPositionToXY(bracePosition);
  final int y = braceLocation.y;
  myAlarm.addRequest(
      new Runnable() {
        @Override
        public void run() {
          if (!myEditor.getComponent().isShowing()) return;
          Rectangle viewRect = myEditor.getScrollingModel().getVisibleArea();
          if (y < viewRect.y) {
            int start = lbraceStart;
            if (!(myPsiFile instanceof PsiPlainTextFile) && myPsiFile.isValid()) {
              PsiDocumentManager.getInstance(myProject).commitAllDocuments();
              start = BraceMatchingUtil.getBraceMatcher(getFileTypeByOffset(lbraceStart), PsiUtilBase.getLanguageAtOffset(myPsiFile, lbraceStart)).getCodeConstructStart(myPsiFile, lbraceStart);
            }
            TextRange range = new TextRange(start, lbraceEnd);
            int line1 = myDocument.getLineNumber(range.getStartOffset());
            int line2 = myDocument.getLineNumber(range.getEndOffset());
            line1 = Math.max(line1, line2 - 5);
            range = new TextRange(myDocument.getLineStartOffset(line1), range.getEndOffset());
            EditorFragmentComponent.showEditorFragmentHint(myEditor, range, true, true);
          }
        }
      },
      300, ModalityState.stateForComponent(myEditor.getComponent()));
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:28,代码来源:BraceHighlightingHandler.java

示例4: ByteCodeViewerComponent

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
public ByteCodeViewerComponent(Project project, AnAction[] additionalActions) {
  super(new BorderLayout());
  final EditorFactory factory = EditorFactory.getInstance();
  final Document doc = factory.createDocument("");
  doc.setReadOnly(true);
  myEditor = factory.createEditor(doc, project);
  EditorHighlighterFactory editorHighlighterFactory = EditorHighlighterFactory.getInstance();
  final SyntaxHighlighter syntaxHighlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(StdFileTypes.JAVA, project, null);
  ((EditorEx)myEditor).setHighlighter(editorHighlighterFactory.createEditorHighlighter(syntaxHighlighter, EditorColorsManager.getInstance().getGlobalScheme()));
  ((EditorEx)myEditor).setBackgroundColor(EditorFragmentComponent.getBackgroundColor(myEditor));
  myEditor.getColorsScheme().setColor(EditorColors.CARET_ROW_COLOR, LightColors.SLIGHTLY_GRAY);
  ((EditorEx)myEditor).setCaretVisible(true);

  final EditorSettings settings = myEditor.getSettings();
  settings.setLineMarkerAreaShown(false);
  settings.setIndentGuidesShown(false);
  settings.setLineNumbersShown(false);
  settings.setFoldingOutlineShown(false);

  myEditor.setBorder(null);
  add(myEditor.getComponent(), BorderLayout.CENTER);
  final ActionManager actionManager = ActionManager.getInstance();
  final DefaultActionGroup actions = new DefaultActionGroup();
  if (additionalActions != null) {
    for (final AnAction action : additionalActions) {
      actions.add(action);
    }
  }
  add(actionManager.createActionToolbar(ActionPlaces.JAVADOC_TOOLBAR, actions, true).getComponent(), BorderLayout.NORTH);
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:31,代码来源:ByteCodeViewerComponent.java

示例5: showHint

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
private void showHint(final Editor editor, final Point point, final int lineNumber) {
  final JPanel panel = new JPanel(new BorderLayout());
  panel.add(createActionsToolbar(editor, lineNumber), BorderLayout.NORTH);

  final LineData lineData = getLineData(lineNumber);
  final Editor uEditor;
  if (lineData != null && lineData.getStatus() != LineCoverage.NONE && !mySubCoverageActive) {
    final EditorFactory factory = EditorFactory.getInstance();
    final Document doc = factory.createDocument(getReport(editor, lineNumber));
    doc.setReadOnly(true);
    uEditor = factory.createEditor(doc, editor.getProject());
    panel.add(EditorFragmentComponent.createEditorFragmentComponent(uEditor, 0, doc.getLineCount(), false, false), BorderLayout.CENTER);
  } else {
    uEditor = null;
  }


  final LightweightHint hint = new LightweightHint(panel){
    @Override
    public void hide() {
      if (uEditor != null) EditorFactory.getInstance().releaseEditor(uEditor);
      super.hide();

    }
  };
  HintManagerImpl.getInstanceImpl().showEditorHint(hint, editor, point,
                                                   HintManagerImpl.HIDE_BY_ANY_KEY | HintManagerImpl.HIDE_BY_TEXT_CHANGE | HintManagerImpl.HIDE_BY_OTHER_HINT | HintManagerImpl.HIDE_BY_SCROLLING, -1, false, new HintHint(editor, point));
}
 
开发者ID:consulo,项目名称:consulo,代码行数:29,代码来源:CoverageLineMarkerRenderer.java

示例6: createEditorComponent

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
@Nullable
private EditorFragmentComponent createEditorComponent(@Nullable FileType fileType, @Nullable List<DiffFragment> wordDiff) {
  if (myRange.getType() == Range.INSERTED) return null;

  EditorEx uEditor = (EditorEx)EditorFactory.getInstance().createViewer(myTracker.getVcsDocument(), myTracker.getProject());
  uEditor.setColorsScheme(myEditor.getColorsScheme());

  DiffUtil.setEditorCodeStyle(myTracker.getProject(), uEditor, fileType);

  EditorHighlighterFactory highlighterFactory = EditorHighlighterFactory.getInstance();
  uEditor.setHighlighter(highlighterFactory.createEditorHighlighter(myTracker.getProject(), getFileName(myTracker.getDocument())));

  if (wordDiff != null) {
    int vcsStartShift = myTracker.getVcsTextRange(myRange).getStartOffset();
    for (DiffFragment fragment : wordDiff) {
      int vcsStart = vcsStartShift + fragment.getStartOffset1();
      int vcsEnd = vcsStartShift + fragment.getEndOffset1();
      TextDiffType type = getDiffType(fragment);

      DiffDrawUtil.createInlineHighlighter(uEditor, vcsStart, vcsEnd, type);
    }
  }

  EditorFragmentComponent fragmentComponent =
          EditorFragmentComponent.createEditorFragmentComponent(uEditor, myRange.getVcsLine1(), myRange.getVcsLine2(), false, false);

  EditorFactory.getInstance().releaseEditor(uEditor);

  return fragmentComponent;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:31,代码来源:LineStatusMarkerPopup.java

示例7: showScopeHint

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
private void showScopeHint(final int lbraceStart, final int lbraceEnd) {
  LogicalPosition bracePosition = myEditor.offsetToLogicalPosition(lbraceStart);
  Point braceLocation = myEditor.logicalPositionToXY(bracePosition);
  final int y = braceLocation.y;
  myAlarm.addRequest(() -> {
    if (myProject.isDisposed()) return;
    PsiDocumentManager.getInstance(myProject).performLaterWhenAllCommitted(() -> {
      if (myEditor.isDisposed() || !myEditor.getComponent().isShowing()) return;
      Rectangle viewRect = myEditor.getScrollingModel().getVisibleArea();
      if (y < viewRect.y) {
        int start = lbraceStart;
        if (!(myPsiFile instanceof PsiPlainTextFile) && myPsiFile.isValid()) {
          start = BraceMatchingUtil.getBraceMatcher(getFileTypeByOffset(lbraceStart), PsiUtilCore
                  .getLanguageAtOffset(myPsiFile, lbraceStart)).getCodeConstructStart(myPsiFile, lbraceStart);
        }
        TextRange range = new TextRange(start, lbraceEnd);
        int line1 = myDocument.getLineNumber(range.getStartOffset());
        int line2 = myDocument.getLineNumber(range.getEndOffset());
        line1 = Math.max(line1, line2 - 5);
        range = new TextRange(myDocument.getLineStartOffset(line1), range.getEndOffset());
        HintManager.getInstance().hideAllHints();
        LightweightHint hint = EditorFragmentComponent.showEditorFragmentHint(myEditor, range, true, true);
        myEditor.putUserData(HINT_IN_EDITOR_KEY, hint);
      }
    });
  }, 300, ModalityState.stateForComponent(myEditor.getComponent()));
}
 
开发者ID:consulo,项目名称:consulo,代码行数:28,代码来源:BraceHighlightingHandler.java

示例8: ByteCodeViewerComponent

import com.intellij.codeInsight.hint.EditorFragmentComponent; //导入依赖的package包/类
public ByteCodeViewerComponent(Project project, AnAction[] additionalActions)
{
	super(new BorderLayout());
	final EditorFactory factory = EditorFactory.getInstance();
	final Document doc = factory.createDocument("");
	doc.setReadOnly(true);
	myEditor = factory.createEditor(doc, project);
	EditorHighlighterFactory editorHighlighterFactory = EditorHighlighterFactory.getInstance();
	final SyntaxHighlighter syntaxHighlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(PlainTextFileType.INSTANCE, project, null);
	((EditorEx) myEditor).setHighlighter(editorHighlighterFactory.createEditorHighlighter(syntaxHighlighter,
			EditorColorsManager.getInstance().getGlobalScheme()));
	((EditorEx) myEditor).setBackgroundColor(EditorFragmentComponent.getBackgroundColor(myEditor));
	myEditor.getColorsScheme().setColor(EditorColors.CARET_ROW_COLOR, LightColors.SLIGHTLY_GRAY);
	((EditorEx) myEditor).setCaretVisible(true);

	final EditorSettings settings = myEditor.getSettings();
	settings.setLineMarkerAreaShown(false);
	settings.setIndentGuidesShown(false);
	settings.setLineNumbersShown(false);
	settings.setFoldingOutlineShown(false);

	myEditor.setBorder(null);
	add(myEditor.getComponent(), BorderLayout.CENTER);
	final ActionManager actionManager = ActionManager.getInstance();
	final DefaultActionGroup actions = new DefaultActionGroup();
	if(additionalActions != null)
	{
		for(final AnAction action : additionalActions)
		{
			actions.add(action);
		}
	}
	add(actionManager.createActionToolbar(ActionPlaces.JAVADOC_TOOLBAR, actions, true).getComponent(), BorderLayout.NORTH);
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:35,代码来源:ByteCodeViewerComponent.java


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