Skip to content

Releases: nmoroze/tclint

v0.7.0

21 Dec 22:35

Choose a tag to compare

This release makes a major change to the config file discovery mechanism. Configuration files are now discovered by walking up from source files, achieving two main goals:

  • Within a project tclint or tclfmt will discover the same configuration no matter what directory they're run from.
  • Different configurations can be applied to different directories by using separate config files.

The fileset configuration feature is removed by this release, since its functionality is subsumed by the second point.

See Config discovery for documentation of the new behavior.

v0.6.2

30 Nov 00:27

Choose a tag to compare

  • Add support for dynamic plugins specified as a Python file (docs)
  • Add mixed indentation style to tclfmt (uses tabs and spaces, matching Emacs default)
  • Add --partial flag to tclfmt to support partial formatting feature on CLI
  • Add support for using tclfmt as a pre-commit hook
  • Improve parsing/error messages for if statements
  • Improve argument checking for binary command
  • Fix overly aggressive argument count checking on foreach with {*}
  • Fix formatting of switch commands using - for continuation
  • Fix partial formatting of multiline strings
  • Fix handling of "static" arg expansion (e.g. {*}{1 2 3})

Thanks to @vries for the many contributions in this release!

v0.6.1

19 Sep 14:42
7221095

Choose a tag to compare

  • Fix spurious command-args violations when providing arguments beginning with - to builtin commands (thanks to a few folks for bug reports/discussion [1, 2], and @vries for submitting the fix!)
  • Improve error message for missing positional arguments (thanks to @JanikXcode)
  • Add support for using tclint as a pre-commit hook (thanks to @vries)

Thanks to @patrislav1 for laying the groundwork for go-to-definition functionality in the LSP!

v0.6.0

16 Jun 01:11

Choose a tag to compare

This release includes a major update to tclint's plugin system! You can now define a command spec by writing a JSON file according to a well-documented schema. This replaces a more complicated system that required writing custom Python code to create a plugin.

This release removes the built-in OpenROAD plugin and the tclint-plugins CLI utility.

Additional changes:

  • Add range/selection format support to tclsp
  • Update tclsp to honor the "exclude" config setting
  • Make tclsp handle nested workspace configurations consistently
  • Remove the ability to specify a path for the "ignore" config setting
  • Improve invalid config error messages
  • Fix bug that made the parser fail to recognize the hypot math function

v0.5.4

21 Mar 23:11

Choose a tag to compare

  • Update tclfmt to strip trailing whitespace from comments
  • Update tclsp to support reading configuration from user-supplied paths

v0.5.3

25 Feb 03:43

Choose a tag to compare

This release contains no changes to documented user-facing behavior. It reverts some changes to the plugin system that added a dependency incompatible with the VS Code extension's current approach to bundling Python dependencies.

v0.5.2

22 Feb 02:31

Choose a tag to compare

  • Fix bug that may cause language server formatting to duplicate lines at end of file
  • Change default max line length from 80 characters to 100

v0.5.1

19 Feb 03:20

Choose a tag to compare

This release fixes two parser issues:

  • Fix tclfmt crash when encountering an arg expansion pattern ({*}) followed by a semicolon or close bracket (thanks to @L2523)
  • Improve error message when trying to parse non-concrete values as lists (e.g. proc foo [list a b] { }) (thanks to @AlaoPrado)

This release is also the first to contain contributions from others 🥳 Thank you both for helping to improve tclint!

v0.5.0

19 Nov 02:58

Choose a tag to compare

This release has three major changes:

  • The project now includes a language server, tclsp!
    • This is an LSP-based language server that enables tclint editor integration supporting diagnostics and formatting. See the docs for more info.
  • Style checks have been removed from tclint.
    • This removes the --no-check-style flag and makes its behavior the default.
  • Support has been dropped for Python 3.8, which is now EOL.

Detailed user-facing changes

  • Installing the tclint PyPI package adds a tclsp binary to your path. There should be no need to run this directly; in most cases your editor will be configured to launch it for you.
  • No more style-specific rules. References to these must be removed from config files.
  • No more style.allow-aligned-sets config setting, since tclfmt doesn't respect it. This must be removed from config files.
  • All the style-related configuration flags have been removed from the tclint CLI.
  • The --no-check-style flag has been removed from the tclint CLI, its behavior is now the default.
  • The --show-categories flag has been removed from the tclint CLI. The category separation isn't meaningful now that style checks have been removed.
  • The reported positions of some violations have changed.

v0.4.2

08 Oct 02:44

Choose a tag to compare

This release fixes a handful of minor bugs.

  • Fix crash on expr or proc commands that have no arguments
  • Fix bug in handling of unintended exceptions in command argument handlers, they're now caught gracefully
  • Fix some missing syntax error handling in expressions (e.g. erroring out on an unbalanced closed paren)
  • Fix incorrect position recorded for a single-item list that isn't enclosed in braces or quotes