« first day (1872 days earlier)      last day (32 days later) » 

12:00 AM
RELOAD!
[Minesweeper] Games Played: 67, Bombs Used: 38, Moves Performed: 9528, New Users: 5
 
 
4 hours later…
3:41 AM
 
 
8 hours later…
11:36 AM
> **What**

Inspector that flags lack of explicit Let or Set in an assignment

**Why**
Although use of Let is obsolete (which is already detected by an inspector), I always use Let or Set to make it clear in the code, especially when default members are involved, and would love it if Rubberduck could tell me where I have forgotten to do so (much as it warns me of implicit ByRef arguments)

**Example**
This code should trigger the inspection:

I = 1

1. **QuickFix Name**

Exampl
> We already have an inspection for an assignment to an Object variable without the `Set` keyword. To avoid duplicate results, this should only flag assignments to value types as missing the `Let` keyword.

The code already written for recognizing missing `Set` keywords should possibly be reused for this inspection.
The two inspections should be separate, though. This is necessary for the inspection system to allow ignoring this inspection when the user doesn't want to explicitly qualify al
 
12:52 PM
@TweetingDuck entirely cringeworthy
@Duga Let Why = "So. Much. Extra. Typing."
 
@FreeMan Let Because = "It's. More. Explicit!"
 
@KySoto remember the issue with OASIS and that DLL? He thinks it might be out of date and apparently it's a redistributable. Here's a link to one: docwiki.embarcadero.com/RADStudio/Rio/en/OpenSSL
 
1:10 PM
@this Frankly, the difference between Set xlApp = New Excel.Application and i = 10 is far more noticeable than Let i = 10. If you've got a bunch of assignments all left-aligned, lines starting with Set stick out from those that _don't` better than having Let, Set, Let, Let, Let, Set...
 
I agree, actually.
I'm actually wondering if he's doing that because of the default member thing.
e.g. Let i = rng.Value or Let i = rs.Fields("0")
 
Plus, actively enabling use of the deprecated Let would be just like as disinstructive as actively enabling the use of the deprecated Call statement.
 
in which case, I'd prefer dropping Let for .Value
Yep
 
I'd imagine when Mug wakes up, gets coffee and a few free minutes to peruse the new requests, that'll get closed...
 
> I'm just wondering -

Do you prefer `Let` because of constructs like the following:

`i = ActiveWorksheet.Cells(1, 1)`

or

`s = myRecordset.Fields("someColumn")`

?

I would prefer that in those cases, we spell out the actual member values:

`i = ActiveWorksheet.Cells(1, 1).Value`

or

`s = myRecordset.Fields("someColumn").Value`

Which ensures that this is always a Let statement, never a Set statement. Mat wrote an article about how [default member can hurt more than help
 
1:31 PM
@FreeMan wow... just noticed the fantastic use of mixed formatting characters: _don't` -- Sigh...
 
> I'm just wondering -

Do you prefer `Let` because of constructs like the following:

`i = ActiveWorksheet.Cells(1, 1)`

or

`s = myRecordset.Fields("someColumn")`

?

I would prefer that in those cases, we spell out the actual member values:

`i = ActiveWorksheet.Cells(1, 1).Value`

or

`s = myRecordset.Fields("someColumn").Value`

Which ensures that this is always a Let statement, never a Set statement. Mat wrote an article about how [default member can hurt more than help
 
@Duga air-coding is a good way to look silly.
 
2:08 PM
> We've written inspections we don't personally agree with before (e.g. missing `Step` keyword, redundant `ByRef` modifier, etc.), so I don't see an inspection that flags "missing" `Let` keywords completely out of place. It *would* be disabled by default though, so as to not fix an "obsolete `Let` keyword" result only to get a "missing `Let` keyword" result, but I don't have a problem with such an inspection being implemented.

That said the `Set` keyword inspection has a number of false posit
 
@Duga Mug's such a diplomat
 
@FreeMan agreed. the difference is with the meta-description; we have room to explain that it's still a bad idea :)
 
Easter egg: Enabling "Missing Let Keyword Inspection" automatically enables "Obsolete Let Keyword Inspection"
(and prevents disabling it!) mwahahahaha
 
lol
or, enabling "missing Let keyword inspection" automatically forces explicit Call statements, line numbers everywhere in increments of 10 and in jumps of 1000 per procedure, single-letter variable names declared and referred to with a type hint, SysHungarian prefixes enforced by Def[Type] statements, implicit access modifiers, and implicit ByRef parameters. Oh and Do...While is forbidden.
#WellYouAskedForIt
no wait, the type hints defeat the Def[Type] statements
Easter egg idea: pop the original 1981 pac-man playable in a modal dialog, when RD parses a module that contains a single scope with line numbers and GoSub/Return statements instead of procedures, and explicit Let statements, single-letter variable names declared with type hints.
just got a handful of higher-priority issues to address first :)
 
2:38 PM
LOL!
@MathieuGuindon frankly, that would be fun! Once...
 
@FreeMan yeah.. 2nd time would just pop a video of MC Hammer dancing with the Ninja Turtles
 
Third time would be a Rick-roll
 
bwahaha
 
You two are certainly in a mood this morning.
 
it's monday!
 
2:54 PM
all day!
 
Mayday, mayday, it's monday!
 
last day this 2012 Nissan Rogue is registered under my name :)
 
36
Q: My current job follows "worst practices". How can I talk about my experience in an interview without giving off red flags?

TheOnsenAt my job, there's absolutely no code review, no testing, no version control, no organization of software architecture, no concept of "test vs production servers", no code commenting. In fact, all of this is explicitly banned and I often get "in trouble" for writing comments or using small modula...

LOL.
BBIAB, meeting. Also, very slow day today... I should work on FLOSS stuff.
 
@Hosch250 noisily scrapes chair legs on the floor, gets up - "I'm sorry folks, it appears I'm not the tool you're looking for"
oh wait, it's their current job
well that does ring a bell or two lol
 
@MathieuGuindon read: you gave up your life as a petty thief and went to be a scheming double-dealing merchant. ;-)
 
3:02 PM
@ticker ugh. and I had an answer cooking. hate when they do that (delete good questions)
 
@IvenBach coffee isn't working...
 
3:43 PM
> I agree that default members are dangerous and confusing. The main reason I use them despite that is to make debugging easier: if they return a string, that string shows when you roll-over the variable in code, or have a watch on a variable. That way you can see the value of complex objects when debugging without having to look at their individual attributes, and you can control how they are displayed in the debugger. Additionally, I have built wrapper classes for VBA simple types (e.g. Intege
 
> I'm new to Rubberduck and am very impressed by the product and the programming philosophy that underpins it. I have many, many gripes with VBA as a language, but I'm forced to use it for my work, and Rubberduck makes working with VBA that much more satisfying.
^ Yay!
 
does much more satisifying imply that VBA sans Rubberduck has some element of "satisfying"?!
 
Is it just me or are the GH links to download the latest -pre builds all kerbusted?
 
well, vanilla VBA is more satisfying than say.... JS?
or maybe even C or C++. I know I'd get annoyed with all the low level details that I don't have to even to think about in VBA.
 
interesting... the GH 500 error page has a parallax scrolling effect
als GH is semi-down right nw
 
4:00 PM
Thank you for the insight. This is definitely the type of information I can't find anywhere no matter how much I search and it's also more interesting than most things in the documentation. — user7393973 11 mins ago
well thanks for undeleting your question!
@Vogel612 the "new hope" page?
 
no?
 
the one where the octocat is falling down a cliff into a canyon
 
huh, never saw that one
a few times I got the unicorn "oops" page
 
they may have changed it :/
that said, it's a rather inopportune time for GH to be half down...
'cause I need to mess with some WSDL junk..
 
4:09 PM
Time to learn me some new GH cli and clean out old repos.
 
So it's not just me. Whew!
 
what: GH being down or being forced to work with WSDL?
SOAP is incredibly dirty, for that matter
 
@Vogel612 lol... GH download pages being down. And isn't the point of SOAP to be dirty so that you don't have to be anymore?
 
well the problem with that is the fact that I need to deal with the dirtiness of SOAP right now
 
the irony is that the first letter is Simple....
 
4:18 PM
because there is no actually useful library for properly dealing with creating and manipulating SOAP queries in Java, apparently
 
what?
that's even more ironic if you ask me
I mean, wasn't Java the vanguard of XML bandwagon in 90s?
 
what do you mean "was"?
Java is the vanguard of the XML bandwaggon since the 90s
@this probably has to do with the fact that the stdlib-ish implementation predates "generics" and therefore is a stringly typed mess
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5044?src=pr&el=h1) Report
> Merging [#5044](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5044?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/bdaf6d7be446e9ca2814b1fdf2503143f6dafe38?src=pr&el=desc) will **increase** coverage by `0.14%`.
> The diff coverage is `28.21%`.


```diff
@@ Coverage Diff @@
## next #5044 +/- ##
=======================
 
@Vogel612 wouldn't @rolfl's library (can't remember the name) deal with that neatly?
 
Duck check: I'm pushing to repos to delete theme. Works great. When I have a web page open such as github.com/rubberduck-vba/Rubberduck/pull/5039 that allows for me to click a button and delete it, how does it know to refresh when I do a CLI push that deletes the branch?
 
4:30 PM
@MathieuGuindon JDOM would in fact deal with the XML documents nicely
 
(granted, not stdlib)
 
the issue isn't the XML documents, though
also SOAP is a "semantically infused" xml-document
and JDOM doesn't perform that semantic infusion (because it's a general purpose XML library)
 
@Vogel612 I said "was" primarily because I thought everyone had jumped off and onto the JSON bandwagon
 
yea, and from there to the yaml bandwagon
 
@Vogel612 "semantically infused" sounds like some sort of hipster drink like kombucha
 
4:33 PM
which means that half of the nontrivial java applications out there now handle at least two of these three dataformats regularly
and the stdlib of course only exposes a streaming API to deal with JSON, which is fcking ridiculous
 
That's why the XKCD comic on standard.
Makes you think - will we be dealing with 100 standards 50 year later? O_O
 
we're still dealing with properties files and at least five competing and mutually confusable date serialization formats
and dates have been solved for computers since the 80s
 
IKR?
And even if we do kind of follow standard, you can count on it to get weird, too:
if there's going to be robot apocalypse, it can't happen because robots will be too busy moaning over the WTFness of humans' codebases.
3
 
@this I can just see all the moaning robots...
Frankly, if they're anything like me, they'll be too busy trying to parse what that icon actually is and what it means to remember to launch their apocalypse.
 
There will be errors thrown galore. The first #KillBot won't even be able to make it out the front door.
 
4:42 PM
(I still read that as Senator Cow Crown)
and I have no idea what the heck those emoji in the hover text are supposed to be.
 
Pray, helicopter, and medal.
 
Pray? OK. I just see a person.
 
Clasped hands here.
 
> News organizations across the globe are reporting the Robo-Pocalypse was thwarted by horribly written and inefficient code. Canadian expert and #IndustryDisruptor Mathieu Guindon testified before Parliament that there were too many Let statements and the code was too large to successfully be parsed.
 
lol
@Hosch250 ah. See I saw that more as an elongated face, Edvard Munch The Scream style
 
4:47 PM
Whew... Good. Canada does have a parliamentary system. Took a stab in the dark on that one.
 
[rubberduck-vba/Rubberduck] build for commit 54921ca2 on unknown branch: AppVeyor build succeeded
 
I should research this stuff before snarking.
 
@IvenBach nah. You do well, and it's much more entertaining when there are factual errors. ;)
 
5:09 PM
@IvenBach oh wow...
 
At least I know Canada is our neighbor to the north.
 
who's their Head of State?
 
:thinks: Treudaue or however it's spelled?
 
5:12 PM
also, you really have it easy with the vast number of 2 neighboring countries to check out ...
 
Mexico is to the south. But that's easy since I live on the border.
I, on occasion, hear these names on the radio while in transit to and from work.
 
his name's Justin Trudeau, but if my memory serves the head of state is Her Royal Majesty Queen Elizabeth of the Commonwealth
 
@Vogel612 keep in mind: "world championship" includes participants from all corners of the ...United States. Also "America" is a country ;-)
 
> **Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's log or the About box:

Rubberduck version [...]
Operating System: [...]
Host Product: [...]
Host Version: [...]
Host Executable: [...]


**Description**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected beh
 
@Duga accidental submission, I'll guess
 
5:13 PM
yea, seems like it.
 
Canada still bows to the English crown?
 
Rest Of Canada, if anywhere ...former PM Harper had some kind of weird fetish for British royalty
 
I'll just keep quiet now to limit my ignorance of global politics.
 
@IvenBach Trudeau is the Prime Minister
The German Head of State is not Angela Merkel in a similar fashion
She's "just" the chancellor
 
TBH I was never too clear on what being a part of commonwealth (?) meant
"Ok, so this old lady is our "head of the state" but we'll just do our own thing"
 
@this Former colony and proud of it, I guess
 
> Looks like a woopsie submission that accidentally went through - feel free to edit as needed (we'll close this issue in the meantime, feel free to reopen when it's fleshed out)
 
@this At least I'm not alone in this confusion.
 
I think in those cases, there weren't any revolutions or coups. They just basically voted themselves into existence or something like that.
IINM, you don't see anything like that in say, Africa (where colonialism was more... imperial)
ditto for Asia (e.g. India)
 
there's an official position in Ottawa whose role is to "represent the Queen" and basically rubberstamp the laws that the senate rubberstamped after the legislative/executive (the separation is annoyingly blurry) passed them
 
5:19 PM
@IvenBach somewhat unrelatedly: the German head of state is Frank Walter Steinmeier. The French Monsieur Le Presidente is Emmanuel Macron and the EU is a royal fuckfest of compenency overlaps and bureaucratic nightmare so I have no idea who's actually in charge over there
 
As in "We don't mind being #Subjects but prefer to govern ourselves TYVM"?
 
Basically.
 
Never heard of Steinmeier.
 
[rubberduck-vba/Rubberduck] build for commit fba46a52 on unknown branch: AppVeyor build succeeded
 
If it's any consolation I care more about the ducks at this pond than global leaders.
 
5:20 PM
@IvenBach He used to be our Minister of Foreign Affairs, did some good work around the Crimea-Crisis
 
@MathieuGuindon but does he write to Queen?
 
That is till Mug rises up and begins his conquest.
 
@MathieuGuindon are you implying we're somewhat "our-country-centric"?
 
^ Bwahahahaha. Have you seen or heard the Pineapple this country elected?
 
With the clown in charge, I'll even say "out-country-but-mainland-only"-centric ;-)
 
@IvenBach Not particularly fond of the nincompoop he replaced...
 
@MathieuGuindon hey, come on. Let's not insults the clowns, mkay?
I think he's more of a baboon.
and I'm pretty sure the baboons would love to have him as the king baboon
 
actually some baboon would probably stomp him into the ground ...
 
Meh, let's not start slinging poo. Otherwise we'll be the baboons.
 
A chimp could do it too. Humans are pitiful when it comes to fighting.
On a more RD related thread. Is there a central location that lists all annotations?
 
5:28 PM
@IvenBach There should be an enum of them.
 
TYVM. Stretching myself to see about solving this one.
Where does it define the string to look for the corresponding annotation?
 
I think it's looked up based on the enum value's name?
 
So @FooBarName?
 
Max did some work around binding annotations to parser contexts...
 
[rubberduck-vba/Rubberduck] build for commit fba46a52 on unknown branch: 64.06% (target 0%)
 
5:34 PM
Yeah.
 
ugh... running a single build takes four minutes, this is such a pain
 
4 minutes in RD?
That's gotten slow :(
FWIW, it's not as slow as Roslyn :D
 
nope. not RD. Work
 
Ah.
 
and now it's another two or so to start the damn application
using ~10 of 8 GB RAM
 
5:37 PM
it's worse if you're fixing something low in the chain.
 
Wait, you are using more ram than your machine has?
No wonder it's slow.
 
e.g. VBEditor project takes ~7 minutes for me to build.
 
It's probably swapping pages out to the disk.
 
Without 3GB swap the thing wouldn't even work in the first place
 
even if it's only one lousy line change.
 
5:37 PM
also the RAM is not the limiting factor, AFAICT
 
hmm. FWIW, I only allocated 8 GB RAM but didn't have to configure swap specially...
 
whenever I build I need to be careful to not perform too many keyboard inputs, otherwise the machine could lock up
 
CTRL-ALT-DELETE might make it faster?
 
I have 8GB hardware RAM for myself
 
Oh wait, you are probably on Linux.
 
5:38 PM
@Hosch250 that's not really a bound keyboard shortcut
 
In my case, that's a VM running on a 16 GB hardware, but still.
 
@Vogel612 It reduces the program swaps by the CPU, though.
So the running program gets a bit more time.
 
linux is pretty smart about what it swaps
 
I expect all major OS's are.
"Russians are allowed to drink small quantities of alcohol"? There is problem. Never Russian drink small quantity alcohol. — Quora Feans 2 days ago
 
6:02 PM
@MichaelHarvey Over Soviet Russia, alcohol drinks you! Or did the space stations qualify as sovereign territory? I've never been quite up on all those rules and rgulations. — Cort Ammon yesterday
bah!
obligatory "In Russia X Y's you" meme...
that's better
 
ok that's chuckle-worthy:
> Running FileSystemWatcher on Windows 98 is not supported.
 
lul
 
6:51 PM
@this can you confirm that an Access form has a Print method? I'm writing up an issue on the vba-docs repo and I can't seem to be able to write any code that makes this a true statement:
> The object is required if the method is used outside a module having a default display space. For example, an error occurs if the method is called in a standard module without specifying an object, but if called in a form module, outputlist is displayed on the form.
as far as I can tell, that's demonstrably false
(throws error 438 on a userform)
I'm sure I read it in the chat transcript a (quite a long) while ago, but I can't find it :(
 
> 438 Object doesn't support this property or method
I think that's actually for report, verifying
 
@MathieuGuindon you there to rubberduck for a moment?
 
@this so a report has an actual Print method that can be found in the object browser, correct?
@IvenBach lil'bit
 
Yes
and confirmed-
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Me.Print "test"; "ac"
End Sub
has intellisense and everythign
 
awesome
 
6:56 PM
note, though event matters.
Private Sub Report_Load()
    Me.Print "test"; "ac"
End Sub
will give an error:
> 2158 Application-defined or object-defined error You can use the Print method and the report graphics methods (Circle, Line, PSet, and Scale) only in an event procedure or a macro set to the OnPrint, the OnFormat, or the OnPage event property.@@@1@1@10129@1
 
welp
 
@this aye. clearly just a method with a reserved name.
 
> @@@1@1@10129@1
MS is swearing at us for making mistakes now? Sheesh!
 
@FreeMan that's ancient formatting syntax
used to replace with placeholders because the error message is just a template
 
whew!
 
7:05 PM
it also was used to provide bolding or stuff like that in the old messagebox formats
e.g. @bolded text@ is not used in markdown anymore
 
IIRC it's still supported, its just buried somewhere
 
Yes. someone wrote a way to get to it, too.
using Eval gasp
 
eh, could easily wrap eval in a decent function :)
 
funny that it's called a "bug"
IDK if Excel had that, too?
(the formatting thing in msgbox)
 
Thinking on how to get the Test Explorer Enables/Disable context menu implemented. Would it make sense to add an AddAnnotation() method on TestMethod or possibly it's Declaration.Context property?
 
7:09 PM
TBH, I don't like using the default MsgBox anyway.
 
😂🤣😅 This is me guys when I first compiled (with your help) RD.
 
@IvenBach removing the @TestMethod annotation will not "disable" the test, it'll turn the procedure into "not a test method"
i.e. TestMethod needs some IsEnabled property to toggle
 
The white one one year ago :-) now I ignore them
 
LOL
I remember those days. "201 warnings?!? Doesn't anyone listen to them?!?"
 
It would need the @IgnoreTest annotation added to the declarations.
@MathieuGuindon Mkay. My question then becomes "How do I achieve re-writing the code for the method itself?"
I understand the property would rely on the @IgnoreTest annotation. If present IsEnabled would evaluate to false and if not would evaluate to true.
 
probably should note the undocumented interface for supporting the print
wqtw (or however you called him) pointed to that weird interface in the chat
 
which is it again?
yeah I remember now
hm, you sure it was him?
 
Apr 2 at 16:37, by Mathieu Guindon
oh wow
pretty sure it was him -- maybe not on chat?
I'm wondering maybe on that vb6 forums? IDK
My recollection was that your research in April 2nd was based on an prior chat with wqw (?)
who claimed there was an undocumented interface to enable the Print method
 
I've edited the GH issue
it was a RD issue :)
 
aw, the username is different on GH
apparently so is the icon.
good find! Yes
 
7:39 PM
@SonGokussj4 only 64 warnings?
 
@Vogel612 no it's warning that it's 64-bit.
(I'll let myself out now)
 
Or was it bit 64 times?
 
@MathieuGuindon you probably should update with your finding from April 2nd. :)
 
I did.. it's still unclear whether there is a "Debug object"
 
ah - that's a different problem than "implementing our own Print method"
Let's simplify - Debug and Err are Schrödinger's Objects, mkay?
 
7:45 PM
hm, they could be there, just not browsable, no?
 
yeah, i tried to test for IVBPrint and I think I failed
?typeof Report_Report1 is IVBPrint => Compile error: User-defined type not defined
Hmm. I thought IUnknown would always work but apparently not if the OLE library isn't referenced. So I guess I must reference whatever library contains the IVBPrint interface.
 
we can use its GUID to find that out, no?
@this Err is browsable though; it's a function in the VBA.Information module
Debug gets keyword syntax-highlighting, which ...is rather puzzling
I'm thinking it's some kind of macro. Like, it tells VBA "you know this hidden object that implements IVBPrint there? dereference it, we've got a member call here"
which means Assert is another hack
 
8:03 PM
Kind of like how bool in C# tells it "use System.Boolean here"?
 
yeah, kinda
the compiler clearly takes the code and rolls it in unicorn/fairy dust before lighting it up
 
Funny thing, you can barely even call C# compiled now.
It's more transpiled to CIL.
Which is then transpiled to ML.
I guess it's compiled because it does the linking and all?
And it's really not a 1x1 map?
 
in that sense, only C is ever compiled then
 
Something :D
 
8:19 PM
@MathieuGuindon need deeper access than I can do from VBIDE
 
8:46 PM
You free now Mug? I'm going in circles right now.
Writing to the code pane via RD isn't something I've done before.
 
you're not literally writing to the code pane itself, right?
you should be using the rewriter API
 
@IvenBach I need to leave work now, drive home, grab the little family, and head to the dealer... give me a couple hours...
 
I've manually entered an annotation which causes the test to come up as ignored.
 
but yeah, what @this said - RD never writes to the code panes directly
 
I didn't mean to be pressuring you.
Last item a worked with a rewriter I didn't understand anything. I'll have to learn it all again this time.
 
8:52 PM
look at how a quickfix or refactoring uses it
it's basically "here's a module, gimme the rewriter for it" then you tell the rewriter what tokens to rewrite, and you can chain up as many operations as you need, nothing actually happens until you tell the rewriter to go ahead and rewrite the module
 
Ohhhhh... :brain-tickle:
 
the only thing to keep in mind, is that any given token can only be rewritten once
 
 
1 hour later…
10:06 PM
Today isn't my day at all. Struggling with everything today.
 
You can actually insert at each token index as many times as you want. The restriction on only one operation is only there for deleting and replacing tokens.
Btw, if you want to add an annotation, you might want to use the AnnotationUpdater.
 
I'm still just trying to make sense of the rewriter.
Not enough sleep make it hard for derpy Iven to understand things.
 
 
1 hour later…
11:20 PM
@IvenBach a rewriter works with the token stream - the very same lexer output that's given to the parser (lexer tokenizes the input string, parser makes a parse tree out of the stream of tokens), and lets you manipulate the tokens, e.g. replace token #374 with the string "foo", then replace everything between tokens #643 and #822 with some other string, and then proceed to physically rewrite the actual module with the new rewritten token stream.
The rewriter API provides a number of methods and overloads to make it easy to work with IParseTree objects (e.g. a CallStmtContext, or other parse tree nodes)
 
Your words make sense. I am struggling to get the annotations from the SelectedItem in the test explorer.
I have a new command wired up to the context menu.
 
Start with getting the Declaration for the selected item
Presumably the declaration has an annotations collection, which ideally has a way to get you to the AnnotationContext for it
 
From what I've understood the SelectedItem is of the type INavigateSource. I don't see a Declaration on that interface.
The actual polymorphic type of SelectedItem is TestMethodViewModel.
That class has a Method of property TestMethod which does have a Declaration member.
The Declaration member is of type Declaration. Is that the one you were thinking of?
Off of which I have accessed the TestCode property but that doesn't have the annotations. Those I've had to access via the Annotations member.
@MathieuGuindon ^ The individual pieces I can see. I don't know how to pull them together via a parser and rewriter to rewrite it.
 
11:57 PM
private void ExecuteIgnoreTestAnnotationCommand(object parameter)
{
    var foo = SelectedItem;
    var testMethod = ((TestMethodViewModel)SelectedItem).Method;
    //testMethod.IsEnabled = !testMethod.IsEnabled;

    var result = Rubberduck.Parsing.VBA.Parsing.VBACodeStringParser.Parse(testMethod.TestCode, x => x.annotationList());


    var annotations = testMethod.Declaration.Annotations;
}
That's what I've tried so far but can't make progress on result.rewriter. Again I feel like I'm missing the forest that's right in front of me.
 

« first day (1872 days earlier)      last day (32 days later) »