# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## unreleased
## 0.8.0 - 2024-08-16
### Added
- Now you can use `#[command(command_separator="sep")]` (default is a whitespace character) to set the separator between command and its arguments ([issue #897](https://github.com/teloxide/teloxide/issues/897))
- Now you can use `/// doc comment` for the command help message ([PR #861](https://github.com/teloxide/teloxide/pull/861)).
- Now you can use `#[command(hide)]` to hide a command from the help message ([PR #862](https://github.com/teloxide/teloxide/pull/862))
- `#[command(alias = "...")]` and `#[command(aliases = "...")]` to specify command aliases ([PR #937](https://github.com/teloxide/teloxide/pull/937))
- `#[command(hide_aliases)]` to hide aliases from the help message ([PR #937](https://github.com/teloxide/teloxide/pull/937))
### Fixed
- Fix `split` parser for tuple variants with len < 2 ([issue #834](https://github.com/teloxide/teloxide/issues/834))
### Changed
- MSRV (Minimal Supported Rust Version) was bumped from `1.64.0` to `1.68.0` ([PR 950][https://github.com/teloxide/teloxide/pull/950])
### Deprecated
- `off` in `#[command(description = "off")]` is deprecated in favour of `#[command(hide)]`
## 0.7.1 - 2023-01-17
### Fixed
- Use fully qualified names in macros
## 0.7.0 - 2022-10-06
### Removed
- `derive(DialogueState)` macro
### Changed
- `#[command(rename = "...")]` now always renames to `"..."`; to rename multiple commands using the same pattern, use `#[command(rename_rule = "snake_case")]` and the like.
- `#[command(parse_with = ...)]` now requires a path, instead of a string, when specifying custom parsers.
### Fixed
- `#[derive(BotCommands)]` even if the trait is not imported ([issue #717](https://github.com/teloxide/teloxide/issues/717)).
## 0.6.3 - 2022-07-19
### Fixed
- Allow specifying a path to a command handler in `parse_with` ([PR #27](https://github.com/teloxide/teloxide-macros/pull/27)).
## 0.6.2 - 2022-05-27
### Fixed
- Fix `#[command(rename = "...")]` for custom command names ([issue 633](https://github.com/teloxide/teloxide/issues/633)).
## 0.6.1 - 2022-04-26
### Fixed
- Fix `#[derive(DialogueState)]` (function return type `dptree::Handler`).
## 0.6.0 - 2022-04-09
### Removed
- Support for the old dispatching: `#[teloxide(subtransition)]` [**BC**].
### Deprecated
- `#[derive(DialogueState)]` in favour of `teloxide::handler!`.
## 0.5.1 - 2022-03-23
### Fixed
- Make bot name check case-insensitive ([PR #16](https://github.com/teloxide/teloxide-macros/pull/16)).
### Added
- More command rename rules: `UPPERCASE`, `PascalCase`, `camelCase`, `snake_case`, `SCREAMING_SNAKE_CASE`, `kebab-case`, and `SCREAMING-KEBAB-CASE` ([PR #18](https://github.com/teloxide/teloxide-macros/pull/18)).
## 0.5.0 - 2022-02-05
### Added
- The `BotCommand::bot_commands()` method that returns `Vec<BotCommand>` ([PR #13](https://github.com/teloxide/teloxide-macros/pull/13)).
- `#[derive(DialogueState)]`, `#[handler_out(...)]`, `#[handler(...)]`.
## 0.4.1 - 2021-07-11
### Fixed
- Fix generics support for a variant's arguments ([PR #8](https://github.com/teloxide/teloxide-macros/issues/8)).
## 0.4.0 - 2021-03-19
### Changed
- Adjust dialogues with the latest teloxide (v0.4.0).
## 0.3.2 - 2020-07-27
### Added
- `#[derive(Transition)]` with `#[teloxide(subtransition)]`.
### Removed
- The `dev` branch.
## 0.3.1 - 2020-07-04
### Added
- Now you can remove command from showing in descriptions by defining `description` attribute as `"off"`.
## 0.3.0 - 2020-07-03
### Changed
- The description in `Cargo.toml` was changed to from "The teloxide's macros for internal usage" to "The teloxide's procedural macros".
- Now parsing of arguments happens using special function. There are 3 possible variants:
- Using `default` parser, which only put all text in one String field.
- Using `split` parser, which split all text by `separator` (by default is whitespace) and then use FromStr::from_str to construct value.
- Using custom separator.
- Now function `parse` return Result<T, ParseError> instead of Option<T>.
### Added
- This `CHANGELOG.md`.
- `.gitignore`.
- `#[parse_with]` attribute.
- `#[separator='%sep%']` attribute.
## 0.2.1 - 2020-02-25
### Changed
- The description in `Cargo.toml` was changed to from "The teloxide's macros for internal usage" to "The teloxide's procedural macros".
### Added
- This `CHANGELOG.md`.
- `.gitignore`.
- The functionality to parse commands only with a correct bot's name (breaks backwards compatibility).
## 0.1.2 - 2020-02-24
### Changed
- The same as v0.1.1, but fixes [the issue](https://github.com/teloxide/teloxide/issues/176) about backwards compatibility.
## 0.2.0 - YANKED
### Changed
- Fixes [the issue](https://github.com/teloxide/teloxide/issues/176) about backwards compatibility, but fairly soon I realised that semver recommends to use v0.1.2 instead.
## 0.1.1 - 2020-02-23
### Added
- The `LICENSE` file.
### Changed
- Backwards compatibility is broken and was fixed in v0.1.2.
## 0.1.0 - 2020-02-19
### Added
- This project.