/*---------------------------------------------------------
 * Copyright (C) Microsoft Corporation. All rights reserved.
 * Modification copyright 2020 The Go Authors. All rights reserved.
 * Licensed under the MIT License. See LICENSE in the project root for license information.
 *--------------------------------------------------------*/

// This file contains constants that need to change when building Nightly or Go2Go.
//
// For example, we replace this file with the version in the build/nightly.
// Make sure to reflect any changes in this file to build/nightly/const.ts.

export const extensionId: string = 'golang.go';
