« first day (1291 days earlier)      last day (1889 days later) » 
00:00 - 21:0021:00 - 00:00

9:01 PM
NVM, the 98 failed are because this branch isn't using the ignore.
Down to 6 fails.
 
woot!
 
that is with what?
Sam's 4.6?
 
Yeah.
 
sweet-um!
is it any noticably faster?
 
ugh. rename is caching stuff. this can't be good.
(or the naming clash checker, at least)
 
9:09 PM
No.
 
@this he probably doesn't have any large-enough VBA project to notice :)
 
1 failing test.
 
still 60 skipped?
I smell a PR coming...
 
Just the ignored ones.
But yeah, we have a zillion inspection ones skipped ATM (fixed in the experimental PR).
 
not sure I understand. it works or not?
 
9:12 PM
It does.
Except for the some of the def* stuff.
 
hmm, extract interface is enabled even while parsing
 
@Mat'sMug IDK if relevant but I've seen funky bheavior with enabling/disabling
when I'm testing EM, i have to select from left to right but not right to left
(why? seems so retarded but I had other balls to juggle....)
 
hmm
I'm seeing funky behavior with in-editor selections altogether
i.e. RD will understand what's selected, but the context-selection label on the toolbar doesn't reflect that, and isn't showing line numbers. at least not consistently.
 
yeah tha'ts my boservation
 
IDK what's causing it, been observing it for quite a while, thought it was fixed, then it came back
the more I rename stuff, the longer resolution seems to take
still reasonably performant, but noticeably slower than before starting the rename spree
 
@Mat'sMug remember the memory leak?
 
@this lol, which one?
 
Yeah, which memory leak?
 
Mine. Because it's the most important.
What else? :p
pppfffft. concentrate ath that end.
cos it's mine, see?
 
9:32 PM
How'd you find my coding pictures?
 
@Mat'sMug Can an identifier ever have - in it in VBA?
> IDENTIFIER : ~[[]()\r\n\t.,'"|!@#$%^&*\-+:=; 0-9-/\] ~[[]()\r\n\t.,'"|!@#$%^&*\-+:=; ]*;
Does that rule fit?
Because it is matching C-B as an identifier when it should be a range.
 
no, not valid as i see it
checked for field, function name and variable - all turn up red and TBH I don't think it's even possible to use - in a part of identifier. _, yes.
 
@Hosch250 an Enum Name can have a hyphen, if the identifier is wrapped in square brackets.
 
Public Enum c-b

End Enum
welp, poop. (that's prety-printed, though. I had to put in bracket)
that should require 10 slaps with most smelliest halibut
 
9:48 PM
@this Public Enum [:Foo = 42: End Enum]
 
....... no, no amount of fish slaps going to fix that. ONly recourse is to take that coder out behind the barn and shoot htem
3
 
Lol, doesn't matter how good your parser is, pretty printed Enums will always be a problem.
 
@ThunderFrame Meh, throw a inspection How dare you profane VBA with your presence. You do not deserver to be coding. Begone or we will taunt you a second time.
 
10:38 PM
> In all seriousness, there’s no pressure, but we would appreciate it if you decide to.
 
10:59 PM
@Hosch250 / @Mat'sMug just fishing for opinions - if you had a method that involved some manner of I/Os, would you write a unit tests that interacts w/ temporary folder that you create (e.g. a test fixture) or would you use abstractions (e.g. System.IO.Abstractions) or would you go for integration tests instead?
 
No.
I would separate the IO into its own method.
Then I'd just test whatever handled the data.
 
but the test is to prove that file was created or copied?
 
It isn't my business to test .NET or any other library.
Nope.
 
that's basically what the method is doing.
 
Manually test it, and forget it.
 
11:00 PM
no data per se. OK
just to be complete -- if the method also includes a try/catch and I needed to test that the logic works correctly (e.g. it deletes the temporary file if it can't replace some existing file in the catch block) . Does that change the answer?
 
Not really, except I'd design the actual IO call into a method that does just that IO call.
Then everything else can be tested and that method can be mocked.
Like, I'd create an IDataWriter.
 
hmm, yeah.
I guess in my case, I need something like IFile and implement Copy, Move, and Delete if I wanna to unit test the logic responsible for deciding which branch to take WRT a given set of files.
 
I'm down to a single failing test and maybe an ignored one or two--I haven't gone through every single ignore.
I pushed to my own fork, but I'm going to take a break now.
 
nice!
 
Something like that.
 
11:05 PM
Thanks for bouncing back, @Hosch250.
 
NP.
 
FWIW that may be of interest for making stuff private in RD...
 
11:34 PM
@this ask yourself if you're testing your logic, or if you're testing the framework/std.library
 
@Mat'sMug heh, yeah I came to the same realization after I was done pestering Hosch.
That was the epiphany I was missing until just now
and now the idea of abstraction is a bit more clearer to me; we just wanna to abstract out the framework, the environment --- basically we need an abstract jungle and an abstract gorilla so I can concentrate on the banana
banana being the logic of the program
cos I don't care if the file was moved; I only care that the logic says correctly that the file ought to be moved (or not)
 
Exactly
 
For me, I was getting tangled over the "But! what if the file didn't move! I have to test that!" - in that case, I have to just have my abstraction tell that it wasn't moved so the logic can react accordingly.
 
IOW trust that creating a file creates a file. If you need to test what happens when creating a file throws an error, then setup your mock file to do that in a test
 
exactly.
 
11:46 PM
and that's where "expected error" tests kick in
 
@Mat'sMug I'm missing pretty hard on github.com/rubberduck-vba/Rubberduck/issues/3485. I think I'm in the correct spot now. Are you available for a bit of help?
 
(my scenario is the latter, hence my need to mock the File and Path classes. The answers on the SO did not really make that point clear, IMO.
there were posts suggesting creating fixtures or to use integration tests instead. That'd work but misses the point of testing all the branches that the program should travel and verifying it's correct.
 
@IvenBach what's up?
 
        public ListCollectionView InspectionSettings
        {
            get => _inspectionSettings;
            set
            {
                ////ORIGINAL
                //if (_inspectionSettings != value)
                //{
                //    _inspectionSettings = value;
                //    OnPropertyChanged();
                //}
                var unsortedView = value;
                var sortedView = SortInspectionSettingsIn(ListSortDirection.Ascending, value);
                if (_inspectionSettings != sortedView)
I'm trying to sort the list of 'Code Inspection Settings' so that it'll be in alphabetical order.
Doing so trumps the ordering of Code Quality, Language Opportunities, Maintenance, RD opportunity.
 
Not a good fix then
Where's the by-type sort defined?
 
11:52 PM
the by-type?
 
Code Quality / Language opportunities / etc.
You need to locate where that sorting/grouping is happening, and then add a level to the sorting
 
I'd have to traipse up to try and locate it.
I'll ping again if I can't figure it out. I'm pretty sure I'm missing the mountain hidden behind the molehill.
 
So there's a grouping, but no SortDescription
hence the grouped but unsorted items
 
maybe I'm the captain oblivious here but isn't IvenBach also missing an OrderBy() LINQ call somewhere?
 
No. The ListCollectionView needs a SortDescription
 
00:00 - 21:0021:00 - 00:00

« first day (1291 days earlier)      last day (1889 days later) »