use of com.intellij.psi.PsiElement in project buck by facebook.
the class BuckBuildUtil method extractBuckTarget.
/**
* Get the buck target from a buck file.
* TODO(#7908675): We should use Buck's own classes for it.
*/
public static String extractBuckTarget(Project project, VirtualFile file) {
BuckFile buckFile = (BuckFile) PsiManager.getInstance(project).findFile(file);
if (buckFile == null) {
return null;
}
PsiElement[] children = buckFile.getChildren();
for (PsiElement child : children) {
if (child.getNode().getElementType() == BuckTypes.RULE_BLOCK) {
PsiElement ruleName = child.getFirstChild();
// Find rule "project_config"
if (ruleName != null && BuckPsiUtils.testType(ruleName, BuckTypes.RULE_NAME) && ruleName.getText().equals(PROJECT_CONFIG_RULE_NAME)) {
// Find property "src_target"
PsiElement bodyElement = BuckPsiUtils.findChildWithType(child, BuckTypes.RULE_BODY);
return getPropertyValue((BuckRuleBody) bodyElement, SRC_TARGET_PROPERTY_NAME);
}
}
}
return null;
}
use of com.intellij.psi.PsiElement in project buck by facebook.
the class BuckFormattingModelBuilder method getRangeAffectingIndent.
@Nullable
@Override
public TextRange getRangeAffectingIndent(PsiFile file, int offset, ASTNode elementAtOffset) {
final PsiElement element = elementAtOffset.getPsi();
final PsiElement container = element.getParent();
return container != null ? container.getTextRange() : null;
}
use of com.intellij.psi.PsiElement in project buck by facebook.
the class DependenciesOptimizer method optimzeDeps.
public static void optimzeDeps(@NotNull PsiFile file) {
final PropertyVisitor visitor = new PropertyVisitor();
file.accept(new BuckVisitor() {
@Override
public void visitElement(PsiElement node) {
node.acceptChildren(this);
node.accept(visitor);
}
});
// Commit modifications.
final PsiDocumentManager manager = PsiDocumentManager.getInstance(file.getProject());
manager.doPostponedOperationsAndUnblockDocument(manager.getDocument(file));
}
use of com.intellij.psi.PsiElement in project android-parcelable-intellij-plugin by mcharmas.
the class ParcelableAction method getPsiClassFromContext.
private PsiClass getPsiClassFromContext(AnActionEvent e) {
PsiFile psiFile = e.getData(LangDataKeys.PSI_FILE);
Editor editor = e.getData(PlatformDataKeys.EDITOR);
if (psiFile == null || editor == null) {
return null;
}
int offset = editor.getCaretModel().getOffset();
PsiElement element = psiFile.findElementAt(offset);
return PsiTreeUtil.getParentOfType(element, PsiClass.class);
}
use of com.intellij.psi.PsiElement in project qi4j-sdk by Qi4j.
the class AbstractIntention method invoke.
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
if (isFileReadOnly(project, file)) {
return;
}
final PsiElement element = findMatchingElement(file, editor);
if (element == null) {
return;
}
processIntention(project, editor, element);
}
Aggregations