-
-
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
Codist 6.7 Beta #223
Comments
@fitdev What's the VS version you are on? I reproduced your issue. The VS highlight system appears to have difficulty to merge styles together. |
I see. It's not a bid deal, as I am still not sure if I want to distinguish between readonly and regular structs. I am on VS 17.5 preview 1 |
Congratulations! You are on the problematic version eventually. Thus I posted the issue to the Roslyn project, which was probably related. I suggest you turn on the CPU resource monitor component by checking the "Monitor CPU" checkbox in the Codist/Display options page and see whether you encounter that problem too. When it occurs, the CPU consumption rate will remain continually as high as a core is engaged. |
Thank you for letting me know. I was concerned about this actually. But so far I have not yet noticed anything yet, but then again I was not working for the last 10 days. Next week I will get into it and see if occurs. So far I had VS just sitting there with solution loaded and it did not consume any more CPU than it did before, but perhaps it will once I start typing in the editor. |
There is a new beta version with more code refactoring commands in C# Smart Bar. |
It is really a challenge to have the highlight work......as from time to time, VS changes its way... |
The problem is the |
Thanks for the suggestion. Yes, I will do that. Though it does raise a more general interesting question: how do you resolve such conflicts in general like when you have 2 modifiers applied which one takes precedence? I guess it is not something you can control in VS now. Maybe they will add some API in the future to control this. |
You are right. |
A small issue with showing interface inheritance in superquick infos: For clarity: on the screenshot, the class inherits from a base class and implements just one interface (all other interfaces come from either the base class(es) or their interfaces). For classes it shows all interfaces as if they were explicitly declared on the class itself, instead of showing that they are actually coming from the base class as shown on the screenshot. Ideally, it should show interfaces with information where they are declared explicitly - base class, base of the base class, etc., or some interface name (it is common that some small interfaces are only declared on (inherited by) larger interfaces and not classes). So the tooltip should clearly show this, i.e. where a particular interface is "coming from". |
Another small thing: I noticed that bold style for type declarations does not work (they are not bolded). I would like all type declarations like |
I am sorry that I have to reconsider it. |
That's weird. I have never experienced this, even when the highlight was somewhat broken sometimes (#227) here. |
I understand that but the way it currently appears on the screenshot is completely redundant: yes, it is true that In other words, the |
No, here's the screenshot: Ideally I would want everything underlined in red to be bold. But at the very least, the name of the type with generic parameters should be bold. Or is this something not possible? I am sorry I have upgraded VS to the latest preview and migrated my VS profile, and maybe that has screwed up certain things, so maybe I am asking for something which was never there in the first place. |
From the above screenshot I think Codist is doing what is designed to do. It won't have everything in the declaration node styled. It only applies the style to the name of the declared member, demonstrated like the following screenshot, where the member declaration has an enlarged font size specified. |
How do you think it should be displayed like, an example? |
It would be ok if it would stylize just the type name, but it does not make bold even that. The reason why ion the screenshot the type name looks a bit bold is because I use a slightly bolder font for all my (user types). But the bold (Declaration) style in the above screenshot was NOT applied to the type name. It's not a big deal, but if you could figure this out it would be nice.
Well, in my example, in the tooltip where it has: Maybe the case of structs is a more complicated one, because a single interface can be implemented by more than one other interfaces, through which a particular struct will implement it, but at least it should work for classes: if the interface is NOT defined as being implemented by the class, then it is coming from its base class (or the base of the base, etc.), in which case, what should appear after |
Please try the new beta and see whether it is doing what is supposed to do. |
Thank you for the new version! It is a step in the right direction, however there are 2 issues still:
Below is the breakdown of how it should work: class A : B, IA { }
class B : C, IB { }
class C : IC { }
interface IA { }
interface IB : IExtra1 { }
interface IC : IExtra2 { }
interface IExtra1 { }
interface IExtra2 { } The superquick info for
|
Could it be the problem like the following class A : B, IA { }
class B : C, IB { }
class C : IC { }
interface IA : IB { }
interface IB : IExtra1 { }
interface IC : IExtra2 { }
interface IExtra1 { }
interface IExtra2 { } Then the Quick Info will display that |
You are right. This is what was going on. However to merely show So, elaborating on a more complex case, I suggest: Given: class A : B, IA { }
class B : C, IB, IExtra2, ICommon, IBOnly { }
class C : IC, ICommon, ICOnly { }
interface IA : IB { }
interface IB : IExtra1 { }
interface IBOnly : ICommonForBandC { }
interface ICOnly : ICommonForBandC { }
interface IC : IExtra2 { }
interface IExtra1 { }
interface IExtra2 { }
interface ICommon { }
interface ICommonForBandC { } The SuperQuickInfo for
I think this covers all the cases including multiple interface inheritance. I still think that in the future it would be helpful to provide even more information about the exact inheritance paths for interfaces, but for the moment this behavior would be great! |
Thank you for helping out. |
Wow! You are so fast! Yes, this new version is great! Exactly what I was hoping for! One small thing though, if possible, regarding the ordering of interfaces in the list, using the above example: class A : B, IA { }
...
interface IA : IB, IAExtra { }
...
interface IAExtra { }
|
BTW, in my case I often deal with classes that are like 5 or 6 levels deep in inheritance hierarchy and have 40+ interfaces. So this feature is very helpful! Thank you! |
I observed that before uploading the last beta. However, it will make the code more complicated at my first thought. Furthermore, I am not very sure whether the current implementation works well with base types either. |
@wmjordan I'm using the latest version: In Dark theme texts should be white. This tooltip background should be dark. |
@laicasaane |
I am about to release the final version in several days. |
I noticed there are a lot of new refactorings in Codist. Is there a way to quickly invoke the refactoring menu with a single keyboard shortcut (without having to first show the Smart Bar and then use the mouse to select the refactoring menu)? |
Could you please add an option to delay showing quick info for some time? It often gets in the way when I try using multiple carets. 😂 |
It does not seem to be viable. No API to do so. |
@laicasaane |
Thanks, I will try it now. |
Download
Codist 7983
Codist 7977
Codist 7963
Codist 7933
Codist 7924
Codist 7923
Codist 7912
Codist 7909
Codist 7906
Codist 7856
Codist 7831
Codist 7819
Codist 7805
Codist 7801
Codist 7797
Codist 7794
Codist 7787
Codist 7760
Codist 7749
Codist 7736
What's New
GetEnumerator
method forforeach
statement when hovering onin
keyword (7760)For instance, select the following code, which is indented with 4 preceding tabs, then press Ctrl before clicking the copy button.
Result:
The text was updated successfully, but these errors were encountered: