blob: 9ad86d510eba72dc6a6c89bf8422715793ce5a5f [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
<head>
<title>Importing and debugging in IntelliJ IDE</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"/>
<script type="text/javascript" src="js/anchors.js"/>
<script type="text/javascript" src="js/google-analytics.js"/>
<link rel="icon" href="images/favicon.png" type="image/x-icon" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/ico" />
</head>
<body>
<section name="Content">
<macro name="toc">
<param name="fromDepth" value="1"/>
<param name="toDepth" value="1"/>
</macro>
</section>
<section name="Import Checkstyle Project">
<p>
If no project is currently open in IntelliJ IDEA, click Import Project on the
Welcome screen. Otherwise, select File > New > Project from Existing Sources<br/><br/>
<img alt="screenshot" src="images/gui_screenshot_importing_idea.png"/>
<br/><br/>
<img alt="screenshot" src="images/gui_screenshot_importing_idea1.png"/>
<br/><br/>
Then Next > Next > ... Until Finish.
</p>
<p>
Generate sources that a required by checkstyle
by right click over pom.xml file and click on menu "Maven / Generate Sources and Update Folders"
<img alt="screenshot" src="images/gui_screenshot_idea_generate_sources.png"/>
<br/><br/>
</p>
</section>
<section name="Debug">
<p>
Open the Check's source file by double click on it in a source tree as is shown:<br/><br/>
<img alt="screenshot" src="images/gui_screenshot_select_check_idea.png"/>
<br/><br/>
Debug the Check by putting the breakpoint at controversial place (double-click)
on the left part of line number as it is shown:<br/><br/>
<img alt="screenshot" src="images/gui_screenshot_debug_idea.png"/>
<br/><br/>
Then right-click the corresponding Unit-test file or class definition > Debug
&quot;testName&quot;<br/><br/>
<img alt="screenshot" src="images/gui_screenshot_ut_select_idea.png"/>
<br/><br/>
Then manage you debug operations F8 (Step Over), Shift+F8 (Step Out),
F7 (Step Into), Alt+F9 (Run to Cursor)
</p>
</section>
<section name="Organize Imports">
<p>
One of the Checkstyle checks we run on our own code require certain order of import
statements. Few changes in IDE settings are required to help your IDE do it automatically.<br/>
To change formatter settings please go to File->Settings in menu.<br/>
Then in the tree go to: Editor->Code Style->Java, open Import tab (follow numbers on a
picture) and apply settings highlighted:<br/><br/>
<img alt="Organize Imports settings in IDEA" src="images/gui_screenshot_organize_imports_idea.jpg"/>
<br/>
</p>
</section>
<section name="Inspections">
<p>
Checkstyle has its own very strict set of inspections. To import and enable them go to
Settings -> Editor -> Inspections -> Manage -> Import... and locate file
<code>config/intellij-idea-inspections.xml</code>.<br/><br/>
<img alt="Inspections in IntelliJ IDEA" src="images/gui_screenshot_inspections_idea.png"/>
<br/><br/>
Not all files in repository should be analyzed. For example test input files contain numerous
violations on purpose. Our shared inspection scope can be used to exclude such files.<br/>
To add custom scope copy file <code>config/intellij-idea-inspection-scope.xml</code>
to <code>.idea/scopes</code> directory.
Command from root of repo is
<code>mkdir -p .idea/scopes; cp config/intellij-idea-inspection-scope.xml .idea/scopes/</code><br/>
Now it should be ready to use in inspect code window:<br/><br/>
<img alt="Scope for inspections" src="images/gui_screenshot_scope_idea.png"/>
</p>
</section>
<section name="Disable Auto Indent On Paste">
<p>
IDEA has it's own rules of indentation when pasting code and it applies these rules to
all the lines of the copied code. This may result in wrong formatting of code in many
checkstyle files. A simple solution to this problem is by using the key combinations
<code>Ctrl + Shift + Alt + V</code> or <code>Edit | Paste Simple</code>. However it is
recommended that this settings be changed by default as shown below
<img alt="Disable Auto Indent on Paste" src="images/gui_screenshot_disable_indent_paste_idea.png"/>
</p>
</section>
</body>
</document>