« first day (2514 days earlier)      last day (666 days later) » 

@this got it; thanks!
 
RELOAD!
[Minesweeper] Games Played: 99, Bombs Used: 62, Moves Performed: 11721, New Users: 11
 
Exception thrown: 'System.Threading.Tasks.TaskCanceledException' in mscorlib.dll
2021-04-23 20:05:31.9605;INFO;Rubberduck.UI.Command.MenuItems.CommandBars.AppCommandBarBase;System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Rubberduck.UI.Command.MenuItems.CommandBars.RubberduckCommandBar.<OnSelectionChange>d__9.MoveNext() in E:\De
^ selecting things faster than RD can keep up
 
[rubberduck-vba/Rubberduck] build for commit fce9740f on unknown branch: AppVeyor was unable to build non-mergeable pull request
BUILD FAILURE!
 
@Duga I don't even get a link to the build?
wait ugh
@SonGokussj4 when that commit builds and merges the menu commands' CanExecute logic will be evaluated as an async task, as well as the commandbar's selection-aware labelling; starting a new parser run cancels these tasks, as does clicking anywhere in a code pane / changing the current selection. There's still a lag, but it logging TaskCanceledException means it's working
 
12:18 AM
@MathieuGuindon not all menu commands' "CanExecute" depend solely on the parser state IINM...
so you might need some semi-advanced invalidation mechanism
 
        public async Task EvaluateCanExecuteAsync(RubberduckParserState state, CancellationToken token)
        {
            var usableMenuItems = _items.Where(kv => kv.Key != null && kv.Value != null && !kv.Value.IsWrappingNullReference);
            foreach (var kvp in usableMenuItems)
            {
                token.ThrowIfCancellationRequested();
                var commandItem = kvp.Key;
                var canExecute = false;
                try
                {
                    canExecute = await Task.Run(() => commandItem.EvaluateCanExecute(state), token);
oh shoot that's the AppCommandBar
so yeah that's the ParentMenuItemBase:
    public async Task EvaluateCanExecuteAsync(RubberduckParserState state, CancellationToken token)
    {
        foreach (var (key, value) in _items)
        {
            switch (key)
            {
                case IParentMenuItem parentItem:
                    await parentItem.EvaluateCanExecuteAsync(state, token);
                    continue;
                case ICommandMenuItem commandItem when value != null:
                    _uiDispatcher.InvokeAsync(() =>
                    {
                        try
 
[rubberduck-vba/Rubberduck] build for commit f994765c on unknown branch: AppVeyor build succeeded
 
unless I messed up, that would run everything in an async task, queue up the UI updates on the UI thread, and cancel when it can
passing the token to the individual implementations feels too invasive though
 
¿False positive on Application.Worksheets(sheetName).Range(CellAddress) for ImplicitActiveWorkbookReference?
 
@IvenBach nope, there's a test that's specifically for that case
// Application.Worksheets *always* refers to ActiveWorkbook
something like that :)
 
12:54 AM
[rubberduck-vba/Rubberduck] build for commit 695fea04 on unknown branch: AppVeyor build succeeded
 
1:05 AM
@MathieuGuindon I suck at multi-threading so this might be obvious but --- if CanExecute is async, doesn't that mean there'll be the effect of a menu opening with stale value?
 
we invoke it synchronously just before showing a context menu, no?
that mechanism is for the triggered runs from OnSelectionChanged and OnParserStateChanged
the idea is to cancel as much work as possible when OnSelectionChanged re-enters
the CanExecute run happens between two clicks in the code pane basically; and we only need the UI thread for a small part of the work here
 
and neither events will fire on menu navigating?
 
parser state can change while navigating a menu
that shouldn't be a problem?
 
I think that was already the case prior to your changes.
 
1:13 AM
I think no, it shouldn't be a problem
This would break if we were able to click outside the menu and not dismiss the menu
 
I'm going to try to profile OnSelectionChanged to see where there might be a bottleneck
 
since that'd possibly fire the selection change but I don't think it's possible to click and keep menu active.
 
nah the menu gets dismissed immediately
 
1:26 AM
ov vey what a rough week
sooo glad this is over.
 
TGIF!
I think I need more Pascal scripting, the installer should do something different if a rubberduck.config file already exists
 
1:53 AM
  if IsUpgradeApp() = NoneIsInstalled then
  begin
    WorkloadOptionPage :=
      CreateInputOptionPage(
          wpInstalling,
          ExpandConstant('{cm:UseLegacyWorkloadCaption}'),
          ExpandConstant('{cm:UseLegacyWorkloadMessage}'),
          ExpandConstant('{cm:UseLegacyWorkloadDescription}'),
          false, false);

    WorkloadOptionPage.Add(ExpandConstant('{cm:UseLegacyWorkloadButtonCaption}'))
    WorkloadOptionPage.Values[0] := false;
  end;
^ @this that would work, right?
 
2:03 AM
hmm should it be calling s function instesd of hsrdcoding false?
 
IIUC that just makes the checkbox unchecked by default, no?
 
yes it would
 
that's what we want then.. I think
 
yes so i always get to choose
 
lol for a split-second I thought I pushed the commits to the wrong branch
 
one question. if i am installing and i already have a config and i check legacy, it will overwrite my existing config?
 
and you'll be checking a box that says "overwrite current Rubberduck settings with the legacy config"
I'm waiting for the build to download the installer asset and run it on my work laptop :)
 
ok yes i missed that. good, no surprise.
in future coyld add a backup routine to quickly revert or restore
 
yeah
perhaps rubberduck.config.{oldversion}
or rubberduck.{oldversion}.config
 
2:29 AM
yeah
i think that will br an appreciated feature
 
I think keeping the same extension would make it easy to import
 
nice job!
 
:)
I can Pascal!
 
yes in future pr have ability to save and load saved config
but did you eat a quiche?
 
no but I played a little tune on harmonica
 
2:31 AM
lol
 
I'm so itching to merge the argcontext PR
but that async stuff is dangerous
and I want to get to the bottom of what's causing the lag if tasks are cancelling
in other news I think we need to re-attach the hotkeys after navigating to a module that wasn't already opened
it looks like that's what's causing them to detach after the first "find symbol" executes
hm, it looks like it's every OnStateChanged handler doing its thing and dispatching UI work
if viewmodels knew about some IsShown state, we could skip that work
 
[rubberduck-vba/Rubberduck] build for commit 2b48bd52 on unknown branch: AppVeyor build succeeded
 
2:50 AM
@this any idea why it wouldn't be overwriting the existing file if I'm local admin and installing for all users? does %appdata%\Rubberduck not map correctly?
 
> The "user" constants refer to the profile of the user running Setup. This user is often not the same as the currently logged-in user, so use the "user" constants with caution
not sure that explains though, since we srent using suto
but as a sanity check all users profiles
 
"{userappdata}\{#AppName}"
 
yes i would expect that to not change just because its elevated...
but need to confirm that’s really the case
 
seems it's nowhere
are we outputting the install log somewhere?
 
3:05 AM
nice, got it
> 2021-04-23 22:47:03.165 Skipping legacy workload config because the option was left unchecked.
#ThisExplainsThat
 
16
A: How can I log Inno Setup installations?

JasonMcFFollowing the comment from Lars I used the DeinitializeSetup() procedure, but I also changed the new file path to use the {src} constant to copy the log file to the directory that the installer is run from instead of {app} constant which may/may not be created if the user cancels the installation...

but do we need to, if the file is in %temp%?
 
yesh s mixed bag
gtg
 
thanks, later!
 
3:33 AM
[rubberduck-vba/Rubberduck] retailcoder pushed 11 commits to next (only showing some of them below)
[rubberduck-vba/Rubberduck] retailcoder pushed commit 743c3e63 to next: fallback to the invoked procedure when inside an argument list
[rubberduck-vba/Rubberduck] retailcoder pushed commit ef55b69e to next: include whitespace in argument selection
[rubberduck-vba/Rubberduck] retailcoder pushed commit af561862 to next: always use 'Object' instead of 'IDispatch' for the typename
[rubberduck-vba/Rubberduck] retailcoder pushed commit 0ca3f6f3 to next: fixed broken test, addressed compiler warning
[rubberduck-vba/Rubberduck] retailcoder pushed commit 46452a1a to next: Make 'Find all References' argument-aware too
[rubberduck-vba/Rubberduck] retailcoder pushed commit 3b0d0942 to next: Added ForbiddenAttribute to mark keywords, reserved identifier names, and other forbidden names; adjusted name validator accordingly.
[rubberduck-vba/Rubberduck] retailcoder pushed commit 43a4d41d to next: cleaned up
[rubberduck-vba/Rubberduck] retailcoder pushed commit fce9740f to next: move IMenuItem.CanExecute and commandbar/selection string to async tasks;
[rubberduck-vba/Rubberduck] retailcoder pushed commit 695fea04 to next: merge upstream
Merge pull request #5740 from retailcoder/argcontext

Makes SelectedDeclarationProvider argument-aware and moves parts of the work to an async task.
 
1 hour ago, by Mathieu Guindon
I'm so itching to merge the argcontext PR
 
[rubberduck-vba/Rubberduck] build for commit 5030f37c on unknown branch: AppVeyor build succeeded
 
3:49 AM
> 2021-04-23 23:48:29.691 Skipping legacy workload config because the option was left unchecked.
wtf
 
@Duga will fail, I blew that merge
 
4:34 AM
[rubberduck-vba/Rubberduck] build for commit 3403cfb3 on unknown branch: AppVeyor build succeeded
 
5:08 AM
[rubberduck-vba/Rubberduck] build for commit 39a2ae14 on unknown branch: AppVeyor build succeeded
 
 
18 hours later…
11:46 PM
[rubberduck-vba/Rubberduck]: 1326 stars vs. [decalage2/oletools]: 1520 stars
 

« first day (2514 days earlier)      last day (666 days later) »