What's New in Cleanscape FortranLint GUI

Version 7.65  Last update: 4-Sep-23

 

Three project analysis settings are available:

a)  Check Filelist Integrity can eliminate scores of false positives due to missing modules or include files. It also checks for Fortran statements out of order (e.g., declarations in the wrong place) and will report if 132-column source is detected.

b)  Check Missing Procedures reports missing functions or subroutines. This can mean additional files need to be added to the project filelist, or that it would be beneficial to create “stubs” for procedures for which there is no source code (e.g., library routines).

c)  Filter Project Results can dramatically reduce the amount of output on large projects, allowing the user to focus on just one or a few files of interest, rather than the results for the entire program. In very large test cases, the total number of report lines is reduced by >99%!

 

 

 

 

 

 

 

 

Procedure Assessments      

a)  In the Statistics report, list each procedure name, line count, parameter count, and cyclomatic complexity v(G). These results may be sorted and are hyperlinked in the Statistics report. An example is shown on the next page

b)  In addition, informational message 909 will be emitted if v(G), line count, or parameter count exceed the maximum specified on this tab.

 

 

 

 

 

 

 

 

 

 

 

Magic Comments 

a)    Processes magic comments inside source code. Presently supports only Omit (-O) to suppress a Flint message on the following sourceline.

b)    Notification of magic comment use is provided in both the Analysis and Statistics reports.

 

 

 

 

 

 

 

 

 

 

Snapshot Window

The Snapshot is a results summary window open to the right of the main GUI window. A new row is added every time an analysis is run in the current GUI session. Each row’s background is color-coded, as is shown in this image:

·         Red: errors were detected during the run

·         Orange: warnings were detected during the run

·         Yellow: FYIs were detected during the run

·         Green: No messages produced during the run

A trend arrow for each level of severity indicates an increase, decrease, or no change in the quantity of errors, warnings, or FYIs between the current and last analysis run.

In this example, Flint has been run 6 times. The last (sixth) row has a green background, as the run was clear of any errors, warnings, or informational messages. Runs 1-5 contained errors (note the “Errs” count in column 1) and as a result, each such row in the Snapshot is red. (There are no arrows in row 1: being the first run, there are no trends yet.)

 


 

 

 

 

NEW Hover Text in Call tree

A user request! When you hover the mouse over a procedure name in the call tree, the argument list is displayed, along with the type of each argument, and how the argument is used (set/referenced and optional).

Hover text (like the GUI itself) is meant to go hand in glove with the external editor. To see the names of the arguments, or any comments surrounding the routine definition, simply left mouse click on the routine name in the call tree and have that routine presented in your code editor, which is the best view for any user. Now you can view the source code, symbol names, and comments while simultaneously having post-analysis, actual usage info for each symbol in the hover text.

 

 

 

 

 

 

Sample reports

 

Analysis. Note Magic Comment message and Message #909 informing the user that the routine has exceeded the specified v(G) max:

 

 


 

Cross-reference (xref). Click on any number in red to jump to the corresponding file/ line number in your favorite code editor. The letter(s) after the line number are usage information (Set, Referenced, etc.):

 


 

Call tree. Click on any procedure name in red to jump to the entry point of that procedure in your favorite code editor:

 

 

 

Include tree. Click on any file name in red to open that file in your favorite code editor:

increp.jpg

 


 

   An external tool, seteditor, has been added to your Cleanscape program’s ‘bin’ subdirectory.  Instead of having to request adding an editor via Cleanscape, simply double-click the program and follow the instructions for the three popups.  In Unix/Linux, the setup is command-line interactive.  Restart the Cleanscape GUI, and your editor will be in the dropdown list on the Reports tab!  Newly added editors are stored in file myeditor.lst in $HOME (Unix) or C++lint’s ‘main’ subdirectory (Windows).

 

seted2,seted3
seted1
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


   Editors supported out of the box:

    Windows: Atom, Crimson Editor, Emacs, Epsilon Programmer’s Editor, GVim, Notepad++, Slickedit, Sublime, UltraEdit, Visual Studio, Visual Studio Code

    Unix/Linux: Atom, Emacs, Joe, Nano, Slickedit, Sublime, Ultraedit, Vi, Vim,
Visual Studio Code

 

 

 

   Right-click on any filename in the Project window and the file will open in the previously selected External Editor.  Also, a tooltip balloon provides the full filename; if the filename doesn't fit the window, the last 40 or so characters are shown and an ellipsis starts the filename.

                   projwin

 

recproj

   A "template" project file containing the settings - but not the filenames – of the GUI session is automatically saved upon exit, then loaded at next GUI start if neither project filename nor -blank are specified.

 

   A list of up to 9 recent projects is retained and may be loaded from File - Recent Projects.         

 

   If no .csi file is specified at startup, Flint loads the "template project" described earlier.  To prevent the template from loading, add -blank to the startup.

 

   Users can now specify font preferences via the flint.ini file located in the ‘main’ subdirectory ($HOME if Unix/Linux).
NOTE: file flint.ini has been updated in version 7.0 and will overwrite any existing version.  On Unix/Linux, the user’s local copy in $HOME is backed up first to flint.ini.orig; on Windows, the installer warns you before overwriting so you can back up beforehand.

 

   Online help updated to capture these changes.

 

   Seamonkey has been added to the list of browsers searched for if running on *nix.

 

   A number of bug fixes, cleanups, and control enhancements.