« first day (1014 days earlier)      last day (2166 days later) » 

4:00 AM
Down goes the rat, down goes the cat, down goes the lady VS in her its big green hat...
Oooh, again.
It doesn't want me to open a WinForms dialog.
 
WTH? Why would typeof(int).IsAssignableFrom(typeof(short)) return false?
 
[Hosch250/Rubberduck] Hosch250 pushed commit 9564bc6d to EncapsulateFieldDialog: Make other replaced dialogs implement new interface
 
I think your Int32 and Int16 abstractions leaked a bit there, .NET.
 
4:19 AM
Extract Interface can wait for another day.
And so can the cleanups.
OK, folks, run your code before you run the tests.
I just broke a Ninject injection.
And this fixes it:
private void BindRefactoringDialogs()
{
    Bind<IRefactoringDialog<RenameViewModel>>().To<RenameDialog>();
}
@Mat'sMug Does that answer your question?
 
[Hosch250/Rubberduck] Hosch250 pushed commit 9bba100d to EncapsulateFieldDialog: Fix binding issue
[Hosch250/Rubberduck] Hosch250 pushed commit a1d77686 to EncapsulateFieldDialog: Merge branch 'EncapsulateFieldDialog' of github.com/Hosch250/Rubberduck.git
Merge pull request #2876 from Hosch250/EncapsulateFieldDialog

Make other dialogs implement the new interface
 
@Mat'sMug Looks like we'll be able to go to an abstract presenter factory--or maybe even get rid of the factory entirely.
 
[rubberduck-vba/Rubberduck] build for commit f8d0f024 on unknown branch: AppVeyor build succeeded
 
It is quite easy to set up the Ninject bindings for each specific interface implementation.
 
4:28 AM
There, all fixed.
 
[rubberduck-vba/Rubberduck] build for commit a41b9327 on next: AppVeyor build succeeded
 
4:51 AM
Night.
 
 
5 hours later…
9:37 AM
> Just installed this yesterday. When set to load on start-up it always crashes Access when I try to open the VBE (the crash is fatal, I don't get into the VBE and then Access closes).

Yesterday it was fine with Excel, but now I am getting the same issue there too. FYI the splash screen for Rubberduck opens, and then the crash happens.

When the crash happens I am given the option to close the prog or debug via Visual Studio (neither option keeps the program open).

No choice now but to
 
9:51 AM
> FYI not sure if it is relevant but I have two other VBE add-ins loaded (which work fine, but perhaps may interfere?)
- VBA Mz-Tools 3.0
- EverytingAccess.com vbWatchdog
 
10:28 AM
Some food for thought (Source: InfoQ) about Stubs, Mocking, Service Virtualisation. infoq.com/articles/…
 
> Hi and thanks for raising an issue.

Are you able confirm a few things?

1. When you launch the VBE, are there any host-documents already open? Does it make a difference if there is a database file open when you launch VBE, or if Access doesn't have any databases open?

2. If there is a database open, does it have any forms/reports showing, or any code running before you launch the VBE?

3. With Rubberduck disabled, launch the VBE and close any open modules/userforms, then save. Re-ena
 
Got an email from a guy in the UK who sells Excel courses. (I got to do some research somewhere about Excel!) Anyway...he is a teacher also but sometimes his tone feels like a bible down my throat. Be interested in your views about now talks to me what he thinks about VBA.
"A question I get asked all the time is what is VBA and what is the benefit of learning it?
VBA is Visual Basic for (Microsoft) Applications. I know it sounds so technical and boring. Snooooze. VBA is all about automatically controlling Excel. What do I mean by that?

Well, a basic example is copy and paste, if you do some work which involves lots of copying and pasting, then doing some VBA will allow you to set Excel up to automatically copy and paste whatever you want. Sounds okay, right?

BUT…here's the kicker.
I think he is way over the top to grab that attention.
Anyway, have a good day and good night folks.
 
11:38 AM
> Hi there.

Happy to (try!) and help. Would love to get it back working for me again!

So to answer:

When you launch the VBE, are there any host-documents already open? Does it make a difference if there is a database file open when you launch VBE, or if Access doesn't have any databases open?
I have only tried this with a database open. But I did try it with a very simple test DB with no VBA code and the problem persisted. Also, same problem in Excel when opened with a blank workbook.
> @Jaspos Rubberduck's VBE add-in registry key has a value for *LoadBehavior* that the installer sets to 3 to load at startup - you can disable it without completely removing it by setting that value to 0:

![regedit](https://camo.githubusercontent.com/67cd1f7c2aa2466762dd698c7a1824ed488f2f1b/687474703a2f2f692e737461636b2e696d6775722e636f6d2f7a7a3853782e706e67)
> Great, will try all this and let you know.



Duncan

Duncan Salmon
www.alpine365.co.uk<http://www.alpine365.co.uk/> | facebook<https://www.facebook.com/pages/Alpine365/150986028258532?ref=hl> | twitter<https://twitter.com/alpine365ski>

[cid:image001.png@01D29E54.4D1CF2F0]

*** Voted "One of the Best Alpine Chalets" by the Daily Telegraph ***
T: +33 (0)9 81 93 71 10 | M: +33 (0)6 66 03 53 14
Alpine365 SARL | 2 La Régence | 69 route d’Hauteville | 73700 Bourg St Maurice | France
> I just noticed you have vbWatchdog installed... I need to check if the fix went into 2.0.13, but there is/was a parser issue with vbw-generated code.
 
12:29 PM
> Ok, I have been able to take a quick look now


1. For both Excel and Access, when Rubberduck is set to load on start-up it crashes both XL & ACC when I launch the VBE, even with no workbook/DB open/no code running

2. If not loaded at start-up, it still crashes both XL & ACC when in the VBE if I try to load RubberDuck

3. If I disable vbWatchdog the problem persists

4. If I disable both vbWatchdog and Mz-Tools (ie disable all other VBE add-ins I am running), the prob
 
@Duga 640bit OS? There's your problem.
 
12:45 PM
> Is this logging anything to the RD log file? Also when you say...

> the splash screen for Rubberduck opens, and then the crash happens

... do you mean that the splash screen is the only thing you see, or does it ever get as far as displaying the VBE window?

Finally - most of the time when you get debug prompt, that means the host process survived long enough to write an event to the Windows application log. Can you check to see if there are any details there? It would be in the Comp
 
1:41 PM
> OK….


1. I only see the Rubbeduck splash screen, never get to see the VBE window. FYI I have attached a screenshot of the crash message in case it is of any use:



[cid:image002.png@01D29E62.3CDCC290]



2. There ARE some Rubberduck logs, but they don’t appear related to the crashes, and only log my system info:

2017-03-15 19:17:25.0799;INFO-2.0.13.32288;Rubberduck.App;Rubberduck version 2.0.13.32288 loading:
Operating System: Microsoft Windows NT 10.0.1439
 
1:52 PM
@Duga Wasn't there some other issue that involved COMCTL32.dll?
 
2:04 PM
> Hi there.

Happy to (try!) and help. Would love to get it back working for me again!

So to answer:

When you launch the VBE, are there any host-documents already open? Does it make a difference if there is a database file open when you launch VBE, or if Access doesn't have any databases open?
I have only tried this with a database open. But I did try it with a very simple test DB with no VBA code and the problem persisted. Also, same problem in Excel when opened with a blank workbook.
> Great, will try all this and let you know.



Duncan

Duncan Salmon
www.alpine365.co.uk<http://www.alpine365.co.uk/> | facebook<https://www.facebook.com/pages/Alpine365/150986028258532?ref=hl> | twitter<https://twitter.com/alpine365ski>

[cid:image001.png@01D29E54.4D1CF2F0]

*** Voted "One of the Best Alpine Chalets" by the Daily Telegraph ***
T: +33 (0)9 81 93 71 10 | M: +33 (0)6 66 03 53 14
Alpine365 SARL | 2 La Régence | 69 route d’Hauteville | 73700 Bourg St Maurice | France
[rubberduck-vba/Rubberduck] build for commit b788f271 on unknown branch: AppVeyor build succeeded
 
2:39 PM
> Rubberduck must be logging something, however IIRC I believe logging is disabled by default (or did we change that? can't remember...) - anyway if you go to `%appdata%\Rubberduck`, there should be a `rubberduck.config` xml file in there.. if you could crash RD just once more for us, I think we can get something to chew on.

Open up the configuration file in Notepad (or Notepad++), and find the `<GeneralSettings>` section near the top:

````xml
<GeneralSettings>
<Language Code="
> Oh crap, sorry I missed the comment about there having RD logs - ignore my last comment. :neutral_face:
 
how the heck are there that many loaded assemblies?
 
2:58 PM
how the heck does github not strip out needlessly large signatures and email-reply-overhead?
 
> Ok, I have been able to take a quick look now


1. For both Excel and Access, when Rubberduck is set to load on start-up it crashes both XL & ACC when I launch the VBE, even with no workbook/DB open/no code running

2. If not loaded at start-up, it still crashes both XL & ACC when in the VBE if I try to load RubberDuck

3. If I disable vbWatchdog the problem persists

4. If I disable both vbWatchdog and Mz-Tools (ie disable all other VBE add-ins I am running), the prob
> OK….


1. I only see the Rubbeduck splash screen, never get to see the VBE window. FYI I have attached a screenshot of the crash message in case it is of any use:



[cid:image002.png@01D29E62.3CDCC290]



2. There ARE some Rubberduck logs, but they don’t appear related to the crashes, and only log my system info:

2017-03-15 19:17:25.0799;INFO-2.0.13.32288;Rubberduck.App;Rubberduck version 2.0.13.32288 loading:
Operating System: Microsoft Windows NT 10.0.1439
 
> Email replies do not support markdown
wtf, and you can't edit markdown into one either
 
@Mat'sMug That's everything that Excel loaded too. Guessing the Power* VSTO addins are loading a bunch of them.
 
So we have nothing to chew on basically
 
3:15 PM
I'll see if I can get the VSTO add-ins installed and try to replicate it that way tonight. I'm also curious if that's still a vbWatchdog compatibility thing - it's still in the loaded assemblies from the WER dump.
^ You don't compile, you don't belong in Documentation.
 
^^ *it's using Set keyword to assign integers... Come on!
Also, why would examples even need to have a body in a topic about parameters
 
IKR?
Last thing I want to see is code copied and pasted out of Documentation showing up on Q & A because it doesn't compile.
 
3:38 PM
@Comintern do you recall if the grammar fix was done for vbWatchdog's one-liner Sub declarations with the attributes underneath?
 
@Mat'sMug I don't think so. I don't remember seeing in the commit history.
 
@Comintern Who doesn't love examples that don't work correctly?
 
4:01 PM
@Comintern Your 10 line rule of thumb has really helped me see when SRP isn't being followed.
 
@IvenBach generally speaking, whenever you could have a comment saying "'---- BELOW CODE DOES XYZ ---" then that's usually a chunk of code that belongs in its own method
it's SRP sure, but mostly abstraction
 
Anything little bit that helps me think of refactoring is better.
 
abstraction isn't only about classes; abstraction is achieved with properly named local variables, procedures, functions, objects - abstraction is the art of taking something (one or more instructions) and sticking a label to refer to it
 
In my own code I don't think I usually have those types of comments.
 
@PeterMTaylor Reads like a scammer.
 
4:11 PM
@PeterMTaylor Don't forget to provide him with you bank account, Social Security Number, Address, and names of all your dependents.
 
I'd pay to see his code and tear it apart
3
 
4:25 PM
Seems Code Inspections isn't updating after a Re-Parse
 
They can take a while
Don't use the inspection results toolwindow's refresh button
 
I'm not. It's a small file I noticed it on.
It was saying 'Member names implicity references ActiveWorkbook' and I commented it out. After I clicked reparse via the IDE it still shows up in the window.
If I save close re-open and re-parse it doesn't show up in the Inspection results
 
Ugh. Can't wait to get my stuff merged... Inspections will finally get under control.
Likely will introduce new bugs too, like we do the changes in the rewriter but don't actually rewrite the module
I'll have to add tests for that.
 
I caught that after I made several changes and the results went from 44 to 66+
I thing some of the Variable 'theName' is never assigned may not like the format If theName.<property> is nothing then ...
Would that be called an inline statement?
 
4:42 PM
@Mat'sMug I had an idea for generating inspection quick fixes.
 
@IvenBach A property access should be fine
 
Although, I'm not too sure how it will work out.
 
what is it?
 
Basically, we write a factory for each quick fix that DI's all the dependencies.
Then, in the factory, we have a Create method that takes information specific to each result.
 
yeah. we also need some inspection result factory
 
4:44 PM
Yeah, this is more like a result factory, actually.
So, instead of each quick fix, have a factory for each result.
 
I think quickfixes should end up completely decoupled from inspection results
from a TSR point of view, a lot of them do exactly the same thing: replace tokens
 
Hmm.
What if instead of passing a quick fix to a result, we should pass a result to a quick fix.
 
4:46 PM
thing is, the result needs to know what quickfixes are available for it
 
The result should know which ones to load, then somehow we use Ninject to load those ones and pass it in.
OK, you get your stuff done, and I'll take a look and see what I can do after I swap the IsBuiltIn out.
 
from yesterday's progress it seems the TSR works, I just need to tweak the tests so that they assert on rewriter.GetText() instead of module.Content()
 
@Mat'sMug private static readonly Type [] AvailableQuickfixes = { typeof(FooQuickfix), typeof{BarQuickfix} }?
The other way would be to use reflection - just enforce a naming convention that a quickfix has to be name FooQuickFixAction
 
[rubberduck-vba/Rubberduck] build for commit 2cf9c4f1 on unknown branch: AppVeyor build succeeded
 
@Comintern that's the thing - say we have a fix for making a parameter explicitly ByRef, and then another for making it ByVal; IMO there should be only one, that inserts or replaces the BYREF or BYVAL token in the parameter's declaration
yet it's two separate inspection results
and how do we instantiate them?
 
4:52 PM
Activator
 
bypass IoC?
quickfixes could have crazy dependencies, e.g. some have IRefactoring dependencies, which themselves have UI dependencies
 
That's basically what IoC is doing anyway- think of it as "manual IoC".
 
I know... except the IoC part is written already ;-)
 
Well there is that...
 
(and Ninject doesn't use reflection!)
 
4:54 PM
QuickfixFactory.GetQuickFixes(typeof(this))?
 
I think the coupling between a result and its applicable fixes is real and necessary
how about just ctor-injecting the concrete quickfix types?
and auto-bind all types implementing Rubberduck.Parsing.Inspections.IQuickFix with themselves?
 
That would work. That's basically what I wanted to do with the fakes.
 
that way we could have an abstract IInspectionResultFactory<TResult>
 
That would be a pretty good decoupling step by itself.
 
and we wouldn't even need to implement the factories ourselves
I ♥ Ninject
speaking of which.. I gave a bit of thought to that VBA IoC framework discussion - we can't do anything about it until we find the Holy Grail
i.e. IoC framework's job is to instantiate classes
so a RD IoC framework would need to be able to instantiate VBA classes
and the day we can instantiate VBA classes, the first thing I'd do isn't to start implementing an IoC framework
the first thing I'd do is make RD tests work off test classes
public interface IInspectionResultFactory
{
    IInspectionResult Create(/*the only question left is exactly what goes here*/);
}
we might end up needing some IInspectionTarget
 
5:10 PM
VBA IoC would also need to be something like property injection.
 
so that would be IInspectionResult Create(IInspection inspection, IInspectionTarget target);
'@Inject
Public Property Set View(ByVal value As IView)
    Set this.View = value
End Property
totally
 
Private Sub Class_Initialize()
    RubberduckIoC.InjectionTarget Me
End Sub
 
wouldn't '@Inject` annotations be sufficient?
oh yeah, we need to pass the object instance somehow
 
RubberduckIoC.Inject Me
 
5:13 PM
Although, hooking Class_Initialize might work for that.
 
ducky's a junkie now lol
 
lol
 
@Comintern if that's so, then all we need is '@Inject annotations decorating the properties we want to inject dependencies for
 
The fake callbacks need a custom marshaller - .NET's marshalling chokes on *VARIANT when it's an option parameter that wasn't passed.
@Mat'sMug Yeah, that was pretty much my thought.
 
yikes
could we inject into a Private Property Set?
(the one thing I don't like about Ninject is that it requires a set-only property for property injection)
 
5:17 PM
Possibly - The only drawback is that the EasyHook library requires an object instance to find the vtable entries on the interface.
 
that's a drawback?
I'm missing something..
 
Of sorts - that's the only thing that would prevent you from setting up all of the bindings outside the classes.
I was thinking of the non-IoC angle - RubberDuckNewUp("Class1", "ctorParam")
But that's more relevant to Mocks.
 
an IoC container needs 3 methods / API's: one to configure the dependencies, one to get/create an instance of something, and one to destroy everything
that's Register, Resolve, and Release
ok stop wait a minute. do you realize we're discussing a freakin' IoC framework FOR VBA???!!
I'm just mind-blown
 
IKR?
 
I'll understand your wall of text one day...
 
5:29 PM
I think I might add a new RubberduckExperimentalFeatureInspection.
 
lol
@Comintern the COM API wants to trigger it
that API really needs to expand into an actual reflection API
 
Dead serious - Hint level? Triggers on any RD declaration that we flag.
 
^
works for me
 
Meta - Save your work.
 
haha yeah
if we can create an instance of a VBA class, then the reflection API wants an Emit method
 
5:31 PM
That would be sick.
BTW, I'm already grabbing a VBA.ErrObject instance to raise VBA runtime errors from the fakes instead of throwing COM errors.
 
I just saw 1000 doves take flight
the wall between VBA and .net is breached
TEAR DOWN THE WALL!!
OMG lol
    Exit Sub
ErrHandler:
    Beep
End Sub
#HowNotToHandleErrors
 
lol
 
@Comintern looks like when your work and my work gets into the main repo, we have something like a 2.1 waiting to be released
 
At least it isn't:
    Exit Sub
ErrHandler:
    Beep
	Err.Clear
	Resume Next
End Sub
 
hey at least it beeps!
 
5:38 PM
@Mat'sMug I really need to get the f%cking ToolWindows sorted first.
 
ugh
yeah
I mean I just don't feel comfortable calling it 2.0.x with the TSR stuff going on, the inspections under the parsing assembly, and a freakin' mocking framework in the making
 
I have one more angle on that before I write a C++ wrapper that can run in its own domain.
 
the shim thing
so we can crash in our own little bubble without taking down the hole process
 
That would suck, BTW. I hate configuring VS for C++ development.
 
@Comintern One question. How do you have time for school when you're always in here with @Mat'sMug?
 
5:41 PM
@Mat'sMug Hold out for the refactorings UI's, if I don't get them done first.
@IvenBach Hey, I'm the student.
I don't know.
 
I thought @Comintern was a student too.
 
During the toughest parts, I would usually only check in in the morning.
 
I don't think we can crash in our own bubble on that one. It would just allow something to outlive the rest of RD and handle the last couple messages in the pump.
 
It's gotta be the red in your icons that's screwing me up.
 
@IvenBach That's news to me.
 
5:42 PM
@IvenBach I'm at work. :-)
 
No wonder IT guys make their own startups. Look at all this free time you have.
 
Right now, I'm only in four classes, writing a paper, and I've been pretty sharp at picking things up since middle school, so I don't have to study too much--it is mostly the busy work that gets me.
 
6:00 PM
Range.Find can return Nothing. You have to test the return values. — Comintern 43 secs ago
^I'm about this close to writing a host-specific inspection for that.
We'll give it another 100 or so more SO questions.
 
why be specifically about Range.Find?
any object-returning function should be assumed to possibly return Nothing
 
@Mat'sMug That's a valid point
 
6:09 PM
#DefensiveProgramming
 
Is there any way in the Code Explorer window to see whether a Method is Pub/Priv?
 
private members have a little padlock icon
 
Oh that gray blob thing? I thought it was a shadow.
 
I find them a bit blurry too, but it's better than using icons we don't have a license for :)
 
Yeah.
At least I'm not alone thinking they are blurry.
 
6:11 PM
@IvenBach open up an issue for it, IIRC @Comintern put all the icon source files in the repo somewhere - we can fix this
 
IIR I think I did. If not, I still have them.
16x16 is kind of a bitch though.
 
I might see if I can outline the smaller overlay elements.
 
> When trying to determine if a method is public or private the icons make it hard to distinguish. If the image were cleared up it would be easier.
 
I think the icons are fine themselves. IMO they just lack a black border around the perimeter.
The hole inside the shackle shouldn't be grey either.
 
6:15 PM
not black - just a darker shade of the dominant color
 
That might just be the alpha blending.
 
@RyanFrancis FWIW you do have a global worksheet object for free. Look at the Project Explorer toolwindow; worksheet nodes appear as Sheet1 (Sheet1) - that's CodeName (WorksheetName), where CodeName is a global-scope Worksheet object variable you get for free. You can control its name in the properties toolwindow (F4), by changing the (Name) property. — Mat's Mug 4 mins ago
we need to figure out a way to make these global-scope variables easier to discover
 
@Mat'sMug That is true. Many Excel VBA users have no idea they are there.
 
6:58 PM
If a guard clause may have more clauses added to it, what is the best way to incorporate them?
Is it better to add a method PassesAllRequirements() and test everything in there?
 
> I wonder if maybe the settings file is corrupt, and RD is choking on the file.

You could try deleting the settings file, and RD should recreate it.

The settings file is located at `%APPDATA%\Rubberduck\rubberduck.config`
 
I learned from one of my politically-minded family members the other day that feminists are calling "rubberducking" "mansplaining" now and are trying to make people stop it.
 
...
 
@Hosch250 Shouldn't the duckists be the ones that are upset at the "humansplaining"?
 
People will find any reason to get upset over something.
 
7:11 PM
@Comintern Perhaps.
@IvenBach I'd agree. I stay out of politics, as a general rule.
It's kind of funny, but politicians have never changed.
I'm in a literature class, and it was either Confucius or Lao Tzu (I think that's his name), and he described politicians like the way they are now.
 
@Hosch250 it's actually "brainsplaining", where one's brain does all the work
Or "self-explaining"
 
Then Dante in The Inferno explains that most politicians are traitors, etc. and most of them are in very deep parts of hell.
 
@IvenBach usually not - that makes a layer of indirection that's usually superfluous
 
What is the aversion to using FileSystemObject? You're obviously not on OSX or the WScript.Shell would fail. — Comintern 1 min ago
 
@Comintern "because I can't figure out how to use it properly"
 
7:15 PM
Tempted to offer up FileSystemObject.GetFileName as an answer.
Best way I know to parse a full filepath...
 
@Mat'sMug What then is preferred?
 
That a procedure's guard clauses are in the procedure they're guarding?
 
That sounds like an entire separate issue. If you don't know how to use a screwdriver, hitting it harder with a hammer isn't the solution. Check out the examples in Documentation, and if you're still having issues, look into using a Scripting.Dictionary (now included with the same reference!) for duplicate management. — Comintern 21 secs ago
 
@Mat'sMug So you'd have
Sub subsName()
    'Guard clause testing stuff goes here
    testcode ....

    end testcode...

    codeYouWantToRun
end Sub
 
hmm, why do you need a guard clause if you're not taking in any parameters?
The idea is to put all the assumptions in one place
Throwing an error works. A Debug.Assert call works too.
Actually I think I prefer Debug.Assert for this
#Depends
 
7:27 PM
^
What is the purpose of testcode?
 
Should we have an inspection for usages of Application.Run that have a string literal argument that is calling a procedure in the same file? Would be better written as a qualified method/function call, RD would effect renames on the call, and would avoid runtime errors when project/module/procedure name changes
ditto for CallByName on Workbook/Worksheet objects
 
I'm trying to think of whether or not there's a legitimate use case for that, but it's not coming to me.
How does Application.Run handle scope? For example, if you have Sheet1.Foo and Sheet2.Foo and do Application.Run "Foo", do that just result in a run-time error?
 
bbiab
 
7:46 PM
@ThunderFrame seems too specific. And why would you use Application.Run over Call (implicit or explicit)?
 
> OK, that worked. A bit. Here’s what happened:

Worked a few times – but each time I closed the main app I got an message as if the app had crashed (“Excel is trying to recover your data, yada yada yada”), and then it reopened the file. Same for Access & XL

But now it’s back as it was ie crashed before getting to the VBE.

So this may well be related to the config file as I have re-deleted and it does the same as above,

NB I did make a change to “which windows open when RD opens” and
> > NB I did make a change to “which windows open when RD opens” and then I couldn’t get to the VBE again - so I assume this will have altered the config file, so this could be the problem?

I'm about 90% sure that is related to the issue. I'll see if I can replicate this with any settings combinations on my machine and do a bit of static analysis to try and identify bad code paths.
> Cool.

If it helps the three windows I had selected were explorer, todo, and code analysis (? - can’t remember the exact name – the style cop one).

Don’t think I changed anything else.

I am based in Europe so likely will be off this now until tomorrow our time, will get back on to this as needed then.



Duncan

Duncan Salmon
www.alpine365.co.uk<http://www.alpine365.co.uk/> | facebook<https://www.facebook.com/pages/Alpine365/150986028258532?ref=hl> | twitter<https://twitter.com/
> We need to catch and log exceptions thrown on loading configuration...
 
8:02 PM
@Duga Style cop?
 
lol
Meant R#
 
No, not R#.
StyleCop is an addin for VS kind of like VSD, only with style rules.
IIRC, it is primarily maintained by a group of MS employees that work on Roslyn.
Or something like that.
StyleCop is an open source static code analysis tool from Microsoft that checks C# code for conformance to StyleCop's recommended coding styles and a subset of Microsoft's .NET Framework Design Guidelines. StyleCop analyses the source code, allowing it to enforce a different set of rules from FxCop (which, instead of source code, checks .NET managed code assemblies). The rules are classified into the following categories: Documentation Layout Maintainability Naming Ordering Readability Spacing StyleCop includes both GUI and command line versions of the tool. It is possible to create new rules to...
 
I never used it
 
Huh. FxCop claims to find ComInterop issues.
 
@Mat'sMug Me either.
 
8:18 PM
Oh, FxCop = Code Analysis.
 
Oh
 
125 warnings isn't too bad.
 
VSD would probably have a heart attack though
 
@Mat'sMug Don't install it from NuGet.
There are a few bugs in that one.
I'll set you a .vsix to install (just double-click it and it installs as an addin) if you like.
 
Meh
What does it do that R# doesn't?
 
8:26 PM
Mmm, not too much.
It puts the warnings in the error pane
 
Aye, so you don't get them until you compile
 
No.
In case you haven't noticed, VS puts them in there dynamically.
So, you don't even need to compile to see compile errors in there.
 
Hadn't noticed. That's new since Roslyn.
I wonder how much business JetBrains lost to Roslyn
 
I hope a lot.
I hate R#.
 
For the wrong reasons imo
 
8:32 PM
@Comintern testcode was to just be an example of all the checks that are done.
 
It is smart, but it is slower than a snail soaked in cold molasses.
And it has caching problems when used with SC.
 
Only when the project file needs to reload AFAICT, and IMO the fact that VS needs to reload things is the actual annoying problem
 
No, it gets messed up when you switch branches.
Well, that might be part of it, but I've had it get messed up a lot.
 
So, turn off solution-wide analysis before you switch branches
 
8:37 PM
So, that doesn't work. I've tried it.
When you turn it back on, it just reloads the same caches.
 
Hmm
 
@Mat'sMug IDK - I've seen a lot of SO questions that assume Application.Run, or even just Run is the natural/only way to call a procedure. How many timems do people misuse Call either by using it explicitly or by adding casting parentheses, or both? And I've inherited code that built the run statement because they included the addin version number in the project name, FFS.
 
Gosh that's horrible!
I suppose we could do it then... so we need to resolve the literal string argument?
Perhaps it should be enabled only in hosts that have an Application.Run method though
 
IKR - They had the version number and the environment embedded in the project name. When DEV and test passed, they had the change the project name and remove/readd the reference to ALL of the workbooks that referenced it. i.e. They had to change the add-in and all of the referencing files before releasing to prod.
 
dafuq
thus invalidating all the testing
 
8:48 PM
YEP
 
@Mat'sMug #ICanBePrgmr!
That sounds like something I'd do.
 
and IT couldn't access the prod location, so they couldn't do the relinking. They had to go to business user and perform the update live.
 
I hope they didn't have any remote users.
 
@ThunderFrame 👌
 
and the best part is that the p-code/execode was sometimes caching the referenced project name internally, so you had to use Application.Run.
 
8:53 PM
Is it taboo to rename ThisWorkbook to something else?
 
and the best part is that the p-code/execode was sometimes caching the referenced project name internally, so you had to use Application.Run.
@IvenBach There were some, but it only needed to be updated from a single user's PC. The files and add-in sat in a shared location.
 
@ThunderFrame That made it all the more maintainable, obviously.
 
@IvenBach it's not taboo -it's an RD recommendation.
 
@ThunderFrame wut?
 
8:55 PM
@IvenBach except for the smart-accountants who cached a forked copy locally because they could load Excel faster, and then blame IT when they were out of Sync.
 
@ThunderFrame renaming the project is, not the host document name...
 
But is there an issue with renaming the host document?
 
@Mat'sMug huh, I thought there was an inspection: Consider renaming default document name - maybe it's only for the sheets.
 
it can be done, and we allow it. doesn't mean you should though ;-)
@ThunderFrame default project name. And SheetN gets a result because it ends with a digit
 
[rubberduck-vba/Rubberduck] build for commit 53603697 on unknown branch: AppVeyor build succeeded
 
8:58 PM
@Mat'sMug So it's generally frowned upon. Why is that?
 

« first day (1014 days earlier)      last day (2166 days later) »