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


Java TemplateState.getCurrentVariableRange方法代码示例

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


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

示例1: execute

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void execute(Editor editor, DataContext dataContext) {
  final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null && !templateState.isFinished()) {
    final TextRange range = templateState.getCurrentVariableRange();
    final int caretOffset = editor.getCaretModel().getOffset();
    if (range != null && range.getStartOffset() <= caretOffset && caretOffset <= range.getEndOffset()) {
      int offsetToMove = myIsHomeHandler ? range.getStartOffset() : range.getEndOffset();
      if (offsetToMove != caretOffset) {
        editor.getCaretModel().moveToOffset(offsetToMove);
      }
      editor.getSelectionModel().removeSelection();
    } else {
      myOriginalHandler.execute(editor, dataContext);
    }
  } else {
    myOriginalHandler.execute(editor, dataContext);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:HomeEndHandler.java

示例2: beforeTemplateFinished

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void beforeTemplateFinished(final TemplateState templateState, Template template) {
  try {
    final TextResult value = templateState.getVariableValue(PRIMARY_VARIABLE_NAME);
    myInsertedName = value != null ? value.toString() : null;

    TextRange range = templateState.getCurrentVariableRange();
    final int currentOffset = myEditor.getCaretModel().getOffset();
    if (range == null && myRenameOffset != null) {
      range = new TextRange(myRenameOffset.getStartOffset(), myRenameOffset.getEndOffset());
    }
    myBeforeRevert =
      range != null && range.getEndOffset() >= currentOffset && range.getStartOffset() <= currentOffset
      ? myEditor.getDocument().createRangeMarker(range.getStartOffset(), currentOffset)
      : null;
    if (myBeforeRevert != null) {
      myBeforeRevert.setGreedyToRight(true);
    }
    finish(true);
  }
  finally {
    restoreDaemonUpdateState();
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:25,代码来源:InplaceRefactoring.java

示例3: doExecute

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
protected void doExecute(Editor editor, @Nullable Caret caret, DataContext dataContext) {
  final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null && !templateState.isFinished()) {
    final TextRange range = templateState.getCurrentVariableRange();
    final int caretOffset = editor.getCaretModel().getOffset();
    if (range != null && shouldStayInsideVariable(range, caretOffset)) {
      int selectionOffset = editor.getSelectionModel().getLeadSelectionOffset();
      int offsetToMove = myIsHomeHandler ? range.getStartOffset() : range.getEndOffset();
      LogicalPosition logicalPosition = editor.offsetToLogicalPosition(offsetToMove).leanForward(myIsHomeHandler);
      editor.getCaretModel().moveToLogicalPosition(logicalPosition);
      EditorModificationUtil.scrollToCaret(editor);
      if (myWithSelection) {
        editor.getSelectionModel().setSelection(selectionOffset, offsetToMove);
      }
      else {
        editor.getSelectionModel().removeSelection();
      }
      return;
    }
  }
  myOriginalHandler.execute(editor, caret, dataContext);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:24,代码来源:TemplateLineStartEndHandler.java

示例4: considerNextTab

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void considerNextTab(Editor editor) {
  TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null) {
    TextRange range = templateState.getCurrentVariableRange();
    if (range != null && range.getLength() > 0) {
      int caret = editor.getCaretModel().getOffset();
      if (caret == range.getEndOffset()) {
        templateState.nextTab();
      }
      else if (caret > range.getEndOffset()) {
        templateState.gotoEnd(true);
      }
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:16,代码来源:BaseCompleteMacro.java

示例5: execute

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void execute(Editor editor, DataContext dataContext) {
  final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null && !templateState.isFinished()) {
    final TextRange range = templateState.getCurrentVariableRange();
    final int caretOffset = editor.getCaretModel().getOffset();
    if (range != null && range.getStartOffset() <= caretOffset && caretOffset <= range.getEndOffset()) {
      editor.getSelectionModel().setSelection(range.getStartOffset(), range.getEndOffset());
      return;
    }
  }
  myOriginalHandler.execute(editor, dataContext);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:14,代码来源:SelectAllHandler.java

示例6: execute

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void execute(Editor editor, DataContext dataContext) {
  final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null && !templateState.isFinished()) {
    final TextRange range = templateState.getCurrentVariableRange();
    final int caretOffset = editor.getCaretModel().getOffset();
    if (range != null && range.getStartOffset() <= caretOffset && caretOffset <= range.getEndOffset()) {
      int offsetToMove = myIsHomeHandler ? range.getStartOffset() : range.getEndOffset();
      editor.getCaretModel().moveToOffset(offsetToMove);
      editor.getSelectionModel().setSelection(myIsHomeHandler ? offsetToMove : caretOffset, myIsHomeHandler ? caretOffset : offsetToMove);
      return;
    }
  }
  myOriginalHandler.execute(editor, dataContext);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:16,代码来源:LineStartEndWithSelectionHandler.java

示例7: considerNextTab

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void considerNextTab(Editor editor) {
  TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null) {
    TextRange range = templateState.getCurrentVariableRange();
    if (range != null && range.getLength() > 0) {
      int caret = editor.getCaretModel().getOffset();
      if (caret == range.getEndOffset()) {
        templateState.nextTab();
      }
      else if (caret > range.getEndOffset()) {
        templateState.cancelTemplate();
      }
    }
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:16,代码来源:BaseCompleteMacro.java

示例8: restartInplaceIntroduceTemplate

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
public void restartInplaceIntroduceTemplate() {
  Runnable restartTemplateRunnable = new Runnable() {
    @Override
    public void run() {
      final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor);
      if (templateState != null) {
        myEditor.putUserData(INTRODUCE_RESTART, true);
        try {
          final TextRange range = templateState.getCurrentVariableRange();
          if (range != null && range.isEmpty()) {
            final String[] names = suggestNames(isReplaceAllOccurrences(), getLocalVariable());
            ApplicationManager.getApplication().runWriteAction(new Runnable() {
              @Override
              public void run() {
                myEditor.getDocument().insertString(myEditor.getCaretModel().getOffset(), names[0]);
              }
            });
          }
          templateState.gotoEnd(true);
          try {
            myShouldSelect = false;
            startInplaceIntroduceTemplate();
          }
          finally {
            myShouldSelect = true;
          }
        }
        finally {
          myEditor.putUserData(INTRODUCE_RESTART, false);
        }
      }
      updateTitle(getVariable());
    }
  };
  CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, getCommandName(), getCommandName());
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:37,代码来源:AbstractInplaceIntroducer.java

示例9: isEnabledForCaret

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
protected boolean isEnabledForCaret(@Nonnull Editor editor, @Nonnull Caret caret, DataContext dataContext) {
  TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
  if (templateState != null && !templateState.isFinished()) {
    TextRange range = templateState.getCurrentVariableRange();
    int caretOffset = editor.getCaretModel().getOffset();
    if (range != null && range.containsOffset(caretOffset)) return true;
  }
  return myOriginalHandler.isEnabled(editor, caret, dataContext);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:11,代码来源:TemplateLineStartEndHandler.java

示例10: restartInplaceIntroduceTemplate

import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
public void restartInplaceIntroduceTemplate() {
  Runnable restartTemplateRunnable = new Runnable() {
    @Override
    public void run() {
      final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor);
      if (templateState != null) {
        myEditor.putUserData(INTRODUCE_RESTART, true);
        try {
          final TextRange range = templateState.getCurrentVariableRange();
          if (range != null) {
            final TextResult inputText = templateState.getVariableValue(PRIMARY_VARIABLE_NAME);
            final String inputName = inputText != null ? inputText.getText() : null;
            final V variable = getVariable();
            if (inputName == null || variable == null || !isIdentifier(inputName, variable.getLanguage())) {
              final String[] names = suggestNames(isReplaceAllOccurrences(), getLocalVariable());
              ApplicationManager.getApplication().runWriteAction(new Runnable() {
                @Override
                public void run() {
                  myEditor.getDocument().replaceString(range.getStartOffset(), range.getEndOffset(), names[0]);
                }
              });
            }
          }
          templateState.gotoEnd(true);
          try {
            myShouldSelect = false;
            startInplaceIntroduceTemplate();
          }
          finally {
            myShouldSelect = true;
          }
        }
        finally {
          myEditor.putUserData(INTRODUCE_RESTART, false);
        }
      }
      updateTitle(getVariable());
    }
  };
  CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, getCommandName(), getCommandName());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:42,代码来源:AbstractInplaceIntroducer.java


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