Java 类com.intellij.psi.impl.search.LightIndexPatternSearch 实例源码

项目:intellij-ce-playground    文件:TodoCheckinHandlerWorker.java   
private void checkEditedFragment(TodoItem newTodoItem) {
  if (myBeforeFile == null) {
    myBeforeFile = ApplicationManager.getApplication().runReadAction(new Computable<PsiFile>() {
      @Override
      public PsiFile compute() {
        return myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myAfterFile.getFileType(), myBeforeContent);
      }
    });
  }
  if (myOldItems == null)  {
    final Collection<IndexPatternOccurrence> all =
      LightIndexPatternSearch.SEARCH.createQuery(new IndexPatternSearch.SearchParameters(myBeforeFile, TodoIndexPatternProvider
        .getInstance())).findAll();

    final TodoItemsCreator todoItemsCreator = new TodoItemsCreator();
    myOldItems = new ArrayList<TodoItem>();
    if (all.isEmpty()) {
      myAcceptor.addedOrEdited(newTodoItem);
      return;
    }
    for (IndexPatternOccurrence occurrence : all) {
      myOldItems.add(todoItemsCreator.createTodo(occurrence));
    }
    applyFilterAndRemoveDuplicates(myOldItems, myTodoFilter);
  }
  if (myOldTodoTexts == null) {
    final StepIntersection<LineFragment, TodoItem> intersection = new StepIntersection<LineFragment, TodoItem>(
      LineFragmentConvertor.getInstance(), TodoItemConvertor.getInstance(), myOldItems, new Getter<String>() {
      @Override
      public String get() {
        return myBeforeContent;
      }
    });
    myOldTodoTexts = new HashSet<String>();
    intersection.process(Collections.singletonList(myCurrentLineFragment), new PairConsumer<LineFragment, TodoItem>() {
      @Override
      public void consume(LineFragment lineFragment, TodoItem todoItem) {
        myOldTodoTexts.add(getTodoText(todoItem, myBeforeContent));
      }
    });
  }
  final String text = getTodoText(newTodoItem, myAfterContent);
  if (! myOldTodoTexts.contains(text)) {
    myAcceptor.addedOrEdited(newTodoItem);
  } else {
    myAcceptor.inChanged(newTodoItem);
  }
}
项目:tools-idea    文件:TodoCheckinHandlerWorker.java   
private void checkEditedFragment(TodoItem newTodoItem) {
  if (myBeforeFile == null) {
    myBeforeFile = myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myAfterFile.getFileType(), myBeforeContent);
  }
  if (myOldItems == null)  {
    final Collection<IndexPatternOccurrence> all =
      LightIndexPatternSearch.SEARCH.createQuery(new IndexPatternSearch.SearchParameters(myBeforeFile, TodoIndexPatternProvider
        .getInstance())).findAll();

    final TodoItemsCreator todoItemsCreator = new TodoItemsCreator();
    myOldItems = new ArrayList<TodoItem>();
    if (all.isEmpty()) {
      myAcceptor.addedOrEdited(newTodoItem);
      return;
    }
    for (IndexPatternOccurrence occurrence : all) {
      myOldItems.add(todoItemsCreator.createTodo(occurrence));
    }
    applyFilterAndRemoveDuplicates(myOldItems, myTodoFilter);
  }
  if (myOldTodoTexts == null) {
    final StepIntersection<LineFragment, TodoItem> intersection = new StepIntersection<LineFragment, TodoItem>(
      LineFragmentConvertor.getInstance(), TodoItemConvertor.getInstance(), myOldItems, new Getter<String>() {
      @Override
      public String get() {
        return myBeforeContent;
      }
    });
    myOldTodoTexts = new HashSet<String>();
    intersection.process(Collections.singletonList(myCurrentLineFragment), new PairConsumer<LineFragment, TodoItem>() {
      @Override
      public void consume(LineFragment lineFragment, TodoItem todoItem) {
        myOldTodoTexts.add(getTodoText(todoItem, myBeforeContent));
      }
    });
  }
  final String text = getTodoText(newTodoItem, myAfterContent);
  if (! myOldTodoTexts.contains(text)) {
    myAcceptor.addedOrEdited(newTodoItem);
  } else {
    myAcceptor.inChanged(newTodoItem);
  }
}
项目:consulo    文件:TodoCheckinHandlerWorker.java   
private void checkEditedFragment(TodoItem newTodoItem) {
  if (myBeforeFile == null) {
    myBeforeFile = ApplicationManager.getApplication().runReadAction(new Computable<PsiFile>() {
      @Override
      public PsiFile compute() {
        return myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myAfterFile.getFileType(), myBeforeContent);
      }
    });
  }
  if (myOldItems == null)  {
    final Collection<IndexPatternOccurrence> all =
            LightIndexPatternSearch.SEARCH.createQuery(new IndexPatternSearch.SearchParameters(myBeforeFile, TodoIndexPatternProvider
                    .getInstance())).findAll();

    final TodoItemsCreator todoItemsCreator = new TodoItemsCreator();
    myOldItems = new ArrayList<TodoItem>();
    if (all.isEmpty()) {
      myAcceptor.addedOrEdited(newTodoItem);
      return;
    }
    for (IndexPatternOccurrence occurrence : all) {
      myOldItems.add(todoItemsCreator.createTodo(occurrence));
    }
    applyFilterAndRemoveDuplicates(myOldItems, myTodoFilter);
  }
  if (myOldTodoTexts == null) {
    final StepIntersection<LineFragment, TodoItem> intersection = new StepIntersection<LineFragment, TodoItem>(
            LineFragmentConvertor.getInstance(), TodoItemConvertor.getInstance(), myOldItems, new Getter<String>() {
      @Override
      public String get() {
        return myBeforeContent;
      }
    });
    myOldTodoTexts = new HashSet<String>();
    intersection.process(Collections.singletonList(myCurrentLineFragment), new PairConsumer<LineFragment, TodoItem>() {
      @Override
      public void consume(LineFragment lineFragment, TodoItem todoItem) {
        myOldTodoTexts.add(getTodoText(todoItem, myBeforeContent));
      }
    });
  }
  final String text = getTodoText(newTodoItem, myAfterContent);
  if (! myOldTodoTexts.contains(text)) {
    myAcceptor.addedOrEdited(newTodoItem);
  } else {
    myAcceptor.inChanged(newTodoItem);
  }
}