« first day (1655 days earlier)      last day (1525 days later) » 

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 2 issue comments.
 
 
2 hours later…
2:01 AM
@Comintern Tools>Options>Projects and Solutions>Build and Run> 2 max # of parallel project builds made no difference WRT failing builds.
@this I do not have an obj folder in the main RD folder.
 
OK. I've been trying to clean up some xaml in the CE in my branch that might eventually help.
 
Apologies for delayed response time. Holiday stuff is butting in on RD time.
 
NP
I'm here all week.
 
 
1 hour later…
 
1 hour later…
4:29 AM
OK. I think I got almost everything working in the CE now. Film at 11.
 
 
1 hour later…
6:47 AM
@Comintern Is this the AvalonEdit version of RD?
 
 
1 hour later…
7:49 AM
No, it is the enhanced CE.
 
8:17 AM
> For info with this issue, renaming the relevant object from the the event handler code, works correctly - it pops a message to ask if you want to rename the control instead of the event handler - so this can be used as a work around for the time being.
 
 
1 hour later…
 
2 hours later…
11:20 AM
@this I think I have an idea how to emulate the member scopes for the member annotations. I will open a PR in the coming days.
 
 
2 hours later…
1:09 PM
@IvenBach No, that's just a couple CE features.
 
@Comintern looking good!
@Comintern try the veal!
 
Thanks. I just need to figure out why it wants to expand everything.
 
I think you'll have to store the expanded states
 
1:25 PM
@Comintern while not ideal, auto-expand is better than auto-collapse.
 
^
@M.Doerner awesome!
 
@this I already do, but for some reason it sets everything to expanded when it first loads. Did it do that before I started messing with it?
 
no
in fact it wouldn't expand anything.
e.g. I search for "Left", all I get are a bunch of folders
From where I stand, what you have at the end of the film is an improvement
 
Oh, I didn't mean the search - I'm talking about the first time it opens.
 
yes, clarify - it's been the same regardless whether we talk of searching or of loading for first time
 
1:30 PM
OK, it must be something in the node update when the parser state changes then. That's the part that was broken when it sucked me in.
And we're cool with getting rid of the text in favor of tooltips on the dropdowns? That frees up a ton of real estate on a narrow toolbar.
 
Any Ruby or C/C++ experts here? Help me solve this issue and I will send you $100 (PayPal or Bitcoin): #ruby https://github.com/yegor256/futex/issues/5
 
yeah and conveniently sidestep that weird label + combobox alignment I reported earleir
 
Yep. I broke a couple crowbars trying to jam another button in there.
 
^ yikes!
 
a question & a comment --
1) when a reference is unused, the entire text is greyed out, right?
 
1:38 PM
@Comintern gets my vote for sure. text on toolbar buttons should be rare IMO
CE vid looks awesome :-)
just installed 2019 preview
 
2) I'm a bit ambivalent about displaying major/minor. For one thing, VBA (4.2) looks like it's using VBA 4 rather than VBA 6/7. And I'd have no idea what to make of Excel 1.8
 
Re #1:
 
Excel 2016 Object Library is more useful for eyeballing that the references are sane (especially when the reference isn't the one managed by the host)
Perfect.
 
Re number 2:
 
@Comintern that'll show 'em!
 
1:43 PM
The versions are currently tied to the method signature button.
 
oh it's toggleable? Ah, gotcha.
Does it display the full name via a tooltip?
 
As far as the full descriptions go, that needs to go in the area at the bottom - some of them are ridiculously long.
 
:48099436 how about making the description the main node text, and the dll short name \ version the fx sig?
 
I was planning on linking the full name to the tooltip, yes. It's not bound yet though.
I was mainly trying to avoid jamming something like "Microsoft Visual Studio Tools for the Microsoft Office System Loader 1.0 Type Library" in there.
 
I agree. I really don't see how I can go from VBA (4.2) to more useful VBA 7.
@Comintern and yeah that definitely doesn't belong on CE.
 
1:47 PM
another thought - [do \ should] we have the references node split by type a la VS? e.g. COM, projects, (components -VB6) etc?
 
That's a should at this point. It's set up to do that though - I just overlooked the "reference folder" sort.
 
ooh - after a parse we could even have a node for Imports - all the Declares and the libs they come from...
 
that'd make CE a bit too much like OB
 
I was thinking that would be better housed in the OB.
 
I'd rather it be its own thing.
 
1:51 PM
^
 
^^
 
fair enough
 
OK, that was easy - I found the over-expansion thing.
 
^ turned the air compressor off
 
LOL
 
1:54 PM
Funny that you compress air in order to inflate something, no?
 
re #2, how about putting the dll name in there too - e.g. stdole (stdole2.dll v2.0)
does that make it more obvious it's a file version?
 
hmm. but 95%+ of the time, the dll name is same as the library name.
 
agreed, but it matches with what we do at the project node... more consistent?
besides, it's not always a .dll - could be an exe, an olb... seems to be useful info?
 
The dll path might be better the display area below - that would match the add\remove dialog.
 
agreed on the path, was thinking just the filename
and only when sigs are toggled on
 
2:08 PM
I could do that. It might make it more clear that the version is the dll version.
 
Yeah, I think that would do the job.
 
2:49 PM
@Comintern now that is some next-level Code Explorer! awesome work!!
 
^^
 
@MathieuGuindon Thanks. Debating whether or not that should be its own PR - it's kind of tied into the references one, but I had to fix a bunch of CE stuff to link them up and threw a couple enhancements in while I was in there.
 
refs is kind of a prerequesite for this, no
 
3:02 PM
if you think refs is done, we could just merge and you can open a new PR on same branch
kind like what Max did with his PRs.
 
(and chide yourself for not having started a new branch. ;-) )
 
Yeah, yeah... this all started from finishing the references dialog, but I should have branched. There are one or two minor UI fixes that haven't synced yet, but it should be mergable.
The PR for the code explorer integration should be ready either tonight or tomorrow.
 
> Version 2.3.1.4308

I have noticed that the code inspection window will sometimes not display expected results.

Noticed this against **Procedure Not Used** & **Statically accessible sheet accessed using string**.

I cannot replicate for the Procedure Not Used at the moment, but have replicated for Statically accessible sheet.

Logs attached - log for Showing has 4 instances, I then ignored one and reparsed and they all disapeared. This is exact same behaviour to what I have seen for P
 
@Duga false negatives?
 
3:10 PM
Failed to resolve "<STYLE TYPE='text/css'>TH{font-family: Segoe UI; font-size: 10pt;font-weight:bold;}TD{font-family: Segoe UI; font-size: 10pt;} table, th, td {border: 1px solid black}</STYLE><font face='Segoe UI'>" & EmailMessage & _
                "Lines priced: " & TotalLines & " / Special Priced: " & MainForm.Range("AQ17") & " / Needing Auth: " & Needing_Auth & "<br>" & PricingTooMany & _
                "Account Name: " & Account_Name & " [£" & ActiveSheet.Range("ExtraSpend") & " - " & ActiveSheet.Range("Sector") & " / Discount " & (ActiveSheet.Range("Discount") * 100) & "%] <br> <br
WTH does it think it needs to bind that?
I'm thinking from the log that the code wasn't compilable.
 
@Comintern because we don't have enough jQuery?
 
2018-12-17 15:00:56.1964;WARN-2.3.1.4308;Rubberduck.Parsing.Symbols.IdentifierReferenceResolver;Default Context: Failed to resolve ThisWorkbook.Sheets(Sheetname).Range("A2").Value = "NO PRICING FOUND TO UPLOAD". Binding as much as we can.;
2018-12-17 15:00:56.2274;WARN-2.3.1.4308;Rubberduck.Parsing.Symbols.IdentifierReferenceResolver;Default Context: Failed to resolve Text_String <> ThisWorkbook.Sheets(Sheetname).Range("A" & Pass + 1).Value & vbTab & _
       ThisWorkbook.Sheets(Sheetname).Range("B" & Pass + 1).Value & vbTab & _
 
2018-12-17 15:00:59.8284;WARN-2.3.1.4308;Rubberduck.Inspections.Rubberduck.Inspections.Inspector;System.NullReferenceException: Object reference not set to an instance of an object.
   at Rubberduck.Inspections.CodePathAnalysis.Walker.GenerateTree(IParseTree tree, Declaration declaration) in C:\projects\rubberduck\Rubberduck.CodeAnalysis\CodePathAnalysis\Walker.cs:line 72
   at Rubberduck.Inspections.Concrete.AssignmentNotUsedInspection.DoGetInspectionResults() in C:\projects\rubberduck\Rubberduck.CodeAnalysis\Inspections\Concrete\AssignmentNotUsedInspection.cs:line 33
 
Oh, I get those too. I thought it was mentioned on an issue.
 
I must have missed it.
 
3:13 PM
I could also be mistaken.
 
couple exceptions left & right in inspector though
2018-12-17 15:00:58.1904;WARN-2.3.1.4308;Rubberduck.Inspections.Rubberduck.Inspections.Inspector;System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Rubberduck.Inspections.Concrete.ProcedureCanBeWrittenAsFunctionInspection.<>c__DisplayClass4_0.<DoGetInspectionResults>b__3(QualifiedContext`1 context) in C:\projects\rubberduck\Rubberduck.CodeAnalysis\Inspections\Concrete\ProcedureCanBeWrittenAsFunctionInspection.cs:line 40
 
I almost think a lot of these are due to the parser barfing on an un-closed string literal. That may be why the OP can't replicate it.
OHAI. I should have started at the bottom.
2018-12-17 15:02:01.0154;WARN-2.3.1.4308;Rubberduck.Inspections.Rubberduck.Inspections.Inspector;System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
   at Microsoft.Vbe.Interop._VBComponent.get_Properties()
 
@Duga but the annotation factory doesn't instantiate the base class? what am I missing here?
 
@Comintern oof. that might be the same issue I observed w/ Access design time + parsing.
it seems that VBComponent.Properties does like being tickled.
 
3:21 PM
> Please note that the base class you refer to is not AnnotationBase but AttributeAnnotationBase, which is the base class for annotations belonging to attributes. That the values are stored in an IReadOnlyList<string> is in line with how attribute values are stored and allows to check whether the values agree in a generic way.
 
pours more caffeine
 
[rubberduck-vba/Rubberduck] retailcoder pushed 17 commits to next (only showing some of them below)
Change how attribute annotations work

Now they have different properties for the attribute and the values. This makes validating whether the attributes are in sync with the annotations considerably easier.

Moreover, whether a module attribute annotations is deemed to have a matching attribute no longer depends on the value of the attribute. That was a problem for developing an AddMissingAttributeQuickfix as it would duplicate attributes otherwise.
Add generic module and member attribute annotations

These allow to use the annotation system for any attribute, not just the selected few we have hard-coded.
[rubberduck-vba/Rubberduck] MDoerner pushed commit a065d3d5 to next: Add tests for MissingAttributeInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit e66ed4e0 to next: Fix inspection result property handling of MissingAttributeInspection
[rubberduck-vba/Rubberduck] MDoerner pushed commit ff6ba2e8 to next: Add AddMissingAttributeQuickFix
Correct wrong assumption about possible member attribute positions

Apparently, they always have to be on the first line after the start of the member.
Some null security in annotation ctors

Also some minor tweaks based on review remarks for PR #4641
Changed AttributesUpdateer methods from assert to logged guard clause

Also adds more guard clauses, with logging if it can only happen due to a implementation error.
Chang "True" to Tokens.True in Attributes methods

Also fixed a bug in HasHiddenMemberAttribute.
Merge pull request #4641 from MDoerner/AddMissingAttributeQuickfix

Adds quickfix for missing attribute inspection
 
bah...
 
@Duga is that a new thing w/ Duga? Did it used to simply "x pushed N commits"?
 
...\BuildRegistryScript.ps1 : The term 'midl.exe' is
18>not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
18>if a path was included, verify that the path is correct and try again.
 
3:26 PM
OK, then the logic isn't robust enough.
oh wait, that's current version
do you in fact have the C++ build tool?
 
i haven't synced with upstream/next in about a week
@this not sure, checking
i just install the c++ feature in VS right?
 
easiest way to find out is to launch vs developer command prompt
type in midl
no,, no, i'm not saying you should.
it's optional.
 
Don't you also need the Windows header files?
 
no.
 
midl : command line error MIDL1000 : missing source-file name
 
3:28 PM
so you do have the build tools.
 
yeah
 
but evidently the environment isn't getting set up right in order to run it
 
lemme try pulling from upstream
 
that doesn't have the changes, though.
my "fire-PowerShell" PR is still open
hehehe, that reads like a PS cmdlet. how poetic.
 
3:29 PM
@this ah ok
 
no biggie, I'm not desparate to build atm - my branch is still a construction site...
 
I don't believe there is a way to make your script faster since I don't believe VBA can be multi-threaded. The only other way is to create an array of the rows that satisfy your condition, and only loop through that new array, otherwise you will have to use something other than VBA to perform this action. — Ramhound 7 mins ago
 
@MathieuGuindon buried in the VBASDK docs is the reason that MS wanted to multi-thread VBA. Nothing to do with making Excel macros more badass, they had a vision of users being able to implement business logic components and have them run on a middle-tier...
 
except throwing more threads at this code isn't going to help with anything
 
3:36 PM
lol ok, didn't even read OP :-)
 
that comment is basically "vba sucks, that code is as good as vba gets, use something else"
 
@mansellan that said, I do need a guinea pig...
 
@this squeek!
happy to help
 
you can just pull from my PR's branch in to a separate branch and just see if it builds
 
grabs coffee
 
@this cloned your repo and switched to DeploymentEnhancement. Built fine, want me to test anythhing else?
(that was on 15.9.2 btw)
 
i'd also test clean and rebuild.
and it sounds like it did correctly resolve the midl path
 
cleaned, rebuilding now
 
and then rebuild again (without clean)
 
ok
clean\rebuild worked, rebuilding without clean
builds fine
f5 works too
 
4:00 PM
sweet.
thanks for testing!
 
yw :-)
 
now to find me few more guinea pigs....
 
try Iven ;-)
 
already did that last week. He can't build.
(which is not unexpected, since my PR deals w/ deployment which comes way too late; he's stuck at core.)
 
4:01 PM
yeah
 
thinking of pulling your branch into mine so I can build
 
@mansellan i plan to add one more commit to it to address the issue w/ designer. I also need to confirm with more that it does improve the build experience which may or may not change the content. If you plan to make a PR soonish, you might not want to tie that in.
 
my PR won't be for a while, will likely need to rebase it later anyway
 
4:09 PM
> You could nest another loop, so it will check al the rows not just the one below to it.
@Comintern that makes it O(MG), right?
 
@MathieuGuindon At least.
 
@this yay, that fixed my branch :-)
 
wtf, my comment was flagged & removed
and the downright offending lie remained
 
Which question?
 
I don't believe there is a way to make your script faster since I don't believe VBA can be multi-threaded. The only other way is to create an array of the rows that satisfy your condition, and only loop through that new array, otherwise you will have to use something other than VBA to perform this action. — Ramhound 55 mins ago
 
4:21 PM
omg... how many ActiveCell.Offsets is OP using?
 
but hey, needs MT
 
@Ramhound - This has nothing to do with multi-threading. Cell reads from Excel aren't thread safe anyway, so attempting to multi-thread against the Excel worksheet APIs is a recipe for disaster. There are plenty of solutions that should be able to do this basically instantaneously on a single thread (as evidenced by the answer below). — Comintern 12 secs ago
I wonder if dmb is short for dumb.
^ that would be an offensive comment.
 
I'm just curious - does Excel have all commands exposed in the OM?
 
no
well, the vast majority of them, but no, not all
 
so there's no way to invoke Remove Duplicates? bummer.
 
4:33 PM
You mean Range.RemoveDuplicates?
 
ah ok, then yeah, they're make-working.
 
Multi-threading comment is gone.
 
eye for an eye flag for flag
 
This question is why I rarely head over to super user.
 
I vowed to never answer there ever again
 
4:38 PM
> Late binding seems to have overcome the issue, perhaps because I am creating the 64-bit object from the 32-bit application and only using objects in the 64-bit application that were created by the 32 bit application?
uh....
 
#magic
> Is there likely to be a reliability issue?
 
I don't even know what to say. It contradicts all I know.
 
^ That still has me confounded
 
Morning pond.
 
Something's not right because it should be literally impossible to use wrong bitness library in-process. You can interact using interprocess communication (e.g. running it out of process) but certainly not in process. Can you double check you are in fact using 64-bit or 32-bit for both applications? — this 21 secs ago
 
who knows. Maybe Project is doing it all out-of-process or some kind of magic.
@IvenBach I pretty much agree though there's lot more to be said about the subject.
 
@this Yes. The first thing that stood out to me is the O(n^2) of his implementation. Reeks of the need for more refactoring.
 
@IvenBach The only flaw in that is sometimes you can't get more money to upgrade the hardware even if it's only $20 or $30. My stuff would run a lot faster on a faster processor & with more RAM in this new box, but the real miracle is that our IT managed to finagle his way through our archaic corporate IT structure to get me a new PC in the first place. Don't even get me started on the nearly decade old laptops that most of our staff are still using.
 
You can always argue #ItDepends.
We do the best with what we got.
 
@MatthewHagemann I'm not exactly sure what you were expecting as an answer then. The question "crash Excel in exactly the same way that it crashes on a user's machine so I can figure out why it crashes" is oddly specific (and would require a little more omniscience than most of us on SO have). — Comintern 7 secs ago
 
4:51 PM
Also, I think there's some demand for hackers in the lower levels of the abstraction chain - closer to the hardware. It doesn't seem a good idea to me to not optimize at these levels, as every % efficiency down there might save dozens of % at higher abstraction levels.
 
> It doesn't seem like it was fixed after all. I rebooted my laptop and the problem returned, even with the DPI Unaware setting ticked. I never rebooted between setting the DPI Unaware flag, and it seems as if I need to boot with the interface scaling at 100% for it to work properly. If I then change the interface scaling to e.g. 125% after booting, rubberduck works fine. However, if I reboot with it set to 125%, RD will have these issues no matter what I set the interface scaling to afterwards.
> Just to help us rule it out - does it work if you disable the VBA Code Cleaner plugin?
> No, uninstalling it doesn't make a difference.
 
@Duga figures wouldn't be as easy as that.
 

« first day (1655 days earlier)      last day (1525 days later) »