[site] existing psi cookbook migrated

This commit is contained in:
Anna Bulenkova 2015-03-02 13:26:36 +01:00
parent 0b1dd3c836
commit cc71e23b41
2 changed files with 57 additions and 0 deletions

View File

@ -15,6 +15,7 @@
* [Plugin Structure](plugin_structure.html)
* [Architectural Overview](architectural_overview.html)
* [Structure of IntelliJ IDEA Project](project_structure.html)
* [PSI Cookbook](psi_cookbook.html)
* [Advanced Topics](advanced_topics.html)
* [Persisting State of Components](persisting_state.html)
* [XML DOM API](xml_dom_api.html)

56
psi_cookbook.md Normal file
View File

@ -0,0 +1,56 @@
---
title: PSI Cookbook
---
<!--
INITIAL_SOURCE https://confluence.jetbrains.com/display/IDEADEV/PSI+Cookbook
-->
# {{ page.title }}
This page gives a list of recipes for the most common operations for working with the PSI (Program Structure Interface) in IntelliJ IDEA. Unlike [Developing Custom Language Plugins for IntelliJ IDEA], it talks about working with the PSI of existing languages (such as Java).
### How do I find a file if I know its name but don't know the path?
```FilenameIndex.getFilesByName()```
### How do I find where a particular PSI element is used?
```ReferencesSearch.search()```
### How do I rename a PSI element?
```RefactoringFactory.createRename()```
### How can I cause the PSI for a virtual file to be rebuilt?
```FileContentUtil.reparseFiles()```
## Java Specific
### How do I find all inheritors of a class?
```ClassInheritorsSearch.search()```
### How do I find a class by qualified name?
```JavaPsiFacade.findClass()```
### How do I find a class by short name?
```PsiShortNamesCache.getInstance().getClassesByName()```
### How do I find a superclass of a Java class?
```PsiClass.getSuperClass()```
### How do I get a reference to the containing package of a Java class?
```java
PsiJavaFile javaFile = (PsiJavaFile) psiClass.getContaningFile();
PsiPackage pkg = JavaPsiFacade.getInstance(project).findPackage(javaFile.getPackageName());
```
### How do I find the methods overriding a specific method?
```OverridingMethodsSearch.search()```