« first day (1991 days earlier)      last day (1189 days later) » 
00:00 - 19:0019:00 - 00:00

7:02 PM
um
that's not how it should work
 
TortoiseGit's import keeps telling me that a file on disk is newer than/different from the one on disk. Right-click | Diff on the file (in Win Exp) shows me zero differences. Why's it keep saying it needs to be imported?
The code does exist in my accdb, too.
This is after having already imported it once.
even when it's set to compare whitespace it says they're the same
@Duga Typo alert: .16231 doesn't appear to be anywhere near close to a valid build number
carp. changed branches, that's why.
coulda sworn I'd check them in and merged to master though. :/
 
@FreeMan debug build
 
ah! gotcha
 
7:28 PM
> A refactor rename of a class or module should check the CustomUI Xml for the host document to ensure that any ribbon callbacks are update appropriately.
> Are CustomUI callbacks defined somewhere?
 
@Duga do we even know about the customUI xml?
 
we don't, and there's no way to know what xml attribute is a callback name without the schema and documentation
Worry(Level.CanOfWorms);
 
Thus, refactoring can't touch what it don't know.
 
yeah. same as #1186, except this one's an
oh, they're all enhancements
 
ah yeah. Wasn't obvious from the title alone
 
7:47 PM
in any case, so far we've consistently declined or deferred anything related to CustomUI/XML Ribbon stuff
 
> The module or class name is specified in the Custom UI but there is nothing in the VBA that indicates that a module responds to Ribbon callbacks other than the naming convention you adopt.

For example I have extensive ribbon customisation for a Word Template. To organise this I have VBA modules called

RibbonResponderVisibility
RibbonResponderButtons
RibbonResponderCheckBoxes
RibbonResponderDropDown
RibbonResponderToggleButtons

Then ,for example, in RibbonResponderButtons I have t
 
TBH, that is best left to a hypothecial plugin architecture.
 
@MathieuGuindon lol! True.
 
the hypothetical plugin could conceivably provide a list of Declarations/IdentifierReferences to enable refactorings / quickfix to work without knowing the particulars.
Just wait a decade or two.
 
> How is Rubberduck supposed to know where to find the XML for the custom UI? I toyed with Ribbon stuff once, and there doesn't seem to be any standard way to do this - you could have your XML inlined in concatenated string literals, or loaded from disk, or pulled from a database.

And then sure you could have an `onAction` callback, but then you could have callbacks to determine visibility of UI elements, or to load a picture, or a description, ...what specific XML attributes in what specific
> AFAICT we would have to go through the entire Ribbon XML documentation and identify every single possible XML attribute that holds a callback name.
 
7:58 PM
GetCustomUI is obviously a callback - but the only requirement is that it returns a String that contains the XML
 
TBH I think the custom UI xml is overengineered
 
#understatement
 
> We can identify GetCustomUI as a callback - but the only requirement is that the method returns a String that contains the XML; RD could invoke that callback if it exists and get the XML, and then we can traverse elements and see what the attributes are, but without knowing what attribute is a callback, we have nothing actionnable.
> We can identify `GetCustomUI` as a callback - but the only requirement is that the method returns a `String` that contains the XML; RD could invoke that callback if it exists and get the XML, and then we can traverse elements and see what the attributes are, but without knowing what attribute is a callback, we have nothing actionnable.

And then, we can refactor/rename the callback, but we can't fix the actual XML attribute value(s).

This is a massive, massive can of worms.
> I envisaged that it would be possible during a refactor rename to determine when a class or module is being renamed and to then use the two names to do a find/replace in the CustomUI.CustomUI14.xml. IN my case the regex would have been to replace '"<0 or more spaces><findname>' with '\1\2<replacename>'. This didn't seem to onerous a task but I'd have to admit my viewpoint is limited to Word so I don't know how the difficulty increases with other office apps.
> I envisaged that it would be possible during a refactor rename to determine when a class or module is being renamed and to then use the two names to do a find/replace in the CustomUI.CustomUI14.xml. IN my case the regex would have been to replace '"<0 or more spaces><findname>' with '\1\2<replacename>'. This didn't seem to onerous a task but I'd have to admit my viewpoint is limited to Word so I don't know how the difficulty increases with other office apps.

I don't think there is any ne
> I'm not very familiar with Ribbon XML. When I toyed with it I noticed that `GetCustomUI` was happy to load inline XML from a string, and couldn't care less where the actual content came from (you could load the XML from a file, from a database, or you could hard-code it into the callback).

How does RD know to even look in `CustomUI.CustomUI14.xml`? Or is it `CustomUI.xml`? Is there a standard .xml filename that will always be loaded if present?

Refactorings don't currently look at commen
> Also we can't have it work for onAction callbacks and not for getImage and getEnabled and whatnot.
> I think the best we can do is invoke the GetCustomUI callback on parse to get the XML, then parse it, and if that succeeds and we have a list of callback attributes somewhere, then we can identify all callback procedures as such and avoid tripping "Procedure not used" (#1186), and even render the XML in some toolwindow (#3369), but pushing changes to the XML doesn't seem realistic.
> I think the best we can do is invoke the GetCustomUI callback on parse to get the XML, then parse it, and if that succeeds and we have a list of callback attributes somewhere, then we can identify all callback procedures as such and avoid tripping "Procedure not used" (#1186), and even render the XML in some toolwindow (#3369), but pushing changes to the XML doesn't seem realistic (although the XML render could very well identify callbacks referring to methods that don't exist in the VBA cod
 
8:25 PM
the Tortoise does not seem to like me!
 
> The zip file that is a word template contains a directory 'CustomUI'. In that directory will be the CustomUI10.xml or CustomUI14.xml that represents the ribbon customisations. As far as I understand its just a single file. I'd assume other names are possible but this is what you end up with using the CustomUI tool.

Below is the xml for the Callbacks captured by the RibbonResponderCheckboxes Module after manually find and replacing 'RibbonResponder' by 'RibbonCallbacksFor'


<group
 
This is the master form for my project. I have made no changes, I simply set a breakpoint in the code (testing my command line parameter handling). I added a few logging lines to a different module, hit ctrl-s (which should do an auto-export of changed modules) and this is the only thing Tortoise claims changed
 
> The zip file that is an VBA host document is locked for editing by the host application, we can't write to it.
> The zip file that is an Office VBA host document is locked for editing by the host application, we can't write to it.
 
confirming that OASIS is set to split form files. Why is my CODE in the .layout file?
 
> Dang. That would seem to kill the feature request. Qeu sera....
 
8:32 PM
and why is the date stamp on the master file nearly a month old? Where the heck does it think it just exported code to???
here's what OASIS thinks the date/time is on the module I just modified
that's 4 years ago!
 
looks like the GetCustomUI callback I remembered was just the method I had written to build the XML ...there's no such callback
 
8:56 PM
> Side note - there's no GetCustomUI callback... that was a remnant of my foggy memory from when I last toyed with Ribbon XML. And in the absence of such a callback... there's simply no way for RD to know where/how to get the custom XML... short of implementing a way to somehow associate an XML file with a VBA project (and without project-level config, that's a stretch).
 
@FreeMan better to leave Use object-date as filedate unchecked
There are some issues with it. (Access, not OASIS)
 
oh gee, it's already 18th and we haven't released 2.5!!
5
What do we need to get this puppy out of the door?
 
A boot?
 
well, we want a running puppy duck, not a limping puppy duck.
Um. Can a duck even run?
Waddle, Yes. But run?
 
I think we need my still open PR, the PR to fix refactoring bugs I am currently working on and the translations.
I already dread translating the component types into German.
 
Ok will the PR include the 5287? I'm hoping it's a trivial fix
We may need to mark issues that should go into the 2.5
so we can be sure we have all PR resolving them merged.
 
9:31 PM
I had no intention to touch the UI stuff.
 
OK. In that case, I'll look at it when I can
 
 
2 hours later…
11:32 PM
Further refactoring question: what should we do with dictionary access expressions when removing the parameter?
 
so from foo("bar") to just foo()?
 
No, from foo!bar to ???
 
well, that expands into foo.Item("bar")
Therefore, if we remove it, it'd be now foo.Item, no?
(that presumes the default member is named Item, of course)
 
It could, but it could also be foo.FooBar.Baz.BAr.Baz.Item.
So, we would need to first expand the dictionary access and then apply the refactoring.
 
need to consider the chained calls foo!bar.Value -- changing to foo.Value wouldn't be correct.
Yes, I think so. Otherwise, we end up changing the semantic of the call
 
11:38 PM
I really had no intention to go down such a rabbit hole.
 
then you should disallow the refactoring on a default member
 
Why foo.Value?
 
suppose that foo has a property named Value and also a default member Item?
foo.Item.Value and foo.Value wouldn't be the same thing
 
Shouldn't it be foo.Item.Value?
 
Correct; the point is that with original code foo!bar.Value, it would not be safe to refactor into foo.Value just because we no longer take the bar as a parameter to the Item default member
 
11:40 PM
Ah, did not read the negative.
Sorry.
I also had no intention to go through the UI implications af disallowing anything.
 
NP. Anyway, disallowing the refactoring on default members is fine by me. I'm sure I am mising other edge cases and it needs its own PR.
Doesn't it already have the UI to indicate a given action is invalid?
 
But I have to set up the logic, add an appropriate refactoring exception, add a resource string, which needs to be translated, and register the exception in the notifier.
 
OK, what other alternative is there?
 
Leave it as is for now.
In all the time, nobody ever stubled over it and compleined.
 
I assumed you already had started the work and it was impacted
 
11:44 PM
We should open an issue, but not consider it for 2.5.
 
In which case, that is also fine, I guess. Mat did say that under no circumstances any refactoring should end up with invalid code. So as long your existing work doesn't lead to that, I think that is also fine (not doing anything for the Remove Parameter refactor)
Agreed.
 
I only wanted to fix the refactorings for the default member changes and now I am somewhat deep into fixing the behaviour of the original refactoring.
I think, the existing code simply throws an unexpected exception because things are not where they are supposed to be.
Might also just bail out.
Problem is, after fixing the refactoring, it might actually remove the parameter.
OK, the way I am setting up things now, it will not do anything.
 
00:00 - 19:0019:00 - 00:00

« first day (1991 days earlier)      last day (1189 days later) »