go-tree-sitter icon indicating copy to clipboard operation
go-tree-sitter copied to clipboard

Updated grammar updater, wrote a README, added Swift grammar, updated Kotlin grammar to v0.3.1

Open micksmix opened this issue 1 year ago • 4 comments

  1. updated _automation/main.go script to prefer commits tied to a latest release, if it exists. If a grammar repository includes a Release, this updater now prioritizes updating to the latest release rather than the most recent commit. In cases where the repository lacks releases, it defaults to using the latest commit.
  2. Added a README.md for the updater
  3. Added a subcommand called run-tests which will run go test against every grammar's binding_test.go file
  4. Updated Kotlin grammar to latest release (v0.3.1)
  5. Updated .gitignore file to ignore VSCode and macOS related files that shouldn't be committed

micksmix avatar Feb 08 '24 17:02 micksmix

updated _automation/main.go script to prefer commits tied to a latest release, if it exists. If a grammar repository includes a Release, this updater now prioritizes updating to the latest release rather than the most recent commit. In cases where the repository lacks releases, it defaults to using the latest commit.

For background, the reason I added this is because the kotlin grammar's most recent commit actually is a failing build. However, that project cuts releases and by grabbing the commit for the latest release, it builds correctly.

micksmix avatar Feb 08 '24 22:02 micksmix

I added more to this PR.

I also added the Swift grammar for Apple's Swift programming language. I had to add a downloadSwift function to the automation updater to support retrieving this grammar...which doesn't include parser.c in the repo, but instead in zip file in a release.

micksmix avatar Feb 09 '24 06:02 micksmix

@smacker - Please let me know if you'd like me to make any changes, or split into separate PR's.

micksmix avatar Feb 09 '24 20:02 micksmix

@smacker Based on your feedback, I have greatly simplified my PR. I've added the optional updateBasedOn property. If it's not provided, it is presumed to be commit. If a user does provide "updatedBasedOn": "tag", then it will call fetchLastTag.

With these changes, I no longer need a custom downloadSwift function or any other additional functions.

This is a much simpler PR now with fewer changes. Thanks for your review.

micksmix avatar Feb 18 '24 17:02 micksmix

@smacker - Do you want changes to this to this PR or would you like me to re-architect this?

micksmix avatar Mar 16 '24 15:03 micksmix

@micksmix Weird. I remember leaving comments here but I don't see them now... Anyway, PR looks great! Thank you.

I just added 2 small comments to ensure the behavior of the updater is consistent and straightforward.

smacker avatar Mar 18 '24 01:03 smacker

Changes that @smacker suggested have been made. Ran go test -v ./... and all tests passed. Kotlin grammar is at v0.3.5

micksmix avatar Mar 19 '24 17:03 micksmix

Thank you so much!

smacker avatar Mar 20 '24 02:03 smacker