chore(lsprotocol): migrate to 2025.0.0 and cleanup artifacts
The changes align the project with the 2025.0.0 lsprotocol release, removing the old backport and updating type hints in the protocol hooks to use Sequence where appropriate. The dist-info and packaging metadata for older lsprotocol versions are replaced with the new 2025.0.0 artifacts. - Remove exceptiongroup backport used on Python <3.11 - Use Sequence instead of List in LS protocol hooks - Replace old dist-info with 2025.0.0 metadata
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
Metadata-Version: 2.4
|
||||
Name: tclint
|
||||
Version: 0.9.0
|
||||
Summary: A CLI utility for linting and analyzing Tcl code.
|
||||
Author-email: Noah Moroze <me@noahmoroze.com>
|
||||
License: MIT License
|
||||
Requires-Python: >=3.10
|
||||
Description-Content-Type: text/markdown
|
||||
License-File: LICENSE
|
||||
Requires-Dist: ply==3.11
|
||||
Requires-Dist: tomli~=2.0.1; python_version < "3.11"
|
||||
Requires-Dist: pathspec==0.11.2
|
||||
Requires-Dist: importlib-metadata==6.8.0
|
||||
Requires-Dist: pygls==1.3.1
|
||||
Requires-Dist: voluptuous==0.15.2
|
||||
Dynamic: license-file
|
||||
|
||||
# tclint [](https://github.com/nmoroze/tclint/actions/workflows/ci.yml)
|
||||
|
||||
`tclint` is a collection of modern dev tools for Tcl. It includes a linter, a formatter, and a language server that provides Tcl support to your editor of choice.
|
||||
|
||||
### Features
|
||||
|
||||
- [Editor integration][lsp] for VS Code, Neovim, and Emacs
|
||||
- [Linting][violations] for common Tcl errors
|
||||
- [Formatter][tclfmt] that enforces a consistent, readable style
|
||||
- [Plugin system](docs/plugins.md) that supports Tcl variants
|
||||
- [More features][features] coming soon!
|
||||
|
||||
## Getting Started
|
||||
|
||||
Install `tclint` from PyPI using [`pipx`](https://pypa.github.io/pipx/) (recommended):
|
||||
|
||||
```sh
|
||||
pipx install tclint
|
||||
```
|
||||
|
||||
Or with `pip`:
|
||||
|
||||
```sh
|
||||
pip install tclint
|
||||
```
|
||||
|
||||
Run `tclint` on a Tcl source file by providing its path as a positional argument:
|
||||
|
||||
```sh
|
||||
tclint example.tcl
|
||||
```
|
||||
|
||||
If the file contains any lint violations, they will be printed and `tclint` will return a non-zero exit code. Otherwise, the output will be empty and `tclint` will exit successfully.
|
||||
|
||||
### Example
|
||||
|
||||
```console
|
||||
$ cat example.tcl
|
||||
if { [expr {$input > 10}] } {
|
||||
puts $input is greater than 10!
|
||||
}
|
||||
$ tclint example.tcl
|
||||
data/example.tcl:1:6: unnecessary command substitution within expression [redundant-expr]
|
||||
data/example.tcl:2:3: too many args for puts: got 5, expected no more than 3 [command-args]
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
`tclint` is a command-line utility. It takes a list of paths as positional arguments, which may either be direct paths to source files, or directories which will be recursively searched for files ending in `.tcl`, `.sdc`, `.xdc`, or `.upf`.
|
||||
|
||||
Collected files will be checked for lint violations. See the
|
||||
[Violations](docs/violations.md) documentation page for a description of all
|
||||
lint violations `tclint` may report.
|
||||
|
||||
Aspects of `tclint`'s behavior can be controlled by a configuration file.
|
||||
By default, `tclint` will search for a file named `tclint.toml` or `.tclint` by walking the parent directories of source files, but a path to an alternate configuration file can be provided using the `-c` or `--config` flag.
|
||||
See [Configuration](docs/configuration.md) for documentation on the configuration file.
|
||||
|
||||
`tclint` includes a plugin system for checking EDA tool-specific commands. See the [Plugins](docs/plugins.md) documentation page for more info.
|
||||
|
||||
## Contributing
|
||||
|
||||
`tclint` welcomes community contributions. The best way to help the project is to [open an issue](https://github.com/nmoroze/tclint/issues/new) if you find a bug or have a feature request.
|
||||
|
||||
PRs are also welcome, but for non-trivial changes please open an issue first to solicit feedback. This helps avoid wasted effort.
|
||||
|
||||
Use the following steps to set up `tclint` for local development:
|
||||
|
||||
```sh
|
||||
$ git clone https://github.com/nmoroze/tclint.git # or URL to fork
|
||||
$ cd tclint
|
||||
$ python3 -m venv .venv # set up a venv to ensure clean environment
|
||||
$ source .venv/bin/activate
|
||||
(venv) $ pip install --upgrade pip # development requires pip >= 25.1
|
||||
(venv) $ pip install -e . --group dev
|
||||
```
|
||||
|
||||
Please format, lint, and run tests before submitting changes:
|
||||
|
||||
```sh
|
||||
$ source .venv/bin/activate
|
||||
(venv) $ black .
|
||||
(venv) $ ./util/pre-commit
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project is copyright Noah Moroze, released under the [MIT license](LICENSE).
|
||||
|
||||
[vscode]: https://marketplace.visualstudio.com/items?itemName=nmoroze.tclint
|
||||
[violations]: docs/violations.md
|
||||
[lsp]: docs/lsp.md
|
||||
[tclfmt]: docs/tclfmt.md
|
||||
[features]: https://github.com/nmoroze/tclint/issues/91
|
||||
Reference in New Issue
Block a user