« first day (1957 days earlier)      last day (1223 days later) » 

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 3 commits. 1 opened issue. 1 closed issue. 14 issue comments. 36 additions. 18 deletions.
[Minesweeper] Games Played: 98, Bombs Used: 59, Moves Performed: 13099, New Users: 15
[rubberduck-vba/Rubberduck] build for commit 175de28c on next: AppVeyor build succeeded
 
@this I suppose... they're probably what, 2K commits behind?
 
 
8 hours later…
7:57 AM
I think I will open PRs for better explanation what Columns, Rows and Cells do to the documentation repository.
 
 
1 hour later…
9:13 AM
 
9:24 AM
 
 
2 hours later…
 
1 hour later…
12:12 PM
Wow! !(Busy night)
 
1:07 PM
@M.Doerner Do we also have to consider the Range and Item properties, too? There's also Value for when no parameters are provided (is Value2 even used?) That's at least 4 different properties, which is a bit more than typically expected for a xmldoc on an inspection.
@MathieuGuindon More like 4K+ behind. :)
 
2:01 PM
The examples in the documentation for Range.Range are useless; they all use Worksheet.Range, which is another method, which just does the same for a worksheet.
Oh wow, the last example is actually a bug.
 
2:13 PM
@this The Range member does not correspond to the default member.
No parameters is another inspection.
 
But in the case of Item, the behavior of _Default is changed, no?
I was not sure if that was true for the Range but from a superficial reading of the docs, it seems to have no bearing on how _Default will behave.
 
Whenever parameters are provided, [_Default] behaves exactly as Item.
 
Then I may have misunderstood. I understood that if it's via Columns or Rows, the behavior of _Default changes.
 
I guess I should also make a PR to the doc for Range.Item.
 
and without the parameters, _Default becomes just Value (Value2?)
 
2:20 PM
So does the behaviour of Item.
It becomes Value.
 
My concern is more about understanding how _Default maps to different properties under what circumstances.
From what you've told so far, it seems to be just either Item and Value
(and that Item has more nuanced behavior, depending on the prior member access, if any)
 
Still, not exactly intuitive nor unsurprising.
 
I think I will really do a PR to the docs for the stupidity around Item.
I guess somebody just wanted to be clever when Columns and Rows was introduced.
And we all know how well clever implementations do.
2
 
^
 
2:40 PM
> Hey @retailcoder this is great stuff! Any idea when your next stable release will be? Last one was in march...
 
@Duga lol tell me about it...
 
> The current plan is early to mid November.
> @MDoerner fantastic thanks!
 
@MathieuGuindon We have a pinned chat message for it.
 
3:28 PM
Nuttin' like random Joe swinging the motivation hammer, eh?
 
4:06 PM
> **Justification**
VBA native syntax allows me to use the Rem keyword to create a comment for "REMmerbering" me something.

**Description**
What the Explorer is doing is just showing me the comments marked as <'Rem>, and not also the <Rem> ones

**Additional context**
I have lots of things with the <Rem> keyword being used and I would love to see those in the Rubberduck Explorer.
 
@Duga huh, but todo labels don't care what the comment marker is, do they?
work-around: use "fix all" on one of the many "use of obsolete Rem keyword" inspection results?
 
@Duga The Rem is not part of the comment.
 
no repro
 
Huh?
What did you test?
 
> No repro with a rather outdated v2.4.1.5033 build:

![image](https://user-images.githubusercontent.com/5751684/66849414-d6149b00-ef44-11e9-9f66-990858ed0c8b.png)

Note that the `Rem`ark keyword is obsolete, and will be flagged as such in inspection results (unless the inspection is disabled): they can easily be converted to single-quote comments with a quick-fix.
 
4:13 PM
^ @M.Doerner this. Or am I missing something?
 
I think you are missing what OP is asking for.
 
entirely possible
 
He wants to see Rem whatever in the ToDo explorer if Rem exists as todo marker.
 
that's... wtf
if Rem is also the comment marker, then it can't happen without making todo comments include the comment marker
 
which is totally wrong, I think.
 
Based on the description, OP uses Rem to mark that he has to remeber it and ' otherwise.
That is what todo markers are for in the first place.
 
> Ok I think I misread your post.

The role of `Rem` in `'Rem something something` and the role of `Rem` in `Rem something something` is different. In `'Rem`, the comment marker is `'` a single quote. In `Rem something`, the comment marker is the `Rem` keyword.

Grammatically, the comment marker is not part of the comment text, which is what TODO markers look at. If you're using `REM` as a TODO marker, you can't use `Rem` as a comment marker. Or you need to do `Rem Rem`, where the first is t
 
@Duga I'm kind of confused. If it's 'Rem, isn't the ' the comment marker and the Rem a TODO marker? The OP sounds like he's using 'Rem, so the Rem has no syntactical meaning.
 
No, 'Rem is reported in the todo explorer, but nor Rem alone.
 
oh right, he said "and also"
Ok now I'm clear. Yeah, the latter, we can't do anything.
Too bad we can't suggest him to use regex search to replace all occurrences of Rem into 'Rem
 
4:35 PM
The current implementation of that feature is not something we should release.
 
I almost was going to suggest using the built-in F & R but the problem is that it wouldn't exclude cases that shouldn't be replace
 
BTW, I have to rebuild meta to activate the analyzer for inspection xml-docs, right?
 
With a regex, you can specify $(w+)Rem.
(I think)
 
RD.Deployment doesn't build RD.Meta?
 
@M.Doerner It should not be necessary to rebuild the meta. This would be done automatically as part of normal build.
 
4:38 PM
right, otherwise AV wouldn't be running them
 
@MathieuGuindon Not really. More like that all projects imported from the base project has a dependency on the build task, which guarantees that meta is built as soon as any one of the project depending on such base project is built
because the meta must be built before any one of the 17 project get built.
 
makes sense
 
I really need to update that wiki about build process.
 
Erm, why do we have an inconclusive test in next?
 
not sure what you mean by that - I guess you aren't referring to the ~30 tests that are ignored.
 
4:41 PM
No, one case of EmptyModuleInspectionTests uses invalid code.
 
> I got your point, so basically the logic was built without taking the Rem native VBA comment marker into account. And, what I get from your comment is that adding such a marker as another way of creating comments is a lot of work to do. And I completely understand that point.

However, having such a change will be really great since as I have mentioned, the Rem marker was intended to be used for that from the VBA creators and now for Rubberduck is a good popint to address so that developers
 
@Duga no, the logic was built without thinking someone would turn a keyword into a TODO marker
 
> The logic was built with the `Rem` comment marker in mind as a comment marker: it is treated like the usual comment marker `'`.

The logic of ToDo markers has been implemented to look for comment markers at the start of the comment, no matter whether it is a comment using the `Rem` keyword or the `'` keyword. In both cases, the comment marker itself is not part of the comment itself.
> @ricardoba13 I'm happy to hear that you love the addin!

I totally understand what you're getting at. However, as mentioned, we encourage people to avoid using deprecated / obsolete keywords and `Rem` keyword would be inspected as such. We also think of the ducky as a helpful guide to help us stay current and use the best practices. For that reason, I'd say that it's probably best for all users that `Rem` keyword was not re-purposed for some other purpose. It's totally fine to go ahead and
> @MDoerner hmm, so the Rem keyword is intended to "Remark" something and not to "Remember" something, if that is the actual case, that's a game changer then. And I have to admit I was wrong!
 
4:58 PM
well it is short for "remark"
@Duga you're not the first or last soul to be saved by the duck then :)
2
 
> Closes #5222

Now, the key used to identify members is (memberName, memberType) instead od just memberName. This is necessary because Get, Let and Set properties share the same name.
 
@Duga Easy fix
 
> @MDoerner @bclothier hmm, so the Rem keyword is intended to "Remark" something and not to "Remember" something, if that is the actual case, that's a game changer then. And I have to admit I was wrong!
 
Why are the examples in the Excel VBA documentation so bad?
They look like random ramblings.
 
I think that's universal for most of Office
I hear several old timers complaining about it.
There are some who hold onto 97 help documentation just for that reason.
 
5:26 PM
I think I will do something about a few of the examples.
At least the last one for Worksheet.Range is an error just waiting to happen.
 
@M.Doerner I've seen several examples that are VB which don't even compile for VBA. Makes learning very difficult without experience.
 
I've fixed one or two of those
 
@IvenBach That's because they were written by lizard people who wants everyone to stop using any BASIC dialects. </shifty eyes>
(no, not really)
 
I've fixed a couple too.
Update: Scheduling a BBQ for my mom right now.</terrible-joke>
 
Did her grandchildren forget a comma?
 
5:41 PM
LOL. Touche. Well played.
 
I'm sure she'll appreciate the BBQ-wake (at least I'm assuming that's what it's)
 
Getting pricing for cremation is like pulling teeth.
$1400 is cheapest option I've found so far. And that's still too expensive IMO.
 
Unfortunately. There are several laws in regards to how they can sell the packages so the funeral homes are.... difficult.
Because they are afraid of getting sued by the bereaved for extortion but their business is based on people dying so....
 
I'm well aware of that. Was over $7,000 (correct comma) for my grandmothers "services" on a plot and plan she'd already paid in full for decades earlier.
in Coding Projects and Vue.js Heaven :), 2 hours ago, by IvenBach
Iven: Mom had no money and I have no sentimental attachment. What's the cheapest option?
Funeral-Home: :whispers: It's one of those cheapo dirtbags again. :into-phone: We're so sorry... Our sister company is FooBar BarFoo Society. Give them a call and they'll help you out.
Iven: Yeah I'm blunt. Got no time for this. Thank you :hang-up:
First letter opened is pre-approved life insurance. #Irony.
Enjoy the day pond. I'd be making too many off-topic and off-colored remarks if I stayed.</iven>
 
6:16 PM
@IvenBach this is your home pond as well.
 
 
1 hour later…
7:33 PM
Hmm, turns out the Microsoft would really rather you didn't try to deploy Core 3 WPF apps over ClickOnce. Think I've nearly got things working though.
 
i thought ClickOnce was long ago deprecated?
 
nope, still in wide use for net fx in corporates
but for core, MS want you to use their new store installer thingy
wsix?
but its not great for corps, "sideloading" is not a great look, and ain't nobody wanna put their internal apps on the MS store (locked down or not...)
and now azure devops won't load the release definitions page
fml
hmm, looks like this is the blog I need to read
 
7:55 PM
interesting. I was under the impression it all went out around the time VS 2010 came out
 
but for now I just want to get things working with our existing release pipeline...
I kinda got tacit approval from our PM to migrate to Core 3, but if it turns into a whole thing it's gonna get awkward...
 
8:07 PM
> Rubberduck doesn't have an easy way of finding where annotations to ignore single instances of a code inspection have been added. If I add Ignore to the ToDo list it finds 9 instances of ignore (6 of which are '@Ignore annotations.

If I do a find/replace Ignore/Ignore* it reports 98 changes made.

Am I using the ToDO list correctly or do I need to report a bug?
 
8:26 PM
@Duga I wonder why the annoations come up at all. They are not part of the comment.
 
8:40 PM
or shouldn't be
 
9:03 PM
I might be misunderstanding but from what I see, ToDo is just a specialized CommentNode?
e.g. it's not its own parse context, so there's nothing preventing it from being both a ToDo and an annotation
 
My guess is that they are followed by a comment without the colon so that they are not recognized as annotation.
AFAIU, we search comments for the todo markers.
The annotations are not part of the comment node.
 
Either way, he has a point RE: finding ignored annotation. They're not very discoverable.
@M.Doerner so given a line '@Foo blah, the @Foo is an annotation, while blah is a comment node?
 
No, but that is because you missed to use the colon.
'@Foo : blah
That is what your example should look like.
 
and in the earlier example, blah would be considered an argument to the annotation @Foo (which may be invalid), right?
 
'@Foo blah is just one comment
Or that
 
9:09 PM
hmm. Feels too fragile.
 
It might have been a good idea to require parentheses.
 
@this I'd have thought the @ was distinctive enough to make Ctrl+F a no-brainer, but eh
 
> Linking #3364 for the part regarding finding annotations.
 
However, that is a breaking change now.
 
@MathieuGuindon using the built-in find dialog?
Find them one by agonizing one?
That's why I much prefer using MZ-Tools' find dialog over the built-in find dialog.
but for those without....
 
9:13 PM
We could just make an annotation explorer.
 
do we need a separate one? this feels like a specialized case of todo
 
that would be on-brand :)
 
Or simply add an alternative view to the todo explorer
Apparently, I cannot tipe fast enough on mobile.
 
> Closing this in favor of #3364
> As #4617 suggests, ToDo explorer may be enhanced to handle this instead of inventing a new window.
 
I thought there was a similar issue a while back but I can't find it where the user was similarly confused with the mixed annotation/comment
Maybe I was thinking of #5091
@MathieuGuindon / @M.Doerner I apologize for asking directly but do either of you have non-English VBA?
 
9:30 PM
You mean a non-English host, right?
I don't have one.
 
yes
 
Non-English Excel is seriously confusing.
 
Yes, I've heard same thing to that effect - most developers say they won't do anything on it since it causes much unnecessary pains for development.
The localization behavior in Office is not that well thought out, so it's not easy to write an effective localized test.
 
The problem is not the VBA part, which is identical.
However, all Excel function names have been translated.
 
hmm. I thought I remembered someone saying that non-English host may cause the date formatting to be treated differently?
 
9:39 PM
Date formatting depends on the regional settings of the operating system.
 
hm.
 
However, as long as you use the members referring to values in the language of the macro, there is no problem.
It is the equivalent to InvariantCulture.
 
I could try changing my date formats
and running the tests to see if it breaks.
 
Just don't look at Excel online; that depends on the browser settings.
BTW, it always annoys me that VBA dates are prettified to en-us dates in VBA.
 
Yes, that's a part of reason why I originally used en-US rather than invariant culture to make that explicit, but I want to verify that is correct reasoning.
 
9:45 PM
The invariant culture in .Net is en-us.
 
the documentation does not say so?
 
Hm, it is only specified to be en.
 
That's why I did not feel confident that it's an equivalent representation, given VBA's propensity to use en-US date formats
 
10:09 PM
@this I think I have a French Office install of my wife's laptop
 
If you do, can you test the test cases via VBA immediate window just to see how it handles the stringified dates?
 
I'll have to get back to you, but yeah
 
Does Quebec French uses DD-MM-YYYY?
 
that would be fr-CA.. not sure what the date format is, could be that, but inner me wants it to be yyyy-MM-dd
 
ok, good enough - it's not US format so that'll prove positively whether non-English install impacts teh formatting of VBA (beyond the windows regional setting as Max suggested)
 
10:15 PM
wait does a French OS thwart this experience?
 
nah, I can control thta by setting my OS to french temporarily (!)
and see how it behaves with an English Office host
 
TBH, it's not all that clear how it all aligns. It feels like playing a some kind of globalization roulette.
 
11:13 PM
> Closes #5191. This PR incorporates InspectionTestsBase into the remaining inspection tests (except one - see below). The good news is that there is net reduction of nearly 4000 lines of inspection test code thanks to the InspectionTestsBase class. Other notes of interest: UnreachableCaseInspectionTests: 1. Is the only test class remaining that does not derive from **InspectionTestsBase**: 2. The UnreachableCaseInspectionTests as-written make use of the InspectionResults.resx to...
identify which result(s) occur for the various test scenarios. The resource string comparisons/manipulations were used by the tests because this inspection flags more than one type of issue. So, there are a number of places in the test code that look like InspectionResults.UnreachableCaseInspection_Unreachable. These references to the resource file become name conflicts with the InspectionTestsBase.InspectionResults method. So, this particular test class could not inherit from the base...
class. I can look at reworking the test class, but I'm thinking this would be outside the scope of this PR. InspectionTestsBase: Added some overloads within this class, particularly regarding the InspectionResultsForModules method. The overloads all have to do with making it easier to introduce reference libraries when building up theVBE. The overloaded methods take either a single library identifier string or an enumerable list in addition to the module-defining tuple(s). The...
MockVBEBuilder uses raw strings to organize and manage the libraries - so the added overloads are consistent with that approach. MockVBEBuilder: 1. Added some overloads to the BuildFromModules method to support the overloads added to InspectionTestsBase. 2. Modified public const string TestProjectName and TestModuleName to be public static string properties. This allows tests an option to modify the default names without breaking pre-existing references to the constants. This...
was needed/used for the UseMeaningfulNameInspectionTests (issue described below). UseMeaningfulNamesTests: The UseMeaningfulName inspection requires different identifiers than the MockVBEBuilder's default Project and Module names. "TestProject1" and "TestModule1" both end with a number - and therefore are flagged by the inspection. There seemed to be a couple options: a) Simply change the default values to ones that are not flagged. or, b) Provide some mechanism for the test...
subclasses to set the default name. I chose the latter approach. This was partly motivated by the fact that at several tests use the default Project and Module names as part of there expected value for comparison. The other reason is that there may be other test classes (now or in the future) that wish to use identifiers different than the defaults if for no other reason than to remove the possibility that changes to the default name would break its tests. So, the following changes were made:...
a. Modified MockVBEBuilder Project and Module default name constants (described above). b. Added OneTimeSetup and OneTimeTeardown attributed methods to UseMeaningfulNameInspectionTests. Since the MockVBEBuilder properties are static, the setup/teardown methods are needed to ensure that tests running subsequent to the UseMeaningfulNameInspectionTests would receive the expected default values.
 
Holy Wall of Text, Batman!!!
 
....was thinking @Duga might truncate that a bit.
or a lot.
 
LOL, no, not for PR comments, she doesn't.
(don't misunderstand me - verbose information is better than none!)
 
probably should reserve judgement until you've had to wade thru it. ;)
 
Regarding the non-standard project name, you can just build the mock vbe using a MockVbeBuilder instance.
At least that is what I do when I need a different project name.
 
11:19 PM
True...but the InspectionTestsBase removes that option if you use its methods.
 
InspectionResults takes an IVBE.
 
Yes - but InspectionResultsFromModules does not.
I used that method (and variants) for the most part.
 
All other methods are just convenient ways to define what kind of IVBE you want to pass to InspectionResults.
 
yes - but I preferred that to building an IVBE locally in the test(s) to make things as consistent as possible across all the tests.
 
@Vogel612 I limit my venting frustration as conversation should revolve around RD dev and coding.
 
11:26 PM
[rubberduck-vba/Rubberduck] build for commit 6a2ea75c on unknown branch: AppVeyor build succeeded
 
11:40 PM
@BZngr Also, one difference is that on the GH PR it's formatted but on here, not so much. :)
And thanks for taking on this monster!
 
lol, running 2.4.0.4511 on wife's laptop
> Rubberduck 2.4.1.0 is now available!
@this so, ?Date outputs 2019-10-15 and I'm proud of fr-CA date format!
Anything else you want me to check?
Quick before my eyes melt, this is a French VBE!
 
but what about the 4 test cases?
[TestCase("04/12/2000", typeof(DateTime), ExpectedResult = "2000-04-12 00:00:00")]
        [TestCase("12/04/2000", typeof(DateTime), ExpectedResult = "2000-12-04 00:00:00")]
        [TestCase("13/04/2000", typeof(DateTime), ExpectedResult = "2000-04-13 00:00:00")]
so i guess the VBA equivalent would be:
?CDate("04/12/2000")
the missing 4th test case is `04/13/2000'
 
ducky updated
@this 2000-04-12
 
hmm.what about the implicit conversion.... Dim dte As Date : dte = "04/12/2000"
 
@this 2000-04-13
 
11:55 PM
so it does take US formats. Fascinating.
 
@this still 2000-04-12
 
and what about "13/04/2000"?
that's the one that should be most hilarious (right?)
 
@this 2000-04-13
 
I guess that settles it. It's US-centric, then.
 
11:58 PM
Thanks, MSFT!
(and thank you, @MathieuGuindon for being a guinea pig! )
storm here. Better shut down before I get fried. Later!
 

« first day (1957 days earlier)      last day (1223 days later) »