
The VS Code Go extension joins the Go project - SamWhited
https://blog.golang.org/vscode-go
======
TurboHaskal
The Go extension hasn't been working for me in months. I have tried
recompiling the required toolset, wiping and reinstalling VSCode and nuking
GOPATH, to no avail.

I then evaluated Jetbrain's GoLand (which is a paid product) and that thing
can't even extract methods or refactor names properly.

The situation is so miserable I went back to ACME with
[https://godoc.org/github.com/davidrjenni/A](https://godoc.org/github.com/davidrjenni/A)
which for some reason works.

~~~
enitihas
GoLand extract methods very well, and I don't remember refactoring names ever
being a problem. It works far far better than vscode go ever worked.

------
blackoil
Is there any blog/video discussing architecture of VSCode. From my limited
understanding it seems to have made some brilliant choices, but don't have
enough time(skills?) to go through the code. Someone discussing arch, various
choices and implication would be really neat.

~~~
nojvek
In terms of language support there are 3 big things

1) Syntax highlighting. They followed the textmate bundle highlighting spec
which is somewhat a standard that is shared by many editors.

2) Language Server Protocol - a JSON RPC based protocol that different
languages can hook into. The interface is something like. “The users cursor is
at this position, what code completion items need to be shown? Where are the
errors and warnings?”

3) Debug Protocol - similar JSON RPC protocol, but for debugging. For this
breakpoint, show the scopes, the stack trace, console logs etc

Almost everything in Vscode communicates in an async manner. The main UI is on
an isolated process, and all extensions are on a different process so they
don’t stall the UI.

It’s a modularized and RPC based architecture.

------
akmittal
Vscode used to be so good a while back for Go development. Migration to gopls
had some hiccups I guess. Hope this will fix that(if not already)

~~~
etse
VS Code and gopls has been a pleasant experience for me the past few months.

~~~
chartpath
Same, except that you still can't execute expressions in the debugger. It only
reads existing values. I think it's something with Delve.

------
favadi
> The VS Code extension for Go, built using many of these tools, is now used
> by 41 percent of Go developers

That's impressive, I didn't realize VS Code is that popular nowadays.

~~~
Cthulhu_
Yeah I think it managed to take over a lot of users from Sublime Text and
Atom, and it's probably the best option out there for people that don't want /
can't have a full IDE like VS or IDEA.

The latter is a licensed product, I had to pull some strings to get a license
at my current job. Well worth it though, I worked in VS Code earlier but it
wasn't as complete as IDEA. For example, in my particular case I work in an
older codebase targeting ES5 (no transpilers or whatever) and PHP 5.3; setting
the language mode to those, I get warnings if I try to use PHP's short array
syntax or ES6+ specific functions. At the same time I'm working on a
replacement in Typescript/React and Go. It just works without a hassle, and I
get things like go to definition and common refactorings working out of the
box.

I still do my builds and running on the commandline though, it has to be
portable.

~~~
_bxg1
My company offered to pay for IDEA, so I tried out the free version, and it
was just miserably laggy. Not unusable, but it felt like every little
interaction had a 100ms delay. On a brand new MacBook Pro. I decided I
couldn't deal with that all day every day so I quickly went back to VSCode.

~~~
richardjennings
Catalina has caused a bad IDEA experience for me; updating tanked performance.

------
bzb3
I'm happy for this extension, which I like.

Months ago I tried configuring and running the extensions for Go on Emacs on
Windows and it was a nightmare and a loss of time.

