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

Keeping metadata as part of AST. #8804

Closed
farmaazon opened this issue Jan 18, 2024 · 2 comments · Fixed by #8893
Closed

Keeping metadata as part of AST. #8804

farmaazon opened this issue Jan 18, 2024 · 2 comments · Fixed by #8893
Assignees
Labels
-gui d-hard Difficulty: significant prior knowledge required p-medium Should be completed in the next few sprints x-chore Type: chore

Comments

@farmaazon
Copy link
Contributor

Instead of keeping metadata in a separate map, we could keep it in AST nodes (also in YDocs representation of those).

@farmaazon farmaazon added d-hard Difficulty: significant prior knowledge required p-medium Should be completed in the next few sprints x-chore Type: chore -gui labels Jan 18, 2024
@farmaazon farmaazon moved this from ❓New to 📤 Backlog in Issues Board Jan 18, 2024
This was referenced Jan 18, 2024
@kazcw kazcw linked a pull request Jan 30, 2024 that will close this issue
5 tasks
@kazcw kazcw moved this from 📤 Backlog to 👁️ Code review in Issues Board Jan 30, 2024
@enso-bot
Copy link

enso-bot bot commented Feb 1, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-01-30):

Progress: Addressing review, testing, fixing issues (mostly e2e setup) in the combined ASTs/parentheses/metadata PR. It should be finished by 2024-02-02.

Next Day: Next day I will be working on the #8238 task. Add idmap repair, a reparse fallback if tree-repair fails, fix packaging issue.

@enso-bot
Copy link

enso-bot bot commented Feb 2, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-01-31):

Progress: Added idmap repair, a reparse fallback if tree-repair fails, worked on packaging issue. It should be finished by 2024-02-02.

Next Day: Next day I will be working on the #8238 task. Start working on text edits.

mwu-tow pushed a commit that referenced this issue Feb 2, 2024
)

- Synchronize Y.Js clients by AST (implements #8237).
- Before committing an edit, insert any parentheses-nodes needed for the concrete syntax to reflect tree structure (fixes #8884).
- Move `externalId` and all node metadata into a Y.Map owned by each `Ast`. This allows including metadata changes in an edit, enables Y.Js merging of changes to different metadata fields, and will enable the use of Y.Js objects in metadata. (Implements #8804.)

### Important Notes

- Metadata is now set and retrieved through accessors on the `Ast` objects.
- Since some metadata edits need to take effect in real time (e.g. node dragging), new lower-overhead APIs (`commitDirect`, `skipTreeRepair`) are provided for careful use in certain cases.
- The client is now bundled as ESM.
- The build script cleans up git-untracked generated files in an outdated location, which fixes lint errors related to `src/generated` that may occur when switching branches.
@github-project-automation github-project-automation bot moved this from 👁️ Code review to 🟢 Accepted in Issues Board Feb 2, 2024
@farmaazon farmaazon moved this from 🟢 Accepted to 🗄️ Archived in Issues Board Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-gui d-hard Difficulty: significant prior knowledge required p-medium Should be completed in the next few sprints x-chore Type: chore
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants