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. title says it all. I really really need this, as LINQPad becomes really really annoying to navigate after a while without this

    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)
  2. Yes, we can add a new folder via save dialog but it will save time

    0 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)
  3. Add a quick filter box at the top of the My Queries and Samples list to easily filter by name - without having to go into "Go to...". Rename "Go to..." to "Advanced Filter"

    4 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)
  4. My suggestion is to add an optional expandable text input pane where any string could be written. This pane would be visible when choosing C# Program (or VB / F# Program) in the language drop down. The program template would then feature a Main(string arg) where the input would be fed.

    Many times I find myself pasting json, xml, csv, tsv data etc into the programming pane of linqpad. Afterwards I have to put the text into a string variable and replace quoute characters and other special chars to make it compile. Sometimes I instead write the text into a…

    0 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)
  5. 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)
  6. PowerQuery is becoming very popular and would be very useful feature to have support inside LINQPad .

    6 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)
  7. 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)
  8. 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
    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)
  9. It would be great if LinqPad query can access internal members of referenced libraries without changing the referenced libraries to add InternalsVisibleTo attribute. Instead we could use the reverse attribute IgnoresAccessChecksToAttribute in 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.NoVisibilityChecks

    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. 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. 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)
  12. 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
    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)
  13. 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)
  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. 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)
  16. 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)
  17. 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)
  18. 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)
  19. 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)
  20. 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)
  • Don't see your idea?