Home

Awesome

i-Code logo

Java CI SonarQube Quality Gate SonarQube Bugs SonarQube Coverage SonarQube Technical Debt

i-Code CNES is a static code analysis tool to help developers write code compliant with CNES coding rules for Fortran 77 and Fortran 90 .

All the information on CNES standards coverage, and rules availabilities and limitations can be read in the documentation.

Quick start

i-Code products

i-Code Core

This is the core library containing all i-Code utilities for code analysis.

i-Code Library

This is the full library containing all official checkers. It includes i-Code Core.

i-Code App or i-Code CLI

This is the common command line application for i-Code.

i-Code IDE

This is the common GUI application for i-Code.

i-Code plugin for Eclipse

The Eclipse plugin for i-Code allows to use i-Code from Eclipse IDE.

i-Code plugin for SonarQube

The SonarQube plugin for i-Code allows to use i-Code through SonarQube analysis. Please refer to sonar-icode-cnes-plugin for more details.

Installation

i-Code CLI

Just unzip the corresponding archive.

i-Code IDE

Just unzip the corresponding archive.

i-Code plugin for Eclipse

Refer to Eclipse documentation to know how to install a standard Eclipse plugin.

i-Code plugin for SonarQube

Refer to SonarQube documentation to know how to install a standard SonarQube plugin.

Get help

Use icode -h to get the following help about i-Code:

usage: icode [<FILE> [...]] [-c <arg>] [-e] [-f <arg>] [-h] [-l] [-o <arg>] [-p <arg>] [-q <arg>] [-r] [-v] [-x <arg>]
Analyze F77 & F90 code to find defects & bugs.

 -c,--checked-languages <arg>        Comma separated list of languages checked during analysis. All by default.
 -e,--exporters                      Display all available exporters.
 -f,--export-format <arg>            Set the format for result file. Default format is XML.
 -h,--help                           Display this message.
 -l,--languages                      Display all available languages.
 -o,--output <arg>                   Set the name for result file. Results are displayed in standard output by default.
 -p,--export-parameters <arg>        Comma separated list of parameters for the export. Format is:
                                     key1=value1,key2=value2,key3=value3. Default values depend on the chosen export plugin.
 -q,--list-export-parameters <arg>   Display all available parameters for the given export.
 -r,--rules                          Display all available rules.
 -v,--version                        Display version information.
 -x,--excluded-rules <arg>           Comma separated list of rules id to exclude from analysis. None by default.


Please report issues at https://github.com/cnescatlab/i-CodeCNES/issues

Build

You can easily rebuild all i-Code products with Maven:

git clone https://github.com/cnescatlab/i-CodeCNES icode
cd ./icode/
mvn clean install

Extending i-Code with your own plugin

If you need to add some new feature, the easiest way is to implment your own plugin by forking icode-custom-plugin-example and its dedicated Developer Guide.

Changelog

Release 5.0.0

Release 4.1.2

Fixed bugs

Release 4.1.1

Fixed bugs

Release 4.1.0

New features
Fixed bugs

Release 4.0.0

New features

Release 3.1.0

New features
Fixes

Release 3.0.1

Release 3.0.0

New features
Bug fixes & enhancements

Minor fixes and other enhancements : milestone 3.0.0.

Previous Releases

Feedback and Support

Bugs and feature requests: https://github.com/cnescatlab/i-CodeCNES/issues

How to contribute

If you experienced a problem with the plugin please open an issue. Inside this issue please explain us how to reproduce this issue and paste the log.

If you want to do a PR, please put inside of it the reason of this pull request. If this pull request fix an issue please insert the number of the issue or explain inside of the PR how to reproduce this issue.

License

Copyright 2022 CATLab.

This software is licensed under the terms in the file named "LICENSE" in this directory.

The software used Java files, generated with JFlex (http://.jflex.de). The terms of this library license are available here after : http://jflex.de/copying.html