« first day (440 days earlier)      last day (2740 days later) » 
00:00 - 21:0021:00 - 00:00

00:02
RELOAD!
[Cardshifter/Cardshifter] 2 opened issues. 8 issue comments.
[Cardshifter/HTML-Client] 2 commits. 8 issue comments. 14 additions. 6 deletions.
[Hosch250/ResxEditor] 2 commits. 42 additions. 13 deletions.
[Hosch250/VSDiagnostics] 23 commits. 2110 additions. 902 deletions.
[retailcoder/Rubberduck] 1 commit. 820 additions. 472 deletions.
[rubberduck-vba/Rubberduck] 1 opened issue. 3 issue comments.
[skiwi2/Fragments] 2 commits. 11 additions. 3 deletions.
[Vannevelj/VSDiagnostics] 16 commits. 9 opened issues. 7 closed issues. 3 issue comments. 1167 additions. 860 deletions.
[Vannevelj/VSDiagnostics] 1 commit. 7 additions. 8 deletions.
00:28
Our pleasure to support OSS! Maintainers of active non-commercial OS projects, apply here: https://www.jetbrains.com/devnet/sponsorship/open-source/ https://twitter.com/chadmyers/status/634108324636524548
> Yeah. Looks good to me, but I'd like @retailcoder to give it a once over. He's the one who installed NLog to begin with.
01:18
> @zippy1981 If you know how to add the event ID, by all means go ahead and do it - I'd have to do some research, as I never logged to the EventLog... but I love the idea, thanks for this PR!
 
4 hours later…
05:36
coming along nicely:
05:46
@Mat'sMug What on earth are you doing online at this time?
isn't some crazy hour of the morning where you are?
mmmm WPF....
1:47AM
yeah, getting late early
dedication or stupidity...???
05:48
Well, your screenshot does look purrrtty.
the menu is a little bit in the wrong place.
eh, it's a designer view
or is that just the designer?
run-time will look much uglier than that!
05:50
snap
@Mat'sMug excellent.
the bottom part is a tree view
I need to add buttons to control how tests are regrouped
and the captions are hard-coded into the XAML for now
You'd just want to group them on pass/fail wouldn't you? What other logical grouping is there?
by project, module, test name, outcome
Possibly...
actually you're right
that's just candy
I'll just group them by outcome
05:53
Anyway, I better go home now. Catch you later, enjoy.
and 2.1 can have more stuff
eh, going to bed
later!
[retailcoder/Rubberduck] retailcoder pushed commit 33237b1f to ICommand_Shelved: implemented TestExplorerControl.xaml, added ExportResultsCommand and resources. todo asap: reference .resx file in the xaml instead of hard-coding the strings.
 
1 hour later…
07:54
Morning lads
vba4all.com expires in less than a month. I will not remain the owner any longer so if you or any of your friends want to take over we can make some arrangements
08:37
0
Q: Optimising "Find position of String in Dimension of Array" Function

ZakPurpose of the function: Given an array and a string and bounds within which to search, find the position of the string within those bounds. What I want to optimise: If possible, I want to re-design the function so that it doesn't have 10 optional arguments, some of which are not actually opti...

 
2 hours later…
10:37
Someone wrote us just to say "thanks".
> Subject
Great software project!
Message
Dear developers of Rubberduck, after months or even years I had to write an Excel macro again – and I stumbled across Rubberduck more or less by accident because I was searching for some refactoring options in the default editor on the web ... To cut a long story short: This is a wonderful idea and a nice piece of software which I already felt in love with! :) Thanks for your effort! Best, Stefan
@Mat'sMug @Hosch250 great work guys.
Hey @Meehow. I'm sorry to hear that, but happy you've moved on to bigger things. I might get in touch. You've a ton of great content there that shouldn't vaporize. You made the Internet a better place friend.
 
1 hour later…
12:16
> Rubberduck.Setup.1.4.3.0.exe(4.32MB) - Downloaded 428 times.
Last updated on 2015-07-08
12:28
0
Q: Performance Optimisation: Matching between files and a VERY long list of filenames

ZakPurpose of the Macro: Given a folder typically containing ~250,000 small (20-100kb) files in HTML format (they open as single-sheet workbooks in excel) and a list of ~ 1 Million Filenames, open all the files that match the list and Do Stuff. Optimisation Parameters: It works, but will typically ...

13:25
> Hi, I tried some RD function over some projects,
the parser shows error, but for different lines, somewhere near the code examples.
The following code examples generates errors for Parser:

`somevar = Split(anyvar, "anystring")(0)` (the last part is the problem)

and

`Dir$`
13:43
fix links in readme.md

from "retailcoder" to "rubberduck-vba" repo.
Merge pull request #748 from yadimon/patch-1

fix links in readme.md
> You're awesome! Thank you very much!
> Any chance you have the error message from the parser handy?
14:02
> When the use of the subprogram is performed through the `Call` clause, the procedure/function is reported as not used. I have removed these `Call` clauses since it makes apparently no difference. Then should `Call` be marked as obsolete as `Rem` ist?

I'm using 1.4.3.2343 (MSIL). Thanks for your work.
@Duga isn't it? or is the "obsolete call syntax" inspection not working?
> The grammar doesn't understand that a function can return an *array* that's accessed immediately; the grammar rule allows for chained *member calls*, but the *array or procedure call* rule is currently standing on its own, which means...

Repro:

Sub Foo()
bar = Split("abc,def", ",")(0)
End Sub

Work-around:

Sub Foo()
temp = Split("abc,def", ",")
bar = temp(0)
End Sub

By splitting the call on two instructions, the grammar rules are satis
@RubberDuck it's purely a grammar issue ;-)
@Mat'sMug I figured as much.
@Mat'sMug good question.
> @mgrojo that's interesting. Did you receive an "Obsolete Call Statement" warning?
nope. the inspection is borked. dammit
and that one is more complicated
> @ckuhn203 @mgrojo congratulations, you've found a bug ...well, two actually! :+1:

- `Call Foobar` should trigger a code inspection result saying 'Use of obsolete Call statement'.
- `Call Foobar` should be caught as a usage of the `Foobar` identifier... and it's not. Which means if you rename `Foobar` to `Foobaz`, the refactoring will break the code if `Call` is used.
Public Sub Foo()
    Call Bar
End Sub

Sub Bar()

End Sub
^^ right-click Bar in Sub Bar(), and select "find all references"
then remove the Call; "find all references" works as expected
there's a grammar bug, a resolver bug, and an inspection bug
14:45
Ouch.
15:08
> @retailcoder do you want to log those separately, or do you consider them to be part of this issue?
15:20
2
Q: Long running time on VBA macro which filters and splits dataset into new workbooks

AymorThe VBA macro below uses a worksheet (source_data_worksheet) to filter and split out the records based on about a dozen unique column (D) values in a dataset of about to separate workbooks which are saved to a folder. There are over 10,000 records x 18 columns total with text and numbers (the o...

15:40
> @ckuhn203 I'll have to investigate. ObsoleteCallInspection worked fine in 1.22, and the inspection itself wasn't modified AFAIK, but there's a [known flaw that should also be addressed](https://github.com/rubberduck-vba/Rubberduck/blob/next/RetailCoder.VBE/Inspections/ObsoleteCallStatementInspection.cs#L24), even at the cost of performance:

//note: this misses calls to procedures/functions without a Declaration object.
// alternative is to walk the tree and listen f
> example:

```
Sub Foo()
Dim a As Variant

Select Case a
Case 1 To 3, 4 To 6

Case Else

End Select
End Sub
```
> Nice one, good catch!
I will never understand why so many people won't RTFM. More often than not, TFM has your answer.
Most people don't like to read anything, much less something technical.
I know. It just baffles me the lengths programmers will go through to do something simple.
15:59
> Interesting. The same code using `Dir` instead of `Dir$` doesn't blow up the parser.

My guess is that the `$` trips the parser because in this context `Dir` is interpreted as a procedure call, and it seems only a *function* call is legal with a type hint - this code doesn't blow up the parser:

Sub Foo()
bar = Dir$("/")
End Sub

We might need to special-case `Dir$`.
hi @ya_dimon!
Hi, i wanted ask you if someone used AccUnit already?
http://accunit.access-codelib.net/

because the unit testing process there is already nice implemented, its c# addin too.
maybe its useful to merge some features to RubberDuck
the problems its documented mostly in german ...
but i think its not a such big problem.
never used it
looks like it requires a truckload of boilerplate comment syntax to work
I've used it and that ^
Any feature in particular that you're interested in @ya_dimon?
^^
exporting test results is in the making
16:08
the comments used to pass "many params at one test method" only.
but i only used this, did not programmed it. so i dont really know how it works internal.
what i know, the unit test features was good :)

e.g. generate test by selected method/class.
does RD have something like this already?
not currently, but thinking that any given method should have only 1 test is fundamentally wrong.
nobody thinks so :)
i m not sure, but generation was everytime like "methodname_insertyourcase_insertwhatitshoudlbe"
every generation -> new test. even for the same method.
I'd rather generate code from the tests ;-)
but yeah
would be nice feature. lol
it wouldn't be too hard to generate stub test methods named after the members of a selected module/class
we could do that
16:13
Sounds good to me. Submit the feature request. =;)-
good timing, I'm rewriting the unit testing UI for RD 2.0
(and the actual engine)
does AccTest work in Outlook VBA?
another feature request, maybe linkage and submenu/hotkey for "go to test"/"go to source"

the generation could be on rightclick on module/method.


should i write all the requests on github issues?

dont know about outlook. i tried it in Access and Excel.
make 'em separate issues, it's easier to track that way :)
reason I'm asking about Outlook is that running VBA code from a VBE add-in in Outlook is different than in Access/Excel, in a major way; looks like RD 2.0 is going to support it.
@ya_dimon wait, what do you mean exactly with "go to test/go to source"?
Like R#, you mean?
Show Covering Tests?
not R#, DotCover
test coverage tooling would be beyond awesome, but isn't something that's currently possible.
16:23
e.g. you are in the class, by implementing some method. and you want go fast to the test implementation (or create it). And form other side, you are in the test, and you want go by some hotkey to the source the test is for.

no no, coverage is too much for vba :)

but i would take as much as possible form JetBrains IDE's/Plugins
@Mat'sMug You think RD has a lot of issues? Check out Roslyn: github.com/dotnet/roslyn/issues
except RD isn't a frakkin' compiler ;-)
@ya_dimon but we can't just assume a test method maps to a given class/method just by its name. The only way to navigate from code to tests is by knowing which test methods are calling which code (which, now that I think of it, isn't impossible either)
and the other way around is sort of already implemented - if a test method is calling a given member, using "Find usages" on that member should locate the test(s) that is/are calling it
the AccUnit used just name convention. You defined it yourself. Its like "%modulename%_test"
that is the simple solution.

same by methods like "%methodname%_somethingelse"

same could be used to know that are the tests, without @TestMethod

but i dont know if you want convention over configuration.
filtering usages into a "find tests" feature should be next to trivial
@ya_dimon RD makes no assumption on how user wants to write their code, as long as it's testable in some way that one or more assertions can be made
I find linking a test to a method just by name is pretty frail.
especially when one of your features is a rename refactoring ;-)
I'd rather link a test to a method by actual code references - if a test is calling Class1.DoSomething and Class2.DoSomethingElse, it shouldn't matter that it's a badly written test, "Find called code" (or whatever) should just let you navigate to either, regardless of the name of the test method
similarly, if I want to find all tests for Class1.DoSomething, I only need to find all test methods that actually call Class1.DoSomething - I don't need a naming convention
also, %methodname%_somethingelse doesn't handle EventProvider_EventName possible conflicts - which are indeed all on the user, but still, an unnecessary edge case.
16:43
@Mat'sMug code highlighting probably won't ever be, but with a good enough parser, we might get the stats at least.
> To the almost two million of you that have chosen to share your knowledge here:

THANK YOU
scroll down
> it would be nice to let the RD to generate new test module by selected one. (maybe on right click on a module as option too)
Maybe with already predefined test names, depends on module methods.
> would be nice to have a link between the generated tests with sources by annotation or name convention.

an method/module could have some annotation like `'@test %testModuleName%`
or a test could have `@testFor` annotation.

or the test module could have name like `%moduleToTest%_test`
methods in the module `%methodToTest%_somthing`

(in both cases problem with "rename" refactoring feature)

than maybe some hotkey for "navigate to test"/"navigate to source" from the source/test
ok, i wrote test feature request.

nice add-in btw!

i ll try to use, test and contibute to it. But the parsing errors should be corrected first :/

Cu guys!
Thanks!
17:00
Without @StackExchange, @rubberduckvba wouldn't even exist. #SOreadytohelp #VBA and #CSharp devs http://stackoverflow.com/users/1188513 I have 41 of the 10M
 
2 hours later…
19:18
Hey @Mat'sMug I was just looking at this issue...and I wondered if the grammar wasn't bugged.
19:31
@EBrown it's very possible. I already fixed quite a number of bugs in that grammar already, it's highly possible that there are unknown ones, on top of the known limitations
> * Known limitations:
*
* 1. Preprocessor statements (#if, #else, ...) must not interfere with regular
* statements.
*
* 2. Comments are skipped.
*
*
* Change log:
*
* v1.4 Rubberduck
* - renamed to VBA; goal is to support VBA, and a shorter name is more practical.
* - added moduleDeclarations rule, moved moduleOptions there; options can now be
* located anywhere in declarations section, without breaking the parser.
* - added support for Option Compare Database.
* - added support for numbered lines (amended lineLabel rule).
Well it's been a while since I've done any grammar work, but it looks like this bit is the issue: INTEGERLITERAL WS TO WS valueStmt (WS? ',' WS? valueStmt)*
Not going to do a Clone/Fix/PR just to test one grammar thing, though.
it's ok, I'll handle it. Regenerating the parser is kind of a bitch anyway
at one point I'll PR the RD grammar file back into the repo I took it from
I can't even remember what that grammar is called anymore, to be quite honest.
But if my interpretation is correct, then that line is causing the issue with # To #, # To #. It's not seeing the second # To # as valid, methinks.
(Just thought I'd throw a suggestion in there, though.)
19:35
@EBrown sounds like it
I would consider breaking the chaining off into a separate tree.
make a separate rule for each "syntax"?
might be worth it, at least for cleanliness' sake
Well, the question I would leave to that then is: can you have multiple case types on the same line?
I.e.: Case Is < 15, 25 To 35, 65
If that is valid, then yes.
never occurred to me, but most probably yes
I'm not a VBA expert, but I would test to make sure that is valid first.
If so, then rewrite the grammar to treat each syntax the exact same.
Or diverge it to me and I'll do it. :)
19:42
@EBrown it's valid
and it breaks the parser, obviously
@Mat'sMug So in that case you should probably break sC_Cond into two different rules: sC_Type, and sC_Selection et al.
Something like:
sC_Type :
    ELSE                                                            # caseCondElse
    | sC_Selection (WS? ',' WS? sC_Selection)*
;

sC_Selection :
    IS WS? comparisonOperator WS? valueStmt                       # caseCondIs
    | valueStmt*                            # caseCondValue
    | INTEGERLITERAL WS TO WS INTEGERLITERAL    # caseCondTo
;
added to the issue ;-)
> This:

| INTEGERLITERAL WS TO WS valueStmt (WS? ',' WS? valueStmt)* # caseCondTo

Is the problematic part. In fact, even with that sub-rule fixed, this valid code would still break the parser:

Select Case foo
Case Is < 15, 25 To 35, 65

End Select

We need to rewrite the whole `sC_Cond` rule, and break it down properly.
That grammar might do the trick, just replace sC_Cond with sC_Type.
feel free to comment on the issue!
19:48
Wilco.
Now, IIRC, Case 35 60 is invalid, no?
They have to be comma-separated.
Greetings
@EBrown Indeed
hi @IsmaelMiguel
@Mat'sMug Finally I'm giving use to my coclock. I bought it yesterday. Burnt-pizza free forever!
@IsmaelMiguel won't keep you from sitting on your pizza though ;-)
Yes, it will
19:55
@Mat'sMug Should I throw some support for parenthesis in there, or do you already have that with valueStmt?
@EBrown valueStmt seems like it's supporting them already. the rule is self-recursive, so the order of rules in there is crucial (there was a bug in there, because somehow the original author thought it'd be a good idea to sort them alphabetically)
@Mat'sMug Aha, good to know. :)
I'll post this comment then.
> I would try breaking the grammar down a little further, as follows:

sC_Case :
CASE WS sC_Type WS? (':'? NEWLINE* | NEWLINE+)
(block NEWLINE+)?
;

sC_Type :
ELSE # caseCondElse
| sC_Selection (WS? ',' WS? sC_Selection)* # caseCondSelection
;

sC_Selection :
IS WS? comparisonOperator WS? valueStmt # caseCondIs
...
I'm in the wrong room...
19:58
Wow, @Duga formats those code blocks awful poorly.
-.-
Since I'm here, where are the files to translate?
It's so weird commenting on other people's repo's.
ah, I mixed things up. it's the blockStmt rule that was sorted alphabetically
(still is, mostly, but at least implicitCallStmt_InBlock isn't in the middle of it)
Indeed. That could cause some interesting results...lol
as it did :)
@IsmaelMiguel it's RubberduckUI.resx, under the Rubberduck.UI namespace :)
you would make a copy, and name it RubberduckUI.pt-PT.resx
20:06
Alright
Sounds easy
There's also Language_DE at the very end
oh yeah, you need to have a Language_PT key if you want a localized language name in the language selector dropdown!
I won't forget it
@Mat'sMug You mind if I go through all the grammar, and do a quick spot-check of it?
and that's the part I need to tweak.. make that key Language_pt-PT and I'll do what needs to be done for it to work
@EBrown of course not!
@Mat'sMug Alright, I'll give it a good once-over at least.
20:09
I regret buying the coclock
feel free to poke at the other issues, too
If I spot any other potential issues I'll...well...create an issue for them. :)
I'll likely skip the "assigned" issues.
Remember what I said about being burnt pizza-free? I was wrong
Which elements are to translate?
@IsmaelMiguel the <value> elements under each <data> item
  <data name="CancelButtonText" xml:space="preserve">
    <value>Cancel</value>
  </data>
Alright, I'm on it
20:16
It's important that the name attribute remains the same
I know
If the name is different, it won't work
That's basic XML
it's also XML-encoded:
  <data name="RefactorMenu_Rename" xml:space="preserve">
    <value>&amp;Rename</value>
  </data>
&amp; in menu captions determines which letter gets the Alt-shortcut underline
I know
I was writting that
if you have any question about any ambiguous key, don't hesitate to ask. Some of them are used in very specific places
@Mat'sMug Can you clarify this issue for me?
20:19
  <data name="RenameDialog_InstructionsLabelText" xml:space="preserve">
    <value>Por favor, especifique um novo nome para {0} '{1}'.</value>
    <comment>0: DeclarationType; 1: IdentifierName</comment>
  </data>
What goes on {0} and {1}?
Does he mean, #If DEBUG et al?
@IsmaelMiguel the declaration type in 0 and the identifier name in 1, like the comment says. e.g. "class" and "Foobar"
or "constant" and "FOO"
or "user-defined type" and "Bar"
see the DeclarationType_Xxxxx keys
what?
Where else are those used?
20:22
those....?
Yeah
"DeclarationType_*"
Those
in some code inspection results, and in some refactoring messageboxes
@EBrown yup
@IsmaelMiguel is it a problem?
Basically, this isn't ready for genderalized words
For example
worked fine in French...
hold on
In pt-pt, we say "a variável" (female), and in pt-br they say "o identificador" (male)
20:25
but bt-BR will have its own resource file
So, you would make one for pt-PT and one for pt-BR. They would be different.
note: "identifier" != "variable"
It's pt-pt
Unless you mean something else
  <data name="DeclarationType_Variable" xml:space="preserve">
    <value>la variable</value>
  </data>
^^ French translation puts the "la" in the value itself
"le module", "la variable"
20:28
Do you use possessive?
@IsmaelMiguel in DeclarationType_Xxxx? No.
And outside?
feel free to look at RubberduckUI.fr for reference
I don't see the point... using "sa" here:
  <data name="ExtractMethod_InstructionsText" xml:space="preserve">
    <value>Veuillez spécifier le nom de la méthode, le type de sa valeur de retour et les paramètres (si applicable).</value>
  </data>
(its return type)
I don't write French
@Mat'sMug Is Rubberduck.Parsing it's own standalone?
20:31
@EBrown yes
Alright, I might rewrite some grammar stuff then.
feel free to implement whatever I've assigned myself to, I'm quite busy refactoring the Hell out of the main dll
@Mat'sMug This is my issue search filter atm: is:open label:vba-grammar no:assignee
is:open label:vba-grammar would work just as well ;-)
Nah, I'll start with unassigned. :P
20:34
there's enough for everyone lol
Lol
Well I might take a look at some of these vba-grammar ones in general then, and see what I can/can't do to fix them.
#417 is serious shit
I'll probably just comment fixes on the issue associated with it.
@Mat'sMug I just saw that, and I have a few ideas.
that's awesome
How opposed are you guys to me rewriting the majority of the grammar, in general?
(Assuming it works after I rewrite it. :P)
20:37
thing is, renaming existing rules means breaking anything that uses the ANTLR-generated code, more particularly the resolver code and some of the refactorings and inspections
@Mat'sMug Well we can probably keep most (or all) of the names then.
I just noticed some inconsistencies, that could likely be cleaner.
make sure you update the change log at the top ;-)
@Mat'sMug Heh, assuming I make any direct changes. ;)
Like I said, I'll probably post the relevant grammar changes to the issue associated with them.
that's more than welcome as well
That way we don't have to mess around with PR's.
And that way the actual code doesn't have my name on it, so when the build breaks, I'm not to blame. ;)
20:41
lol
2
"Configure inspection severity." --> Is this meant to mean agressivity?
"inspection severity" ranges from "do not show" to "error", so not really
If I translate it to Portuguese in those words, it will sound like it is beating the living hell out of someone
it determines what icon shows up for an inspection result (or whether the inspection runs at all)
I'm trying to come up with something
I will skip it
20:48
there are a few that are pretty hard to translate
This is one of them
And the type names
@Mat'sMug I see what you mean about the names now. The VBAParser file has things like public const int RULE_startRule = 0...
@IsmaelMiguel Hehe, that's pretty funny.
@Hosch250 It sounds even funnier in my head
@EBrown yeah. ANTLR generates classes and methods for each grammar rule
20:51
@Mat'sMug As fast as I'm sure it is, that has got to be a debugging headache.
Auto-generation for the win.
@Mat'sMug Is there a way to write unit tests for the grammar to make sure it actually works?
Oh crap, @Mat'sMug there's another pretty big bug in the Select Case grammar.
Double values are entirely valid in the To syntax tree.
That is, Case 1.50 To 2.50 will fail your grammar check (if I'm reading it correctly) when it should pass.
Unless VBA doesn't consider those valid, but VB.NET (and I think even VB6) does.
00:00 - 21:0021:00 - 00:00

« first day (440 days earlier)      last day (2740 days later) »