Prolint

Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice
When you are interested Prolint, you are encouraged to subscribe to this group where you find the on-line tools to collaborate and discuss Prolint. There is a discussion forum, you can submit issues (for bugs and enhancement requests), you can modify the on-line documentation. So subscribe, and then don't forget to go to your subscription details to enable the e-mail notification!


clean up inactivated code

find large blocks of source that is inactivated by /* */. It is not obvious that code is inactivated when the opening and closing comment-symbols are far apart, like 10 lines or so, unless each line begins with an asterisk. Alternative: find (large) nested comments.


find "dead code"

find "dead code" : conditional code that cannot possibly run because the condition is never true. (probably impossible to realize)


check if every RECORD_NAME and Field_Ref are qualified

Requested by Jeff Pilant: check if every RECORD_NAME and Field_Ref are qualified with a db-alias and appears in file "validalias.txt". Particularly usefull for Syteline sources. Related request: create an Open Source version of a "validalias.txt" for Syteline.


UDF in WHERE-clause

UDF in WHERE-clause: UDF is evaluated before the FOR EACH begins, not on each record


Roundtable schema-update procedures

schupd: check Roundtable 'schema- update' procedures: these should have one input parameter (pathname) as character, must not include or run any external sourcefiles, and must disable triggers for every modified table.


Don't cast recid to integer or vice versa

Don't cast recid to integer or vice versa


transaction-distinct: don't start a remote transaction when you already have a local transaction

transaction-distinct: don't start a remote transaction when you already have a local transaction.


EXCLUSIVE-LOCK downgraded to SHARE-LOCK after transaction end

EXCLUSIVE-LOCK downgraded to SHARE-LOCK after transaction end


"IF AVAILABLE" missing after "FIND NO-ERROR"

"IF AVAILABLE" missing after "FIND NO-ERROR"


Prolint group

Thomas Mercer-Hursh, Ph.D. wrote:
> Curious that there are 60 people subscribed to Codeparse, but only 3 to Prolint.

Oh dear - I see that

"registration form: Should this group be available for subscription during registration?. If checked, a corresponding checkbox will be added to the registration form."

...was disabled for the Prolint group. I assume that was a mistake (not what Jurjen wanted) and I've enabled it.

If you would like to be subscribed to the Prolint group, please visit:
http://oehive.org/prolint
and click on the "subscribe" link found in the right-hand-side column.


Prolint/Eclipse

I've started work on a Prolint plug-in for Eclipse, but just written in Java, rather than ABL. Because it relies a lot on ProRefactor, I've just included my work so far in the ProRefactor SVN repository.

The Prolint/Eclipse page in the Prolint book is where you can find a bit more information and maybe a couple of pretty pictures. :)


Prolint/Eclipse Problems View

Prolint/Eclipse Problems View

Once Prolint problems have been found, problem markers are created in Eclipse. These markers can be sorted and filtered. Clicking on a marker in the Problems view opens an editor to the right line and highlights the problem code.


Prolint/Eclipse menu choices

Prolint/Eclipse menu choices

There are two simple menu items for Prolint: one to find problems, and the other to clear the problem markers. Any combination of files, folders, and projects can be selected for these.


Download Prolint

The following release files are zipped executables of a setup-program. The setup program is a Windows executable, but Prolint itself can run on any platform (uhm, sorry that's not true anymore: release 74 needs .NET in other words Windows).

Prolint is distributed under the terms of the LPGL license.

If you want to know what has changed, read the revision history.
If this is your first time download, please read the installation instructions.

Prolint for OpenEdge 10.2B (and up)


Prolint/Eclipse

John has started some initial work on a Java/Eclipse variant of Prolint. This variant of Prolint has the advantage of easy access to ProRefactor's output - especially its symbol tables and scoping information.

Questions about getting the original Prolint into Eclipse, and other "project direction" type questions, are completely unanswered. It's all very open for you to dive in, write some code, and help determine how best to make Prolint an integral part of working with 4GL/ABL in Eclipse and OpenEdge Architect.


#
Syndicate content