- improve
find_package
formatting aroundREQUIRED
keyword (#20)
- support for different kinds of indentation, either specific number of spaces or tabs through
--indent
argument (examples:--indent=2
or--indent=tabs
) orindent
entry in.gersemirc
(examples:indent: 2
orindent: tabs
) (#15) - support for hints in custom command definition for specialized formatting, currently supported are
command_line
andpairs
- formatting of
install
command will now correctly recognize sections likeRUNTIME
,ARCHIVE
,FILE_SET
etc. (#19)
- inconsistent formatting of
add_library
(#17) - edge cases of comments present in
COMMAND
argument ofadd_custom_command
and similar commands - improve README and help about heuristic used in
favour-inlining
style (#18)
- support for new keywords in native commands and new commands available in CMake 3.29
- fix issue with comments in
COMMAND
argument ofadd_custom_command
(#16)
- Number of workers spawned for formatting multiple files can be changed with
-w/--workers
. By default it will be number of CPUs available in the system but limited to 60 for Windows machines due to this.
- configuration schema that can be used with yaml LSP server, see: JSON Schema and #12
- yaml header linking to configuration schema in configuration produced by
--default-config
- support for Python 3.12
- meaningless but syntactically valid
target_link_libraries
with just library name won't crash gersemi (#13)
- support for new keywords in native commands available in CMake 3.28
- warn about conflicting definitions for macros and functions, make usage of conflicting definitions consistent and deterministic (#11)
- allow PyYAML version 6 as a dependency
- support for new keywords in native commands available in CMake 3.27
- Support for alternative style that favours list expansion for multi-value arguments (keyworded or standalone) through
--list-expansion=favour-expansion
command line argument orlist_expansion: favour-expansion
entry in.gersemirc
. The explanation of the new style is available in the README. The original formatting style will be still the default one but it can be set explicitly through--list-expansion=favour-inlining
orlist_expansion: favour-inlining
.
- support for new keywords in native commands available in CMake 3.26
- support for block/endblock pair
- support for new keywords in native commands available in CMake 3.25
- support for new keywords in native commands available in CMake 3.24
- support for new keywords in native commands available in CMake 3.23
- support Python 3.10
- required version of lark has to be at least 1.0
- AST mismatch issue when reformatting unknown commands with comment inside arguments list
- specialized dumper for commands with multiple signatures like
file
no longer leaks keywords (#6)
- pre-commit hook
- support for new keywords in native commands available in CMake 3.22
- support for new keywords in native commands available in CMake 3.21
- relaxed lark version dependency
- support for new keywords in native commands available in CMake 3.20
- when input is provided through stdin
gersemi
will look for configuration file in current or any of the parent directories instead of only current directory
- on Python 3.6 sqlite related TypeError isn't raised anymore
- information about formatted files is cached so that subsequent runs can avoid processing already formatted files
- support for commands introduced between 3.16 and 3.19 releases of CMake
- minor change to how OUTPUT argument in file(GENERATE) is formatted
- minor performance improvements
- support for Python 3.6
- files are taken as input only once even if provided multiple times
- files are no longer overwritten if reformatting wouldn't lead to change of content
- removed dependency to
packaging
- some performance improvements
- relaxed dependency to lark so that 0.9 can be used as well
- loading configuration from
.gersemirc
but command line arguments still take precedence - colorized diffs with
--color
- comments no longer interfere in splitting arguments by keywords which led to undesired formatting (#1)
- line comments in unknown custom commands are preserved in their original form
- fail-safe for AST mismatch (between before and after reformatting) now properly reports file where the problem occured
- utilize multiple cores if avaiable through
multiprocessing
module - use
--quiet
to suppress non-error message on stderr - support for commands from
cmake-modules
section of CMake documentation - support formatting of custom commands without keyworded arguments
- custom command definitions can be marked now with
# gersemi: ignore
to suppress generating specialized formatter for these commands
- commands with
PROPERTIES
keyword such asset_directory_properties
now are formatted in uniform way as other commands with keyworded arguments
- idempotence of preserving formatting of unknown custom commands
- fixed condition syntax formatting edge-case with opening parenthesis indentation
- Missing value for one value keyword no longer leads to stopping formatting of remaining files in the batch
- custom commands formatting when definitions of these commands are provided with
--definitions
- preserving CRLF style of newlines if formatted file used that style
--version
- performance improvements
- bracket argument / bracket comment parsing bugfixes
- removed strict dependency to lark
0.8.0
, now anything from0.8
but below0.9
should work
- formatting of COMMAND keyworded arguments look better when wrapped to line (or multiple lines) instead of listing each constituent of command in separate line
- added missing CHANGELOG
- some basic parsing error reporting
- bracket argument candidate which was not closed with proper ending bracket was interpreted as unquoted argument instead of being treated as parsing error
- first release of
gersemi
which should do some nice formatting - using SemVer