This extension integrates the static analyzer Facebook Infer into IDEs and editors with the MagpieBridge framework.
InferIDE executes infer in the background and displays analysis results directly in IDEs which support the Language Server Protocol.
Currently, only analyzing Java Projects is supported.
Infer does not run natively on windows, but you can use docker
Docker
If Docker is installed and infer is not found on the system, InferIDE will use docker to start a container that has infer installed
By default, InferIDE will use the docker image jonasmanuel/inferdocker from dockerhub. It is built from the dockerfile in this repository
If you want to use your own image you can supply the image using the command line option -i
if the image is not yet installed on your system, docker will pull it on the first run
otherwise you can install it beforehand using docker pull jonasmanuel/inferdocker
Simply open a Java project and enjoy!
When is infer running?
These are two ways how infer can be triggered by InferIDE:
Fully automated (default): The default way is fully based on user interactions in the IDE. Infer will be triggered when the user opens a source file for the first time in a project. Moreover, InferIDE detects if the user is idle in the IDE (not typing for a given amout of time, e.g. 5 minutes) and triggers infer.
User-controlled: InferIDE displays a HTML page in your web browser which allows you configure commands for infer to run and a click button to trigger infer. Disable the setting auto will enable this mode.
Default build-in commands are :
Maven Project:
infer run --reactive -- mvn clean compile (first run)
infer run --reactive -- mvn compile
Gradle Project:
infer run --reactive -- ./gradlew clean build (first run)