Skip to content

@cheshirekow cheshirekow released this Feb 10, 2020 · 0 commits to master since this release

The parser now performs token look-ahead when parsing a comment within
astatement. This allows it to determine whether a comment belongs to the
currentsemantic node or one higher up in the tree (previously it would
assign allcomments to the most recent semantic node). This should
prevent some unusualindentation of comments within deep statements.

Some cmake-lint crashes have been fixed and the test coverage has
increasedsignificantly. There are still some outstanding issues but it
should crash lessfrequently and with more helpful information.

Detailed documentation for configuration options is now
generatedautomatically, including default value, command line syntax,
and exampleconfiguration file entry.

Assets 5
Pre-release

@cheshirekow cheshirekow released this Jan 30, 2020

This is a pseudo-release used only to stage artifacts for the release
pipeline.Please do not rely on the artifacts contained in this release
as they changefrequently and are very likely to be broken.

Assets 5
Pre-release

@cheshirekow cheshirekow released this Jan 29, 2020

This is a pseudo-release used only to stage artifacts for the release
pipeline.Please do not rely on the artifacts contained in this release
as they changefrequently and are very likely to be broken.

Assets 5

@cheshirekow cheshirekow released this Jan 31, 2020 · 2 commits to master since this release

There is now an embeded a database of known variables and
properties.cmake-lint uses this database to implement checks on
assignment/use ofvariables that are likely to be typos of a builtin
variable name. There arealso two new configuration options vartags and
proptags that canbe used to affect how the parser and formatter treat
certain variables andproperties.

Line comments within a statement are now consumed the same as line
comments atblock-scope. This means that your multiline mid-statement
comments will bereflowed whereas they would previously have been left
alone.

The CI Build has gotten a little more complicated. Generated
documentationsources are no longer committed to the repository. Instead,
they are pushed toa separate staging repository from which the
read-the-docs pages are built.

Assets 4

@cheshirekow cheshirekow released this Jan 23, 2020 · 3 commits to master since this release

With this release, the specification format for custom commands has been updated to enable a number of new features. Positional argument groups now support "tags" which can be used to influence the formatting for some special cases. The format now also supports multiple positional argument groups. Lastly, there is a new experimental tool cmake-genparsers which can automatically generate parser specifications from your custom commands that use the standard cmake_parse_arguments.

There is a new configuration option max_rows_cmdline which applies only to shell commands and determines when a shell command should nest under it's keyword argument.

Assets 2

@cheshirekow cheshirekow released this Jan 16, 2020 · 4 commits to master since this release

The configuration datastructures have been overhauled and configuration options are now separated into different groupings based on which part of the processing pipeline they are relevent to. Legacy configuration files (without sections) are still supported, though they may be deprecated in the future. cmake-format can update your configuration file for you with the following command:

  cmake-format --config-file <your-config> --dump-config <your-format> \
    --no-help --no-default

There is a new configuration option explicit_trailing_pattern which can be used to define a particular character sequence used by comments that are explicitly matched as trailing comments of an argument or statement. See the docs for more information.

Configuration files can now include additional configuration files. This might help keep configurations organized if you are maintaining a database of custom command definitions.

Assets 2

@cheshirekow cheshirekow released this Dec 26, 2019 · 5 commits to master since this release

This is largely a maintenance release, implementing explicit parse logic for all cmake commands that don't already have parsers. One additional configuration option is added allowing cmake-lint to globally ignore specific lint ids.

Assets 2

@cheshirekow cheshirekow released this Dec 19, 2019 · 6 commits to master since this release

This release includes implementations for many more lint checkers. Under the hood there was a pretty significant refactor of the parser, though none of the parse logic has changed. The refactor was primarily to split up the very large parser module, and to make it easier to access qualifiers of the parse tree during lint checks.

You can see a running list of all the implemented checkers at the docs

Assets 2

@cheshirekow cheshirekow released this Dec 13, 2019 · 7 commits to master since this release

This release finally includes some progress on a long-standing goal: a cmake-linter built on the same foundation as the formatter. As of this release The cmake-format python package now comes with both the cmake-format and cmake-lint programs. The linter is still in a relatively early state and lacks many features, but should continue to grow with the formatter in future releases.

Along with the new linter, this release also includes some reorganization of the documentation in order to more clearly separate information about the different programs that are distributed from this repository.

Assets 2

@cheshirekow cheshirekow released this Dec 3, 2019 · 8 commits to master since this release

This is a maintenance release. Some additional command parsers have moved out of the standard parse model improving the parse of these commands. This release also includes some groundwork scripts to parse the usage strings in the cmake help text. Additionally:

  • --in-place will preserve file mode
  • The new --check command line option will not format the file, but exit with non-zero status if any changes would be made
  • The new --require-valid-layout option will exit with non-zero status if an admissible layout is not found.
Assets 2
You can’t perform that action at this time.