當前位置: 首頁>>代碼示例>>Java>>正文


Java LineStatusTrackerManager.getInstance方法代碼示例

本文整理匯總了Java中com.intellij.openapi.vcs.impl.LineStatusTrackerManager.getInstance方法的典型用法代碼示例。如果您正苦於以下問題:Java LineStatusTrackerManager.getInstance方法的具體用法?Java LineStatusTrackerManager.getInstance怎麽用?Java LineStatusTrackerManager.getInstance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.intellij.openapi.vcs.impl.LineStatusTrackerManager的用法示例。


在下文中一共展示了LineStatusTrackerManager.getInstance方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: hasChanges

import com.intellij.openapi.vcs.impl.LineStatusTrackerManager; //導入方法依賴的package包/類
/**
 * Allows to answer if given file has changes in comparison with VCS.
 * 
 * @param file  target file
 * @return      <code>true</code> if given file has changes; <code>false</code> otherwise
 */
public static boolean hasChanges(@NotNull PsiFile file) {
  final Project project = file.getProject();
  final VirtualFile virtualFile = file.getVirtualFile();
  if (virtualFile != null) {
    final Change change = ChangeListManager.getInstance(project).getChange(virtualFile);
    if (change != null && change.getType() == Change.Type.NEW) {
      return true;
    }
  }

  final LineStatusTrackerManagerI manager = LineStatusTrackerManager.getInstance(project);
  if (manager == null) {
    return false;
  }
  
  final Document document = PsiDocumentManager.getInstance(project).getDocument(file);
  if (document == null) {
    return false;
  }
  final LineStatusTracker lineStatusTracker = manager.getLineStatusTracker(document);
  if (lineStatusTracker == null) {
    return false;
  }
  final List<Range> ranges = lineStatusTracker.getRanges();
  if (ranges == null || ranges.isEmpty()) {
    return false;
  } 
  for (Range range : ranges) {
    if (range.getType() != Range.DELETED) {
      return true;
    }
  }
  return false;
}
 
開發者ID:lshain-android-source,項目名稱:tools-idea,代碼行數:41,代碼來源:FormatChangedTextUtil.java

示例2: getChanges

import com.intellij.openapi.vcs.impl.LineStatusTrackerManager; //導入方法依賴的package包/類
/**
 * Allows to ask for the changed text of the given file (in comparison with VCS).
 * 
 * @param file  target file
 * @return      collection of changed regions for the given file
 */
@NotNull
public static Collection<TextRange> getChanges(@NotNull PsiFile file) {
  final Set<TextRange> defaultResult = Collections.singleton(file.getTextRange());
  final VirtualFile virtualFile = file.getVirtualFile();
  if (virtualFile != null) {
    final Change change = ChangeListManager.getInstance(file.getProject()).getChange(virtualFile);
    if (change != null && change.getType() == Change.Type.NEW) {
      return defaultResult;
    }
  }

  final LineStatusTrackerManagerI manager = LineStatusTrackerManager.getInstance(file.getProject());
  if (manager == null) {
    return defaultResult;
  }
  final Document document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file);
  if (document == null) {
    return defaultResult;
  }
  final LineStatusTracker lineStatusTracker = manager.getLineStatusTracker(document);
  if (lineStatusTracker == null) {
    return defaultResult;
  }
  final List<Range> ranges = lineStatusTracker.getRanges();
  if (ranges == null || ranges.isEmpty()) {
    return defaultResult;
  }
  
  List<TextRange> result = new ArrayList<TextRange>();
  for (Range range : ranges) {
    if (range.getType() != Range.DELETED) {
      final RangeHighlighter highlighter = range.getHighlighter();
      if (highlighter != null) {
        result.add(new TextRange(highlighter.getStartOffset(), highlighter.getEndOffset()));
      }
    }
  }
  return result;
}
 
開發者ID:lshain-android-source,項目名稱:tools-idea,代碼行數:46,代碼來源:FormatChangedTextUtil.java


注:本文中的com.intellij.openapi.vcs.impl.LineStatusTrackerManager.getInstance方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。