本文整理汇总了Java中com.intellij.psi.codeStyle.arrangement.MemberOrderService.getAnchor方法的典型用法代码示例。如果您正苦于以下问题:Java MemberOrderService.getAnchor方法的具体用法?Java MemberOrderService.getAnchor怎么用?Java MemberOrderService.getAnchor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.psi.codeStyle.arrangement.MemberOrderService
的用法示例。
在下文中一共展示了MemberOrderService.getAnchor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getDefaultMemberAnchor
import com.intellij.psi.codeStyle.arrangement.MemberOrderService; //导入方法依赖的package包/类
@Nullable
@Override
public PsiElement getDefaultMemberAnchor(@NotNull PsiClass aClass, @NotNull PsiMember member) {
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(aClass.getProject());
MemberOrderService service = ServiceManager.getService(MemberOrderService.class);
PsiElement anchor = service.getAnchor(member, settings.getCommonSettings(JavaLanguage.INSTANCE), aClass);
PsiElement newAnchor = skipWhitespaces(aClass, anchor);
if (newAnchor != null) {
return newAnchor;
}
if (anchor != null && anchor != aClass) {
anchor = anchor.getNextSibling();
while (anchor instanceof PsiJavaToken && (anchor.getText().equals(",") || anchor.getText().equals(";"))) {
final boolean afterComma = anchor.getText().equals(",");
anchor = anchor.getNextSibling();
if (afterComma) {
newAnchor = skipWhitespaces(aClass, anchor);
if (newAnchor != null) return newAnchor;
}
}
if (anchor != null) {
return anchor;
}
}
// The main idea is to avoid to anchor to 'white space' element because that causes reformatting algorithm
// to perform incorrectly. The algorithm is encapsulated at the PostprocessReformattingAspect.doPostponedFormattingInner().
final PsiElement lBrace = aClass.getLBrace();
if (lBrace != null) {
PsiElement result = lBrace.getNextSibling();
while (result instanceof PsiWhiteSpace) {
result = result.getNextSibling();
}
return result;
}
return aClass.getRBrace();
}
示例2: getDefaultMemberAnchor
import com.intellij.psi.codeStyle.arrangement.MemberOrderService; //导入方法依赖的package包/类
@Nullable
@Override
public PsiElement getDefaultMemberAnchor(@NotNull PsiClass aClass, @NotNull PsiMember member)
{
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(aClass.getProject());
MemberOrderService service = ServiceManager.getService(MemberOrderService.class);
PsiElement anchor = service.getAnchor(member, settings.getCommonSettings(JavaLanguage.INSTANCE), aClass);
PsiElement newAnchor = skipWhitespaces(aClass, anchor);
if(newAnchor != null)
{
return newAnchor;
}
if(anchor != null && anchor != aClass)
{
anchor = anchor.getNextSibling();
while(anchor instanceof PsiJavaToken && (anchor.getText().equals(",") || anchor.getText().equals(";")))
{
final boolean afterComma = anchor.getText().equals(",");
anchor = anchor.getNextSibling();
if(afterComma)
{
newAnchor = skipWhitespaces(aClass, anchor);
if(newAnchor != null)
{
return newAnchor;
}
}
}
if(anchor != null)
{
return anchor;
}
}
// The main idea is to avoid to anchor to 'white space' element because that causes reformatting algorithm
// to perform incorrectly. The algorithm is encapsulated at the PostprocessReformattingAspect.doPostponedFormattingInner().
final PsiElement lBrace = aClass.getLBrace();
if(lBrace != null)
{
PsiElement result = lBrace.getNextSibling();
while(result instanceof PsiWhiteSpace)
{
result = result.getNextSibling();
}
return result;
}
return aClass.getRBrace();
}