Skip to content

LINQPad Feature Suggestions

More than 100 LINQPad features are a direct result of customer feedback! This is the official forum for posting and voting on ideas – we want to hear from you!

LINQPad Feature Suggestions

Categories

1215 results found

  1. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  2. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  3. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  4. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  5. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  6. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  7. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  8. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  9. "Show all nestings levels" works only for the first items! Not for all. Please fix!

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  10. 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 If

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  11. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  12. 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
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  13. The latest SEP virus definition update has flagged LINQPad.exe as a virus and Quarantined it.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  14. void Main()
    {
    // You can also make custom inline progress bars as follows:
    foreach (var element in Enumerable.Range(0, 100).DumpProgressBar("Most common usage of progress"))
    {

    Thread.Sleep (30);
    }
    }

    public static class Extension
    {
    public static IEnumerable<T> DumpProgressBar<T>(this IEnumerable<T> valuesList, string title = null)
    {
    int total = valuesList.Count();
    int position = 0;

        var progressBar = new Util.ProgressBar(title).Dump();
        progressBar.HideWhenCompleted = true;
    
        foreach (var element in valuesList)
        {
            progressBar.Percent = (++position * 100) / total;
            yield return element;
        }       
    }
    

    }

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  15. sharing scripts, using sharepoint or something similar to teams sharing documents

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  16. LINQPad adds * (asterisk) indicator char to the current tab when saved script is changed (char removed/added, etc). It would be great if this * (asterisk) indicator is removed as soon as changes are undone by multiple CTRL+Z commands. As for now, even if file is restored to the original state, the asterisk is still displayed and it's difficult to tell if the file was really changed or not (safe to resave or not?).

    Please consider implementing this feature, it should be a piece of cake! :)

    Thanks!

    3 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  17. I mean, come on... this is a brilliant idea! The beauty and power of VSCode, plus the beauty and power of LINQPad?

    LINQPad could inherit the editor features of VSCode and output its results in a separate pane.

    BANANAS!

    88 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  18. The nuget package Microsoft.Azure.CosmosDB.Table package version 1.1.3 relies on the prerelease 9.0.0.1-preview of Microsoft.Azure.Storage.Common.

    If I enable include pre-release it doesn't install failing saying that it can't find it.

    Even if I pre-install the pre-release dependency it doesn't allow it.

    A non-prerelease package being a depedency is a documented issue: https://github.com/Azure/azure-cosmosdb-dotnet/issues/385 and the workaround suggests installing the pre-release which suggesting the workaround should work as normal when using nuget.

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  19. <NuGetPackageFolder>C:\packages</NuGetPackageFolder>
    is not effective when it is placed in (RoamingUserOptions.xml nor UserOptions.xml) the same path as LINQPad.exe

    6 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  20. How about adding a Regular Expression evaluator. Something similar to the abandonware one created by Rad Systems

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Admin →
    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
  • Don't see your idea?