-
-
Notifications
You must be signed in to change notification settings - Fork 29
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
Suggestion : Super Quick Info fully qualified namespaces for the implemented interfaces #258
Comments
Personally I don't think the namespace before the interface name can be very helpful. What a programmer want to know about an interface is its purpose, thus the name is enough, most of the time. Hence Codist hides namespace names from view as much as possible. |
While engrossed in the development of an extensive extension like yours, which notably focuses on the prominent presentation of metadata, I comprehend your inclination to shape it according to your own vision, optimizing it for utmost utility. However, given your extensive experience in the field, I believe you are well aware that individuals, particularly developers, often harbor varying preferences when it comes to specific features. Allow me to present a few compelling justifications for providing the "option" to exhibit interfaces with fully qualified namespaces, elucidating why I personally find it advantageous:
|
Hmm, this suggestion seems be reasonable. Current implementation displays interfaces declared/implemented by the type first, then inherited ones. I don't know whether sorting interfaces by namespaces then by type name can help more. @fitdev |
I particularly very much like the sorted by namespace first and fully qualified presentation (and in conjunction with no width limit on Super Quick Info as I dislike having word wrap, I feel like it messes with my ability to quickly perceive the information). Since this is a more visual tweak than other features, it might be a good idea to have it as a toggle option (as an opt-in by default) so that other users don't have to change settings. Or even better, maybe a toggle implemented straight into the Super Quick Info UI; it could be placed on this line: so that no space is wasted, since that line always says "Interface:" anyway, even when there's only one interface implemented. EDIT: another solution would be to use the Shift key modifier to display the new mode (or the old mode), but I still believe that having a toggle button integrated straight into the UI would be better. |
Years ago I was trying to put some toggle buttons on the Quick Info to allow changing its content after display, but unfortunately the Quick Info disappeared after it was changed. |
Even if toggling closes Quick Info, the state should be remembered in subsequent displays of Quick Info, so in a way it's a faster path to change appearance without having to access the Options window. |
Personally, fully qualifying interfaces is not something I would find useful, but I understand that for some developers it may be useful. In any case, I hope that it can be an option which users can customize - turn on or off. As a middle ground, perhaps interfaces can be automatically fully qualified when there is more than one identically named interface coming from different namespaces:
In other words fully qualify to avoid ambiguity. Alternatively, perhaps only the immediate parent namespace may be displayed. |
@fitdev
I agree. |
As some extra reasoning why I suggested this is also because some developers (myself included) employ a top-to-bottom architecture, where dependency increases from top to bottom, and that combined with a proper naming scheme can expose architectural dependencies at a glance, and namespaces play a big role in this organizational strategy. Therefore the grouping or alphabetical display of fully qualified interfaces would present a level of usefulness. |
Although the code is already ready, what is left is only an option. The namespaces add little value to my programming experience. I don't care its namespace at all. I can not even remember any second I have ever wanted to know about it before. @fitdev's example maybe the exception. But I do care for the functionality of the interface. On the above screenshot of the generic Dictionary, the namespaces take too much space and interfere reading the interface names. It is adding reversal value to programming experience. |
I could go on further trying to make a case in favor of fully qualified interface names and without backup from other developers using similar architecture strategies as me, it might seem like I just want this for myself. Finally, it's your decision whether you want to add this implementation or not. Although if you do decide to add it as an option, I'd appreciate it. And I believe that keeping both options won't become a maintenance struggle as they aren't fundamentally different. Also, I understand that you don't value namespaces in your workflow, but for me (and I assume other programmers too) they are very useful in keeping a well structured solution (especially when using folders to organize project files, and those folders' names are reflected in the namespaces). Here's a small sample of what I mean where basically usages are grouped by project and displayed alphabetically, immediately allowing to discover dependency breaking rules, how heavy a type depends on other types. And all this would similarly translate to how useful it would be viewing implemented interfaces preceded by their full namespaces. |
I am still not convinced.
Why do you care for folders or folder names when you see interface names?
I can not think of a typical usage pattern for the above statement. |
Some of the features I suggest on Codist is stuff I see and use frequently from other tools. Whether I am the only one that finds it useful or a lot many that haven't yet discovered Codist, I don't know. Further attempts to create a compelling argument are pointless in this case, and I understand you have your own vision for your tool, and I respect that. |
+ Added copy fully-qualified symbol name (#258) and command tool tips
The code is in the previous commit. |
Would it be possible to add an option which allows displaying fully qualified namespaces for the implemented interfaces as such:
The text was updated successfully, but these errors were encountered: