Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Removed

  • The feature ReadabilityElseAfterReturn:Else has been removed because inverting the logic of the condition produces an unexpected result if the condition results in NaN. In Igor Pro, NaN is evaluated as false and !NaN is also evaluated as false. Therefore, we cannot provide a simple and generally valid fix.

0.8 - 2025-03-14

Added

  • add installer for Windows

  • Windows binary, installer and uninstaller now have a code sign certificate

  • add linting rules CodyStyleFallthroughCaseRequireComment, CodeStyleNoFixme, ReadabilityElseAfterReturn, ReadabilityOneLineVariableInitialization. More information can be found in the respective section.

  • allow to include/exclude rule feature on the cli

  • allow to use // NOLINT(rulename) in code to exclude specific rules

  • add // IPT_NORETURN code tag to calls that never return

  • add winget as an install option for Windows

  • add support to list all features of a specified rule using ipt lint --list ruleName or ipt analyze --list ruleName

  • document limitation on recursive evaluations of linting rules

Fixed

  • fix bug in linting rule BugproneReservedKeywordsAsIdentifier which reported the following line as an error but it isn’t one

    Make/O dfr:$wvName/WAVE=wv
    
  • fixed spelling in license expiration warning message

  • fixed spelling mistake in user documentation

Changed

  • The output of ipt lint --help and ipt analyze --help is now cleaner and doesn’t list all supported rule names. Use ipt lint --list or ipt analyze --list for that.

  • Reworked how the AST is internally handled. It is now much easier to extend the AST or add new functions. There should be no difference in the output. If you find one, feel free to report it.

  • The output of --print-ast is now more descriptive and contain more information.

  • Reworked how we reintroduce manual line continuations. There should be no difference in the output. If you find one, feel free to report it.

  • The version number that is reported using ipt --version does now show the correct version format.

0.7 - 2025-01-31

Added

  • new command ipt analyze for applying specific analysis rules

  • add linting rules ReadabilityMissingParenthesis, BugproneLoopInitializationAssignment, CodeStyleDefaultPragmas, BugproneContradictingOverrideAndFreeFlag, BugproneReservedKeywordsAsIdentifier, CodeStyleEndIfComment, BugproneMissingSwitchDefaultCase. More information can be found in the respective section.

  • add ability to include or exclude certain rules in ipt lint and ipt analyze

  • add changelog to user documentation

  • add documentation of limitation “Merge of operation flag value with first operation argument”

  • add documentation about severity in the ipt lint section

  • add icon for executable and website

Fixed

  • fixed linting rule FixOldStyleFunctionArgument. It does no longer convert a function signature if one of its arguments have documentation attached.

  • fixed some spelling and wording mistakes in the documentation

  • fixed internal AST

  • fixed internal AST matcher

Changed

  • ipt lint warnings are now handled as errors in terms of exit status code