Codist icon indicating copy to clipboard operation
Codist copied to clipboard

Jump List Tasks limit the number of remaining Solution/ Project/ Source file items to ONE in Visual Studio 2022

Open HamRusTal opened this issue 10 months ago • 14 comments

With Codist 7.9.5.9983 installed in Visual Studio 2022 v17.3.1 in Windows 10 x64, if I enable the additional three Jump List tasks, only one solution/project/source file remains in the Jump List on top of these three which makes the list useless. :-( Surprisingly, I don't have this issue with Codist in Visual Studio 2019 v16.11.44 on the same machine.

HamRusTal avatar Feb 23 '25 16:02 HamRusTal

It is weird. I have never experienced this. I have both VS 2017 and VS 2022 v17.4 preview on my machine and both of them are working properly.

@fitdev Could you help to enable the Jump List option in the Options/Codist page and see whether you can reproduce this?

wmjordan avatar Feb 24 '25 12:02 wmjordan

At least one other person reported a similar (the same?) issue for the Tweaks extension (which I believe inspired the implementation of Jump Lists in Codist).

P.S. In case it matters, my Win 10 version is 22H2 [Version 10.0.19045.5487].

HamRusTal avatar Feb 24 '25 14:02 HamRusTal

I use Win 11 with custom taskbar replacement, so unfortunately I am not a good candidate for testing this.

fitdev avatar Feb 24 '25 17:02 fitdev

@HamRusTal Thank you for providing the info. Please try to disable Tweaks and see whether this issue reoccurs.

wmjordan avatar Feb 25 '25 07:02 wmjordan

I've experimented, and it looks somewhat messy. While I was doing the tests, the original issue vanished when I disabled both addons, then set up a jump list of 12 solutions, then re-enabled Codist (and restarted VS), then re-enabled Tweaks. Yet I'd still like to share my testing results and give some comments.

Codist \ Tweaks Disabled Enabled, JL: 0 Enabled, JL: 3
Disabled 0+12 0+12 3+10
Enabled, JL: 0 0+12 0+12 3+10
Enabled, JL: 3 3+10 3+10 / 0+12 3+10 / 3+10

In the above table, JL stands for Jump Lists, JL: 0 means that Lump List items in an addon are turned off, and JL: 3 means that all three Jump List items are turned on. N+M means that I have N Jump List Task items set up by the respective addon and top M solution items from my MRU list.

Contrary to the GitHub “zebra” highlighting, the row of interest is the last one. The repeated numbers in the bottom-right cell mean that I'm getting 3 Task items every time but whose items these are depends on which addon was last “active”. E.g. if I just turned the Tweaks' items on, I see them until I restart VS. When I then start an empty VS (without a solution open), I see Codist's items. Once I open a solution though, I see Tweaks' items again.

The monospace-highlighted cell reveals this conflict further: even when Tweaks' items are turned off, the addon still removes Codist's items as soon as it gets a chance (such as on solution load).

Can Codist be improved in such a way that (1) it is not affected by Tweaks' Jump List items and (2) it does not affect Tweaks' Jump List items? Is it possible that two authors communicate towards solving this conflict?

Can the implementation avoid consuming MRU list items (two in my case) for three Task items (so that I have 3+12)?

HamRusTal avatar Feb 26 '25 09:02 HamRusTal

What's the benefit to use the jump list feature from both of them at the same time?

Is it possible to use just one of them?

Can you turn off Tweak's jump list option and just keep Codist's option on, or vise versa?

wmjordan avatar Feb 26 '25 12:02 wmjordan

Those two extensions definitely conflict, since they consume the same mechanism provided by Windows.

wmjordan avatar Feb 26 '25 12:02 wmjordan

What's the benefit to use the jump list feature from both of them at the same time?

I use Tweaks for its other features. I'd happily use the Codist Jump List Tasks but my tests show that mere presence of enabled Tweaks breaks them, regardless of whether its Jump List items are turned on. Can Codist be made immune from this influence?

Can you turn off Tweak's jump list option and just keep Codist's option on, or vise versa?

I could but Codist also kills the Tweaks' items when I e.g. open an empty Visual Studio (which I do quite often). Can Codist be fixed to not delete the items it did not create?

Those two extensions definitely conflict, since they consume the same mechanism provided by Windows.

Doesn't that mechanism provide for identifying one's “own” items in order to leave all the others alone?

HamRusTal avatar Feb 26 '25 14:02 HamRusTal

Can the jump list feature in Tweaks be turned off individually?

There's no built-in API in .NET to identify existing jump list items, as far as I know.

wmjordan avatar Feb 27 '25 01:02 wmjordan

Can the jump list feature in Tweaks be turned off individually?

Each of three jump list items can be turned off individually, but even if all three are off (the JL: 0 column in the above table), it still destroys the Codist items.

There's no built-in API in .NET to identify existing jump list items, as far as I know.

Is there an API to count the existing Jump List Task items or at least detect if there are some?

HamRusTal avatar Feb 27 '25 16:02 HamRusTal

Is there an API to count the existing Jump List Task items or at least detect if there are some?

No.

wmjordan avatar Feb 28 '25 01:02 wmjordan

The monospace-highlighted cell reveals this conflict further: even when Tweaks' items are turned off, the addon still removes Codist's items as soon as it gets a chance (such as on solution load).

As you have seen, Tweaks will clear items created by Codist when you open a solution. Even though Codist preserves existing stuff and adds its own, the added items will eventually be destroyed after opening a solution.

wmjordan avatar Feb 28 '25 01:02 wmjordan

Codist preserves existing stuff

Not quite (even when Codist Jump List Shortcuts feature is turned off):

Codist also kills the Tweaks' items when I e.g. open an empty Visual Studio (which I do quite often).

Can Codist be fixed to not delete ANY Jump List items if the feature is turned OFF?

P.S. Anyway, my initial issue is resolved, thanks for the hints. If fixing the Jump Lists conflict is hard, I don't insist.

HamRusTal avatar Feb 28 '25 03:02 HamRusTal

Can Codist be fixed to not delete ANY Jump List items if the feature is turned OFF?

The JumpList class in .NET Framework does not provide any API to do so either.

It takes quite a lot of work to deal with that type of stuff without existing APIs. I can not afford the time at this moment.

wmjordan avatar Feb 28 '25 23:02 wmjordan