vsclone

package module
v0.0.0-...-5df6b2a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2025 License: MIT Imports: 19 Imported by: 0

README

VSClone

A "VSCode clone" starter project using Go.

VSClone is a re-creation of the VSCode desktop application, but using Go instead of Node.js/Electron. It's based on VSCode Web run in a webview window, so it is still the VSCode UI, but wrapped in a custom Go host program. It uses a VSCode extension that bridges VSCode in the browser with native Go to provide access to the filesystem and shell.

You can customize the editor by making a VSCode extension. VSClone can only run extensions that run in the browser at the moment (they cannot use Node.js).

Forking VSClone is a much simpler, hackable way to clone VSCode than forking the VSCode project.

Status

The current focus is on making VSClone a usable alternative to stock VSCode. Please download and try using it, and file issues for anything that gets in the way.

Install

Download the latest release for your platform. Alternatively you can use Homebrew on Mac:

brew tap progrium/homebrew-taps
brew install vsclone

Using VSClone

VSClone currently ships as a CLI, so you have to start it from the shell. It will open the current directory if no directory argument is given.

vsclone [dir]

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type URIComponents

type URIComponents struct {
	Scheme    string `json:"scheme"`
	Authority string `json:"authority,omitempty"`
	Path      string `json:"path,omitempty"`
	Query     string `json:"query,omitempty"`
	Fragment  string `json:"fragment,omitempty"`
}

type Workbench

type Workbench struct {
	ProductConfiguration        product.Configuration `json:"productConfiguration"`
	AdditionalBuiltinExtensions []URIComponents       `json:"additionalBuiltinExtensions,omitempty"`
	FolderURI                   *URIComponents        `json:"folderUri,omitempty"`

	HostDir string                             `json:"-"`
	HostFS  fs.FS                              `json:"-"`
	MakePTY func() (io.ReadWriteCloser, error) `json:"-"`
}

func (*Workbench) ServeHTTP

func (wb *Workbench) ServeHTTP(w http.ResponseWriter, r *http.Request)

Directories

Path Synopsis
cmd
vsclone command
internal
The product package provides data structures to configure a VSCode product.
The product package provides data structures to configure a VSCode product.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL