« first day (1477 days earlier)      last day (1703 days later) » 
00:00 - 18:0018:00 - 00:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 17 commits. 6 opened issues. 3 closed issues. 9 issue comments. 860 additions. 432 deletions.
 
 
1 hour later…
1:15 AM
GitHub Extension for VBIDE 6.0+ ..."Fork me on GitHub", it says.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
===========================
 
1:33 AM
[rubberduck-vba/Rubberduck] build for commit 0a7e1017 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
===========================
[rubberduck-vba/Rubberduck] build for commit 0a7e1017 on unknown branch: 52.62% (target 0%)
 
@MathieuGuindon "Requires Visual Studio 2015 or newer", it says. Not VB6 :-)
 
I guess we could ask the owners if a fork could be made to run in VB6/VBA
GitHub belongs to Microsoft now, so..
 
Just re-read the link title. VBIDE6+, that's uh, a different thing
 
oh
I meant 6/7
 
Office VBE?
 
1:40 AM
although the IDE itself is probably just 6.something
 
yeah
 
VBIDE 6.x
 
@Duga Still gotta do the tests, but it seems to parse most of the cases when I kicked the tyres on it. Adding BARE_HEX_LITERAL to the lexer didn't work, as it would fail when the hex started A-F (picked it up as an IDENTIFIER).
 
the order matters, where was IDENTIFIER relative to your token?
in the grammar I mean :)
 
1:44 AM
> Still gotta do the tests, but it seems to parse most of the cases when I kicked the tyres on it. Adding BARE_HEX_LITERAL to the lexer didn't work, as it would fail when the hex started A-F (picked it up as an IDENTIFIER). So I just allowed (numberLiteral | IDENTIFIER). A little too permissive, but that shouldn't matter.

The key was excluding braces from IDENTIFIER. I checked in the VBE and they are not legal, so I think this is a safe (and indeed, desirable) change.
 
thing is, it has to come after, otherwise goodbye Dim a
 
@MathieuGuindon In the lexer, I had IDENTIFIER then BARE_HEX_LITERAL. It had to be that way around, otherwise identifiers that were also hex would break.
^^ yep
Sub DeadBeef() ' no es beuno
 
HEXLITERAL : '&H' [0-9A-F]+ INTEGERTYPESUFFIX?;
^ no bueno either?
 
that would be awesome, except MS in their wisdom didn't put &H in front in this case...
go figure
 
oh
well then it's impossible to tell from an identifier if it starts with a letter
 
1:48 AM
yep
 
without context, I mean
 
hence "meh, we'll allow numbers or identifiers after the colon"
 
as a parser rule
 
yeah
for this bit of the form header
 
yup
so.. why bother with BARE_HEX_LITERAL then?
 
1:50 AM
I didn't in the end, was suggested on the PR but didn't work
aaaand, I forgot to remove it
gah
sync incoming
 
[rubberduck-vba/Rubberduck] build for commit bd472678 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
probably a symptom of it being 02:53.... rest required.
 
> Duration always shows 0ms even when group by outcome shows a non-zero time. Originally a comment in #3590 I "rediscovered" this because I never reported this individually.
 
2:04 AM
[rubberduck-vba/Rubberduck] build for commit afa628c5 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@mansellan yikes! good night! ..whatever's left of it ;-)
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
===========================
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
===========================
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
===========================
[rubberduck-vba/Rubberduck] build for commit a4159371 on unknown branch: AppVeyor build cancelled
BUILD FAILURE!
 
2:25 AM
v2.2.3422
 
[rubberduck-vba/Rubberduck] build for commit 1c46c5fe on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=h1) Report
> Merging [#4082](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4082?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/3489486aee1e5454ab71c938f7fb54fc29bba956?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `11.54%`.


```diff
@@ Coverage Diff @@
## next #4082 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 1c46c5fe on unknown branch: 52.63% (target 0%)
[rubberduck-vba/Rubberduck] retailcoder pushed commit 30326e81 to next: fixes #4052
[rubberduck-vba/Rubberduck] retailcoder pushed commit 0a7e1017 to next: Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck into next
[rubberduck-vba/Rubberduck] retailcoder pushed commit a4159371 to next: inject Version into IVersionCheck service
[rubberduck-vba/Rubberduck] retailcoder pushed commit 1c46c5fe to next: Moved VersionCheck and dependencies from Main to Core.
Merge pull request #4082 from retailcoder/next

Unify splash & about box version numbers
 
@this re-disposing shouldn't happen, but nothing in the IDisposable contract says that.. I'm sure I read somewhere they recommend an accidental 2nd invocation to be no-op rather than throw an exception (or worse, corrupt unmanaged state)
 
3:12 AM
well I'll be damned
windowType: Indeterminate
eventType: WinEvent.SystemMenuPopupStart, WinEvent.SystemMenuPopupEnd
idObject: 3
...which isn't a member of ObjId....yet
 
3:28 AM
hmm no, not it
idObject: 1 does it
 
whatever. I don't even need to isolate intellisense
hey @ThunderFrame
 
@MathieuGuindon hola
 
intellisense doesn't interfere with AC anymore :)
2
 
Nice. I haven't read the full history, but I gather you were trying to find the popup? Spy++ won't help, but WinDowse works.
 
Didn't need Spy++:-)
When you uncomment the firehose you see a handful of msgs per keypress, always the same. Then you hit space and suddenly a new one shows up as intellisense dropdown appears
then another when it's gone
 
3:54 AM
Cool. WinDowse has global keyboard shortcuts, so you don't need to change window focus, or move the mouse
And it's free for non-commercial use
 
the best part is that this was one of the most dreaded fixes to AC. rest should be smooth sailing :)
 
@MathieuGuindon what did you think of @IvenBach's idea for AC with foo++?
 
more autocorrect than autocomplete, but it could work
 
It becomes foo = foo + 1... Ditto for other operators
 
4:00 AM
I saw a tweet earlier about multicursors in Viscose snippets. Could be useful approach for the backing UDT and property thing we discussed last week.
 
it's VSCode though
but wow
 
Oops, Viscose = VSCode
 
The syntax for defining the snippet looks useful and extensible
 
4:25 AM
the NameListWndClass aka intellisense dropdown is only created once. makes sense I guess. so ObjectCreate can't be used for fine-tuning. dang. I want the IntelliSense hwnd.
except now I know the classname is NameListWndClass, ...it's done.. building
bingo
 
hWnd is handleWindow? The pointer of the window?
 
yeah
except everything is a window in ...Windows
 
Which is why Excel has a hWnd property?
 
Is hwnd the parent object of other things it contains?
 
4:34 AM
it's just a pointer
 
If it's just a pointer why do you need it?
 
because it points to the window :)
 
I'm missing the obvious again.
 
13 mins ago, by IvenBach
Is hwnd the parent object of other things it contains?
hwnd isn't the parent object
it's a pointer to that parent object
 
#WordFail
Once you have the pointer to the parent object you can then dig around for what you want.
 
4:49 AM
plenty of User32 API functions take a hWnd pointer
 
I worry if I'll ever be able to adequately state what I think with programming concepts.
 
 
1 hour later…
6:08 AM
@IvenBach just think of hWnd as a unique ID. Want to get/set something about a window? Just pass its ID to one of a bunch of Win32 functions.
 
That's pretty much the determination I'd come to with hWnd.
 
> With github.com/IvenBach/Rubberduck/tree/… I've been able to get the results I've seen from VBA. I not trying to duplicate any work, but this is how I know to solve the restrictive permissiveness.
> Fixes most AC issues
 
@IvenBach any more AC issues? ;-)
 
@Duga If anyone knows how to better replicate the VBA checks of ?"10" = 10 'True I'm open to suggestions.
@MathieuGuindon The comment about backspace vs del was the only one I had thought of with VS.
 
short of fancypants tooltips (#4110) and the initial wiring-up of the codepane hook (#4080), everything is working exactly as it should now AFAIK
 
6:16 AM
If I don't understand any suggestions with the PermissiveAssertClass just keep talking at me. I'll eventually connect the loose wire.
 
sure :)
but for now, sleep
<~ off to bed
 
I already mentioned foo++ becoming foo = foo + 1. Everything else will take time to code with and iron out any undiscovered issues.
Night mug.
I'm heading to bed myself.
 
yeah I think foo++ is a great idea
just doesn't fit the AC "input -> output" structure ATM
but not impossible
 
I'm incrementing counters a lot less nowadays. But when I find myself doing destinationRow = destinationRow + 1 I'd really like it.
 
might as well implement += and -= too
and /= and *=
and \=
 
6:23 AM
Don’t forget —
My brains toast. Night.
 
[rubberduck-vba/Rubberduck] build for commit 5d9bff53 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4123?src=pr&el=h1) Report
> Merging [#4123](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4123?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/e2468806b7da88f20ca28a4ea0f08edb92cacd78?src=pr&el=desc) will **decrease** coverage by `0.05%`.
> The diff coverage is `0%`.


```diff
@@ Coverage Diff @@
## next #4123 +/- ##
===========================
[rubberduck-vba/Rubberduck] build for commit 5d9bff53 on unknown branch: 52.58% (target 0%)
 
@MathieuGuindon it might be worth adopting a rule-based syntax like that VSCode snippet syntax
 
Yeah.. I'll sleep on it =)
 
6:52 AM
Hi folks :-)
is THIS the reason for the name? :)
 
@SonGokussj4 exactly
and my avatar
 
7:18 AM
@mansellan In my suggestion with BARE_HEX_LITERAL it was fully intentional that the rule did not get used in case the literal starts with a letter. That would be a legal identifier. That is why I suggested to use the alternative including BARE_HEX_LITERAL, numberLiteral and unrestrictedIdentifier to match the hex value.
For context, whatever the lexer matches cannot be changed anymore in the parser. So matching hex values starting with a letter as BARE_HEX_LITERAL would have caused parser errors in case there are used as identifiers.
 
9:25 AM
> I'm right at the start here. Take refactor/rename.
I have a control on a userform I want to rename. Say it's an optionbutton optComments and I want to call it optComment.

With the userform editor, Rubberduck > Refactor all items are greyed out.
Double click the control, now in Private Sub optComments_Click()
All refactorings still greyed out.
Double click the variable optComments to select it.
All refactorings still greyed out.

How do I rename it?
 
9:49 AM
0
Q: Find and replace placeholders in Word with values from Excel

MRKI'm new at this and need assistance with shortening/streamlining the 2 pieces of code that is repeated three times each (this is a shortened version as these pieces of code is repeated many more times). Sub CreateWordDocTest() Dim wApp As Word.Application Dim wDoc As Word.Document Dim myStoryRa...

 
10:12 AM
> OK, found it
Click the Ready button to reparse. In the sub now right-click and choose Rename from Rubberduck -> Refactor

BTW the option button is in a frame fraOptions so if I select the optionbutton in the form designer menu the only thing it offers to rename is the frame.
 
10:40 AM
> I know this has been hidden but I wanted to try it anyway:

Sub testExtract()
Dim rng As Range, rowIndex As Long, colour As Long, colIndex As Long
Set rng = Worksheets.Add().Range("A1:Z1000")
'imagine some long procedure with 100+lines
For rowIndex = 1 To rng.Rows.Count

' this chunk should be elsewhere for reuse
' or to save duplication
colour = (rowIndex * 256 + rowIndex * 65536) Mod 16777216
colIndex = rowIndex / 2 + 1
rng.Cells(rowIndex, colIn
 
10:57 AM
> Start here:



Sub testIntroduceParameter()
Dim rng As Range, rowIndex As Long, colour As Long, colIndex As Long
Set rng = Worksheets.Add().Range("A1:Z1000")
For rowIndex = 1 To rng.Rows.Count
IntroduceParameter rowIndex, rng
Next rowIndex
End Sub
Sub IntroduceParameter(ByVal rowIndex As Long, ByVal rng As Range)
Dim colour As Long, colIndex As Long
colour = (rowIndex * 256 + rowIndex * 65536) Mod 16777216
colIndex = rowIndex / 2 + 1
rng.Cells
> @MDoerner Excellent points on the unit tests, it's something I need to get into the habit of doing. Being reflective for a second, I think that my negative past experience with TDD has taught me some very bad habits, which I should correct. Specifically, I race to the code out of sheer impatience. I need to remember the old maxim that sometimes: "Slower is quicker."

Thanks for reminding me of this. Next sync will have proper test coverage.
 
11:21 AM
Just for info: Rubberduck Czech Translation status
545/1016 lines translated
 
11:44 AM
@mansellan I agree that TDD can be very tedious when still designing a feature. I have to admit that I do not really follow that approach in that situation. However, in fixing bugs it is much easier to apply: the structure is already there.
 
12:07 PM
Edit: 693/1016
I'm on fire :-D
But that fire is gone. Have to go now :-)

Have a nice weekend!
 
12:57 PM
0
Q: VBA Latency Issues

anish raoI'm working on a large VBA project for work (around 1000+ lines of vba code) This module is called within another module where I disable everything possible like screen updating, events and setting calculation to manual to improve speed, yet this still seems to run slowly when I'm working with sh...

 
@QuackExchange "large (1000+ lines of code)"... boy are you in for a ride
 
@Duga ah, didn't consider that we already have a ) typed, so it's implicitly "there". But I still don't get it -- don't we normally type Function foo As, not Function foo As)?
 
2:04 PM
I have to think very hard to come up with any VBA program I have written that is below 1000 lines of code.
 
@this function foo() as
 
sorry, i'm confused. I understood that we are checking the expression when one has typed a )? If that's already typed, then what I'm typing right after the as?
 
if you delete the type name up to the space that follows As and hit tab, you don't want AC to go Function Foo() As As Variant
 
ah!
 
@Vogel612 For non-daily coders 1000 lines feels like a mountain on top of you.
 
2:10 PM
I know.
 
I felt that way with my own VBA code.
How blind I was then...
 
2:31 PM
Uh, I just realized that I broke my code library while refactoring. (Using RD's autofix on class modules with attributes set certainly was not my smartest idea.) Luckily, 20 min later, thanks to code versioning and diffing, I'm back to working status. Could have been worse.
Crisis averted
 
2:41 PM
@Inarion that's gotta be the single most annoying side-effect of being required to work off the code pane contents: rewriters lose member attributes
 
would it be possible to do a short term fix of providing a warning whenever non-default attributes are detected before executing rewriter?
 
#TODO: Find a sucker to write the fix
 
lol
not quite a fix though
a fix would be figuring out a way to translate a codepanepass Interval into an attributespass Interval
 
I know. And I also knew about this exact limitation. (Or I had previously known...) - It was just not present in my mind when I pressed the autofix-button. ;)
 
2:50 PM
#TODO: Find a sucker to write the fix
 
lol
@Inarion FTR I broke my own code myself multiple times because of this
 
@MathieuGuindon Ha, I can easily imagine that. (How would one remember those attributes when the darn VBE doesn't show them?)
 
^
I don't know what they were thinking when they implemented that "feature"
 
I really wonder what the decision process was when they added support for showing a selected few of them, like the Name attribute, but not for others...
 
"oooh, let's make it easy on the noobs and hide those super complicated attributes. it's easier that way."
 
2:55 PM
^ also "oooh, and let's make members invocable implicitly, so everyone and their dog can write VBA code, but nobody can read a line out of context and know what it's doing"
 
Aside from the 5 minutes of confusion that my brain needed to connect the dots (and draw the correct conclusion), though, no damage done on my side. :)
On a completely unrelated note: It's Friday. It's 5pm. That is (in your words, @MathieuGuindon) almost beer o'clock! (Cya around!) :)
 
@Inarion I wish :) 11:02AM here
 
@SonGokussj4 You too!
 
3:55 PM
@Inarion I asked myself "What are these attributes these people are speaking of... I don't see anything." When I actually payed attention and read about needing to export the modules to see them. "Hrm... even more stuff I had no clue about and don't understand".
I now understand why programming stuff should require effort to do correctly. It's too easy to hide the layers of the lasagna. You end up with majority of users having NFI what they're doing.
^ Is this how #ImposterSyndrome is borne?
Duck check: With moving parts of the solution into their own project do namespaces get auto updated or does that need to be manually done?
 
4:14 PM
@IvenBach kinda, yeah
"oh, you know VBA! we'd need XYZ, bet you can do that eyes closed!"
 
^ Me muttering under my breath: "Only if you want it to contain unqualified ranges, dot select with selection dot, and a smattering of other macro recorder jewels".
 
@Inarion Look up Ten Little Bottles, by Johnny Bond.
That is, only if Country doesn't make you want to commit suicide, like some people I know.
 
That checkbox was marked when I was built.
 
@Duga was wondering when that was going to happen :)
 
4:23 PM
I'll try to create a PR for the redim variable bug, OK?
 
awesome!
 
@awgaya chat.stackexchange.com/transcript/message/45289482#45289482 ran through my mind when I read this.
 
hah :P I was the one who failed to implement it back then so it's only fair
 
@IvenBach lol
 
I think your hiatus started right before I started coming here.
For any issues I raise, I feel a sense of duty to fix them.
 
4:28 PM
:)
 
@IvenBach speaking of issues you raised, mind testing this build for all the AC fixes? :)
 
Will I get those fixes if I pull from next?
 
the PR isn't merged, so, not yet
 
There's issues with doing an install with a dev build already though?
I need to get comfortable with testing with an installer and getting the dev build working again.
 
hmm @this could confirm, but I think RD.Deploy handles it smoothly now
damn, IsBlockCompleted is failing
Function test() As Variant
    msgsbox "While" 'all good

    While True

    Wend

    Wend

End Function
...but only when an InputToken is in a string literal. I must have forgotten to StripStringLiterals somewhere
otherwise the inline completion feels very very very much exactly where it needs to be now
except msgbox " isn't right, you get MsgBox ""| ...and that's @this comment about assuming whitespaces
 
4:36 PM
@MathieuGuindon LOL.
 
5:11 PM
@MathieuGuindon not that'd have mattered since VBA'd have pretty printed it the same way.
@MathieuGuindon @IvenBach the key is that you just need to build the deployment project before you debug. Actually, the deployment ought to be the startup project.
 
which solves itself if the startup proj... ^ that
 
Because it'll update the registry for each build, that can stomp any installed version. It's generally best to uninstall the installed version if you intend to use the installed version. Even better, keep it separate in another VM.
 
@this yeah.. but I'd want it to be MsgBox "|" regardless... but that means no longer assuming that not-same code means VBE pretty-printing added just one space, i.e. accounting for weird edge cases where the user is probably trying to deliberately break the AC
i.e. wasting critical cycles for little gain
(not that the current code is super-efficient already)
 
you said VBE will add space somewhere. Will it really add a space in the middle? I'd thunk it'd be always at the end?
 
when you type msgbox" and leave the line, you get MsgBox ""
 
5:16 PM
oooh
oomf
that sucks
 
ditto for msgbox("foo")
^ actually that was the scenario I was correcting for - extra parens getting shifted
 
actually it can get worse.... foo a,b,c => foo a, b, c
that's 3 new spaces added. :\
 
yeah but that doesn't affect AC, crap
 
> This is a refactored version of the UnreachableCaseInspection. This version addresses many of the unresolved comments from the initial PR as well as some improvements/corrections: 1. Refactored tests into multiple files - IMO, the single file had become unwieldy. Also allows better identification of unit tests versus functional tests. 2. Simplified the inspections processing to a single pass - prior design essentially evaluated each RangeClause context a couple times. 3. Adds Like...
expression support. 4. Adds & operator support 5. Enhanced/Corrected Eqv and Imp operator support 6. Flags value range clauses like 'x To y' where x > y. These RangeClauses are unreachable due to invalid order...but VBE still compiles and executes without errors. 7. Strengthened the handling of RangeClauses containing variables 8. Respects Option Compare Binary/Text setting.
 
okay so I need to figure out where the caret needs to shift
what would be a good algorithm for that?
I know I've inserted "" and where that is in the "before" code
I need to find that insertion point in the "after" code
I can determine the count of InputToken in the "before" code, then get the IndexOf(InputToken) - and that would be the caret position in the "before" code
 
5:23 PM
@MathieuGuindon I think you need a diff tool.
 
no, I need to write one
 
Which, anecdotally, is overdue for inspections.
@MathieuGuindon Same thing.
 
What's the use case of that for inspections?
 
Showing the diff(s).
Preview
 
I see
thing is, a preview box that takes 200ms to render doesn't matter
 
5:25 PM
@MathieuGuindon To what?
You mean it's too slow?
 
with AC, 200ms can make the difference between "awesome" and "typing is somewhat sluggish"
 
For inspections?
No, no preview for AC.
Just for inspections. You can reuse the diff tool.
 
not if diffing allocates a ton of objects. No I'd rather have AC work out the positions
 
Is it just whitespace?
 
I know what characters I'm adding and where; all I'm missing is the instance of it in the string
 
5:28 PM
Or do you need to account for auto-complete changes too?
Compare the two strings and skip whitespace in both to map the old position to the new position?
 
@Hosch250 the problem to solve is that the code I insert is not the code that gets inserted, because VBE pretty-prints
 
@MathieuGuindon If it's just whitespace, that's easy to solve...
 
 Dosomething(42,(|))
Will be inserted as
Dosomething (42, ())|
I need to work out the instance of the character I'm inserting in the "expected string", and find the index of the same instance# in the "actual string"
 
just to check --- why can't you take the current position, then search forward for the new occurence of the typed character?
 
@MathieuGuindon Yep.
 
5:32 PM
so if the typed char is ", look forward for the " then put the cursor there?
 
@this because that wouldn't account for edge cases like msgbox (
 
[rubberduck-vba/Rubberduck] build for commit c24b2f4f on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4127?src=pr&el=h1) Report
> Merging [#4127](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4127?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/e2468806b7da88f20ca28a4ea0f08edb92cacd78?src=pr&el=desc) will **increase** coverage by `0.08%`.
> The diff coverage is `92.25%`.


```diff
@@ Coverage Diff @@
## next #4127 +/- ##
=======================
 
@this I can't assume it's going to be the next one
 
hmm.
 
[rubberduck-vba/Rubberduck] build for commit c24b2f4f on unknown branch: 52.71% (target 0%)
 
5:33 PM
ok, what about this....
 
I think I've figured it out
 
strip all the whitespace from both original & new code, then compare the position to put the caret?
or maybe what you have in your head is better. :)
 
@this That's exactly what I suggested.
 
3 mins ago, by Mathieu Guindon
I need to work out the instance of the character I'm inserting in the "expected string", and find the index of the same instance# in the "actual string"
 
Exactly...
 
5:35 PM
@Hosch250 #SkimFail
 
First get the n, then get the nth index of
Stripping ws is just extra work
 
Yeah.
 
I wonder if VS actually parse for AC....
 
Also the selection isn't correct when completing the astypeclause of functions/propget
it's still assuming the width of 'variant', but now the type might not always be that
that's pretty easy to work out though
IIRC that leaves 2 AC issues... that IDK how to fix
 
which are?
 
5:42 PM
injecting the quickinfo message in the msgloop
and hooking on existing code panes
 
oh, just do User32.SendMessage
why can't you loop the open Windows on the startup?
 
17
Q: What are the consequences of wishing for 'all' the gold?

aphidA lot of fantasy stories involve someone using magic or technology to solve a problem, only to find out the spell or thing they used to solve their problem was a little too potent. Let's say a wizard invents an alchemical like spell that creates gold. It's not created from nothing though, it's ...

World-building is hilarious.
 
@this see this is why I dump unfiltered thoughts in here: we collectively know everything we need to know to succeed!
2
 
:+1:
and that's why I'm here, too. To keep learning and get to know stuff I'd not know if I weren't here.
 
@Hosch250 some pooples... What if taken to extremes.
 
5:50 PM
lol as if whatifs wasn't already extreme
 
@IvenBach quick! What if I threw a baseball ball at the speed of light?!?
nudge nudge
 
00:00 - 18:0018:00 - 00:00

« first day (1477 days earlier)      last day (1703 days later) »