« first day (1012 days earlier)      last day (2168 days later) » 
00:00 - 10:0010:00 - 00:00

10:04 AM
> "Fix all occurrences in project" takes too long. It's quicker to do find & replace.
After what should be a simple Fix, the circle of dots continues to rotate for a long time.

Variable uses Hungarian Notation - "Disable this inspection" does not disable it, and it is not in the Settings under Maintainability & Readability.
> eg Application.Sum(array)

Calling Worksheetfunction directly can raise the runtime error, It's a bit more subtle than that -
You need to catch the result in a Variant and test that for an error value, to be like Excel.
Otherwise if you try to catch in say a Double you could get a type mismatch error which is a runtime error but not perhaps the one you wanted.
What's odd is a I got 10 occurrences of this on the one use of Application.Sum.
and 5 for Application.Transpose

Application.
> Can we have an '@ignore for this one - ribbon control

Public Sub Mainproc(control As IRibbonControl)

Same for a Procedure not referred to which is intended to be called from an external user of the module.
> I think we should have an ignore for this, but I'm currently working on #1186 - we should know all of the Ribbon callbacks very soon.
 
10:32 AM
> To be like Excel **95**?
> In the case of Excel, the extended members of Application, are all kludges for Excel 95 compatibility. The only behavioral difference between using Application.Pi and Application.WorksheetFunctions.Pi is the way that errors are handled. Maybe the inspection Meta should warn about these differences?

Have you got specific example of functions that don't benefit from using the `WorksheetFunction` member?
 
10:48 AM
> This is still being reported for object variables.
I thought I had raised this before but a search in the issues didn't bring up that subject.

Usually I get the inspection "Variable is never assigned" as well, which seems redundant.
> "The only behavioral difference between using Application.Pi and Application.WorksheetFunctions.Pi is the way that errors are handled. "
To me, that's a design choice. I may use both ways. As I recall, I use Application.XXX when I expect an error and test the variant returned rather than throwing a RTE. Otherwise, I'd encapsulate it in a one-line function with On Error Resume Next, which I do for say Application.Find
 
11:11 AM
Oh Hai, Ribbon Callbacks
2
ControlType  ControlId                              CallbackName   CallbackDelegate
----------------------------------------------------------------------------------------------------
customUI                                            loadImage      LoadImageFromThisWorkbook
customUI                                            onLoad         RibbonUIonLoad
button       S15FB7B7-47A6-4DAF-849D-6C9790ECE22D   onAction       NewGame_OnAction
button       S1ADAA54-578C-4844-8B17-7872DEC3BF1F   onAction       Undo_OnAction
 
 
1 hour later…
12:37 PM
> A `FakeProvider` factory would pretty much have to be a singleton, so we could just inject a reference into the `TestEngine` and give it a method like `StopFaking` that would dispose all of the objects that it's produced. The `TestEngine` could just call that after each test was done. If the VBE tried to use the object after that, it would just be a VBA runtime error along the lines of "The COM server has disconnected from its clients".

There would be the potential that some smartass like
 
12:48 PM
> I thought we had an open one for this too, but it's possible that we might have been "tracking" this on another tangential issue that was closed. Is there a specific piece of code that's tripping this inspection?
 
1:07 PM
> The rationale for the inspection isn't really to _enforce_ a specific design decision, and is probably more useful for the user that isn't familiar with the distinction. Suggesting the use of VBA error handling rather than Excel error handling is the probably the right direction - the coding error it warns about are things like this:
```
Public Sub Foo()
Dim result As Variant
result = Application.Sum(Me.Range("A1:A2"))
Debug.Print 100 / result
End Sub
```
If the `Applicati
 
1:25 PM
I think I know how to do a profiler.
 
1:45 PM
> "Fix all occurrences in project" should be improved tremendously by changing the current code re-writing to token stream re-writers.

We definitely need to get the inspection settings fixed for the Hungarian Notation inspection though.
> All of the indenter options should be disabled when a parse is running, and should be enabled when not parsing based on the avaailability of ActiveVBProject, ActiveCodePane, and whether the cursor is inside a procedure in the ActiveCodePane for "Indent Project", "Indent Module", and "Indent Procedure" respectively. I'm guessing this is an issue with how\when we're calling CanExecute for the commands.
> I have that one covered - my fork isn't ready to PR yet, but I'm moving the inspections into the Rubberduck.Parsing library as a first step towards getting inspections under the full control of the ParseCoordinator (and share cancellation tokens with the parser). But the most significant part is the rewriter API which is well under way also - when I merge my changes Rubberduck will be able to perform all code changes at once, and rewrite entire modules in one single operation (with a cav
> If you put all macros (public procedures in standard module, intended to be called externally) in the same module, and put @IgnoreModule ProcedureNotUsed at the top of that module, do the inspections still fire results for them?
> You got me at StopFaking
> "The only behavioral difference between using Application.Pi and Application.WorksheetFunctions.Pi is the way that errors are handled. "
To me, that's a design choice. I may use both ways. As I recall, I use Application.XXX when I expect an error and test the variant returned rather than throwing a RTE. Otherwise, I'd encapsulate it in a one-line function with On Error Resume Next, which I do for say Application.Find
 
2:24 PM
-1
Q: Can you add a button to a userform in Excel?

Dan WhaleyCan I add a button to a userform in Excel? In looking it up, I see questions about doing so programmatically and dynamically. I want to add a static button to a user form to perform some task. I'm working with Excel 2016, but this will need to be able to run on other versions like 2013 and 201...

We have a real Sherlock Holmes here
 
Wow.
> A: No, you can't. But there is a great work-around. You can use a CommandButton instead! It offers all of the functionality of a Button, plus some additional features that you might find useful like .Caption and a Click event handler. I'd suggest going that route.
 
lol
OP discovered the toolbox
> I see questions about doing so programmatically and dynamically
Nothing to do with the fact that my kids would be able to add a button on a form designer
 
> Regarding the long run time, the fix itself is not what takes so long. Currently, we reparse after refactoring modules (as part of the quickfix) to get the new identifier position and then run all inspections again. What is really taking long is running the inspections, possibly several times.
This process will be streamlined once the changes @retailcoder mentioned above are done.
 
Get this - we can profile code by stepping through it with the debugger. We set the cursor position in Sub without parameters, and then start emitting F8 keystrokes. We time how long it takes from sending the F8 to the cursor moving down to the next line. When the cursor moves, we grab the information about where it is (coverage) and then we can also use the selection information to do call analysis.
 
huh
and when the user clicks anywhere during that process, everything breaks?
 
2:40 PM
Not if we intercept any input that would screw it up...
 
this could work... all we need is a parameterless entry point basically
i.e. a "macro"
 
We could just display a dialog and ask what entry-point they wanted to profile.
 
That feature would want to be a plug-in though.
 
definitely
3.x
 
2:42 PM
^
We'll need to track debug state in 3.x anyway.
 
3:06 PM
> So, wrapping every single callable VBA function/method is going to be quite an undertaking - should this be broken down into smaller issues and tracked in its own project?
> It might be easier to track if we just opened one issue with a tasklist - i.e.:

- [ ] MsgBox
- [ ] InputBox
- [ ] Etc.

Then, just edit the original issue comment if we run across one that needs to be added. I'm not sure we want hundreds of feature request issues for these.
> I didn't get a Pending button, it straightaway started parsing. Then a Parse error and an Excel crash.
I restarted Excel and it now works normally.
I thought I'd report this in case it happens again.
> Here's one:
line 11 Dim CodeMod As VBIDE.CodeModule
but it is assigned in
line 31 Set CodeMod = VBComp.CodeModule

This also happens with variables assigned byref but I can that'll be hard to catch.

Here's another
Line 12 Private mStack As Collection, <--- module private
but later
Line 48 Set mStack = New Collection
> Here's one:
line 11 Dim CodeMod As VBIDE.CodeModule
but it is assigned in
line 31 Set CodeMod = VBComp.CodeModule

This also happens with variables assigned byref but I can that'll be hard to catch.

Here's another
Line 12 Private mStack As Collection, <--- module private
but later
Line 48 Set mStack = New Collection
> That looks like a good solution. I'll try it later.
 
3:31 PM
(I don;t know how my issues list popped in above but anyway what I joined to say was:)
 
So when is this new 3.0 RD coming out?
 
And I thought the hack into the Access VBA runtime to do profiling was clever. This stuff is above my pay grade. "OK, so we now know that it's really easy to hook functions in the vbe7.dll with the EasyHook library." OMG. "how hard would it be to INTERCEPT ALL THE THINGS!! ? (profiler?)" That's what I was thinking of. If all I can say is "great stuff keep going" there's probably nothing I can contribute to the chat but I wanted to say it anyway.
 
@sysmod Even small things are helpful. I somehow bring a small bit of help to this group. At least I think I do.
 
@sysmod Thanks! There's been a lot of spilled bytes along the way, but we certainly like to get our hands down in the guts. :-)
2
 
> OK, thanks. That will at least provide a start for some failing unit tests.
 
3:49 PM
@IvenBach 6 to 8 Months? We need to solve the tear-down problem that's throwing access-violations on exit before I start mucking around much deeper in the MDI windows. Then we need to switch everything over RD controlled code panes, re-write a huge chunk of the parser\resolver, etc., etc...
 
@Comintern I've been interested being a fly on the wall as you guys discuss all this stuff. Wish I knew enough to help with some of the heavy lifting, even for the light lifting.
 
It's all good - you underestimate the value of simply having more people testing things in the field. Especially with the integration stuff that we can't write unit tests for.
 
What would constitute the integration? Is that just having other people use RD and report issues?
I'm trying to better understand nomenclature and terminology still.
 
By integration testing I mean running in an actual VBE, so yes. Unit testing is different because we do everything inside a fake, controlled environment.
 
Unit testing I'm getting a clearer idea with. That's why you write with IoC in mind so you can 'fake it' and test as many scenarios as you need to make sure it's correct.
 
3:58 PM
^
Integration testing is more like "plug everything in and make sure all the fuses don't blow".
 
The blind pig succeeds! #LearningSlowly
Hence 'integration' how everything meshes together. Duh...
Now that term makes sense.
 
@Duga seems the reason we had disabled the initial parse was a good reason afte rall
@sysmod hi! welcome to our little war room!
 
@Mat'sMug does referring to Duga allow you to look back at issues? You seem to be the only one that refers to Duga
 
oh
 
haah he leaves right when you say hi #Irony
 
4:03 PM
@IvenBach lol, nah, it just makes it easier to see which chat message I'm talking about
 
That too.
 
we all talk to @Duga one day or another :)
 
Do people not read the Stack Overflow forum rules? At least the part where it says to change your username to something other than username###.
 
That's more like a suggestion.
 
^ that. but no, #PeopleDontRead
that's why there's so much crap in the close review queues :)
 
4:06 PM
But... Wouldn't it be bananal (<- intentional) to have everyone be user###
We're not the Borg.
 
...yet.
 
I know! We can all rename ourselves with duck-themed names.
@Comintern did you get your new Assert function finished? Where you have the two ranges being equal.
 
it's merged
 
I look forward to testing that out.
 
4:11 PM
Could probably use some running through the paces - you should try to break it.
 
That means though github.com/rubberduck-vba/Rubberduck/wiki/… is out of date and would need to be updated?
 
@IvenBach absolutely
gosh, these shots are from v1.3 IIRC
 
Yep. And much, much more to come.
 
There's no way to track the Wiki for anything that gets added to indicate what needs to be updated?
 
Having projects will help that, but no, not really.
 
4:18 PM
there's a tag that's meant to be used to label issues with the wiki
ok wtf is this guy trying to do
You have code (A) that's running code (B), so when you say "the whole code", do you mean A or B? Is that code in WB1? wbk.Close is inside a loop that iterates all workbooks in the ApplicationWorkbooks collection, and that includes the workbook containing the code that's currently executing that loop (i.e. ThisWorkbook) - closing the file that contains the executing code will stop that code, that's just how it is. So please edit to clarify exactly what you mean, we're not looking at your screen and we can't read minds. — Mat's Mug 1 min ago
 
LOL - he has code in the Auto_Open that's closing the Workbook that's running the code that opens it. so he opens a workbook and it closes the caller's workbook.
WTH would you close workbooks in Auto_Open? That's malware, not a macro.
 
You should reconsider your design. If I ever opened an Excel file and it closed everything else I was working on, I'd delete it an never use it again. That's malware - not a macro. — Comintern 9 secs ago
Oops. Typo.
 
@IvenBach Probably 2 years, minimum.
2.0 took close to 1.5 years after 1.4.3.
And that was 1.**4**.3.
 
@Hosch250 If that's the case I'll make sure to hold my breath.
 
4:36 PM
LOL.
 
Okeeeyyy ! Makes much more sense ! Can't believe I survived without knowing that rule until now ! Thanks for your help guys ! — Seb 12 secs ago
I can't believe it either!
 
He who asks the question, should be responsible for answering it.
 
lol
I'm 1,510 points short of 20K on SO
 
5:28 PM
@Mat'sMug Now you're 1,500 points short of 20k
 
;)
1,490 actually
 
5:50 PM
Attach them solidly. Don't allow them to run. Seriously though, you're on the right track; you need to check all 4 directions though. — Mat's Mug 20 secs ago
@Comintern ^ it's VB.NET / WinForms; you can't assign a New Point to a Location property in a VBA userform :)
 
I prefer staples, but glue will also work. — Plutonix 2 mins ago
 
saw that :)
 
Well, so far, I've not been contacted for an interview about the Java position.
If I don't hear anything within another week, I won't hear anything.
Why are junior dev positions so scarce?
It's like you have to have a personal contact within the company...
 
6:06 PM
@Hosch250 because HR staff doesn't know anything about programming
just apply on whatever you're interested in and that you can reasonably fulfill
 
It's like nothing is ever posted.
@Mat'sMug A senior dev position paying $150k?
 
@Hosch250 heck why not - doesn't mean they'll make you a $150K offer or even a senior dev position. worst case you get "we were looking for a more senior hire"
 
LOL, I've never held a paying dev job before.
You can bet I'd get that.
 
having some of your own contributions to VS2017/Roslyn could be a great conversation starter
 
Yup.
Although, my contributions to RD are harder.
I just do VSD-type stuff for Roslyn.
They did compliment my tests, though :)
Did a websearch for "Junior C# Developer Jobs". One of the hits: "Find over 23 junior C# developer jobs".
 
6:20 PM
jobs.so?
 
The great majority of those are senior positions.
MN doesn't seem to be a hot place for devs. Like, the banks around here have their dev teams in a different state, and stuff.
There are a lot of systems admin jobs, but I've never managed a network or a server or anything.
In fact, I've never even seen a server.
TBH, I wouldn't mind leaving MN, but I can't yet, because my dog is really clingy, and I wouldn't be able to take her with.
Just 9 C# dev jobs in MN on SO Jobs.
I'm applying for one, I don't have enough web experience for the other junior ones.
Lunch time, TTYL.
 
7:25 PM
so, on my way back from work I need to stop at a store and get a webcam and a mic. 10PM Eastern Time (DST) interview with Steve Bishop
I'll post a link here when I get it so you can join the discussion and chat - it's going to be live on YT
^^ @Comintern @M.Doerner @ThunderFrame @Hosch250 ^^
 
@Mat'sMug You don't have one on your laptop?
 
@Comintern what happens with the fakes if you have more than one VBE open/running? What happens if you have one project that uses GetObject to start automating another host (that already has an IDE open)? I've stepped code from one VBE to another in the past, how would fakes and/or profiler deal with that?
 
@Hosch250 I haven't opened my Win7 laptop in over a year - I'll still be waiting for updates to finish installing next week lol
 
You don't have one on your Win 10 laptop?
 
I don't have a win10 laptop
 
7:34 PM
I thought you said you got a new one?
 
it's a desktop
 
Oh.
 
and I never needed a webcam/mic
I guess.. well, until now
 
I see.
I probably won't join, but I'll watch.
I'm enjoying the Inferno.
 
I think it's a Google hangout chat thing
anyway, more info to come
 
7:39 PM
@ThunderFrame The hooks are associated with a thread ID.
 
worst case, goes under the "known limitations" section
 
You have a much more optimistic take on "worst case" than I usually do.
 
At 10PM EDT, I will be sleeping already. Have to get up tomorrow really early.
 
7:55 PM
aww... well you can always comment on the YT vid later :)
 
I'll be around - not sure about my A/V situation though.
 
I'll have to de-register my debug build and register my Rubberduck-Main clone to make a "live demo" off the upstream code... my working branch isn't presentable ATM
@Comintern A/V shouldn't matter, it's just another chatroom, people are going to be asking questions
 
Sweet!
 
would be nice if you could have A/V set up though :)
> the more the merrier
 
8:10 PM
@Mat'sMug Does Steve Bishop work at Microsoft?
 
lol, I don't think so
AFAIK he's just a YouTuber that's very enthusiastic about Rubberduck =)
 
Ah still, cool :)
Have you ever done a Google Hangouts before?
 
nope
 
Just encouraging you to do what you already know is right, test it out before using.
 
@Mat'sMug My feature was mentioned in the release notes!
> Require braces
 
8:15 PM
It can be plug and play, or it can be a troubleshoot-requiring annoyance.
Good job @Hosch250 :)
 
@Hosch250 congrats!
 
@Hosch250 I'm faking it till I make it. I've been told I'm too honest about my capabilities. That I need to say I can do more than I actually can to get in...
 
@IvenBach let me tell you this: Rubberduck didn't start off as "hey let's make a VBE add-in to parse, analyze and refactor VBA code"
if you would have told me two years ago that this is what RD would be, I wouldn't have believed you
 
I've heard that consistently at the previous 2 places I've worked.
 
just jump in, you'll break a few teeth, learn stuff, and do wonderful things
 
8:19 PM
Try not to break the teeth.
RD doesn't offer dental, unfortunately.
 
That's why I'm constantly trying to learn more. If I can plan for future expansion and updates it'll make maintenance so much easier.
 
I consider my initial regex-based manual parser one such "broken tooth" episode
 
Maintaining 5 distinct excel sheets that all do 'pretty much the same thing' isn't the funnest thing.
But each has their own 'gotchas' to look out for.
 
Oh, I've had my recycle bin overflowing with broken teeth.
 
^
14
Q: I think I might be having a regex nightmare

Mat's MugI've been working on the Rubberduck (an add-in for the VBA Editor /"VBE"), specifically here the VBA.Parser namespace. Here's how I ended up implementing the syntax part. [ComVisible(false)] public interface ISyntax { /// <summary> /// Parses an instruction into a syntax node, if possibl...

 
8:20 PM
lol
 
@IvenBach Exact same situation except it had gotten to 20. codereview.stackexchange.com/questions/156651/…
 
Love that title.
 
    public static string IdentifierDeclarationSyntax
    {
        get
        {
            return "(?<declarations>(?:" + IdentifierSyntax +
                   @"(?<specifier>[%&@!#$])?(?<array>\((?<size>(([0-9]+)\,?\s?)*|([0-9]+\sTo\s[0-9]+\,?\s?)+)\))?(?<as>\sAs(\s(?<initializer>New))?\s" +
                   ReferenceSyntax + @")?)(?:\,\s)?)+";
        }
    }
    private static string IdentifierSyntax { get { return @"(?<identifier>(?:[a-zA-Z][a-zA-Z0-9_]*)|(?:\[[a-zA-Z0-9_]*\]))"; } }
    private static string ReferenceSyntax { get { return @"(?:(?<reference>(?:(?:(?<library>[a-zA-Z][a-zA-Z0-9_]*))\.)*)?" + IdentifierSyntax + ")"; } }
 
@IvenBach So, I'm great at C#--so great. Now, I need to learn Angular, ASP.NET, MVC, SQL, and a couple dozen other technologies, and hold a job for 3-5 years, before anyone will hire me.
 
you gotta start somewhere
 
8:21 PM
By the time I hold a job for 3-5 years, I'll probably be almost a senior dev.
LOL.
@Mat'sMug I started at RD.
 
not what I meant
 
Learn the SQL first. Out of everything you listed, that one is probably the most important.
 
@Hosch250 I've had my degree for 2 years now. I worked my way though college before that. And I can't get a job in my field because I 'lack experience'
 
Does knowing the Select-From-Where structure count?
 
8:22 PM
Over 10 years of work experience and none counts... Makes it very frustrating...
 
Yeah, I can believe it.
 
I got my current job by applying for a customer service position and telling them (oh yeah, look what else I do).
Then again, I have very little formal training.
 
I'm getting my degree this May in IT Management. I have less than no experience there, so I'm falling back on programing, where I have close to 5 years (counting my beginning years producing *).
I have close to 3 years where I actually produced good-ish code now.
 
Interviewer: Your GPA isn't 3.5 or higher, why is that?
Me: Life kicked me in the balls for a while I was putting myself through school...
 
@Hosch250 Well, if you're doing it right that's perpetual. I've been saying that for 15 years.
 
8:25 PM
@IvenBach Ouch.
 
Best life lesson my dad ever taught me. #LifesNotFairDealWithIt
So I'm here now learning from the RD team, and life's just dandy!
Have I mentioned how grateful I am that you all are willing to help explain things so I can understand them?
 
I might have read that once or twice :)
 
@puzzlepiece87 You end up coming up with some interesting solutions... Only to find out later there's a much simpler way :sigh:
 
> (?:(?<accessibility>Friend|Private|Public)\s)?(?:(?<kind>Sub|Function|Property\s‌​(Get|Let|Set)))\s(?<identifier>(?:[a-zA-Z][a-zA-Z0-9_]*)|(?:[[a-zA-Z0-9_]*]))(‌​(?<parameters>(?:()|[^()])*)?)(?:\sAs\s(?<reference>(((?<library>[a-zA-Z][a-zA‌​-Z0-9_]*))\.)?(?<identifier1>([a-zA-Z][a-zA-Z0-9_]*)|[[a-zA-Z0-9_]*]))(?<array>‌​((?<size>(([0-9]+)\,?\s?)*|([0-9]+\sTo\s[0-9]+\,?\s?)+)))?)?
I can totally relate to that
 
@IvenBach I'll second that again.
@IvenBach I remind myself a lot that everyone's doing the best they can :)
 
8:38 PM
> You mean like these steps @comintern? help.github.com/articles/… Just be advise to consider once these changes are applied they are likely global across all issues not to resolve fakemocking issues alone.
 
@puzzlepiece87 Aren't we all?
 
Minor gripe: Why do people worry so much about GoTos but not separate Subs and Functions? In a lot of ways, separate Subs and Functions seem like GoTos with better features.
 
I always try and be slightly better than the day before.
@puzzlepiece87 GoTo has no easy way to navigate
if you have a Sub/Function that's being called
right click on it and then select 'Definition'
it'll take you right to it.
GoTo you have to hunt and there's no logical containment of it.
 
@puzzlepiece87 A GoTo is completely unstructured. You can jump into the middle of anything. 9 times out of 10, that's a Bad Ideaâ„¢.
 
A procedure/function is an abstraction on top of some "sequence of operations"
 
8:41 PM
It's a lot more cognitive load to figure out 'WTF is going on' in place of 'That's a function, I'll go to where it's defined'
Grabbing my unicycle and getting some lunch. :Rides off on unicycle: WHEEEE!
 
a GoTo/GoSub with a banner comment indeed does the same thing - without the abstraction, and without using syntactic elements to define the abstraction as part of the language
IIRC it was Robert C. Martin in Clean Code that said something about how abstractions allow you to craft the language; as a dev you're given a set of tools, and you turn them into nouns (types) and verbs (methods), adding richness and expressiveness to the language
you get none of that with goto's
 
I have some rich and expressive language to describe gotos with...
 
LOL
I like "paleo-code"
 
Plus, functions are logical chunks of code that run from start to end.
 
LOL - I was about to describe it as trying to write assembly in VBA.
VBASM?
 
8:46 PM
Gotos just jump from here to there semi-randomly as the program runs.
 
@puzzlepiece87 - There's a huge difference writing with goto and working with goto. The easiest way to change your opinion is trying to find a bug in someone else's unstructured code. Take a look at the linked code and then see if you can find the bug from #1287.
 
Gotos just jump from here to there semi-randomly as the program runs.
 
@Comintern yikes
shudders
that 500-liner...
 
IKR?
 
a proud VB tradition I suppose
 
8:53 PM
@IvenBach Bite off more than you can chew, then chew hard.
 
@ThunderFrame bite?
byte?
 
indeed
 
@YowE3K - It damned well better, it I find out it's bubble sorting I'm asking for my money back. ;-) — Comintern 33 secs ago
 
actually had it that way first - TBH I'm forever murcanising murcanizing my lexicon that sometimes I over-compensate
 
@Comintern LOL
Manage the state locally and use iterative logic instead? — Mat's Mug 14 secs ago
 
8:58 PM
Bloody NodeJS.
 
I don't know my US presidents (yes, I get the irony) - Do I need to blame Jefferson for American spelllings, or just blame the English druids like everybody else?
 
@ThunderFrame Noah Webster.
And he was smarter than all these people who misspell "American" nowadays by a long shot.
BTW, "bight" is a part of a knot.
 
yep, I think of Bight as a large cove.
 
Or rather, part of a rope commonly referred to when tying knots.
 
my favorite olde English word is Chain -it's an imperial unit of measure that is metricated - it's FUBAR.
people who write dictionaries tend to be 12 standard deviations to the right of the mean, and with social graces 12 standard deviations to the left.
 
TTQW - freakin blizzard out there
 
@Mat'sMug We are just melting from the last few inches we got on Sunday.
 
@ThunderFrame I might have missed some of those in my prefix list...
OK, this one is funny: aintFontSizes.
"Well if it ain't FontSizes, what is it!?!"
 
What is it? Absolute Int?
 
Array of int.
 
9:35 PM
Oh.
 
@Comintern Thanks @Comintern, good point, and @IvenBach, I didn't know that!
 
> Using a naming convention requires a considerable initial effort on your part.
^ If you put that at the start, I wouldn't have scanned through 20 pages of disemvoweled type names...
 
LOL.
 
10:13 PM
> @PeterMTaylor - I was thinking of just a simple checklist, like a list of TODO items - more like an "open ended" feature request as opposed to a hundred or so separate issues. The templates are an interesting idea - it would be nicer if they could be tied to tags though.
 
10:32 PM
while we're espousing 3.0 features (and while I've been digging around in the Ribbon) - I've been parsing the VBA Binary - 3.0 is going to be able to read binary VBA projects.
5
That means importing modules from closed documents (even if they're from another host format), reading Project properties (including codepage, project description and compiler constants), and diffing the current code against the last saved code. It also means having the full set of VB attributes for a document-module (including VB_Base - the GUID of the document type).
 
@ThunderFrame You know, if RD can read closed documents it wouldn't even need a host...
3
 
well, now the cheese is on the move.
 
> I have a complex procedure that is causing a parser error.

The offending line is simply this:

mFrmQueue.RecordSource = strSQL

and it reports `extraneous input 'strSQL' expecting {')', WS, LINE_CONTINUATION}`.

Few things that raise red flags:

It reports the error being located at the line 313, on column 52. This is the correct line but the end of the line (after the `strSQL`) is at column 40. Hmm....

Commenting out this line _stills_ results in a parse error

Del
 
@Comintern Upload your malicious project to Rubberduckweb, and we'll still parse it, Nice try, Script Kiddie.
 
10:49 PM
@Duga HTH did that get missed - the grammar is completely ignoring ByRef or ByVal modifiers for events.
 
If we're reading the VBA binary of a protected project, we have full resolution of the protected VBA.
if it's protected, that means the code can't have changed since last save, right?
I am delivered a malformed HTML file. If I apply a little bit of regex, I can make it valid XHTML and the content is pretty much a simple HTML table with a few attributes. Right now, I load the text, apply the regex fix, load the text into an XMLDocument and then enumerate the rows and create a new widget instance for every row (reading with XPATH), and return a widget collection once I'm done. Am I'm doing it right?
 
> The project does contain it but not in the class module where the bug arose.
 
Doesn't sound unreasonable as long as the HTML malformation is consistent.
 
@Comintern just missing quotes on certain attributes, and some HTML entity usage
 
> Can you export the module and show us what you see on (313,52)? I suspect the parser error occurred while pre-processing / collecting module & member attributes. Parser tokens are otherwise exactly aligned with what's in the code panes.
> @retailcoder - That's not it. The grammar completely ignores ByRef and ByVal modifiers in eventArgument. I'd need to check, but I think the eventStmt is technically wrong too - you can't have an Optional event parameter. That one is probably fine though - the compiler would catch it but RD would just go ahead and parse it as optional.
> I'm a bit puzzled why we are discussing about SaveAsText and parsing the content.

If you wish to inspect the form/report properties & their controls, you would write code similar to this VBA snippet....

Public Sub EnumerateControlsFromEveryForm()
Dim ao As Access.AccessObject
Dim frm As Access.Form
Dim ctl As Access.Control
Dim bolWasOpenedAlready As Boolean

For Each ao In CurrentProject.AllForms
bolWasOpenedAlready
> Confirmed. Removing the ByVal from my RaiseEvent's argument list lets the parser parse correctly.
> Opening the form, even in design mode, is slow, and involves a database hit (and potentially a login).

I am writing code that parses the forms/reports that are already open, but for forms/reports that are closed, parsing the SaveAsText is, IMO, the better way to go.

In my testing, parsing the Saved text is actually much faster than enumerating the controls, so even if the form is open, I'm still likely to parse the text if the form is in a saved state.
 
11:34 PM
> Rubberduck.Setup.2.0.13.0.exe (5.83 MiB) - Downloaded 102 times.
Last updated on 2017-03-12
@Duga everything is ever so simple when it's VBA code that processes one's project. It's when you want to make that code process everyone's projects that things go wrong...
 
OK... 1140 failing tests. That's not it...
 
Oh
and I thought it would be a trivial little thing
 
It should just be as easy as eventArgument : ((BYVAL | BYREF) whiteSpace)? expression;...
 
When you start parsing should it be possible is it intended to be able to click again to parse while the first parse has Inspecting or Loading references?
 
@IvenBach shouldn't. I'd recommend you don't even if you can
 
11:48 PM
Presently you can and I found out the hard way that you shouldn't :tear:
 
Inspections can't be cancelled by the parse coordinator until they're triggered in the parser
 
#FailFastFailHard
 
...which requires the changes I have in my fork
Loading references should be cancellable correctly though
 
00:00 - 10:0010:00 - 00:00

« first day (1012 days earlier)      last day (2168 days later) »