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

Please support File References #528

Open
philCryoport opened this issue Dec 13, 2022 · 11 comments
Open

Please support File References #528

philCryoport opened this issue Dec 13, 2022 · 11 comments
Labels
enhancement New feature or request

Comments

@philCryoport
Copy link

Reason/Context

Please try answering few of those questions

  • Why we need this improvement?
    • AsyncAPI files can get very long very quickly -- which makes readability difficult
    • It would be great to be able to extract out a collection of common schemas and then use it in multiple files

Description

Please try answering few of those questions

  • What changes have to be introduced?
    • Be able to load multiple files -- preferably an entire subdirectory tree -- into the editor
  • Will this be a breaking change?
    • Unknown
  • How could it be implemented/designed?
    • Unknown
@philCryoport philCryoport added the enhancement New feature or request label Dec 13, 2022
@github-actions
Copy link

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@magicmatatjahu
Copy link
Member

@philCryoport Thanks for the issue!

I has been implementing multiple-file support in the studio since last week. I currently have a directories/files tree and file system in place, however there are still a few things missing that should be there and aren't, like:

  • cross-referencing between files - here you have to do a proxy for cross-referencing and give the content of the files from the browser and not from the local file system (implementation details)
  • showing diagnostics on each file as well as "watching" for changes to files, i.e. if you have 2 files, one application document and one common.yaml, then when you change something in common.yaml you should know if you have get errors from referenced components in the application document (from common.yaml)
  • bundling files to download them to your local system - if you use references in the browser then you should also be able to download a file from the Studio with the correct references against your file system.

Of course we have a lot of features that we should implement but I will implement in next weeks (after merging basic support for multi files), like:

  • moving folders/files + drag&drop for this
  • prompting for possible references to be used when someone types $ref (autocompletion)
  • and others very common things in e.g. Stoplight Studio etc.

I don't want to say when we will have it merged and available in the Studio but after the new year at the latest. However, I want the PR itself to open later this year. We are also starting the Christmas period and a lot of people may take time off in the next few days and I also don't know who will do the review for that PR, so please, stay tuned :)

@philCryoport
Copy link
Author

@philCryoport Thanks for the issue!

I has been implementing multiple-file support in the studio since last week. I currently have a directories/files tree and file system in place, however there are still a few things missing that should be there and aren't, like:

* cross-referencing between files - here you have to do a proxy for cross-referencing and give the content of the files from the browser and not from the local file system (implementation details)

* showing diagnostics on each file as well as "watching" for changes to files, i.e. if you have 2 files, one application document and one `common.yaml`, then when you change something in `common.yaml` you should know if you have get errors from referenced components in the application document (from `common.yaml`)

* bundling files to download them to your local system - if you use references in the browser then you should also be able to download a file from the Studio with the correct references against your file system.

Of course we have a lot of features that we should implement but I will implement in next weeks (after merging basic support for multi files), like:

* moving folders/files + drag&drop for this

* prompting for possible references to be used when someone types `$ref` (autocompletion)

* and others very common things in e.g. Stoplight Studio etc.

I don't want to say when we will have it merged and available in the Studio but after the new year at the latest. However, I want the PR itself to open later this year. We are also starting the Christmas period and a lot of people may take time off in the next few days and I also don't know who will do the review for that PR, so please, stay tuned :)

Thank you for the update @magicmatatjahu -- I knew somebody had to be working on it!

If you want testers, please let us know. There are a few people on my team which would rather use the web-based Studio app instead of an IDE plugin.

@magicmatatjahu
Copy link
Member

@philCryoport HI! Update from me. I will be off 23rd December - 9th January (maybe in some days I will work few hours, but have in mind that maybe) so I won't work on that feature. There is a draft PR with current code #538 and preview https://deploy-preview-538--modest-rosalind-098b67.netlify.app/

There are many more changes than I thought as there is still a lot to do. I've written a TODO list of what I still need to implement, but the basic stuff already works, such as creating folders, files, opening files in tabs, rendering current opened file etc. If you want to test it, go ahead and give feedback, but as I wrote, a lot of things are not there and it doesn't give 100% UX, so please don't waste your time. In fact, I don't know how much longer it will take, but I hope that in January it should already be permanently in the Studio - I write should, because I never know if I will have to focus on other things around AsyncAPI.

If you wish, you can test the handling of files from your filesystem - right-click in the Files arena on the left and select Open directory (only works in Chrome), then you open the folder and updating the file in Studio will automatically save the changes to your drive. Updating from filesystem->Atudio doesn't work yet because there is no native API for this at the moment so I will have to write my own based on time intervals.

Merry Christmas (if you celebrate it) and a happy new year!

@philCryoport
Copy link
Author

@philCryoport HI! Update from me. I will be off 23rd December - 9th January (maybe in some days I will work few hours, but have in mind that maybe) so I won't work on that feature. There is a draft PR with current code #538 and preview deploy-preview-538--modest-rosalind-098b67.netlify.app

There are many more changes than I thought as there is still a lot to do. I've written a TODO list of what I still need to implement, but the basic stuff already works, such as creating folders, files, opening files in tabs, rendering current opened file etc. If you want to test it, go ahead and give feedback, but as I wrote, a lot of things are not there and it doesn't give 100% UX, so please don't waste your time. In fact, I don't know how much longer it will take, but I hope that in January it should already be permanently in the Studio - I write should, because I never know if I will have to focus on other things around AsyncAPI.

If you wish, you can test the handling of files from your filesystem - right-click in the Files arena on the left and select Open directory (only works in Chrome), then you open the folder and updating the file in Studio will automatically save the changes to your drive. Updating from filesystem->Atudio doesn't work yet because there is no native API for this at the moment so I will have to write my own based on time intervals.

Merry Christmas (if you celebrate it) and a happy new year!

Hi @magicmatatjahu thank you for putting your efforts into this. Enjoy your holiday break!

@Neverbolt
Copy link

Hi, I would love to have this feature. Since it has been a while since the last update here or in the PR I wanted to ask if there is any way to support?

@danielebra
Copy link

@magicmatatjahu looks like you have made quite significant progress to this in #538

Any plans on getting this across the line?

KhudaDad414 pushed a commit to KhudaDad414/studio that referenced this issue Oct 12, 2023
@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Oct 19, 2023
@philCryoport
Copy link
Author

@magicmatatjahu looks like you have made quite significant progress to this in #538

Any plans on getting this across the line?

Looks like it was closed without merge

@github-actions github-actions bot removed the stale label Oct 20, 2023
Copy link

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Feb 18, 2024
@ashmit-coder
Copy link
Contributor

Hey @Amzani is this still open and assignable?

@github-actions github-actions bot removed the stale label Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants