> [...] all without ever leaving your favorite code editor.
That's cool. How do I get this into JetBrains IDEs?
This is Microsoft catching up to what JetBrains has had all along (in their paid products). There's DataGrip but I was also using all these features (minus the AI stuff) in IntelliJ Ultimate and PyCharm 5+ years ago.
The main difference is that JetBrains supports a bunch of databases, not just one.
Microsoft has had official Microsoft SQL Server, Azure Storage, CosmosDB and more extensions for VS Code for a long while now. The surprise is building an official branded Postgres extension rather than leaving that to all the (many) third party and/or open source extensions. I suppose it is a nice side-effect of "AI all the things" efforts that "GitHub Copilot support" was enough reason to grab resources for a postgres query editor and other tools.
(I thought it was particularly nice when you could install most to the VS Code DB extensions standalone as "Azure Data Studio"; you can build separate VS Code profiles for your coding and DBA hats of course, but it's not quite the same feel as launching a separate, dedicated application. Though "Azure Data Studio" was often overlooked because it worked just fine on non-Azure hosted databases.)
I feel like JetBrains' competing product is DataGrip, which even though I'm an Emacs user, I've happily paid for forever. I believe that if you just use the combined suite (IntelliJ?) then you get SQL completion based on your loaded database everywhere in the IDE. Something fun I accidentally learned this way is that the completion is so accurate I didn't even notice that I made a mistake in a database table I recently added. I used camelCase column names, which Postgres doesn't accept without quotes. Datagrip always added the quotes where I needed them, so I didn't notice, but it annoyed people on my team that used different database tools and they renamed them ;)
JetBrains has always done their completion / language integration differently than VSCode + LSP, but it seems to work well. My only complaint is that GoLand organizes imports differently than gopls / goimports, but my knowledge there is a few years out of date. I've worked on teams with a lot of GoLand users and nothing has really bothered me on this front recently, so they probably fixed it years ago.
> I believe that if you just use the combined suite (IntelliJ?) then you get SQL completion based on your loaded database everywhere in the IDE.
Yes, Intellj will recognize that the string in my code is an SQL statement and use auto complete and validation when it is connected to a database.
I've looked at the announcement and it seems that the functionality of Jetbrains is similar.
Out of curiosity: how do you set up your CI checks (linter, formatting) if the opensource tools behave differently from JetBrains'? Do you use Qodana[0]?
One benefit of using VSCode/Sublime Text/vim/emacs language integrations is that I roughly know what command to run to get the same results in the terminal as I get in the editor. With JetBrains does-it--all IDEs, I have no clue.
[0] https://www.jetbrains.com/help/qodana/getting-started.html
As far as I went with linting this sort of thing was to check that "gofmt -s" yields the code that's checked in. https://github.com/pachyderm/pachyderm/blob/master/src/inter...
It does not care if the imports are organized differently. I like to do:
import (
# standard libraries
"fmt"
"io"
# our stuff
"github.com/pachyderm/pachyderm/src/internal/whatever"
# packages
"example.com/foo/bar"
"github.com/whatever/whatever/foo"
)
People/tools will remove the newlines or mix in local packages with upstream packages, and I decided not to care. I'm pretty sure nobody else cares.