-
-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
featureNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed
Description
Json2Sharp currently supports 2 languages, C# and Python. I'd like to add support to more languages, but I lack the time to do so.
The project is structured in a way that allows new languages to be easily implemented. If you're interested in contributing, here is how you can do so:
- Fork this repository, clone it into your machine, and create a new branch.
- Notice there are 3 .NET projects:
- Json2SharpApp: This is the CLI application, that you run in the terminal.
- Json2SharpLib: This is the library that is published to NuGet, where all the parsing logic is located.
- Json2SharpTests: These are unit tests that ensure the code behaves how it is supposed to.
- In the library project, create a class that inherits from CodeEmitter (the actual requirement is the
ICodeEmitterinterface, butCodeEmitterhas some methods that could prove useful to you). - Provide an implementation for the abstract methods. Feel free to look at the existing
CodeEmitters for inspiration. - Head to the
GetLanguageEmittermethod in the Json2Sharp class and add your emitter there. Don't forget to add the appropriate options to Json2SharpOptions. - Go to Json2SharpTests and create unit tests for the emitter you made. Feel free to look at the existing tests for inspiration.
- Once you got your code emission to work as intended, head to ConfigHandler and implement the options your emitters are supposed to handle.
- Create a pull request and wait for the code review. If adjustments are suggested, then go and implement them. Once everything is ok, your changes will be accepted and merged with
main🎉
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed