Skip to content

Hack and slash Go language service prototype for VS Win + VS Mac

License

Notifications You must be signed in to change notification settings

gundermanc/vs-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

117 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go lang Support for Visual Studio for Windows and Mac

Build Status

Hackathon project proof-of-concept for a x plat Go language service. Now abandoned.

image

image

Done

Planned Supported platforms:

  • Visual Studio 2019 16.1 for Windows
  • Visual Studio 2019 8.2.0 Preview for Mac

How it does/will work

  • Language service smarts are written in Go, using the token, parser, and types libraries from the Go standard library to lex, parse, and type check the code.
  • Editor features talk to this language service through a thin inteop layer built using a a combination of PInvoke and a cgo c-shared library with C language bindings for Go.

Historical Context

Screenshots are from an earlier build which was a full, from-scratch language service for Go in C#. Since then, I have changed strategies to enable reuse of existing Go libraries.

We're starting at square one. The code seen here is a series of hacks meant to set the context.

Editor Features

  • Currently using TextMate for colorization and outlining and structure. Ideally we'll move this to using the Go AST or tokens.
  • Error squiggles are directly output by the go/parser and go/types libraries as a result of parsing and type checking the code.

Getting started

  • Install the Go development SDK.
  • Install gofmt and gogetdoc.
  • Build in Visual Studio 2019 16.1+.
  • Copy src/test-fodder to your GOPATH directory.
  • Open the file in the experimental VS instance.

Windows

  • Install Visual Studio 2019 16.1
  • Install Go SDK (expects C:\Go)
  • Install MinGW32 GCC C/C++ compiler for Windows (expects C:\MinGW)
  • Open Go.Windows.sln, rebuild and start 'Visual Studio Extension'

Mac

  • Install VS for Mac 8.2 Preview
  • Install Go SDK
  • Install XCode/Apple developer tools (needed for gcc).

Debugging

  • C# code is best debugged from Visual Studio.
  • It's recommended that you debug Go Code by:
    • Open the root of the repo in VS Code as a folder view
    • Install the Go Extension for VS Code
    • Test changes using the debugger in VS Code against the 'testapp.go' file.
  • Native Go interop layer can only be debugged via GCC, so it's recommended that you minimize additions to this layer.

Contributions and discussion are absolutely welcome :)

About

Hack and slash Go language service prototype for VS Win + VS Mac

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5