Use DeepCode in your JetBrains IDE


If you want to learn more on how to install the plugin, see this article.


 


TABLE OF CONTENTS


Getting Started

When you open a new project folder, you are asked if you want this project to be included in the scan.


Confirm remote analysis of DeepCode Screen

If you accept, DeepCode will bundle the sources, analyze them, and show you the result. A summary, you can see in the status bar entry on the footer of the workspace. The status bar entry shows also how many errors, warnings and info suggestions have been found.


Summary of DeepCode's Static Code Analysis in IntelliJ status bar



Note: DeepCode will update the scan results whenever you change the file content.



Tool Window

You can open the DeepCode Tool Window by either clicking on the Statusbar entry or by View, Tool Windows, DeepCode.


DeepCode Tool Window in IntelliJ IDE

 

The tool window shows the overview of the suggestions in a treeview over the files. You can see how many issues were found overall, in how many files, and drill down into each file and finally each suggestion. The toolbar on the outmost left provides the following options (Note: If you cannot see the toolbar, make sure it is enabled in the menu accessible via the wheel icon):


  • Navigate with Single Click Enables to load the source file in the editor when clicked on the suggestion
  • Expand All / Collapse All Expands or collapses the tree of files and suggestions
  • Preview Opens a preview pane on the right to show you the context of the suggestion in the source file
  • DeepCode Settings Opens the settings window for the DeepCode plugin
  • Open Result in Web Browser Loads the DeepCode dashboard with the results of the analysis. Note: This provides additional resources and example fixes. Use it when the suggestion is not clear right away.
  • Rescan Triggers a fresh analyze run of this project

 

Ignore suggestions

In the editor, DeepCode decorates the code elements where it found a suggestion.


Ignore suggestion in editor decoration in intelliJ IDE

 

You find two functions in the context menu that you can reach by either hovering over the suggestion or by clicking on the yellow light bulb symbol.


  • Ignore this particualar suggestion Adds a comment above the source code element that will disable the check for this particular suggestion. You can add your own comment to it to tell your fellow developers why you disabled this check.
  • Ignore this suggestion in current file Adds a comment above the source code element that will disable the check for this suggestion for the whole file. You can add your own comment to it to tell your fellow developers why you disabled this check.

The disabling functions are interesting if you want to flag testing code. DeepCode has heuristics to seperate testing and production code but this gives you the flexibility to flag your intent.


 

Ignore files or folders

If you want to ignore certain files/folders (like node_modules for example), create a .dcignore file. You can create it in any folder on any level starting from the directory where your project resides. The file syntax is identical to .gitignore. See also DeepCode Documentation on .dcignore.


 

Settings

In Settings, you can find DeepCode Settings.

 

DeepCode Settings in intelliJ IDE

  • Enable DeepCode plugin Enable or disable plugin
  • DeepCode Server instance URL Default is the address of the cloud-based DeepCode service. If you run an on-premise server, you can redirect the plugin by using the URL of your internal server
  • TokenId After accepting the general terms and signing up, the access token is saved here. By deleting it, you can force DeepCode to re-authenticate.
  • Min Severity level to show What kinds of suggestions shall be shown. Default is all (Info, Warning, and Errors).
  • Add Linters analysis Include Linters into the analysis process. Note: This might lead to a significant delay as Linters are much slower than the DeepCode Engine.


In case you need to contact us or you want to provide feedback, we love to hear from you - here is how to get in touch with us.