-
Notifications
You must be signed in to change notification settings - Fork 54
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
rose edit capabilities document #2651
base: master
Are you sure you want to change the base?
rose edit capabilities document #2651
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A good summary of Configuration and metadata descriptions.
Perhaps as we get a little further along we can use the descriptions from the rose metadata items to create an end-to-end mapping scheme, i.e to map fields all the way from rose metadata > jsonSchema > jsonForms. This has already been mapped for a number of metadata items, however, in the longer term it may be useful to get a complete mapping so all gaps can be identified. Where the requirement for this in the UI is essential, alternative ways to get this info into the UI can then be factored into functional specifications.
If the lack of a direct mapping is an issue for a number of fields, this should be factored into the research to be undertaken in #2643 for choice of schema and #2644 for choice of form generator.
Perhaps it is worth looking into whether there are any custom mapping solutions available to help where there is no direct mapping from metadata onto json-schema / json-form. For example this would apply to comment support, after assessing whether or not this feature is actually a requirement for Rose II.
This would apply to any other schemas chosen over these that come out of the technology choices investigations.
That's what I'm trying to do listing the corresponding fields with each metadata item. There's probably a better way to represent this...
That's the aim, just got a few gaps to fill.
I think the remaining things which have no direct mapping onto JSON schema will fall into one of two camps:
|
Looks like http://json-schema.org/draft/2020-12/json-schema-core.html#name-example-meta-schema-with-vo |
That is good to see most of the mappings can be handled directly and the two approaches for where there is no direct mapping provide viable solutions, either client side or server side, which brings it closer to a complete end to end solution. The use of $vocabulary is interesting and looks useful. This may require further investigation. |
> **TODO:** | ||
> Explore the view options and search features and record the key capabilities. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A spreadsheet containing existing Rose Edit Capabilities:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This all looks fine.
Some comments added and further points for discussion.
LGTM. Answered a couple of questions and filled in some TODOs in 8960c9f |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added some notes on exploring the widgets and associated capabilities
Assigning @wxtim who is going to try to map functionalities onto Language Server Protocol (LSP) interfaces. A couple of questions to be resolved:
And a couple more questions about the
|
Commands on a per-file basis.I have as a proof of concept created a Incremental Changes
As far as I can tell we can see the diff in the case of
I think that this means that we could validate just the change, although we might want to memoize the rest of the validation so that the validation for unchanged lines is still returned. It looks like the server holds a >>> ls.workspace.documents
{'file:///net/home/h02.../flow.cylc': <pygls.workspace.Doc...54201ce20>}
>>> list(ls.workspace.documents.values())[0].lines
['#!jinja2\n', '\n', '\n', '\n', '[scheduling]\n', '\tinitial cycle point = 1066\n', ' Hello World [[graph]]\n', ' R1 = task\n', '[runtime] \n', '[meta]']
list(ls.workspace.documents.values())[0].uri
'file:///net/home/h02/tpilling/cylc-src/x9/flow.cylc' Futher, it looks like the Treating different files differently
I'm not sure if I've missed something - I'm not sure that you can register different commands, but what is to stop the same command doing different things depending on the file? |
Recording this link - I'm not sure it's relevent, but I want to record it microsoft/language-server-protocol#642 |
Partially addresses #2647
Adds configuration and metadata sections to get this document started.
There are a couple of TODOs where further research is required.