Code OSS configuration for Rust

This small guide will first suppose that you prefer using a completely open source version of Visual Studio Code (which is not the case of the binary given by the Visual Studio code creator).

Whether you don't want to trust microsoft, or simply prefer supporting true open source, here is what your choice will lead to.

Code OSS configuration

Using Code OSS instead of Visual Studio Code comes with a bit of a problem: you can't install extensions out-of-the-box. While you could download all the extensions manually and install then by hand, there is an alternative solution which will restore your ability to use extensions marketplace.

To do this, you must locate the file project.json in the directory ${ROOT}/resources/app, where ${ROOT} is the directory in which the application is installed. On Arch Linux, if you install from AUR, this will be at /usr/share/code-oss/resources/app/product.json

Modify that file, by inserting the following item inside the outer-most braces { ... }

 "extensionsGallery": {
		"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
		"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
	  "itemUrl": "https://marketplace.visualstudio.com/items"
	}   
	

Don't forget to add a comma , to the last item before "extensionsGallery" (I talk from experience :P). My project.json looks like this:


  {
    "nameShort": "Code - OSS",
    "nameLong": "Code - OSS",
    "applicationName": "code-oss",
    "dataFolderName": ".vscode-oss",
    "win32MutexName": "vscodeoss",
    "licenseName": "MIT",
    "licenseUrl": "https://github.com/Microsoft/vscode/blob/master/LICENSE.txt",
    "win32DirName": "Microsoft Code OSS",
    "win32NameVersion": "Microsoft Code OSS",
    "win32RegValueName": "CodeOSS",
    "win32AppId": "{{E34003BB-9E10-4501-8C11-BE3FAA83F23F}",
    "win32AppUserModelId": "Microsoft.CodeOSS",
    "win32ShellNameShort": "C&ode - OSS",
    "darwinBundleIdentifier": "com.visualstudio.code.oss",
    "reportIssueUrl": "https://github.com/Microsoft/vscode/issues/new",
    "urlProtocol": "code-oss",
    "commit": "41abd21afdf7424c89319ee7cb0445cc6f376959",
    "date": "2017-09-06T12:18:29.996Z",
    "checksums": {
	"vs/workbench/workbench.main.js": "RM3yQYjh6WwuqEPYbMQbHw",
	"vs/workbench/workbench.main.css": "Fy/zoAuF09bK/FqAHcgh9g",
	"vs/workbench/electron-browser/bootstrap/index.html": "Rbr+xqmaFODIjpdAuL4sFA",
	"vs/workbench/electron-browser/bootstrap/index.js": "NVMFZPCPWkIYOejMsPdqNg",
	"vs/workbench/electron-browser/bootstrap/preload.js": "Iz0OQT3IJpYCbJsAQ/heNw"
    },

    "extensionsGallery": {
	"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
	"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
	"itemUrl": "https://marketplace.visualstudio.com/items"
    }   
}
  

Start (or restart) the application, and voilĂ ! The Extension 'marketplace' (why everything must be a marketplace with microsoft ?) is ready to use.

Next comes rust configuration, with the new shiny RLS (Rust Language Server) and the Rust plugin

Configuring the rust plugin