« first day (277 days earlier)      last day (2903 days later) » 
00:00 - 19:0019:00 - 00:00

00:00
@SimonAndréForsberg C# has an ArrayList... only it's deprecated since .net 2.0 blessed us with generics and gave us List<T> ;)
@Mat'sMug does VBA have generics? :)
@SimonAndréForsberg In my dreams!
lol
The closest it has to a strongly-typed list, is the List class I wrote!
@Mat'sMug Can't you add some magic to @RubberDuck to add that? ;)
00:15
We could will expose a reflection API... nothing is stopping us from exposing a whole toolbox, with a List class and a BackgroundWorker...
The only thing that's not figured out is accessing the call stack at runtime
That would unlock things like a GetCaller() method
....and a freakin' stack trace
A stack trace... VBA dev's wet dream.
3
@SimonAndréForsberg pretty much every VBA guy out there has written his own variant of List. (Pun intended)
On a roll here...
@RubberDuck variant....!
Ba dum tiss
00:24
@Mat'sMug expose a reflection API!?
Alright... now my brain is in shambles from today's programming so it's TTGTB :)
Good night everybody! Thanks for all the help today
@SimonAndréForsberg I'll blog about it ;)
'Night!
Why not? We have access to all of the code in the project and a parser to parse it.
Yeah, and a lexer to ... lex it!
00:25
@SimonKarfunkel Night buddy :)
I don't honestly know what a lever is...
Lexer
The lexer tokenizes the input. Parser works with lexer's tokens
Ahh. That makes some sense.
@Mat'sMug have you seen what @cheezsteak has done with the VBEX repo? He's done some very cool things.
        public IParseTree Parse(string code)
        {
            var input = new AntlrInputStream(code);
            var lexer = new VBLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new VBParser(tokens);

            var result = parser.StartRule();
            return result;
        }
@RubberDuck haven't seen
haven't browsed much elsewhere than RubberduckLand lately..
You should check it out. I've not thoroughly dug through, but I've seen some nifty data structures.
00:52
starred. I like his Tuple
oh hi @cheezsteak!
01:26
@RubberDuck Im in a rut on how to move forward with it. I want to implement more interfaces like IPrintable to make vbex more seemless with VBA.
But then I would want to organize all of those Interfaces instead of hard coding it.
02:19
@RubberDuck parser rules can't be PascalCase, ANTLR won't recognize them otherwise.
03:14
oh and the VisualBasic6.g4 grammar file on github has been modified, too.. and it affects how variable calls are tokenized.
// iCS_S_MembersCall first, so that member calls are not resolved as separate iCS_S_VariableOrProcedureCalls
implicitCallStmt_InStmt :
	iCS_S_MembersCall
	| iCS_S_VariableOrProcedureCall
	| iCS_S_ProcedureOrArrayCall
	| iCS_S_DictionaryCall
;
the rule VariableCallStmt is gone
definitively, grammar is fun...
03:33
ah, builds
...but everything is borked.
#GrammarIsFun
04:08
I wonder...
0
A: How can I prevent the VBA editor from removing internal whitespace?

Mat's MugThe VBE (VBA's IDE) has a soul. And it eats extraneous whitespace for breakfast. Fine. Now what? Change your style! Naming If it's hard to tell iRow from jRow, then name your row counters for what they are used for: it shouldn't be too hard to tell playerRow from teamRow. Comments If eve...

haha, IT WORKS
^^ see where Option Explicit is? :)
OMG code inspections work
OMG and it fixes the Variable 'Assert' is never used bug
OMG I can't find anything that's broken!
and OMG the CI's are finding more than double the issues 1.2 finds in my "Foundation" workbook
(232 vs 107)
04:50
closing #286!
(yes, there's a false positive here.. but I'm not sure it's grammar-related)
05:04
hmm
it doesn't see the END_SUB token when there are line numbers.
so it's not completely fixed - the "ImplicitPublicMember" can't be quick-fixed here
but I like where this is going
END_SUB token issue fixed
I really like where this is going
ok, line numbers mess up inspections.. but they don't break the parser anymore.
 
4 hours later…
08:48
Well done Mug!
Maybe you should submit the grammar back to the repo you got it from.
 
2 hours later…
11:13
Aye, forked it :)
11:53
Not sure I'll PR it as a change to VisualBasic6.g4 though - Option Compare Database is just VBA. OTOH the declarations section rule does fix some issues...
I might make 2 PR's
12:44
@RubberDuck this is where not having unit tests is going to bite us: merging GrammarIsFun into 1.2 or Master...
Let's write tests for all inspections and cover all edge cases and as much of the parser as possible before merging that branch. I say we write the tests for 1.2 and do the merge for 1.3. Thoughts?
13:14
Yes. That's part of what 1.21 is about anyway. Expanding test coverage.
Not all is coverable though
I know... we'll just have to do what we can.
Why do I get skeptical when my co-worker checks out the code, makes a big change, and publishes with in 20 minutes?
Did he frakking test it?
13:38
lol
Hmm..thinking again, ...I don't know how we're going to be able to write tests for any inspection. We need a parse result, ... ..........
you should be able to feed a multiline test string in and see what your parser returns
'begin bas
 Public Sub Main()
 End Sub
 'end bas
@cheezsteak @Mat'sMug if we can't I smell a smell.
Feed that in get No Option Explicit result
@cheezsteak Yes, and I've done that before. But inspections work off a type that the RubberduckParser generates from parsing a whole VBProject...
That type includes additional information, notably about scoping and context - things that the grammar alone can't do
Can you not fake a single document VBProject?
That does sound like Extra code just for testing though...
then that will need to be tested.
13:46
We'll have to mock up the whole VBE object model?
Maybe just have test .xlsx workbooks.
Thats what xlrd does
@cheezsteak automated integration tests sound like a viable solution
xlrd is a excel workbook reader for python. Look at all of the workbooks they have in their test folder
@cheezsteak Yes... but that's an extraordinarily PITA to mock.
@Mat'sMug Yes..... more or less.
It can be done.
PITA.....
@RubberDuck That was a bad Idea because then you would need to test that code.
13:49
@cheezsteak Test the mock?? Nah.
Just gotta get it to work.
That's the trouble....
@RubberDuck Don't write extra code just so you can write a test for your code.
@cheezsteak That's the entire idea of mocking though.
You create a mock object to inject into the SUT.
It's just unfortunate that we're working with a shit interface.
> system under test
Why make a mock when it's rather trivial to create some .xlsx files?
13:53
I like that idea
but they're going to have to be .xlsm files ;)
Mostly because it's not spelled out in code, and there are now *xlsm s in the repo, but point taken @cheezsteak
@RubberDuck the test .xlsm can live in the "Tests" project
it's just data
spelled out in code VBA ;)
@RubberDuck I want this too but I don't think it can be done without writing a new languge or some nasty reflection.
14:11
@cheezsteak VBWatchdog does it. I will figure it out sooner or later.
What is VBWatchdog?
It's a bunch of kernal memory magic.
> Query the VB callstack (to locate and identify the source procedure of error)
the freakin' holy grail!
And I only have the foggiest clue how it was done.
but it has been done. it can be done.
even if it's only in Rubberduck 14.8, we will do it
14:36
Great answer here.
2
A: How Strings are stored in a VBA Dictionary structure?

BlackhawkHere is all the info I could find on the Scripting.Dictionary: According to Eric Lippert, who wrote the Scripting.Dictionary, "the actual implementation of the generic dictionary is an extensible-hashing-with-chaining algorithm that re-hashes when the table gets too full." (It is clear from the ...

14:47
@ticker For i = Cells(5, 9).Value To Cells(6, 9).Value is asking for errors.
15:18
> 22 followers
@Mat'sMug!!!!
> Dear Chris,

I’m writing to you regarding your ReSharper Open Source license request. Please excuse our delay with replying you. We have approved your request and issued a free OS license of ReSharper to your project. It will arrive in a separate message shortly. Please feel free to share this key with the project core team members (via secured channels only: please do not use a public forum or mailing list to share license keys).
> We hope that the license will become useful in project’s development.
AWESOME!!!
(no mention of laughters?)
feel free to forward it to rubberduckvba @ gmail . com
15:39
Design Q: Should an default implementation of Clone recurse on the objects that contain other objects?
that's why IClonable is deprecated ;)
In what?
.net
because it's not clear if it should be a shallow or deep clone
If this guy shows up, someone please ping me.
If you ping me in the VBA chatroom, I'd be happy to assist, but answers are not the place for this. — RubberDuck 4 mins ago
Hold on @user1007017. I'm trying to figure out how to grant chat priviges.
Try it now @user1007017.
Cool, thanks!
15:49
hi!
You're welcome. First order of business, please remove those non-answers. Doing what you did was impolite.
Second order of business, Welcome to VBA chat!
So, what seems to be the difficulty?
@Mat'sMug done.
Sorry, didn't realize that. Deleted the non-answers
awesome, thanks!
(tickety-tock)
2. Hi everyone
2
15:53
> > In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is associated with information relating to its declaration or appearance in the source, such as its type, scope level and sometimes its location. http://en.wikipedia.org/wiki/Symbol_table

That sounds an awful lot like what the [IdentifierUsageInspector class](https://github.com/retailcoder/Rubberduck/blob/master/RetailCoder.VBE/Inspections/IdentifierUsageInspector.cs) is trying to achieve. [not-so-far-in-the-]future ve
I replied to @wqw
@user1007017 what's up? :)
@RubberDuc: Seems that I have not enough knowledge to understand your code.
> The progressbar seems to work fine, although I would like to add more features to it.

But this seems to be rather difficult for me. For example if I add a list box item to the form, how should I modify the code to add a message to the listbox on each step?
So, the progress bar isn't really built for this, but it could be modified I think.
Only in your case, you would want to add a new message at each update, instead of just updating the progress, right?
So, you'll need to put a listbox on the form and give it a meaningful name to get started.
I tried just to update the listbox from code but it doesn't find the form if I just add a value to the form Forms!Form_sys_f_progressbar!ProgressList etc.
I would like to extend it in a way that a message could be passed like the percents are updated
Do you just want to update the message, or add a continous stream of them?
add a continous stream I think
16:02
Okay, then you need to add a public sub that delegates to the listbox's AddItem method.
Public Sub AddMessage(ByVal message As String)
    Me.MessageList.AddItem message
End Sub
actually it supports passing a value .CurrentProgress = x
My target is to make a possbility to add a text
That's bad semantics...
If you want to just keep adding messages to the list, put that sub up there in the class (rename MessageList to whatever you named your listbox)
Then call it like this
Private Sub exampleCall1()
' example call for using progress bar with a looping process
    Dim pbar As Form_ProgressBar
    Dim i As Long
    Dim Steps As Long
    Steps = 100000

    Set pbar = New Form_ProgressBar
    With pbar
        .Init Steps, PBarDisplayPercent ', "Hey, I'm working here!"
        For i = 1 To Steps
            ' do something in a loop

            .AddMessage "some message " & i
            ' update progress
            .CurrentProgress = i
        Next i
    End With
    Set pbar = Nothing
wow that easy - I'm impressed!
16:07
LOL. Thanks. I've been doing this for a long time, and to be fair, I wrote that class so it's easier for me to change it.
As soon I have time I will extend my knowledge to understand what's going on. Thank you very much for your help!
@user1007017 side note, have you heard of Rubberduck?
it's an open-source project @RubberDuck & I are working on - an add-in for the VBA IDE
</spam-moment>
@Mat'sMug speaking of, we've got some japanesse users having trouble installing....
how's your Japanese?
oh, it's on Twitter
No, never heard of. (Currently using MZ-Tools and some replace tool.
But I wil try it. O-tan-jobi-o-mereto-gozaimas
If there are problems with the German Version I will tell you
16:16
:)
where's @Duga when you need her?
Windows Smart Screen doesn't trust the app....
does it let you go through with it?
@Mat'sMug that guy is starting to piss me off. I don't like nay sayers.
@RubberDuck but he's technically right.
Yes yes. but offer solutions or shut the frak up.
16:22
lol
@user1007017 That's expected. It messes with VB code which is notorious for viruses in the way viruses would use it.
> I think it will be awful lot of work to do it with current (buggy) grammar.
@RubberDuck What guy?
Nice it is installed now.
great!
@RubberDuck he's giving good thought-food I find
Don't get me wrong. He is, but I hate the word "can't". I don't like negativity like that.
Nothing every gets done once you say "I can't".
That's it. You're done. You've given up before you even started.
> Those who say it can't be done should get out of the way of the people doing it.
he didn't say "can't", he said "an awful lot of work" - which we're ready to do
> So, unfortunately yes, you'll need a first pass to build symbol tables or you can never be sure about symbol reference/usage.
Fair enough.
I've admittedly been in a bad mood since last week.
and doesn't look like he went through the entire grammar
> Besides, current grammar has no idea about preprocessor
16:27
I beg forgiveness.
^^ lies
lol
#funnytiming
@RubberDuck can we access precompiler constants from the VBE API?
Wow this will boost my productivity! My wrist hurts already from clicking all the time.

A nice code explorer, Test driven development and code inspections in MS-Access! That's what was overdue for long
4
oh the code explorer is undergoing major changes in the next release
@Mat'sMug Good question.
@user1007017 follow @rubberduckvba on Twitter for all the news :)
16:32
project properties perhaps?
Hmmmm
^^ that
doesn't seem to be in the API
#dammit
Might be.
Hold on.
@user1007017 there's a bit of an issue with the current parser - make sure module options (when they are specified) are specified first-thing in the module, otherwise code explorer and code inspections won't see the module's content
like,
Option Explicit
Dim foo As String
^^ works
Dim foo As String
Option Explicit
^^ doesn't
the fix is in a dev branch right now
@Mat'sMug how the heck do I get to this collection? msdn.microsoft.com/en-us/library/aa443977(v=vs.60).aspx
> Visual Basic Extensibility Reference

**Visual Studio 6.0**
Property Object
16:44
It belongs to the component.
There's all kinds of craziness in here.
uh-huh
?application.VBE.ActiveVBProject.VBComponents(1).Properties.Count
 127
Ohhhhhhhh
It exposes the properties box!
Not what I want, but very cool. And potentially useful for..... something.
and possibly other goodies
like a watch window?
IDK
Application
Creator
Parent
AcceptLabelsInFormulas
ActiveChart
ActiveSheet
Author
AutoUpdateFrequency
AutoUpdateSaveChanges
ChangeHistoryDuration
BuiltinDocumentProperties
Charts
CodeName
_CodeName
Colors
CommandBars
Comments
ConflictResolution
Container
CreateBackup
CustomDocumentProperties
Date1904
DialogSheets
DisplayDrawingObjects
FileFormat
FullName
HasMailer
HasPassword
HasRoutingSlip
IsAddin
Keywords
Mailer
Modules
MultiUserEditing
Name
Names
OnSave
OnSheetActivate
OnSheetDeactivate
Path
PersonalViewListSettings
oh that's the properties of the ThisWorkbook component
Bingo! ^
not cool
Name
Instancing
^^ all I get from a class component
16:49
Maybe custom properties can be added somehow?
@RubberDuck that means VBComponents(1).Properties(1) is our host app
@Mat'sMug theoretically. yes. From what I see here.
well that's all great, but doesn't tell us how to get to the VBProject properties
ah
for i = 1 to application.VBE.Windows.Count : ?application.VBE.Windows(i).Caption:next
Code Inspections
ToDo Explorer
Code Explorer
Test Explorer
Project - System

Properties - Framework
Object Browser
Watches
Locals
Immediate
nah - that's just the project explorer and properties box
They're all exposed through the VbProject object.
Except the conditional compilation args.
lol
how did you get that window?
16:56
Sub test2()

    Dim project As VBProject
    Set project = ThisWorkbook.VBProject

    Stop
End Sub
watch
ah
smart
So, we can only find them if they're defined in code like this #Const DEBUGMODE = 1
But no one in their right mind would do that because it's a module by module thing.
so, same kind of limitation as accessing the stack trace
the value is there somewhere in the memory, allocated and waiting to be read.
More or less.... it has to be somewhere on the machine, but only god Spolsky knows where.
Actually, even Spolsky wouldn't know. He just wrote the spec. The guy that wrote that code probably retired 10 years ago.
Public Sub Lunch()
    While Me.IsEating
        DoEvents
17:02
good idea.
TFL
Nice, thank you for the infos.
I'm following RubberDuck.
CU all
nice! thanks!
Outrageous things had been dropped on Twitter timeline. In of one of such VBA has stopped when from the early 1990s development environment VBE (Visual Basic Editor), modern integrated development environment (IDE) seems crazy add-in to add a parallel features have appeared. Very incarnation of madness and flew down to modern times, also the name Rubberduck.
(translated)
Ahm... the website rubberduck-vba.com hangs sometimes on the first request (at least here) and only gets loaded after a refresh. FYI
@user1007017 See ya!
(To the must) bleeding of blood of people of developers in the effort, Hats off.
17:16
@Mat'sMug omg!
@user1007017 Noted, thanks!
Must be the people that were having trouble installing.
The registry keys pointing to dev folders shouldn't be in the release version...
But how come I had no issues installing on my work laptop?
@Mat'sMug There shouldn't be any.
17:21
The installer takes care of all that.
I have no idea then.
> 38 downloads
I've no idea either. They're welcome to fork and maintain a Japanese version... There are limits to what I'm willing to support.
Haha true. But expect a number of downloads from Japan today
> I've found something dangerous from morning. Dangerous.
朝からヤバイものを見つけてしまった。ヤバイ。
Rubberduck == dangerous
17:37
What's that supposed to mean?
"Dangerous"... in a good way I guess?
I guess. Idk.
Probably local slang for "awesome"
18:02
    Wend
End Sub
@RubberDuck Is that japanese? All I see are squares.
yeah
> From the morning ended up finding something bad. Oh shit.
@RubberDuck the .pdb can be removed from the release builds - that'll shrink the download size by almost half
ok not half, but still
C:\Program Files (x86)\Rubberduck\Rubberduck
2015/02/09  07:07           198,656 Antlr4.Runtime.net45.dll
2015/02/10  19:43           762,880 git2-e0902fb.dll
2015/02/10  19:43           339,968 LibGit2Sharp.dll
2015/03/04  14:22           875,008 Rubberduck.dll
2015/03/04  14:22         1,889,792 Rubberduck.pdb
2015/03/04  14:22            11,652 Rubberduck.tlb
Yikes!
Sounds like Rubberduck is going to take off in Japan. There seems to be a desire for it.
Hope someone over there forks for localization......
Not this duck.
#makesmyday
18:16
updating to latest on windows 8.1 Vbox
warning but lighting install
> Hi @knjname and thank you for your support, that blogspot thread made my day! I'm sorry to hear Japanese users are having issues with getting Rubberduck to run, but unfortunately we don't have a Japanese environment to play with.

I would like to know, if you fork the repository and set up a development environment (Visual Studio 2013 Community Editition), does it work? If the issue is with the environment, then launching it in a debugger host with Visual Studio may yield valuable clues (/exceptions).
@SimonAndréForsberg where's @Duga?
18:31
@Mat'sMug Incredibly annoying bug! I hate it too!
@SimonAndréForsberg did you see this?
I'm flabbergasted!
@Mat'sMug holy crap!
I wish someday someone would write something totally impossible to understand in Japanese of something I have made!
hit google translate
lol
> New era has arrived in VBA.
2
> [...] Very incarnation of madness and flew down to modern times, also the name Rubberduck.
> But, in the hand of the environment (Windows8.1 + Office2013 (64bit)), even if you install the add-in Rubberduck was not recognized from the VBE.
potential bug? ^^
18:38
Office 2013..... haven't tested it there yet.
> VBE is a relic of the 1990s is, industrial waste in the 2000s or would feel to evolve in parallel.
Although the specifications, such as those feel the limits of VBA / VBE in joints are found here and there, It is very good!
(To the must) bleeding of blood of people of developers in the effort, Hats off.
not sure what it means, but the overall feeling I get is pretty positive :)
2
@RubberDuck x64
@Mat'sMug exactly. I also don't speak Japanese. I believe Vogel612 speaks it a bit though.
> I don't think this is related to the language. I think it is related to Office 2013 x64 bit. This software (nor the installer) have been tested in that environment. I think I recall reading somewhere that add-ins were slightly different for 2013 & 64 bit.
welcome back @Duga!
note to self: get a copy of Office 2013 x64
2
@Mat'sMug don't you pin stuff you need to remember?
18:45
yeah but pins only stay 2 weeks
my wife will kill me if I spend another penny for Rubberduck
@Mat'sMug so? You have two weeks to get Office 2013 x64 :)
(she doesn't know how much rubberduck-vba.com was)
haha
I'll ask Simon what Office he's using
@SimonKarfunkel what version of Office are you using?
lol
alright, we'll see who gets a reply first!
18:49
:)
@SimonAndréForsberg what do you think of this question and its two answers? Who should get the checkmark? :D
> I'm experiencing the same issue -- installer appears to have run successfully (same files as @knjname), but no Rubberduck option from the Add-in manager in VBE or the COM Add-ins manager from File > Options > Add-Ins > COM Add-ins.

My set up is:
* Windows 7 SP1
* Office 2013 x64
* .NET Framework 4.5.1

I'm downloading VS 2013 Community right now and will try to follow the build instructions to see if that offers y'all any more insight into the issue.
@Mat'sMug well... your answer is a good Code Review. But honestly, you don't really answer the question. I definitely not think the other one should get it though.
the other answer is the only way to achieve what OP wants though
but ... ugh
You must remember that on Stack Overflow, answering the actual question is what's more important.
"don't do that" isn't an answer?
18:56
partially.
state that "Unfortunately, you cannot change the behavior of yadayada here. While it is possible to do it as @someoneelse said: (copy paste answer here), I would not recommend that (not following coding standards, best practices, yadayada). The best thing to do is really to change your style."
As your answer is now, it goes pretty much straight to "Change your style!". It would be better if you add some "fluff" around that.
lol I thought the header played that "yadayada" part ;)
I'm such a funny mug
@Mat'sMug that's a different kind of yadayada :)
00:00 - 19:0019:00 - 00:00

« first day (277 days earlier)      last day (2903 days later) »