1192 results found
-
Allow changing font on IL tab
It is possible to overwrite styles for HTML results on Preferences/Results/Style sheet. Unfortunately those overrides aren't used when IL tab is rendered. Please fix it. Thanks.
6 votes -
Allow LinqPad Query to access internal members of referenced libraries
It would be great if LinqPad query can access internal members of referenced libraries without changing the referenced libraries to add
InternalsVisibleToattribute. Instead we could use the reverse attributeIgnoresAccessChecksToAttributein the query to allow it to access internal members of any specified libraries. You can find detailed information on how this can be done here: https://github.com/aelij/IgnoresAccessChecksToGenerator and https://github.com/filipw/Strathweb.Samples.CSharp.NoVisibilityChecks3 votes -
1 vote
-
Expose Program.IsAutomated via Util class
Currently we resort to reflection on the LinqPad internal classes to extract some very useful properties. One of these features is IsAutomated property of the internal static Program class, which is similar to #if CMD but is more practical because you can pass it around. Besides it's impossible to determine if a script it running under lprun inside MyExtensions using the said #if CMD directive. Because it is a compilation directive.
1 vote -
Distinguish NULL values from strings that might be spelled, "null" or "NULL"
It is currently impossible to distinguish between a NULL value and a string that happens to be spelled, "null" because LinqPAD displays "null" (lowercase) for both of them. SSMS displays NULL (uppercase) for NULL values, and to differentiate between NULL values and a string spelled, "NULL", SSMS highlights actual NULL values with a special background color (a soft yellow). LinqPAD should do the same thing, or something similar, to make it more obvious if the value is NULL or a string that just happens to be spelled "NULL".
4 votes -
DumpIf
Dump if predicate is true
1 vote -
Cross-server and cross-domain queries
It is time to move to the next level: cross-server or cross-domain queries, for a truly great orchestration experience.
I have experimented with this and it's working nicely:
dynamic odata = Activator.CreateInstance(Type.GetType("LINQPad.User.DemoService, odata", true), new Uri("https://services.odata.org/V3/OData/OData.svc/"));
((object)odata.Persons).Dump();
dynamic a = Activator.CreateInstance(Type.GetType("LINQPad.User.TypedDataContext, a", true));
((object)a.Persons).Dump();
dynamic db = Activator.CreateInstance(Type.GetType("LINQPad.User.TypedDataContext, db", true));
((object)db.Products).Dump();I'm specifically referring to this line in the FAQ (https://www.linqpad.net/FAQ.aspx):
"The databases that you query must reside on the same server."That's a major limitation.
Possible solutions:
1. Unique data context class names in the LINQPad.User namespace.
2.extern aliasfunctionality?
3. Uniquely nest all classes…1 vote -
My Extensions are ignored when using Ctrl+, (Navigate to Query)
Add "My Extensions" to search results of the Navigate to Query dialog
1 vote -
Add codepage support to Util.Cmd
Basically you need to change the ProcessStartInfo.StandardOutputEncoding with the supplied codepage, or get the default from registry. Localized versions of Windows will print gibberish with basic operations like Util.Cmd("ping localhost")
1 vote -
Add Random newid() support to TypedDataContext
Super easy, add this method to your Program script:
[System.Data.Linq.Mapping.Function(IsComposable=true)]
public Guid NewId() => Guid.NewGuid();Then use like this:
Users.OrderBy(o => NewId())
This will translate to the usual sql statement for the server-side execution:
select * from Users order by newid()
Which is shuffling on the server side.
The C# implementation is never used (Guid.NewGuid()) but is useful nonetheless if someone calls it from the application-side. You can replace it with throw new NotImplementedException() and it will still work just fine.
Would be great if it was embedded into the TypedDataContext (or elsewhere) within LinqPad.
Based on Marc's answer here: …
1 vote -
BUG - Intellisense does not work within a nested object initiailizer
When using and object initializer on a property within a parent object initializer, the intellisense show the global intellisense list.
This code shows the issue:
void Main()
{
new Foo
{ // Placing cursor after this brace and pressing space gives a drop-down list with "Qux", as expected
Bar =
{ // Placing cursor after this brace and pressing space give th same list as Ctrl+Space in an empty query. Expected a list with "Baz".
}
}.Dump();
}// Define other methods and classes here
class Foo
{
public Foo()
{
Bar = new Bar();
}
…public Bar Bar {3 votes -
Name User License for Linqpad
Name User License so I log on for use software with same attual restriction (6 user for license activated). So I can use the software without active/deactive but limit of connection for user
1 vote -
Don't prevent installing native packages in LINQPad
Some package, like "Microsoft.ChakraCore", "Libuv", or "JavaScriptEngineSwitcher.ChakraCore.Native.win-x64", does not have .NET Assembly, instead, they provide a native assembly to PInvoke.
However, this cannot be done in LINQPad, when installing these packages, an error message "There are no usable .NET assemblies in package 'XYZ'" was shown.
Please do not prevent us to do that, at least popup a warning dialog saying something like "Looks like you're not installing the .NET Assembly, go on?", and gives us a option to proceed the PInvoke test.
Related topic: http://forum.linqpad.net/discussion/1680/please-dont-prevent-installing-native-package-in-linqpad#latest
6 votes -
Option to auto run script on change
A technique I use to quickly test an idea is to have a dummy "test" method that calls a method I'm working on. Used in conjunction with NCrunch, and Console.WriteLine(), I can make changes to the method and immediately see the results without having to save/recompile/run (continuous testing).
I think it would be great if LInqPad also allows for this kind of cycle. Being able to see the progress of a script without have to stop and run every time making a change can be a huge productivity booster - especially when incrementally building an algorithm.
I think it would…
1 vote -
Name resulting query dll from QueryName + unique DateTime
Name resulting query dll from QueryName + unique DateTime
Currently: query_gppfcs.dll
Suggested: AwesomeStuff20180927164537.dll
Where AwesomeStuff is the name of the user .linq query.
2 votes -
Render FSharp.Option types as if they were Nullable<T>
It would be nice if FSharp Option types would render as (value | null), rather than, at the moment, as a nested table with (Some(value) | None)
This would be consistent with the rendering for Nullable<T>, which prefers readability over being totally strict around the type system.
I appreciate you don't want to add an endless list of special cases, but this would be really useful.
3 votes -
"Show all nestings levels" works only for the first items!
"Show all nestings levels" works only for the first items! Not for all. Please fix!
3 votes -
add a way to get iwin32Window from linqpad
Dim wnd As New NativeWindow()
wnd.AssignHandle(Process.GetProcessById (Util.HostProcessID).MainWindowHandle)'Add the above code or the c# version of it to a Util function that lets us pop up dialogs that show above the linqpadwindow.
'_____
Dim browser = New FolderBrowserDialog With {.ShowNewFolderButton = False, .SelectedPath = pth}
If browser.ShowDialog(wnd) = DialogResult.OK Then
pth = browser.SelectedPath
End If3 votes -
Query result shown as rich text when run from stored file - default setting = data grids
My default for an SQL-result is "data grids". But when running a script from a saved SQL-file, the result is shown as rich text (html).
Please apply the default in this situation as well. Thx
1 vote -
Bug: IOException on first run with 2 piped lprun's because of building shared Extensions
Setup:
a.linq:
"a".Dump();b.linq:
"b".Dump();Delete all *.dll, *.pdb in plugins folder (for example, LINQPad Plugins\Framework 4.6), leave the MyExtensions.FW46.linq file for compilation;
Then run: lprun a.linq | lprun b.linq
This is the output:
c:\users\user\Documents\LINQPad Queries>lprun a.linq | lprun b.linq
IOException: The process cannot access the file 'C:\Users\User\Documents\LINQPad Plugins\Framework 4.6\MyExtensions.FW46.dll' because it is being used by another process.
at LINQPad.TaskExtensions.GetResult[T](Task`1 t)
at LINQPad.MyExtensionsManager.CheckForStaleExtensions()
at LINQPad.CmdLineAppHost.Run()
at LINQPad.Cmd.LPCmd.Run(String[] args)b
1 vote
- Don't see your idea?