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

Investigate what is missing for support of widgets in nested expressions #5032

Closed
wdanilo opened this issue Feb 5, 2023 · 6 comments
Closed
Assignees
Labels
p-low Low priority x-new-feature Type: new feature request
Milestone

Comments

@wdanilo
Copy link
Member

wdanilo commented Feb 5, 2023

QA: @farmaazon

This task is automatically imported from the old Task Issue Board and it was originally created by Greg Ociepka.
Original issue is here.


Currently widgets are only provided directly to the arguments of each separate function call inside a node expression. This approach doesn't allow for the suggestions to be sensitive to the context in which the function call is made. Additionally, selecting a widget completion that results in a nested constructor call produces invalid expression and doesn't provide further widgets.

We need to investigate cases in which more elaborate widget structure would be useful for better completions. Additionally, we have to ensure that completed nested expressions also receive appropriate widgets in as many cases as possible.

Current behavior:

In expression:

table.filter "column" (Filter_Condition.Equal)

The "column" argument position is provided with actual column name suggestions.
The nested "to" argument of Filter_Condition constructor does not have a placeholder or widget.

Acceptance criteria:

Given starting expression

table.filter
  • placeholders or widgets with valid suggestions must be provided for both "column" and "filter" arguments
  • "filter" argument suggestions must allow picking various variants of Filter_Condition
  • after "filter" argument suggestion with Filter_Condition.Equal variant is applied, the "to" argument should receive an argument placeholder

Blockers:

#184382080 blocked

Comments:

Paweł Grabarz reports a new STANDUP for today (2023-02-02):

Progress: Made a call with James to discuss the potential structure of nested widgets in parameters. We've figured that parameter nesting is not enough to implement desired widgets for filter, and it might not actually be a useful construct right now. Instead I've investigated what is preventing the widgets and placeholder arguments from showing on nested constructor expressions. This resulted in a bug report for engine. It should be finished by 2023-02-08. (Enso Bot - Feb 2, 2023)


@wdanilo wdanilo moved this to 🏗 In progress in Issues Board Feb 6, 2023
@wdanilo wdanilo added this to the Beta Release milestone Feb 6, 2023
@Frizi Frizi changed the title Add support for nested widgets structure Investigate what is missing for support of widgets in nested expressions Feb 8, 2023
@enso-bot
Copy link

enso-bot bot commented Feb 9, 2023

Paweł Grabarz reports a new STANDUP for yesterday (2023-02-08):

Progress: Implemented support for widgets in single argument infix expressions, but it is still buggy in more complicated cases. More work is needed to support longer chains properly. Additionally spent some time on issue triage. It should be finished by 2023-02-14.

@enso-bot
Copy link

enso-bot bot commented Feb 9, 2023

Paweł Grabarz reports a new STANDUP for today (2023-02-09):

Progress: Implementing widget support for longer infix chains is going well, but some tests need to be adjusted yet. I also found that basic prefix method application using longer access chains didn't work. It should be fixed in the process. Next I need to investigate how to add argument placeholders that are not at the end of the expression. It should be finished by 2023-02-14.

@enso-bot
Copy link

enso-bot bot commented Feb 14, 2023

Paweł Grabarz reports a new STANDUP for yesterday (2023-02-13):

Progress: Added method resolution for constructors and fixed it for static calls, which got broken since suggestion database method resolution was changed to rely on full method pointers. Also improved self argument handling for qualified method calls. It should be finished by 2023-02-14.

@enso-bot
Copy link

enso-bot bot commented Feb 15, 2023

Paweł Grabarz reports a new STANDUP for yesterday (2023-02-14):

Progress: Fixed all remaining issues detected by tests and cleaned up the code a bit before PR review. Discussed design of future implementation for in-node widgets. It should be finished by 2023-02-14.

mergify bot pushed a commit that referenced this issue Feb 20, 2023
Implements #5032

Added support for widgets in infix expressions (right now only used for file paths)
<img width="306" alt="image" src="https://user-images.githubusercontent.com/919491/218736181-98965cd4-2a8e-4f7a-bbf8-ab302ac5b22c.png">

Widgets and placeholders are handled for all chained methods within a node
<img width="292" alt="image" src="https://user-images.githubusercontent.com/919491/218736249-a0190115-623e-4e66-aff4-90eb2a50685d.png">

The qualified method call convention and static methods no longer confuse the argument placeholders
<img width="374" alt="image" src="https://user-images.githubusercontent.com/919491/218736628-24073f5c-0512-4b37-a271-0248bc954802.png">

Type constructor expressions now receive placeholder arguments. The placeholders work on nested expressions within a node.
<img width="405" alt="image" src="https://user-images.githubusercontent.com/919491/218737379-b53ff125-3910-48f3-bb9f-a0e7b1684ab9.png">
@Frizi Frizi moved this from 🔧 Implementation to 🟢 Accepted in Issues Board Feb 20, 2023
@sylwiabr sylwiabr closed this as completed Mar 2, 2023
@enso-bot
Copy link

enso-bot bot commented Mar 20, 2023

Paweł Grabarz reports a new STANDUP for the provided date (2023-02-10):

Progress: Added method resolution for chained method calls within a single node. Tested recently added method resolution for constructors. The right data is sent by the language server, but more work is needed to use it properly on IDE side. It should be finished by 2023-02-14.

@enso-bot
Copy link

enso-bot bot commented Mar 20, 2023

Paweł Grabarz reports a new STANDUP for the provided date (2023-02-03):

Progress: Working on recognition of infix expressions as function calls, in order to be able to connect widgets or argument placeholders to them. It should be finished by 2023-02-14.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p-low Low priority x-new-feature Type: new feature request
Projects
Archived in project
Development

No branches or pull requests

3 participants