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


Java PsiModifierList.getTextOffset方法代码示例

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


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

示例1: perform

import com.intellij.psi.PsiModifierList; //导入方法依赖的package包/类
/**
 * to be performed in write action
 */
public void perform(final PsiVariable variable) {
  ApplicationManager.getApplication().assertWriteAccessAllowed();

  final Document document = myEditor.getDocument();
  LOG.assertTrue(variable != null);
  final PsiModifierList modifierList = variable.getModifierList();
  LOG.assertTrue(modifierList != null);
  int textOffset = modifierList.getTextOffset();
  final String modifierListText = modifierList.getText();

  int length = PsiModifier.PUBLIC.length();
  int idx = modifierListText.indexOf(PsiModifier.PUBLIC);

  if (idx == -1) {
    idx = modifierListText.indexOf(PsiModifier.PROTECTED);
    length = PsiModifier.PROTECTED.length();
  }

  if (idx == -1) {
    idx = modifierListText.indexOf(PsiModifier.PRIVATE);
    length = PsiModifier.PRIVATE.length();
  }

  String visibility = getVisibility();
  if (visibility == PsiModifier.PACKAGE_LOCAL) {
    visibility = "";
  }

  final boolean wasPackageLocal = idx == -1;
  final boolean isPackageLocal = visibility.isEmpty();

  final int startOffset = textOffset + (wasPackageLocal ? 0 : idx);
  final int endOffset;
  if (wasPackageLocal) {
    endOffset = startOffset;
  }
  else {
    endOffset = textOffset + length + (isPackageLocal ? 1 : 0);
  }

  final String finalVisibility = visibility + (wasPackageLocal ? " " : "");

  Runnable runnable = new Runnable() {
    @Override
    public void run() {
      document.replaceString(startOffset, endOffset, finalVisibility);
    }
  };

  final LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(myEditor);
  if (lookup != null) {
    lookup.performGuardedChange(runnable);
  } else {
    runnable.run();
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:60,代码来源:VisibilityListener.java


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