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

(192+) Use Kotlin UI DSL #360

Closed
FWDekker opened this issue Dec 30, 2020 · 3 comments · Fixed by #470
Closed

(192+) Use Kotlin UI DSL #360

FWDekker opened this issue Dec 30, 2020 · 3 comments · Fixed by #470
Assignees
Labels
api-update Requires updating the IntelliJ IDE API code quality Code changes without behavior changes

Comments

@FWDekker
Copy link
Owner

Estimated implementation date: unknown
Adapted from checklist in #209.

Use the Kotlin UI DSL instead of .form files. Forms are harder to maintain, and using the DSL separates appearance from functionality in the sense that I allow the DSL to determine how the information should be displayed.

Currently, the Kotlin UI DSL is not mature yet and may introduce breaking changes at any moment. Additionally, documentation is extremely poor and some functionalities are missing. I should wait until the API is more mature.

@FWDekker FWDekker added code quality Code changes without behavior changes on-hold Will not be worked on until conditions change api-update Requires updating the IntelliJ IDE API labels Dec 30, 2020
@FWDekker FWDekker self-assigned this Dec 30, 2020
@FWDekker
Copy link
Owner Author

FWDekker commented Jan 2, 2021

I tried using the Kotlin UI DSL again with 201+ compatibility. I am not satisfied with the following shortcomings:

  • The withLargeLeftGap() method is only available in 201+, and is necessary to properly horizontally space radio buttons.
  • Spinners are too small to display numbers with 3 or more digits.
  • The dictionary hint textarea is wrapped by breaking words in the middle, which is not necessary. (Might be my own fault.)
  • When the dialog grows horizontally, components also grow; but when the dialog shrinks again, components retain their grown size.

Until these issues have been resolved, I will not be using the Kotlin UI DSL.

@FWDekker FWDekker removed the on-hold Will not be worked on until conditions change label Jun 3, 2021
@FWDekker
Copy link
Owner Author

FWDekker commented Jun 3, 2021

Tried it again using 201+. Since #377 the fourth issue listed above is no longer a problem, and horizontal spacing of radio buttons is fine too. Spinner sizes aren't an issue either. I haven't tried the dictionary hint textarea yet, but I stopped trying because I cannot seem to decouple alignment between different parts of the layout:
Coupled alignment
For some reason, the second column extends through all the rows throughout all sections, which means that the input fields for the delimiters are way too far to the right. That annoys me, and I cannot find a way to prevent that from happening. I'll try again next year I guess. Maybe after three years the API will finally make sense.

@FWDekker FWDekker added the on-hold Will not be worked on until conditions change label Jun 3, 2021
@FWDekker
Copy link
Owner Author

I tried it a few months ago in 2021.2 and the API is still really unsatisfactory. I'm seriously considering writing my own little framework.

@FWDekker FWDekker removed the on-hold Will not be worked on until conditions change label Nov 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-update Requires updating the IntelliJ IDE API code quality Code changes without behavior changes
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant