mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 10:17:50 +08:00
155 lines
8.6 KiB
HTML
155 lines
8.6 KiB
HTML
|
||
|
||
|
||
<!doctype html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>PSI Cookbook / IntelliJ Platform SDK DevGuide</title>
|
||
<link rel="stylesheet" href="/intellij/sdk/docs/app/css/styles.min.css">
|
||
|
||
<!-- non-retina iPad pre iOS 7 -->
|
||
<link rel="apple-touch-icon" href="/intellij/sdk/docs/apple-touch-icon-72x72.png" sizes="72x72">
|
||
|
||
<!-- retina iPhone pre iOS 7 -->
|
||
<link rel="apple-touch-icon" href="/intellij/sdk/docs/apple-touch-icon-114x114.png" sizes="114x114">
|
||
|
||
<!-- retina iPad pre iOS 7 -->
|
||
<link rel="apple-touch-icon" href="/intellij/sdk/docs/apple-touch-icon-144x144.png" sizes="144x144">
|
||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/intellij/sdk/docs/apple-touch-icon-precomposed.png">
|
||
|
||
<!-- normal favicon -->
|
||
<link rel="shortcut icon" type="image/x-icon" href="/intellij/sdk/docs/favicon.ico">
|
||
<link rel="icon" type="image/png" href="/intellij/sdk/docs/favicon.png">
|
||
<link rel="stylesheet" href="/intellij/sdk/docs/styles/styles.css"></head>
|
||
<body data-id="basics/psi_cookbook">
|
||
<div class="wrapper">
|
||
<section class="panel _nav">
|
||
<header class="panel__header">
|
||
<div class="container">
|
||
<form class="search-box">
|
||
<label for="search-box__input" class="search-box__label">
|
||
<input type="text" class="search-box__input" id="search-box__input" placeholder="Search IntelliJ Platform SDK DevGuide">
|
||
</label>
|
||
<div class="search-box__clear" title="Clear"></div>
|
||
</form>
|
||
</div>
|
||
</header>
|
||
<nav class="panel__content">
|
||
<div class="container _nav">
|
||
<menu class="nav-tree"></menu>
|
||
</div>
|
||
<div class="container _footer panel__footer">
|
||
<p><a href="https://youtrack.jetbrains.com/issues/IJSDK">Send feedback</a></p>
|
||
<p>© 2000–2016 <a href="//www.jetbrains.com">JetBrains</a> s.r.o.<br>
|
||
All rights reserved.</p>
|
||
</div>
|
||
</nav>
|
||
</section>
|
||
|
||
<main class="panel _main" role="main">
|
||
<header class="panel__header">
|
||
<div class="container">
|
||
<h3>IntelliJ Platform SDK DevGuide</h3>
|
||
|
||
<div class="shortcuts-switcher"><label for="switch-shortcuts">Keymap:</label><select id="switch-shortcuts" class="select _shortcuts" height="1">
|
||
<option data-group="primary" value="default" selected>Default</option>
|
||
<option data-group="primary" value="default_for_gnome">GNOME</option>
|
||
<option data-group="primary" value="default_for_kde">KDE</option>
|
||
<option data-group="primary" value="default_for_xwin">XWindow</option>
|
||
<option data-group="primary" value="emacs">Emacs</option>
|
||
<option data-group="primary" value="jbuilder">JBuilder</option>
|
||
<option data-group="primary" value="visual_studio">Visual Studio</option>
|
||
<option data-group="primary" value="netbeans_6.5">NetBeans 6.5</option>
|
||
<option data-group="primary" value="eclipse">Eclipse</option>
|
||
<option data-group="secondary" value="mac_os_x_10.5_">OS X 10.5+</option>
|
||
<option data-group="secondary" value="mac_os_x">OS X</option>
|
||
<option data-group="secondary" value="eclipse_mac_os_x">OS X Eclipse</option></select>
|
||
</div>
|
||
|
||
<div class="panel-trigger"></div>
|
||
</div>
|
||
</header>
|
||
<section class="panel__content">
|
||
<div class="container">
|
||
<article class="article" data-shortcut-switcher="false">
|
||
|
||
<h1>PSI Cookbook</h1>
|
||
<p>This page gives a list of recipes for the most common operations for working with the PSI (Program Structure Interface). Unlike <a href="/intellij/sdk/docs/reference_guide/custom_language_support.html"><span>Developing Custom Language Plugins</span></a>, it talks about working with the PSI of existing languages (such as Java).</p>
|
||
|
||
<a name="how-do-i-find-a-file-if-i-know-its-name-but-dont-know-the-path" class="elem-anchor"></a>
|
||
<h2>How do I find a file if I know its name but don’t know the path?<a href="#how-do-i-find-a-file-if-i-know-its-name-but-dont-know-the-path" class="anchor-link"><span></span></a></h2>
|
||
|
||
<p><code class="code highlight language-text">FilenameIndex.getFilesByName()</code></p>
|
||
|
||
<a name="how-do-i-find-where-a-particular-psi-element-is-used" class="elem-anchor"></a>
|
||
<h2>How do I find where a particular PSI element is used?<a href="#how-do-i-find-where-a-particular-psi-element-is-used" class="anchor-link"><span></span></a></h2>
|
||
|
||
<p><code class="code highlight language-text">ReferencesSearch.search()</code></p>
|
||
|
||
<a name="how-do-i-rename-a-psi-element" class="elem-anchor"></a>
|
||
<h2>How do I rename a PSI element?<a href="#how-do-i-rename-a-psi-element" class="anchor-link"><span></span></a></h2>
|
||
|
||
<p><code class="code highlight language-text">RefactoringFactory.createRename()</code></p>
|
||
|
||
<a name="how-can-i-cause-the-psi-for-a-virtual-file-to-be-rebuilt" class="elem-anchor"></a>
|
||
<h2>How can I cause the PSI for a virtual file to be rebuilt?<a href="#how-can-i-cause-the-psi-for-a-virtual-file-to-be-rebuilt" class="anchor-link"><span></span></a></h2>
|
||
|
||
<p><code class="code highlight language-text">FileContentUtil.reparseFiles()</code></p>
|
||
|
||
<a name="java-specific" class="elem-anchor"></a>
|
||
<h2>Java Specific<a href="#java-specific" class="anchor-link"><span></span></a></h2>
|
||
|
||
<a name="how-do-i-find-all-inheritors-of-a-class" class="elem-anchor"></a>
|
||
<h3>How do I find all inheritors of a class?<a href="#how-do-i-find-all-inheritors-of-a-class" class="anchor-link"><span></span></a></h3>
|
||
|
||
<p><code class="code highlight language-text">ClassInheritorsSearch.search()</code></p>
|
||
|
||
<a name="how-do-i-find-a-class-by-qualified-name" class="elem-anchor"></a>
|
||
<h3>How do I find a class by qualified name?<a href="#how-do-i-find-a-class-by-qualified-name" class="anchor-link"><span></span></a></h3>
|
||
|
||
<p><code class="code highlight language-text">JavaPsiFacade.findClass()</code></p>
|
||
|
||
<a name="how-do-i-find-a-class-by-short-name" class="elem-anchor"></a>
|
||
<h3>How do I find a class by short name?<a href="#how-do-i-find-a-class-by-short-name" class="anchor-link"><span></span></a></h3>
|
||
|
||
<p><code class="code highlight language-text">PsiShortNamesCache.getInstance().getClassesByName()</code></p>
|
||
|
||
<a name="how-do-i-find-a-superclass-of-a-java-class" class="elem-anchor"></a>
|
||
<h3>How do I find a superclass of a Java class?<a href="#how-do-i-find-a-superclass-of-a-java-class" class="anchor-link"><span></span></a></h3>
|
||
|
||
<p><code class="code highlight language-text">PsiClass.getSuperClass()</code></p>
|
||
|
||
<a name="how-do-i-get-a-reference-to-the-containing-package-of-a-java-class" class="elem-anchor"></a>
|
||
<h3>How do I get a reference to the containing package of a Java class?<a href="#how-do-i-get-a-reference-to-the-containing-package-of-a-java-class" class="anchor-link"><span></span></a></h3>
|
||
|
||
<pre><code class="code-block__wrapper code-block _highlighted lang_java"><span class="n">PsiJavaFile</span> <span class="n">javaFile</span> <span class="o">=</span> <span class="o">(</span><span class="n">PsiJavaFile</span><span class="o">)</span> <span class="n">psiClass</span><span class="o">.</span><span class="na">getContaningFile</span><span class="o">();</span>
|
||
<span class="n">PsiPackage</span> <span class="n">pkg</span> <span class="o">=</span> <span class="n">JavaPsiFacade</span><span class="o">.</span><span class="na">getInstance</span><span class="o">(</span><span class="n">project</span><span class="o">).</span><span class="na">findPackage</span><span class="o">(</span><span class="n">javaFile</span><span class="o">.</span><span class="na">getPackageName</span><span class="o">());</span>
|
||
</code></pre>
|
||
|
||
<a name="how-do-i-find-the-methods-overriding-a-specific-method" class="elem-anchor"></a>
|
||
<h3>How do I find the methods overriding a specific method?<a href="#how-do-i-find-the-methods-overriding-a-specific-method" class="anchor-link"><span></span></a></h3>
|
||
|
||
<p><code class="code highlight language-text">OverridingMethodsSearch.search()</code></p>
|
||
|
||
|
||
<div class="last-modified">
|
||
Last modified: 23 November 2015
|
||
</div>
|
||
</article>
|
||
|
||
<section class="disqus">
|
||
<div id="disqus_thread"></div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
</div>
|
||
|
||
|
||
<script data-main="/intellij/sdk/docs/app/js/main.build" data-baseurl="/intellij/sdk/docs/" src="/intellij/sdk/docs/app/js/vendor/requirejs/require.js"></script>
|
||
|
||
</body>
|
||
</html>
|
||
|