LINQPad 9 - Early Preview now available
Comments
-
Part two, the code that linqpad proxying for gpt-4.1-mini didn't like.
-
Thanks for providing that detailed info. It looks like catastrophic backtracking in the regex engine. I've just uploaded an update that avoids regex and is hundreds of times faster. Let me know how you get along.
-
While typing in the latest version of LINQPad, I randomly encounter NREs. Could this be related to IntelliSense failing to initialize?
-
This should be fixed in the latest build. Let me know if it's still an issue.
-
Enjoying the new v9 UI - thank you. Minor feedback that I would put my hand up for would be:
- Tabs: Could script tabs be like "My Scripts" and "Samples" - ie no bottom radius and border?
- Compactness: It looks great on a small screen and vertical space is nicely prioritised. On a larger screen, I'd love to be able to increase the 'air' around panels. Would a user setting named something like 'MarginFactor' (defaults to 1) work? I'm thinking of something akin to the touch mode in Office, although touch is not the motivation for this.
- Margin above first line in editor (void Main())
- Margin above root node in "My Scripts" treeview
- Top and bottom margins of editor toolbar
-
There appears to be a change in how references are managed. Namely, if I have added a normal reference to an assembly and that assembly is updated, LINQPad would have detected the change in the file and refresh the intellisense cache and whatnot.
It doesn't seem to be doing that now. I would have to remove the reference and add it back to see the changes. This breaks my workflow of developing my components in my IDE and run tests in LINQPad. Could this behavior be restored?
-
@JohnGoldsmith - Tabs cannot be changed without a rewrite. This will happen at some stage but is not highest priority right now. Regarding compactness, the old version had a tablet mode and I could reintroduce that. However, your suggestions as to where to increase margin are all reasonable (and some were already on the TODO list) so where I might start is to add a couple of pixels or so in those areas - this may be enough to balance the UI without needing to create a separate option. This should be in the build for late next week. Let me know what you think at that point.
-
That would be great. Will standby for next week.
-
There has been a few changes to completion on missing methods which makes it less helpful.
In the following example, the option I would like (i.e. to replace Image with LINQPad.Controls.Image) is missing in LP9.
Contrast with LP8
Also, I miss the little down arrows at the end of the definition and clicking on the lightbulb sometimes works, but most of the time it seems to briefly display the options menu and then immediately dismisses the menu. It looks to me that I need to click on the left hand side of the lightbulb icon for it to stay open.
-
@JohnGoldsmith - 9.2.12 has now been released with the adjusted margins.
@JeffMercado - I have not been able to reproduce this. Do you have an MRE? Keep in mind that files referenced across network connections or symlinks are not watched.
@sgmoore - Thank you - this has now been fixed in 9.2.12.
-
@JoeAlbahari I'll see about trying to make a repro. I believe it was just a simple netstandard 2.0 (might have been targeting .NET Framework 4.6.1) windows forms library that I wanted to test. And all I did was create an instance of one of the forms and show it.
Made changes to the constructor (added parameters) and trying to run (without changes to the original code) lead to missing method errors I think. No compile time errors or red squigglies until I removed and restored the assembly.
If there are no changes to any of the used methods or properties after updating and is source compatible, it'll run ok, and I can see the updated form.
The script will pick up the updated assembly when run, but the intellisense did not get the update and still thinks the assembly is a previous version.
I'll have to check back with you when I get back to the office. I can't reproduce either with a basic example. The project I was working on and its dependencies were... complicated. I was adding a reference to assemblies that were placed within Program Files so there might be some permissions complications maybe.
-
Thanks @JoeAlbahari I think if this were a setting then I would go even further. On my large screen vertical space isn't an issue at all and so I'd go for even more separation
-
For single-column data tables, Excel export will report an error.
-
Thanks - this will be fixed in the next build.
-
Pressing F12 on a SqLite table sometimes opens ILspy but displays an error message such as :
Cannot find 'P:LINQPad.User.TypedDataContext.Steps' in command line specified assemblies.
Don't really like reporting errors that I can't replicate, but perhaps the info may help track this down. (Since I can't replicate it, I am not entirely sure that only happens in Version 9).
Looking at process monitor, it appears Linqpad is launching ILSpy with a command line that is over 20,000 characters long !
When it fails, the command line does not include a reference to the typedDataContext dll and when it works, the dll is included at the start.
Two things that are unusual about this particular script is that I have a scheduled task to run another script in Linqpad and that script runs this particular script using Util.OpenScript (with the run parameter true). However if I manually run the task it always seems to work.
(Not a big issue as pressing F12 on a table is not something that I need to do regularly, but I have being doing it just to see if I could pinpoint the exact circumstances that it fails.)
-
It's likely that the DataContext is unavailable at that time. I'll add some code to make this more robust.
-
9.2.14 - looks great. Thanks for all the changing.
-
@JoeAlbahari said:
It's likely that the DataContext is unavailable at that time. I'll add some code to make this more robust.Version 9.2.15 seems to fix my problem. It brought up a message saying "Waiting for data context..." and then another saying "Working ..." and then displayed the sqlite table in ILSpy.
Thanks.
-
I seem to be getting an issue again with MSAL/Entra login.
It's very strange.
In LP8, I can connect to the server and login works just fine.In LP9, as of 9.2.16, when I try to connect to a specific database on that server, I am getting an MSAL error.
Not really sure what the issue is here yet. I will attempt to debug with VS and attach and follow the execution through and see what it's complaining about.
From reading google, 53003 is "AADSTS53003: Access has been blocked by Conditional Access policies. The access policy does not allow token issuance." which indicates it's some kind of Entra error with how our policies are set up, but without further info I can't really tell, and I don't have access to the Entra part of our Azure Portal to go look at the logs, so I will need to ask IT what the deal is.
-
Another minor issue with ILSpy.
If you try to use the 'Reflect script in ILSpy' option on a C# Program that accepts arguments (e.g.)void Main(string[] args) { args.Dump(); }
then you get an error
Cannot find 'M:UserQuery.Main' in command line specified assemblies.
The query is opened and decompiled correctly, but it isn't focused, so you may have to find it in the assemblies list and expand UserQuery manually.
-
This is one of the annoying glitches that has been there since the first v9 beta but I could never figure out how to replicate it - until now.
Steps:
- Open LP9 and on the explorer tab switch to Samples.
- Open Antivirus Performance Test script.
- Press Ctrl-N to open a new Script.
- Press Ctrl-W to close the new script (which leaves the focus on the Antivirus Performance Test script).
- If you then click on the > to the left of LINQPad Tutorial & Reference folder, it will correctly expand the folder, but then scroll downs to the bottom to highlight the Antivirus Performance Test script and you need to scroll back up to see the contents of the folder.
Note, this is just one way to reproduce it. The actual scripts and folders are not relevant and the same glitch occurs in the My Scripts explorer window.
-
Thanks - this appears to be a bug in the WPF TreeView. It occurs when expanding an item on a TreeView that has a selection but not focus. I'll implement a workaround in the next build.
-
Running Linqpad9 with the
-run
parameter works correctly if Linqpad9 is already running, but if not, it starts Linqpad9 and opens the script but does not actually run it.