Skip to content

Desired features from fork? #78

Closed
Closed
@kangalio

Description

@kangalio

In a fork of this repository, I have implemented multiple dozens of changes and fixes. It would be cool to get a return back on the work put into this, so I'd be quite happy if some of that work was merged into this repo.

The current maintainers expressed that they are only willing to accept a PR with collective changes if I create a list of changes for them to pick from, so here it goes:

  1. Godbolt command (this one may already be going to be merged via Add Godbolt Command #77)
  2. Miri command
  3. Clippy command
  4. Macro expansion command
  5. Run rustfmt on macro expansion command output: Rust's raw macro expansion output is borderline unviewable due to its absolutely messed up formatting. Attempting to run rustfmt on its output makes the output so much nicer to look at
  6. Make fn main optional in ?play
  7. Remove ?playwarn; instead automatically showing stderr when it contains useful info
  8. Syntax highlighting for playground command responses
  9. Make ?eval dynamically behave like ?play when a user accidentally included fn main: this behavior is more streamlined for the user than having to switch commands
  10. Strip boilerplate output from playground commands (think Compiling playground, To learn more, run the command again with --verbose., etc.)
  11. Remove "compilation succeeded" message with a blank code segment
  12. Move crate-attributes in eval-like code to the correct place, instead of throwing a compilation error
  13. Correctly query crates.io: Previously, when you would do ?docs serde::something, the bot would search for a crate named serde::something - which will obviously produce garbage results
  14. Fix clippy lints
  15. Replace all useless instances of pub(crate) with pub
  16. Replace the heavy state machine argument parser with a more lightweight, easy to use and flexible argument parser
  17. Print a Discord reply when an error occurs during command execution
  18. Use &Args everywhere: previously, some places used Args while other used &Args. The inconsistency can trip you up
  19. Inline superfluous HOUR constant: it was only used in a single place, and the indirection caused by this constant were causing more reading difficulties than it solved
  20. Remove the distinction between SendSyncError and Error and replace all remaining instances of Box<dyn std::error::Error> with the designated type aliases
  21. Add ?cleanup command to delete lengthy bot output
  22. Broadcast typing animation on command execution: the Playground has relatively long response times, in the realm of 3+ seconds. By broadcasting the typing information, users get immediate feedback for commands, which is more pleasant and user-friendly

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions