Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: generate kcl data from json #145

Merged
merged 2 commits into from
Aug 29, 2023
Merged

feat: generate kcl data from json #145

merged 2 commits into from
Aug 29, 2023

Conversation

jakezhu9
Copy link
Contributor

1. Does this PR affect any open issues?(Y/N) and add issue references

  • N
  • Y

part of kcl-lang/kcl#526

2. What is the scope of this PR (e.g. component or file name):

pkg/tools/gen

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Other

Add the feature to generate kcl code from json. You can find an example in testdata/json. Additionally, I made the following changes:

  • Improve the auto mode selection to supports more modes and provides better accuracy.
  • Change kclSchema struct to kclFile. It now contains all the imports, schemas and data in a kcl file. We can handle and render them using the same method genKcl
  • Refactor formatDoc function to indentLines for better readability and reusability. Also add some template functions like include to help render the output.

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

  • N
  • Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

  • Unit test
  • Integration test
  • Benchmark (add benchmark stats below)
  • Manual test (add detailed scripts or steps below)
  • Other

@Peefy Peefy added the tool label Aug 29, 2023
@coveralls
Copy link

coveralls commented Aug 29, 2023

Pull Request Test Coverage Report for Build 6011772544

  • 69 of 81 (85.19%) changed or added relevant lines in 5 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.4%) to 64.545%

Changes Missing Coverage Covered Lines Changed/Added Lines %
pkg/tools/gen/template.go 25 27 92.59%
pkg/tools/gen/genkcl.go 9 13 69.23%
pkg/tools/gen/genkcl_json.go 31 37 83.78%
Totals Coverage Status
Change from base Build 6000403335: 0.4%
Covered Lines: 2525
Relevant Lines: 3912

💛 - Coveralls

Copy link
Contributor

@Peefy Peefy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Peefy Peefy merged commit 69e4008 into kcl-lang:main Aug 29, 2023
6 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Aug 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants