Open Issues Need Help
View All on GitHubAI Summary: The task involves expanding the CLI tool 'uncomment' to support additional programming languages (Swift, PHP, Kotlin, Shell/Bash, Lua, Scala, Haskell, Elixir, Clojure, and Zig). This requires adding tree-sitter language bindings, registering them in the tool's language registry, defining comment node types and preservation patterns for each language, and adding comprehensive test cases. Each language should be implemented as a separate pull request.
AI Summary: Create an npm package for the `uncomment` CLI tool, enabling installation via npm, yarn, or pnpm. This involves creating the package structure, writing a script to download the correct pre-built binary based on the user's operating system and architecture, handling binary permissions, implementing error handling, and potentially adding TypeScript definitions and publishing to the npm registry.
AI Summary: Implement a CI/CD pipeline using GitHub Actions for the `uncomment` Rust CLI project. This involves creating two workflows: a CI workflow for testing, linting, and formatting, and a release workflow for building binaries on multiple platforms (macOS x64, macOS ARM64, Linux x64, Linux ARM64, Windows x64), creating GitHub releases with binaries and checksums, and potentially generating a changelog.
AI Summary: Create a Python pip package for the `uncomment` CLI tool, enabling installation via `pip install uncomment`. This involves creating a package structure, implementing binary download logic based on the operating system, developing a Python wrapper for programmatic use, handling platform-specific wheel building, writing tests, publishing to PyPI, and documenting the Python API. A bonus task is to explore a pure Python implementation using tree-sitter's Python bindings.
AI Summary: Implement a comprehensive benchmark suite using criterion.rs and expand integration tests to verify the performance and correctness of a CLI tool that removes comments from code, testing across various file sizes, languages, and real-world open-source projects. This includes setting up the benchmarking framework, creating benchmark fixtures, implementing benchmarks for each supported language, adding benchmark comparisons, creating an integration test harness, and adding tests against real repositories.
AI Summary: Implement TOML configuration file support for the `uncomment` CLI tool, allowing users to customize comment removal behavior on a per-project basis. This involves adding TOML parsing, configuration file discovery, merging configurations with CLI arguments, validation, and an initialization command, along with updating language processors and writing tests.