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!

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. Name resulting query dll from QueryName + unique DateTime

    Name resulting query dll from QueryName + unique DateTime

    Currently: query_gppfcs.dll

    Suggested: AwesomeStuff_20180927_164537.dll

    Where AwesomeStuff is the name of the user .linq query.

    2 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
    • My Extensions are ignored when using Ctrl+, (Navigate to Query)

      Add "My Extensions" to search results of the Navigate to Query dialog

      1 vote
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
      • 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
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          1 comment  ·  Admin →
        • 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
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
          • LINQPad as a VSCode extension

            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!

            8 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
            • DumpIf

              Dump if predicate is true

              1 vote
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                1 comment  ·  Admin →
              • 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
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  1 comment  ·  Admin →
                • 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
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                  • 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
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      1 comment  ·  Admin →
                    • 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 If

                      3 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        1 comment  ·  Admin →
                      • 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 alias` functionality?
                        3. Uniquely nest all…

                        1 vote
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                        • 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
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                          • 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
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                            • 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
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                              • "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
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                • 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
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                  • NuGetPackageFolder

                                    <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
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                    • 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
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                      • Automatic proxy detection not working

                                        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
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          1 comment  ·  Admin →
                                        • seek White Listing status with Symantec EndPoint Protection

                                          The latest SEP virus definition update has flagged LINQPad.exe as a virus and Quarantined it.

                                          1 vote
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                          ← Previous 1 3 4 5 46 47
                                          • Don't see your idea?

                                          LINQPad Feature Suggestions

                                          Feedback and Knowledge Base