-
Notifications
You must be signed in to change notification settings - Fork 148
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
[wip] Add completion configurer #328
base: main
Are you sure you want to change the base?
Conversation
Well if we are adding continuous hinting and documentation here, we indeed may start looking into the other features as well. My rationale of implementing the themes preview at all was only to gather the icons in one place and display the licence and wait for the upstream effort of bringing configuration GUI. I am afraid that if we go too far with the settings configuration we may end up having two GUIs for that... |
Though yeah, the layout for icons is looking nice. Note: "suppress in" is not only about continuous hinting (after each keystroke) but also about auto hinting after trigger characters (which are provided by the LSP server) - for example this means that pressing dot in a comment will not bring the completer in a Python file. |
So it could be:
|
@@ -1,3 +1,3 @@ | |||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> | |||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 5H4V4H1.5L1 4.5V12.5L1.5 13H4V12H2V5ZM14.5 4H12V5H14V12H12V13H14.5L15 12.5V4.5L14.5 4ZM11.76 6.56995L12 7V9.51001L11.7 9.95996L7.19995 11.96H6.73999L4.23999 10.46L4 10.03V7.53003L4.30005 7.06995L8.80005 5.06995H9.26001L11.76 6.56995ZM5 9.70996L6.5 10.61V9.28003L5 8.38V9.70996ZM5.57996 7.56006L7.03003 8.43005L10.42 6.93005L8.96997 6.06006L5.57996 7.56006ZM7.53003 10.73L11.03 9.17004V7.77002L7.53003 9.31995V10.73Z" fill="#75BEFF"/> | |||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 5H4V4H1.5L1 4.5V12.5L1.5 13H4V12H2V5ZM14.5 4H12V5H14V12H12V13H14.5L15 12.5V4.5L14.5 4ZM11.76 6.56995L12 7V9.51001L11.7 9.95996L7.19995 11.96H6.73999L4.23999 10.46L4 10.03V7.53003L4.30005 7.06995L8.80005 5.06995H9.26001L11.76 6.56995ZM5 9.70996L6.5 10.61V9.28003L5 8.38V9.70996ZM5.57996 7.56006L7.03003 8.43005L10.42 6.93005L8.96997 6.06006L5.57996 7.56006ZM7.53003 10.73L11.03 9.17004V7.77002L7.53003 9.31995V10.73Z" fill="#75BEFF" class="jp-icon-brand1" /> |
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 would avoid going this route. This is certainly a modification (needs to check license) and there are plans to change these variables, see jupyterlab/jupyterlab#8832 (comment). I would create a set of dedicated variables fully reflecting the exact colors as shipped by MS.
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.
If the upstream variable names change, we'll update them, and it will work for all themes. If we make new variables, every theme will have to (read: won't) adapt to them. The primary motivating case: if a theme designer decides they need the vscode purple as their background, all the purple icons would disappear. However, as that purple shows up in, for example, the "new markdown file" icon, they'll realize that they have to own the rest of the colors as well, and create an overall harmonious experience: we aren't building vscode.
If we do (I don't) want to build something that beat-matches vscode, it would be a theme, and could define jp-icon-whatever
to be exactly that color.
Gotta have one first, and starting with a complicated/rich one is as good as any. Edit: there's an upstream issue around this. I don't know where their design stuff is going, as if it doesn't work on top of rjsf/formik/etc. it will take a really long time to implement. Choosing/building something that doesn't take any JSON schema, give consistent form and allow extension author to customize per widget (like our theme preview) is broken, no matter how pretty it is. The roadmap I see for #196 and related:
|
Didn't dig too much into these... so does continuous affect suppress in any way?
Ah. Well, we probably need some more explanation around this... landing it in the schema as text would be good, but we might end up needing an SVG/HTML preview animation or something to show how these work. Oh, and in preparation for per-language features, all of the features probably need a user-serviceable properties:
global:
title: Global <Feature> Settings
$ref: "#/definitions/settings"
language:
title: Per-Language <Feature> Settings
patternProperties:
".*":
$ref: "#/definitions/settings"
definitions:
settings:
title: <Feature> Settings
enabled:
type: boolean
default: true ...then the Another thing on the settings: we should maybe make |
Hopefully unbroke the existing tests... will proceed tomorrow/this weekend with the new ones... |
Also, newest |
Not sure what's going on in windows... might need to try some stuff like https://www.crummy.com/software/BeautifulSoup/bs4/doc/#inconsistent-encodings |
Looks better now! The failure at the moment is:
which I guess might because |
Indeed, that would break things! I'll look at normalizing how we work with/clean up the settings ids/files... |
ok, affb602 and some follow-on should have us back up on robot... we should be better set up to handle more plugins, in the future, too. Re-running a full build locally with fresh envs, but will be in and out for a bit... |
Just watching the windows build, it has at least gotten past the settings cleanup stuff, as well as some places where the log reading was dying before... |
So everything's looking good, thus far, but we're running up on the 60 minutes ( A quick win might be not running the |
Oh, and full local run completed. |
References
Code changes
jlsp
theme
get_current_theme_id
and acurrent_theme_changed
signal to the IconThemeManager, starting the
CommandIds` patternredmond
andmountainview
😈modifications?
to theme definition for licensing compliancekernel
andnull
it would actually be simpler if it was a wide table, rather than long.User-facing changes
Instead of a dialog, presents a main area widget, and offers appropriately interactive direct manipulations of all of the items (no save button)
Backwards-incompatible changes
A number of things changed...
Chores
Discussion
While I actually enjoy this old school kind of work, and tweaking how every pixel looks, doing this per feature is going to be insane, especially once we add per language overrides, etc. It might be fine to iterate on, test, and land this so we have something to look at, and then refactor with RJSF. We would be able to refactor the existing "novel" things (e.g. the icon preview, the token finder) work, and make them stuff that shows up in our
uiSchema
, so we'd get the best of both worlds.