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

1205 results found

  1. Hello,
    First of all: LINQPad is a GREAT productivity tool and in our company we have many users, using it on a daily base. I love the new feature to great simple chart in the Dump output!

    Here is a little issue. The automatic proxy detection of LINQPad is not working properly. In our environment with a NTLM based authenticating proxy and a proxy.pac file in use it is not working.
    This is most likely due to not setting the HttpWebRequest.Proxy.Credentials property before sending a request.

    Here is a sample C# code where it works and is explained step-by-step:

    //…

    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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)
  11. 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)
  12. 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)
  13. Add "My Extensions" to search results of the Navigate to Query dialog

    1 vote
    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)
  14. 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 alias functionality?
    3. Uniquely nest all classes…

    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. Dump if predicate is true

    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)
  16. 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
    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. 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)
  18. The hang occurs when there is an unclosed external resource. The linqpad doesn't get stuck because it doesn't unload the application domain and therefore does not wait for the process to exit completely.

    There should be some sort of a timeout for the registration of the query exited event and the finilizers to finish their job. If they don't finish in a timely manner you need to kill the process forcefully.

    We were using https://github.com/sshnet/SSH.NET and didn't call .Exit() everywhere.

    This produces the hang of sorts:

    <Query Kind="Statements">
    <Reference Relative="..\..\SSH\Renci.SshNet.dll">C:\Users\User\Desktop\SSH\Renci.SshNet.dll</Reference>
    <Namespace>Renci.SshNet</Namespace>
    </Query>

    var sshClient = new SshClient("demo.wftpserver.com", 2222, "admin", "root");…

    1 vote
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 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. Drag-n-drop a CSV file to the LINQPad window to silently create an IQueryable object populated with its values and insert a code reference at the cursor point where the drop operation completes.

    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)
  20. Add a helper to the editor so that when /// is typed on the line before a property or method, the summary and param blocks are added similar to how it works in Visual Studio per this article:

    https://docs.microsoft.com/en-us/visualstudio/ide/reference/generate-xml-documentation-comments?view=vs-2017

    OR

    Enable intellisense for /// < to template the common options:

    /// <summary
    /// <param
    /// <returns
    /// <see

    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?