projen
Version:
CDK for software projects
59 lines • 6.16 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VsCodeRecommendedExtensions = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const component_1 = require("../component");
const json_1 = require("../json");
/**
* VS Code Workspace recommended extensions
* Source: https://code.visualstudio.com/docs/editor/extension-marketplace#_workspace-recommended-extensions
*/
class VsCodeRecommendedExtensions extends component_1.Component {
constructor(vscode) {
super(vscode.project);
/**
* List of extensions which should be recommended for users of this workspace.
* The identifier of an extension is always '${publisher}.${name}'. For example: 'ms-python.python'.
*
* @default - no recommendations are made
*/
this.recommendations = [];
/**
* List of extensions recommended by VS Code that should not be recommended for users of this workspace.
* The identifier of an extension is always '${publisher}.${name}'. For example: 'ms-python.python'.
*
* @default - no recommendations are marked unwanted
*/
this.unwantedRecommendations = [];
this.file = new json_1.JsonFile(vscode.project, ".vscode/extensions.json", {
omitEmpty: true,
allowComments: true,
obj: {
recommendations: this.recommendations,
unwantedRecommendations: this.unwantedRecommendations,
},
});
}
/**
* Adds a list of VS Code extensions as recommendations for this workspace.
*
* @param extensions The extension IDs
*/
addRecommendations(...extensions) {
this.recommendations.push(...extensions);
}
/**
* Marks a list of VS Code extensions as unwanted recommendations for this workspace.
* VS Code should not be recommend these extensions for users of this workspace.
*
* @param extensions The extension IDs
*/
addUnwantedRecommendations(...extensions) {
this.unwantedRecommendations.push(...extensions);
}
}
exports.VsCodeRecommendedExtensions = VsCodeRecommendedExtensions;
_a = JSII_RTTI_SYMBOL_1;
VsCodeRecommendedExtensions[_a] = { fqn: "projen.vscode.VsCodeRecommendedExtensions", version: "0.99.51" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92c2NvZGUvZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFFbkM7OztHQUdHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxxQkFBUztJQW1CeEQsWUFBWSxNQUFjO1FBQ3hCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFuQnhCOzs7OztXQUtHO1FBQ2Msb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFFaEQ7Ozs7O1dBS0c7UUFDYyw0QkFBdUIsR0FBYSxFQUFFLENBQUM7UUFPdEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFO1lBQ2xFLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLElBQUk7WUFDbkIsR0FBRyxFQUFFO2dCQUNILGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjthQUN0RDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCLENBQUMsR0FBRyxVQUFvQjtRQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDBCQUEwQixDQUFDLEdBQUcsVUFBb0I7UUFDdkQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O0FBakRILGtFQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVnNDb2RlIH0gZnJvbSBcIi4vdnNjb2RlXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gXCIuLi9qc29uXCI7XG5cbi8qKlxuICogVlMgQ29kZSBXb3Jrc3BhY2UgcmVjb21tZW5kZWQgZXh0ZW5zaW9uc1xuICogU291cmNlOiBodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS9kb2NzL2VkaXRvci9leHRlbnNpb24tbWFya2V0cGxhY2UjX3dvcmtzcGFjZS1yZWNvbW1lbmRlZC1leHRlbnNpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBWc0NvZGVSZWNvbW1lbmRlZEV4dGVuc2lvbnMgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogTGlzdCBvZiBleHRlbnNpb25zIHdoaWNoIHNob3VsZCBiZSByZWNvbW1lbmRlZCBmb3IgdXNlcnMgb2YgdGhpcyB3b3Jrc3BhY2UuXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIGFuIGV4dGVuc2lvbiBpcyBhbHdheXMgJyR7cHVibGlzaGVyfS4ke25hbWV9Jy4gRm9yIGV4YW1wbGU6ICdtcy1weXRob24ucHl0aG9uJy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZWNvbW1lbmRhdGlvbnMgYXJlIG1hZGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVjb21tZW5kYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGV4dGVuc2lvbnMgcmVjb21tZW5kZWQgYnkgVlMgQ29kZSB0aGF0IHNob3VsZCBub3QgYmUgcmVjb21tZW5kZWQgZm9yIHVzZXJzIG9mIHRoaXMgd29ya3NwYWNlLlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiBhbiBleHRlbnNpb24gaXMgYWx3YXlzICcke3B1Ymxpc2hlcn0uJHtuYW1lfScuIEZvciBleGFtcGxlOiAnbXMtcHl0aG9uLnB5dGhvbicuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVjb21tZW5kYXRpb25zIGFyZSBtYXJrZWQgdW53YW50ZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdW53YW50ZWRSZWNvbW1lbmRhdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IEpzb25GaWxlO1xuXG4gIGNvbnN0cnVjdG9yKHZzY29kZTogVnNDb2RlKSB7XG4gICAgc3VwZXIodnNjb2RlLnByb2plY3QpO1xuXG4gICAgdGhpcy5maWxlID0gbmV3IEpzb25GaWxlKHZzY29kZS5wcm9qZWN0LCBcIi52c2NvZGUvZXh0ZW5zaW9ucy5qc29uXCIsIHtcbiAgICAgIG9taXRFbXB0eTogdHJ1ZSxcbiAgICAgIGFsbG93Q29tbWVudHM6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgcmVjb21tZW5kYXRpb25zOiB0aGlzLnJlY29tbWVuZGF0aW9ucyxcbiAgICAgICAgdW53YW50ZWRSZWNvbW1lbmRhdGlvbnM6IHRoaXMudW53YW50ZWRSZWNvbW1lbmRhdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsaXN0IG9mIFZTIENvZGUgZXh0ZW5zaW9ucyBhcyByZWNvbW1lbmRhdGlvbnMgZm9yIHRoaXMgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAcGFyYW0gZXh0ZW5zaW9ucyBUaGUgZXh0ZW5zaW9uIElEc1xuICAgKi9cbiAgcHVibGljIGFkZFJlY29tbWVuZGF0aW9ucyguLi5leHRlbnNpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucmVjb21tZW5kYXRpb25zLnB1c2goLi4uZXh0ZW5zaW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgYSBsaXN0IG9mIFZTIENvZGUgZXh0ZW5zaW9ucyBhcyB1bndhbnRlZCByZWNvbW1lbmRhdGlvbnMgZm9yIHRoaXMgd29ya3NwYWNlLlxuICAgKiBWUyBDb2RlIHNob3VsZCBub3QgYmUgcmVjb21tZW5kIHRoZXNlIGV4dGVuc2lvbnMgZm9yIHVzZXJzIG9mIHRoaXMgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAcGFyYW0gZXh0ZW5zaW9ucyBUaGUgZXh0ZW5zaW9uIElEc1xuICAgKi9cbiAgcHVibGljIGFkZFVud2FudGVkUmVjb21tZW5kYXRpb25zKC4uLmV4dGVuc2lvbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy51bndhbnRlZFJlY29tbWVuZGF0aW9ucy5wdXNoKC4uLmV4dGVuc2lvbnMpO1xuICB9XG59XG4iXX0=