« first day (2505 days earlier)      last day (675 days later) » 

12:02 AM
RELOAD!
[rubberduck-vba/Rubberduck] 1 opened issue.
[Minesweeper] Games Played: 157, Bombs Used: 117, Moves Performed: 21283, New Users: 13
 
 
2 hours later…
1:53 AM
user image
2
tB needs private classes
and predeclared instances... I'm being forced to make a factory module for VBA code to be able to create and initialize an AppContext
hm we can hide them with an underscore prefix though
(gotta test that)
hm, nope, ValidationErrors.[_NewEnum] is showing up as NewEnum
 
2:29 AM
oh, modules are private lol
ok simple, just expose a parameterless constructor
interesting, ...somehow Rubberduck isn't seeing the tB types
 
3:15 AM
 
3:25 AM
@MathieuGuindon why the IDisposable is there?
 
mostly for this punk:
Private Sub IDisposable_Dispose()

    Set This.Context = Nothing

    This.Punk.Disconnect
    Set This.Punk = Nothing
    Disposable.TryDispose This.ValidationAdorner
    Set This.ValidationAdorner = Nothing

End Sub
in the PropertyBinding base class
'@Description("Encapsulates a property binding for a MSForms.TextBox target.")
class TextBoxPropertyBinding
    Implements IPropertyBinding
    Implements IDisposable
    Implements IHandleControlEvents
    Implements IHandlePropertyChanged

    Private Type TState
        Base As PropertyBinding ' composition > inheritance
        Notifier As INotifyPropertyChanged
        Handler As IHandlePropertyChanged
    End Type

    Private This As TState
 
> ## ⏩ To Summarize
**A quick description of the problem:**
This could be a bug in Rubberduck's library loader, or just something weird with my twinBASIC library or my computer, or it could be that twinBASIC type libraries are [currently?] structured in a way that somehow sets them apart from other libraries, but it appears Rubberduck is currently unable to load/resolve a twinBASIC library.

CC @WaynePhillipsEA
twinBASIC version: 0.9.1602

## 🔁 To Reproduce
**Steps to reproduce the
 
@Duga thinking of tweaking the issue templates a bit, thoughts on that one? (the template would prompt for the RD version)
 
3:57 AM
damn, 0 problems and there's a .dll in the output folder, but the "debug console" is listing a bunch of [LINKER] compiler errors about what looks like missing default constructors
Public Sub New()
    GuardClauses.GuardExpression Throw:=True
End Sub
ooh we can make the default ctor private
 
are those predeclared? if so it’s not supported yet, i believe
@MathieuGuindon doesn’t it already? it asks to paste the version from rd about dialog
 
it does, but there's no big headings and emoji icons
"to summarize" / "to reproduce" / "to call it fixed"
 
add it in, use clipboard emoji, maybe?
 
 
2 hours later…
6:52 AM
heh, onto page 2 already :-)
 
 
5 hours later…
12:06 PM
> This behaviour is by design. In contrast to the declaration, the assignments can have side-effects. Accordingly, option 3 is out of the question as it can silently introduce subtle functional bugs.

We can still treat it as a possible enhancement to disable the quickfix if there are assignments. However, disabling it will likely raise questions on why the quickfix is not available for mysterious reasons.
 
12:53 PM
> So, is there a need for a VariableAssignedButNeverReferenced inspection? It would compliment the VariableNotAssignedInspection and would narrow the focus of the VariableNotUsedInspection to really-no-kidding-never-used declarations - and the QuickFix can be applied safely. Assigned but never referenced variables would still be flagged but would not offer a QuickFix.
 
1:23 PM
@MathieuGuindon Personally, I'm not a fan of communication via picture, too easy to misunderstand. Yes, the text is there, too, but... the emoji, they creep
 
@FreeMan 😊
 
smacks @mansellan
 
πŸ˜ŽπŸ‘β€πŸ˜πŸ˜’πŸ‘ŒπŸŽ‰πŸŽ‚
2
 
ignores @mansellan. Looks for "block user" setting.
:)
seriously, what's that last one? Chocolate cake? A Minecraft block? Dirt with a little grass sprouting on it? THIS is why I despise graphic emoji. Simple old school text based ones are generally understandable. generally
 
@FreeMan you need to welcome your new emoji overlords. Soon we will no longer use text but communicate only by emojis.
 
1:37 PM
Because people are already so good at communicating with words...
 
We are now post-literate society! What a brave new world! applies for Fordship
 
Sees 1984 everywhere he looks.
 
TBH I see both everywhere.
 
1984 and Brave New World? I've not read the latter, though I should.
 
Yes, it's very good contrast.
Boot on your face only works if your boot is big enough and they can keep standing on your face for as long as they want.
Distracting them as to not need the boot on the face may be more expedient.
Either way, they've come to use both 1984 and Brave New World as instruction manuals. :-\
 
1:40 PM
Speaking of warnings of the future, I remember watching Fahrenheit 451 many (many) years ago and being very confused by it. I later discovered that it was intended to be a warning against the creep of TV and watched it again (funny, I've watched it twice, but never read it), and it made so much more sense.
@this Sadly very, very true.
 
@FreeMan wait, there's a movie about not reading?
 
oh the irony!
oy the ironing
 
lol
 
Wasn't there a time when that got an "autostar"? ah, the old days...
 
I have to say, I'm loving the fact that twinBASIC issues are now on GH. It's kinda distracting me from my work though!
 
1:48 PM
can of worms opened
 
Seriously, good question. I would not want twinBASIC to end up accidentally evolving into VB.NET
VB.NET is just.... no.
 
istr some bits are horrific. "lambdas" maybe?
 
oh yeah
and givent hat tB is unmanaged, no reason to follow VB.NET anyway
borrow only the good bits but go off in our own direction, basically
 
sure, but from the opposite direction, no need to diverge just because. Imo, diverge if following would lead to unpleasantness...
 
1:53 PM
"basically" ... bad pun
 
Agreed.
@BigBen Here's a pin for you!
#TIL C# 7.2 allows for in modifier
but reading through the specs quickly it doesn't seem to do anything useful...
Mainly because foo(int bar) is already a "ByVal" so that bar won't be changed after the call, and because foo(in someObject bar) won't guarantee that someObject.Mutate() isn't called within the called method.
 
2:11 PM
buys 🐀.com
(not)
 
@MathieuGuindon so is that a yellowchick.com?
oh wait, that's a goldenfinch.com, right?
 
emoji urls are coming and we're not going to like it
 
they should never come. I have no idea how I'd google it
 
Is πŸ₯š@🐀.com a technically valid email address though?
2
 
I rest my case
 
2:24 PM
BRB buying a shotgun now....
 
good call
 
3:10 PM
@this they're for readonly structs: devblogs.microsoft.com/premier-developer/…
 
Ok,now that makes more sense.
enforcing that UDTs and arrays aren't mutable should be doable.
enforcing that for objects is much more hard
e.g. did foo.ToString() mutate the foo? We don't know!
 
@FreeMan :waves:
 
3:35 PM
ha
 
3:46 PM
@this if it did, fire the author
(!)
 
@MathieuGuindon no, but πŸ₯šπŸ€@farm.com is
 
@Vogel612 I'm going to assume that the original RFC was an April Fools joke taken seriously.
 
no.
the original RFC just said that the local adress isn't constrained
as long as the mail arrives at the host with the address unchanged that also should work perfectly fine
 
Well, that was probably pre-emoji, sooo....
I'm sure the author regrets his error now.
(or could it be a long con job?!?)
 
honestly even ;a horrible address, really;@[::1] is a valid email address
 
3:55 PM
^ and this is why the only thing you can reasonably validate in an email field, is the presence of an @ character
 
but you know 100s of providers are constraing it to alphabetic characters.
 
tbf, it seems prudent to require the host to be a name, not an IP-address for almost all cases
@this sure, but that's their business
 
So an email πŸ₯šπŸ€@farm.com is most likely unusable. As it should be.
#ScrewRFC
 
mumbles something about conservative emission and liberal acceptance
 
alt="[:egg::ducky:]@farm.com"
 
4:00 PM
@Vogel612 probably one of the worst mistake behind the one-off mistake.
 
if tB is really going to have docstrings for the entire std library, would be nice if the docstrings could somehow be open-sourced so we could load them into RD and have stdlib docstrings in VBA/VB6 as well
 
For the VBA/VB6 internal stuff, wouldn't it need to come from the docs.microsoft.com?
 
nah we're loading the type library and getting the docstrings from there
when they exist
 
and I guess they don't in the VBA7.dll or msvbvm60.dll.
 
all we'd need is some StdlibDocStrings.resx with a key for every identifier and then we could supplement VBA7.dll with them
actually not even a .resx file, any old plain-text format will do
(we don't need them translated)
(or do/would we?)
 
4:06 PM
well, docs.microsoft.com is "translated"....
IDK if there are any contents that's not machine-translated, though. I thought there were at least some but not sure....
 
I wouldn't want to hit docs.microsoft.com all the time though
 
Yeah
and they have this nasty habit of moving stuff because...
 
@MathieuGuindon DROP%20TABLE%20Users;@me.com
 
should be ;DROP%20TABLE%20Users;; --;@me.com, I think
(guessing at the escaping here; you need the trailing -- to make sure you don't cause a syntax error which then won't execute your surprise
 
@this heh yeh, my sql-foo is lacking
 
4:14 PM
this also assumes that it's being html-decoded. IDK how common it is to html-decode the string
 
@this probably not that uncommon
especially for stuff like entering this into a webform at some "contact us" area
or at the login of some email provider
 
OK. I thought it was usually done for query parameters, not necessarily the form-url-encoded payload
 
I'm just guessing, honestly
but given the number of times I read "please don't use %#,;": in your email" or something similar...
 
Which came first, the 🐀 or the πŸ₯š ?
I'll show myself out...
 
4:40 PM
@HackSlash why not both?
 
0
Q: Best way to copy data to a new sheet and reorganize it (VBA)

Barrett TillmanI'm writing a VBA program which copies and organizes data from one master sheet into numerous other sheets. One of the recipient sheets unifies all the data from the master sheet which holds the same id number into a single row. For this operation, I am looping through the master sheet for each i...

 
@this it just occurred to me that nobody eats chicken for breakfast. Eggs for breakfast, yes. Chicken breast for dinner, yes. Chicken breast and eggs for a meal? We must fix that!
 
4:56 PM
@this what you're looking for is oyakodon
 
@this well, eggs are kinda "pre-chicken" are they not?
 
@FreeMan or are they "post-chicken"?
 
5:13 PM
@mansellan & @FreeMan no, they're chickens. Just a special case of chickens. See: squares and rectangles.
@Vogel612 #TIL
 
@mansellan "post-chicken" is the smelly stuff that gets shoveled out.
2
 
oyakodon literally means "parent and child on rice", soo :D
 
lol
 
it's a bit like that "boiling the goat in the milk of it's mother" thing
 
@Vogel612 lol I wonder if someone made it out of spite.
 
5:17 PM
I'd guess they usually make @this out of chickens and eggs. No spite involved. Hopefully, no spit involved, either.
 
cancels the trip to Japan
 
5:39 PM
πŸ₯š vs 🐀 is just a rephrasing of i++ vs ++i ...semantics!
 
🐀++ vs ++🐀
 
🐀-- == πŸ₯š?
then πŸ₯š++ == 🐀
 
I quit
 
@FreeMan Acheivement Unlocked!
 
6:09 PM
@FreeMan don't be a chicken.
 
@BigBen too bad his name ain't Marty McFly.
 
Heh, Wayne seems to be getting inundated with the 23 years-worth of enhancements that MS failed to implement to classic VB...
 
 
1 hour later…
7:18 PM
Hrm... Attempting to add the new RD.Settings.ProjectSettings as a default value isn't working. It doesn't show up in the Type dropdown. Changing the type manually in the designer doesn't update Settings.settings. I'm missing the obvious.
 
or I am. Is htere a app.config?
 
There is.
I remember Past-Iven faceplanted like this and couldn't add the type.
 
add it there and see what happens
tbh app.config and settings.settings is confusing
it's a ugly hack
 
Added it and it's unavailable from the dropdown.
 
clarify - what droddown
 
7:33 PM
Within Settings.settings the Type column dropdown.
 
maybe you type it in?
 
I've tried searching via Browse. RD.Settings isn't an option.
Tried typing it in but it doesn't change.
 
Ok forget the designer for a bit
open the app.config & settings.settings in a text editor
set it up so tha they are similar to what you see for general settings
 
In a non-VS editor?
 
Yes.
MANUAL OVERRIDE ENGAGE!
 
7:40 PM
Manually adding it then opening the designer shows the correct type.
Time to test.
 
That feeling when the absolute crap software you use creates a helpful 112MB "RuntimeStatistics" text file containing 3.9 million lines of absolutely useless crap.
#FinancePeopleWhoCantCode
 
8:15 PM
@IvenBach From my experience, it is best to open the settings in text mode. You can do that via the context menu of the solution explorer.
I have no idea what they thought when they build the default view on settings.
It is even worse for the code inspection settings.
AFAIR, they all appear in a single field.
 
8:45 PM
2021-04-15 13:40:30.1587;FATAL-;Rubberduck._Extension;Startup sequence threw an unexpected exception.;Castle.MicroKernel.Resolvers.DependencyResolverException: Missing dependency.
Component Rubberduck.UI.CodeExplorer.Commands.ImportCommand has a dependency on Rubberduck.Settings.ProjectSettings, which could not be resolved.
Make sure the dependency is correctly registered in the container as a service, or provided as inline argument. ---> Castle.MicroKernel.Handlers.HandlerException: Handler for Rubberduck.Settings.ProjectSettings was not found.
 
I think you were supposed to add something tot he Ioc
 
After adding a ProjectSettings parameter to ImportCommand I'm getting this IOC error. I don't know what needs updating to correct it.
 
thinking someone should document the steps required to update/cerate settings....
this is way too convoluted.
 
I don't understand enough to do it on my own.
 
no, it's convoluted.
the whole thing with settings.settings was to work around a problem with something something for setting up IoC without making the consumer take a dependency soemthing something.
Honestly I can't remember why it's that way now
you could review the closed PR? Issue? about using settings.settings for the background
but all more the reason to document this convoluted process
 
8:55 PM
I will have a look at the IoC. I already have a hunch what is missing.
 
@this Sorry to ping. I searched for settings.settings there is no closed issue. Only Issue 4493 which is open.
 
Wait, why have you added a ProjectSettings parameter to the constructor of a command?
That really cannot be registered in the IoC.
Did you want an IConfigurationProvider<ProjectSettings>?
 
Yes, he's adding a new settings service
hence he needs ot update the IoC registration to handle the new service for ProjectSettings
 
There is nothing to update in the IoC for that.
It should just work.
However, you cannot inject the actual settings object.
Well, technically, you can method inject it via the command's parameters.
However, the concrete settings cannot be constructor injected.
 
I've added private readonly IConfigurationService<ProjectSettings> _projectSettingsProvider; to CodExplorerViewModel. I still don't fully understand it but seems like it isn't the CodeExplorers responsibility to handle a project setting. Hence I was trying add the parameter to the ImportCommand constructor.
 
9:08 PM
Where do you need the settings?
If you need them in the ImportCommand, then you can inject the IConfigurationService<ProjectSettings> there.
 
^ For the FilesToImport(...) member.
 
Constructor injecting the settings themselves cannot work: there is just one instance of the command over the entire lifetime of the duck.
It needs to get the current settings, i.e. it needs a service to get them.
 
But for the ImportCommand to have a service it needs to be injected.
The CommandParameter="{Binding SelectedItem, Mode=OneWay}" is being passed to the command.
Oh.... Since that is what is being passed to the command the provider should be included on the parameter?
 
No, you should be able to constructor inject the provider.
In principle, you could pass the project settings in the parameters, but that gets a bit ugly with WPF.
The error message you got looks like you tried to constructor inject ProjectSettings instead of IConfigurationService<ProjectSettings>.
 
9:26 PM
Why does providing the ProjectSettings directly instead of via an IConfigurationService barf?
 
settings is just a value container. You want it to read from a setting file somewhere, not a default value when you new it up.
 
Technically, it barfs because we do not register the concrete settings types; we only register the providers.
It really does not make sense to register the concrete types because that would mean that the settings could not change while RD is still running.
 
Because it is then tied to the concretion, instead of the abstraction?
 
You would have to register a specific instance of the class.
Accordingly, you would always get the same settings.
Well, technically, you could register a factory.
However, it would still mean that the settings cannot change on a target that constuctor injects the settings.
Since the commands are registered in singleton scope, i.e. there is just one instance of them, the settings could not change anymore once the command class has been instantieted.
With the service however, you get the current version whenever you request the settings.
 
 
2 hours later…
11:46 PM
[rubberduck-vba/Rubberduck]: 1318 stars vs. [decalage2/oletools]: 1508 stars
 

« first day (2505 days earlier)      last day (675 days later) »