crytic / roundme

GNU Affero General Public License v3.0
88 stars 7 forks source link

Refactor everything in their respective modules #8

Closed tarunbhm closed 6 months ago

tarunbhm commented 7 months ago

Refactored the codebase to break it into components and modules. It will be better to look at the whole code instead of looking at the diff to make sense of the changes.

I have committed some test cases for now and will add more in the next PR or same PR.

Summary by CodeRabbit

Summary by CodeRabbit

coderabbitai[bot] commented 7 months ago

Walkthrough

The project went through a significant transformation to elevate its formula analysis tool, roundme. Notable updates include command renaming for clarity, the introduction of a structured CLI, enhancement of the analysis process with a new analyze function, and better configuration management. Moreover, the output generation now supports PDF format, and user interaction for formula configuration has been streamlined. These changes collectively aim to make roundme more user-friendly, adaptable, and robust.

Changes

Files Change Summary
.gitignore Updated to include new files and retain existing exclusions.
README.md Renamed commands for clarity in tool usage.
src/analyzer.rs, src/analyzer/analyze_rounding.rs Introduced analyze function and renamed config to FormulaConfig.
src/cli.rs, src/main.rs Added CLI functionality and refactored CLI handling using clap.
src/lib.rs Introduced new modules and exposed FormulaConfig.
src/parser.rs, src/parser/formula_config.rs, src/parser/input.rs, src/parser/yaml.rs Enhanced parsing and configuration management, including YAML support.
src/parser/arithmetic.lalrpop Updated import paths for certain structs.
src/printer.rs, src/printer/latex_generator.rs Added output generation functionality, including PDF format, and introduced a disclaimer message.

🐇✨ In the world of code, where logic does abound, A rabbit hopped in, with changes profound. Commands now clear, and structures refined, Analysis and prints, elegantly intertwined. With each leap and bound, improvements unfurled, A whimsical journey, through a digital world. 🎉🐾


Recent Review Details **Configuration used: CodeRabbit UI** **Review profile: CHILL**
Commits Files that changed from the base of the PR and between 5d751da1df20fb1f7cde0d91952e1b7ae8859145 and 3a6dc3062476bc7920b3d14f62aba468282371d6.
Files selected for processing (1) * README.md (1 hunks)
Additional Context Used
LanguageTool (12)
README.md (12)
Near line 1: Possible spelling mistake found. Context: # roundme `roundme` is a human-assisted rounding... --- Near line 3: This sentence does not start with an uppercase letter. Context: # roundme `roundme` is a human-assisted rounding analyzer. It ... --- Near line 14: Possible spelling mistake found. Context: ...ding(B)` (the rounding direction of the substracted element is inverse of the expected roun... --- Near line 23: Possible spelling mistake found. Context: ...xpected rounding) ## How to use - Run `roundme init-sample` to generate a default conf... --- Near line 24: Possible spelling mistake found. Context: ...te a default configuration file. - Run `roundme init` to generate user configuration fi... --- Near line 25: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. Context: ...to generate user configuration file. - Run `roundme analyze` to analyze the config... --- Near line 25: Possible spelling mistake found. Context: ...enerate user configuration file. - Run `roundme analyze` to analyze the configuration f... --- Near line 26: File types are normally capitalized. Context: ...to analyze the configuration file - Run `roundme analyze --output-format pdf` to generate a PDF (require [latexmk](h... --- Near line 26: Possible spelling mistake found. Context: ...format pdf` to generate a PDF (require [latexmk](https://mg.readthedocs.io/latexmk.html... --- Near line 28: File types are normally capitalized. Context: ....readthedocs.io/latexmk.html)) Running `roundme analyze --output-format pdf` on the default configuration will gene... --- Near line 40: Consider using either the past participle “analyzed” or the present participle “analyzing” here. Context: ... - `formula` contains the formula to be analyze - `round_up` determines if the result o... --- Near line 41: This verb may not be in the correct tense. Consider changing the tense to fit the context better. Context: ...nes if the result of the formula should round up or down - `less_than_one` is used fo...
Additional comments not posted (1)
README.md (1)
`23-26`: The command renaming enhances clarity and usability. Ensure all related documentation and scripts are updated to reflect these changes.
--- Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.