« first day (753 days earlier)      last day (2427 days later) » 

12:01 AM
RELOAD!
[Hosch250/Rubberduck] 71 commits. 71370 additions. 55649 deletions.
[retailcoder/Rubberduck] 35 commits. 2158 additions. 613 deletions.
[rolfl/MicroBench] 1 commit. 2 additions. 2 deletions.
[rubberduck-vba/Rubberduck] 11 commits. 2 opened issues. 2 closed issues. 16 issue comments. 9285 additions. 8190 deletions.
 
We're alive!
 
[skiwi2/sieve-multithreaded-shared] 2 commits. 150 additions. 8 deletions.
 
> Rubberduck.Setup.2.0.3b.exe (5.32MB) - Downloaded 24 times.
Last updated on 2016-06-24
> Rubberduck.Setup.2.0.2b.exe (5.30MB) - Downloaded 60 times.
Last updated on 2016-06-18
> Rubberduck.Setup.1.4.3.0.exe (4.32MB) - Downloaded 3408 times.
Last updated on 2015-07-08
Just noticed, 2.0 is a whole megabyte larger than 1.4.3
 
@Mat'sMug We've done a lot of work.
In fact, we've literally re-written almost everything.
 
IKR
#RememberRefactorMenu
 
12:05 AM
There are only a few files that haven't seriously changed.
 
It's 2.0 for a reason =)
 
@Gareth I'm still working on the Paste Specials. My train line has bus-replacements at the moment, so not conducive to getting stuff done
 
[Hosch250/Rubberduck] Hosch250 pushed commit c7f5c081 to bugs: Hard-code aliases as functions for resolver
 
There's one bug that should be 2-3 issues closed.
 
12:21 AM
@Mat'sMug Perfect. I saw that in the TodoExplorer menu, but it didn't seem like I should be just using a string there. Anyway, I've just modified and now I have:
So its working the way I wanted:
I just need to pull in some data now. Might push through some dummy data initially.
 
@Rossco That isn't a plain string--it is the name of a resx value.
 
[Hosch250/Rubberduck] build for commit c7f5c081 on bugs: AppVeyor build succeeded
 
@Mat'sMug @Hosch250 what do you think regarding a dialog vs a toolwindow. The toolwindow can be non-modal and dockable and can listen for changes to the active project. Obviously the dialog will have similar UX to the builtin one.
 
I'd say dialog if it is just a reference picker.
 
It doesn't have to be though. It can be anything you want.
 
12:25 AM
We are going to make the Code Explorer display the active references, or something, I heard.
 
Maybe, you can search the types inside a library...
 
@Mat'sMug What's up with that?
@Rossco I don't care, make it dockable if you want.
It won't hurt anything, although people might not leave it docked too often.
 
I'm not trying to be difficult BTW. I'm just trying to think outside the box..
 
I'd rather it be a dialog TBH. That ducky icon will be a legend soon =)
 
[Hosch250/Rubberduck] Hosch250 pushed commit 753825f8 to bugs: Prevent hard-coded declarations from having their references cleared for parse attempts with no changes
 
12:27 AM
@Mat'sMug OK cool.
 
Besides we already have enough toolwindows to hide the whole code pane lol
 
What dependency should i pull in to get notified about the ActiveProject changing and retrieving a reference to it?
 
@Rossco that's the thing.. only App knows when the active project changes. Making it a modal dialog makes things simpler imo
 
[Hosch250/Rubberduck] build for commit 753825f8 on bugs: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit 753825f8 on unknown branch: AppVeyor build succeeded
 
12:32 AM
The important stuff is really the tabbed control, to clearly separate prioritization, COM references, and project (VBA) references... and the default tab ought to be the favorites/recent tab
 
> Whoever wrote this bug deserves to be shot. The trouble is it is a simple search/replace, and Hex gets replaced twice...
 
@Duga @Mat'sMug Want to review that PR?
 
@Duga hides
@Hosch250 putting the kids into bed
 
OK.
 
@Duga ~cranks shotgun
 
12:35 AM
It looks like it is me and @Mat'sMug.
It was designed without considering Fix All.
And I refined it.
 
why not make it simple and use ReplaceAll("(gi?)(hex(?>!\$))", "\1$");
 
Because it isn't just Hex...
It could be any of these 21:
 
then run it in a loop
 
@Mat'sMug Ok, you've twisted my arm ;P
 
private readonly string[] _tokens = {
    Tokens.Error,
    Tokens.Hex,
    Tokens.Oct,
    Tokens.Str,
    Tokens.CurDir,
    Tokens.Command,
    Tokens.Environ,
    Tokens.Chr,
    Tokens.ChrW,
    Tokens.Format,
    Tokens.LCase,
    Tokens.Left,
    Tokens.LeftB,
    Tokens.LTrim,
    Tokens.Mid,
    Tokens.MidB,
    Tokens.Trim,
    Tokens.Right,
    Tokens.RightB,
    Tokens.RTrim,
    Tokens.UCase
};
 
12:37 AM
it ain't that hard to assemble the pattern for each token
 
I don't like Regex, that's why.
 
you could even go so far as to make the capture group built of all of those with string.Join("|", ..); or so
 
And if I did do that, I'd just manually check the next character anyway.
 
@Vogel612 and VBA.Strings.Left should match, but not VBProject.Module1.Left
 
okay that makes it harder
like... just a teeny tiny bit
 
12:39 AM
Wait, Strings.Left works too, but not if you have usercode with a std module named Strings having a Left method
How's the tiny bit now? lol
 
Oh wait--just plain Left works too.
 
Yep
 
RegexAssistant was easier than this
 
Unless there's a usercode Left function in scope
 
But depends on the location--we can have other plain lefts.
Right.
@Vogel612 On a more serious note, the resolver does all the work--I just need to either support fixing all, or disable that option.
var result = lines.Replace(originalInstruction, newInstruction);
I need to change that to focusing on the selection.
 
12:43 AM
@Hosch250 does it?
 
@Mat'sMug Now that I hard-coded those, yes.
 
PAAAAAAARRRRRRTY!!!
 
They aren't resolved to _B_var_Left, but it shouldn't be too hard to shift the references to it once it is resolved.
 
Right
 
Or, does it even matter that they aren't resolved to it?
 
12:45 AM
Not if we can still tell Chr from Chr$
 
@Mat'sMug Well, the inspection works correctly, as far as I can tell.
 
Although, it would be nice to not lie too much to the users :-)
 
@Hosch250 @Vogel612 Just change that with:
            var result = lines.Remove(Context.Start.Column, originalInstruction.Length)
            .Insert(Context.Start.Column, newInstruction);
@Mat'sMug As far as I can tell, we can't directly reference _B_var_Left in VBA.
 
@Hosch250 how's that going to work with the tree thing? Context won't be accessible right?
@Hosch250 right
 
@Mat'sMug So, no need to do it then.
@Mat'sMug When I get that done, everything will need to be re-written.
And when I say everything, I mean everything that touches the code.
 
12:48 AM
Ah, well nevermind then
@Hosch250 that's pretty much everything lol
 
@Mat'sMug Right, and we use Context everywhere anyway.
One more usage in 2.0 isn't going to hurt anything.
 
We'll be on 2.x for a while I think
 
@Mat'sMug Oh, it also means everything that touches the declarations.
@Mat'sMug Sounds like when we were working on 1.4.
After 1.4.3, we were working on 1.5 with DI, and it became 2.0.
LOL, we had everything broken, and by the time it came together, it was just 2.0.
@Mat'sMug In a week and a half 1.4.3 will have been out for a full year.
 
20 more minutes to go. What should I work on?
 
12:54 AM
@Hosch250 take the rest of the day off, you earned it ;-)
 
> Code Explorer remembers which nodes were open, and the Code Inspections sorts correctly now. Only thing left is leaving Grouping Grid group states the way they were. Is that even worth it, or should we close this now?
 
@Mat'sMug I can't. I have to report 40 hours a week.
And I would hardly say I earned it after getting literally next to nothing done all morning and early afternoon.
 
lol... go over open issues, I'm sure there's a bunch of older ones that can be closed already
 
Yeah, I'm doing that.
 
Did you notice you brought it down from 26% to 20%?
 
12:57 AM
Brought what down?
 
% of opened issues
 
Nice.
 
6 days | 20%
 
Do you know that I brought the percentage 2.0 is finished up to 89%?
 
12:58 AM
@Hosch250 that's awesome!
 
@Rossco Here's the issue for your thing: github.com/rubberduck-vba/Rubberduck/issues/1276
Not sure what will happen with the last one.
 
1:17 AM
See you.
 
@Hosch250 Cheers for the info.
 
1:34 AM
> @Hosch250 we'll make a dedicated References folder (the blue folder icons) under each project, and list all references - not just references to other VBA projects. "Find all references" will then locate all code that references anything from the selected project reference, fully qualified or not. The context menu will need an "Add/Remove references..." item, to bring up the RD references dialog.
> Hmm we could also dim references that aren't used anywhere.
> @Hosch250 completely
 
2:18 AM
> @retailcoder like #1733?
> Need to remember that just declaring a Type is enough to be *using* a reference. eg:

```vb
'wbk is early-bound, so the Excel reference is used.
Dim wbk As Excel.Application
Set wbk = CreateObject(,"Excel.Application")
```
 
2:44 AM
@Comintern Check out this link which calls members of IDispatch from VBA, using DispCallFunc
 
3:09 AM
[rubberduck-vba/Rubberduck] web-flow pushed commit c751d9c5 to next: Update README.md
 
[rubberduck-vba/Rubberduck] build for commit c751d9c5 on next: AppVeyor build succeeded
 
3:48 AM
@Mat'sMug Holy smokes, revert that right now.
 
lol
 
What in the world did you do?
Is that the old settings?
 
yep
 
I don't see the General Settings tab.
 
> the wiki is outdated
 
3:50 AM
That must be 1.2, or so.
 
1.22
 
@Mat'sMug Can you move most of that into the website?
 
did that work in 64-bit?
 
BTW, did I ever PR my SC changes to the main repo?
 
btw - I can reproduce the date literal line continuation
 
3:51 AM
the old historical screenshots?
 
@ThunderFrame Yeah, theoretically. The installer didn't really, though :P
@ThunderFrame Uh, how?
 
Sub test()
Dim foo() As Variant
foo = Array(#1/1/2016#)
End Sub
then add the line-continuation after "("
 
That is allowed, isn't it?
 
and it becomes
Sub test()
Dim foo() As Variant
foo = Array(# _
1/1/2016#)
End Sub
 
We don't allow a line continuation after the "#".
 
3:52 AM
and it runs!
 
Oh, huh.
Please kill me.
I'll fix that tomorrow--easy fix. Reopen the issue, if you please.
 
lol
 
It just involves putting an optional line continuation in the lexer rule, and maybe a little bit of change in the date grammar.
 
the inspection that checks for parameters declared on multiple lines, I think it could be expanded to any variable/parameter/constant declared on multiple lines
hmm it wouldn't pick that up
 
3:55 AM
After we get the hotkeys working a little better, everything seems to be running smoothly enough for a stable release.
Unless we get more critical issues.
@Mat'sMug I think I've thought through the process of that Source Control issue, and I'm not sure we can fix it.
If it is what I think it is, it doesn't really change the project itself.
 
it just crashed on me
unit tests are flaky
 
What happens is, the next time it loads, RD detects it is under source control, removes everything, and only reloads the modules in source control.
If we can't finish exporting (like a force-close like that guy did), we can't fix it.
 
let's get them off the parser state, we're going to have to get them off the parser state anyway
 
hmm, once the lin-continuation is there, and the code is "valid", any edit to the line will break the code....
 
@Mat'sMug Then why did you have me put them on the parser state?
 
3:58 AM
11
Q: Why does this code compile when pasted in but fail otherwise?

Mat's MugA friend made me look at this page, and noticed a strange piece of code in the signature of one of the forum users. The code is a one-liner that goes as follows: On Local Error Resume Next: If Not Empty Is Nothing Then Do While Null: ReDim i(True To False) As Currency: Loop: Else Debug.Assert C...

 
@ThunderFrame @Mat'sMug Should I leave the issue closed then as too unstable?
 
@Hosch250 TBH I think it would be fine if we only parsed a method and were very efficient with keeping up with what's going on in the IDE. but an empty project with nothing but a test module takes too long to reparse every time a test method is added... we had a better UX before, and we won't be able to achieve the same speed with the current way we're doing things.
I mean, you must have noticed?
 
4:14 AM
Not really, except in large projects.
Empty ones are pretty fast.
 
hmm wait a sec
damn
my home build isn't up-to-date
Build 2.0.2.38138
building
@Hosch250 shouldn't the build number be 2.0.3 in the about box?
I have 2.0.2.41940
 
@Mat'sMug Umm, I only changed the main Rubberduck dll, I think.
I don't know.
Oh, I didn't PR that.
If you download it, it should be OK.
 
hmm, why isn't the Test Explorer letting me add a new test method even though a test module is active?
and parser state is Ready
 
You don't have any code running, do you?
I can repro this. What happened, I wonder?
 
> I think we should discuss this PR in an "issue" - let's discuss and lay down exactly what we want to log at which log level, and sync this PR with the results; outright removing all log output at once? not sure. Thoughts?
[rubberduck-vba/Rubberduck] Hosch250 pushed commit e052769c to next: Fix hard-coded declarations for form parameters (make them be byref instead of byval)
[rubberduck-vba/Rubberduck] Hosch250 pushed commit c7f5c081 to next: Hard-code aliases as functions for resolver
[rubberduck-vba/Rubberduck] Hosch250 pushed commit 753825f8 to next: Prevent hard-coded declarations from having their references cleared for parse attempts with no changes
[rubberduck-vba/Rubberduck] Hosch250 pushed commit 507ee656 to next: Close #1405
Merge pull request #1923 from Hosch250/bugs

Untyped functions are now resolved correctly
> I didn't remove all of it, quite.

> Basically what that PR does is removes a bunch of trace logging. I left the error logging, and the most of the sink logging because of cache bugs, and a some parser/parser state logging, and the Source Control logging.
Merge pull request #1921 from retailcoder/next

adding ninject interceptors
[retailcoder/Rubberduck] Hosch250 pushed commit e052769c to next: Fix hard-coded declarations for form parameters (make them be byref instead of byval)
[retailcoder/Rubberduck] Hosch250 pushed commit c7f5c081 to next: Hard-code aliases as functions for resolver
 
4:26 AM
One more closed issue, and we'll be at 90%.
 
[retailcoder/Rubberduck] Hosch250 pushed commit 753825f8 to next: Prevent hard-coded declarations from having their references cleared for parse attempts with no changes
[retailcoder/Rubberduck] Hosch250 pushed commit 507ee656 to next: Close #1405
 
Of course, you are going to be creating a bunch of issues now...
 
[retailcoder/Rubberduck] web-flow pushed commit c751d9c5 to next: Update README.md
Merge pull request #1923 from Hosch250/bugs

Untyped functions are now resolved correctly
Merge pull request #134 from rubberduck-vba/next

sync with main repo
 
You know, for a dev to create a proper issue for something, with a full MVCE, it is faster to just fix the thing more than 75% of the time.
 
IKR :)
 
but doing it brings down the average time to completion metric lol
 
It increases the average time to fix, when measured properly.
Or, as my mom would say, "stop making more work for others."
Don't worry, I'm not as crabby as I sound.
 
[rubberduck-vba/Rubberduck] build for commit fe4fe8d9 on next: AppVeyor build succeeded
 
lol
 
In fact, I'm sitting here grinning to myself at the light sparring.
Question--should I become the top VBA expert in the nation and write a VBA-to-C# converter, or should I try to remain as dumb as possible in that area?
 
4:33 AM
LOL
 
I think it would be more worth my while to write a Linq-to-code converter.
I'm sure I could handle the Where and Select statements if they were used by themselves on a collection.
 
if you're bored, you could always improve the COM API, and expose COM wrappers for StringBuilder and BackgroundWorker =)
 
It would be trickier if they were chained.
@Mat'sMug Doesn't sound that hard.
 
BackgroundWorker events need to be handled by VBA code - the ParserState API is trying to do that, and failing :)
 
Yeah, I need to get that down to one event with an argument.
We need to expose all of our commands through COM too.
I'm a little worried. In about 7 months, I need to write my bachelors thesis.
I don't have anything to write about, literally.
I could write whole dissertations on many subjects, but I don't feel qualified to write a thesis on any subject in my degree.
We've barely scratched the surface on anything I thought I would be learning about.
And what could I write about about my work on RD?
I've not done much completely by myself, really.
Most of my work is building on your guys work, except for the Settings UI and the SC UI.
I haven't done any original research, for example...
Well, I guess if I had, I'd be going a PhD :)
I'm considering asking my professor if I could write a paper comparing and contrasting different search or sort techniques and when they are best used.
 
4:53 AM
 
They look nice together.
 
IKR :)
 
TTGTB
 
6:02 AM
> Meanwhile I installed 2.0.3b.

I found out that code-Inspection seems to be ok (loading references - parsing - ready) as long as I dont add a reference on Rubbeduck.tlb (for Unit-Testing).
Once I add the reference, close Access and reopen it, Rubberduck gets stuck in "loadin references".
Sometimes a click on the refresch button next to the status starts a proper parsing (stops with ready) sometimes not...
 
6:21 AM
What is your thesis scope of reference @Hosch250? You pepped my curousity
@hosch250 When you do thesis I have heard from a friend of mine you build your research with lots of references to what you had read. refme.com/au This software is cool to sync across devices of anything you find. This could help you group your related GitHub sources and CR/SO code pieces
 
7:10 AM
@hosch250
@Hosch250 an undergraduate thesis is not a research paper as is the case of PhD. But perhaps its different in the states. You're first port of call is to get to your uni library and take out a few of last years undergraduate papers. These will give you an idea of the standard you need to write at to get the grade you want to get.
@Hosch250 Most undergraduate degrees in the UK on IT require that you should apply some principle in IT to some code that you write. For instance in my case I would like to write about unit testing. I would gather as many resources I can on what unit testing is. The different frameworks for unit testing. Maybe take 2 languages and compare code side by side, and reference those code basis to your course material.
@Hosch250 I would suspect that you could go along way with your experience in this project. Not least would be a thesis on "Open Source: The use of chat.stackexchange to bind distributed teams". But that would be your own research, and would be a lot harder.
@Hosch250
@Hosch250 easier would probably be isolating a piece of code you wrote and highlighting the process of code review that helped you maintain quality. Or just taking the lifecycle of a piece of code from concept to delivery. Divide the subject up according to some other book, or a previous thesis that got good marks, and write to that formula. It shouldn't be scary. You have LOADS of experience from your work here from which to capitalise, and your clearly extremely enthusiastic.
@all. sorry verbal diarrhea
 
 
5 hours later…
12:10 PM
> I am having the same problem with all pre-releases of RD2, I am totally unable to use the source control: both Access and Excel 2010 crash when I try to create a new repository.

Here is what I do:
1. Configured name and email in source control settings
2. Create a new DB / Excel file
3. Add a module
4. Save
5. Open RubberDuck > Source Control > Init New Repo from this Project
6. Select any folder and click OK -> Crash

Here is the log file: [rubberduck.zip](https://github.com/rubber
 
12:32 PM
@Gareth lol so many pings
 
pings?
morning @Vogel. I'm back. with a little less attitude hopefully. My move is over, and my divorce is over, and my job is stable.
 
@Gareth each and every message pinged Hosch
 
oh
:)
well didn't start over well then ... :-<
after promising to myself I wouldn't kick anyone or put Hosch or anyone else down
 
lolwhat ... why would you say that you did that?
it's all fine and dandy (or so)
Hosch got a full inbox
 
12:53 PM
> Nothing in the log indicates anything wrong in Rubberduck (apart from a few Resolver problems), since the log ends when you create the repository. The Call Stack unfortunately does not indicate any involvement of Rubberduck :neutral_face:
 
@Gareth welcome back!
 
1:45 PM
> The Excel object model exposes two collections to access the contents of a workbook: `Sheets`, and `Worksheets`. Many users use either interchangeably, but the `Sheets` collection can contain chart sheets, while the `Worksheets` collection only ever contains `Worksheet` instances.

Let's implement an inspection that finds references to the `Sheets` collection and suggests using the `Worksheets` collection instead.

> **'Sheets' collection contains more than just worksheets**
>
> Workbook
 
1:56 PM
@Mat'sMug - At this point I'll take anything thay works. We can always refactor later. #FamousLastWords ... what was this referring to?
 
lol
the hard time we're having with properly resolving VBA.Strings.Left/VBA.Strings.Left$
it's hard to work with, because these declarations are acquired from a type library that's loaded from the file system at runtime.
i.e. any test that works with built-in declarations is a PITA
 
> Consider:

Dim someSheet As Worksheet
Set someSheet = ThisWorkbook.Worksheets("SheetName")
someSheet.Range("A1") = "foobar"

When the `Sheets` or `Worksheets` collection is accessed using a string literal that matches the known name of a worksheet in `ThisWorkbook` (i.e. the same project), Rubberduck should suggest using the globally-scoped object reference that's already referring to that sheet object, discard the extraneous local variable, and replace its usages by referenc
> Currently, the only available quick-fix for `ImplicitActiveWorkbookReferenceInspection` is the `IgnoreOnceQuickFix`. Users should be able to pick from two more alternatives:

- Qualify member call with `ActiveWorkbook`
- Qualify member call with `ThisWorkbook`
 
PITA?
 
Pain In The Ass
 
hmmm. you know me and testing...
 
2:08 PM
on the other hand, we've now resorted to hard-coding them (their declarations are pretty messed-up in the VBA standard library, which is what complicates them in the first place), so if that's done right we should be able to have tests to cover these inspections that, for now, seem to work properly.
I've lost track of what's covered and what isn't :-/
 
2:21 PM
> A declaration that uses a type hint instead of an explicit type, still has a known type:

Dim startRow&

Selecting the above declaration displays `startRow (variable: Variant)` in the Rubberduck command bar; this is wrong. It should be the same as this:

Dim startRow As Long

Which is displayed as `startRow (variable: Long)`.

Fixing this needs to be careful about the `AsTypeName` value of the declaration, since there is code that relies on it being empty for type-hinted decl
 
@PeterMTaylor Not sure.
Thanks for the info, @Gareth, reading other recent theses is a good idea.
 
2:37 PM
renaming a worksheet doen't crash, but subsequent resolver runs into a resolver error state caused by what appears to be System.IO.DirectoryNotFoundException trying to call VBComponentClass.get_Designer(), in DeclarationSymbolsListener's constructor
 
@Mat'sMug I thought I had maybe fixed that in the last release.
 
it just happened here :)
 
Oh wait, I didn't get it with a worksheet, so I ignored those.
Yes, the only fix I found was to reload the project in the cache.
 
ugh
 
And that crash probably isn't on the Sheet1 component, but the ThisWorkbook component, or something.
 
2:40 PM
'Module1' component actually
 
OK.
That is why I have to reload the entire thing.
 
Those Document type components mess everything up internally.
 
> I would expect the declaration to be moved, not copied; the original declaration shouldn't remain in place. Looks like that refactoring needs more tests!
 
@Duga It is supposed to be moved--half the refactoring is dedicated to removing the bloody thing.
@Mat'sMug I'm pretty sure I don't remove it until after the reparse.
 
2:42 PM
well it didn't remove it at all here
 
Did you wait for the first reparse, then the second? I can actually improve performance here by handling the Resolved Declarations state instead of Ready.
> Abraham, you have 1 job change and 3 new updates waiting for you on LinkedIn
Umm, who's been taking jobs in my name?
 
@Hosch250 it's the technique I used when I did my degrees. It helps give perspective on the level required to get the grade you want, and if it's the same lecturer that's doing the course, to also identify styles that they like, and don't like.
 
localization is still messed-up. I have "English" as my UI language, but some inspections show up in French, as does the Rubberduck commandbar's status label
 
@Mat'sMug I'm pretty sure that is because of some of the ways we call it.
RubberduckUI.ResourceManager.GetString(name, currentThread.Localization)
Or however it is.
 
2:53 PM
yup
[ResourceFile].[ResourceManager.GetString] needs to be extracted into a standardized interface I think
 
@Mat'sMug Can't we wait for all these features for 2.1? I want to just focus on stabilizing 2.0 now.
 
the new inspections, yes. the bugs.... bugs are bugs, 2.0 includes a number of features, a stable 2.0 release has these features working as intended. localization has been around since 1.3 IIRC, 2.0 is about time it gets done right ;-)
 
Bugs, yes, but you assigned 2.0 to new quick fixes and new inspections.
 

« first day (753 days earlier)      last day (2427 days later) »