Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Commit

Permalink
Merge pull request #73 from multiversx/feat/next
Browse files Browse the repository at this point in the history
Next: cleanup, simplifications, improvements
  • Loading branch information
andreibancioiu authored Mar 21, 2023
2 parents ecae2d2 + 755c644 commit b850f6f
Show file tree
Hide file tree
Showing 11 changed files with 20 additions and 383 deletions.
15 changes: 13 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,21 @@ jobs:
node-version: [16.x]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run unit-tests

- name: Build VSIX file
run: npm run package

- name: Save artifacts
uses: actions/upload-artifact@v3
with:
name: mx-ide-vscode
path: |
*.vsix
if-no-files-found: error
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ jobs:
node-version: [16.x]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ This extension contributes the following commands (`Ctrl+Shift+P`):
* `buildContract`
* `cleanContract`
* `runScenarios`
* `runContractSnippet`

## Installing the rust debugger pretty printer script

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 1 addition & 24 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-elrond-ide",
"displayName": "MultiversX IDE",
"description": "MultiversX IDE for developing Smart Contracts",
"version": "0.17.0",
"version": "0.18.0",
"publisher": "Elrond",
"repository": {
"type": "git",
Expand Down Expand Up @@ -79,11 +79,6 @@
"title": "Clean Contract",
"category": "multiversx"
},
{
"command": "multiversx.runContractSnippet",
"title": "Run Contract Snippet",
"category": "multiversx"
},
{
"command": "multiversx.runScenarios",
"title": "Run Scenarios",
Expand Down Expand Up @@ -132,16 +127,6 @@
"when": "resourceFilename == multiversx.json",
"group": "multiversx"
},
{
"command": "multiversx.runContractSnippet",
"when": "explorerResourceIsFolder && resourceFilename != output && resourceFilename != debug && resourceFilename != target && resourceFilename != js-snippets",
"group": "multiversx"
},
{
"command": "multiversx.runContractSnippet",
"when": "resourceFilename == multiversx.json",
"group": "multiversx"
},
{
"command": "multiversx.runScenarios",
"when": "resourceFilename =~ /.scen.json/",
Expand Down Expand Up @@ -189,10 +174,6 @@
"command": "multiversx.cleanContract",
"when": "false"
},
{
"command": "multiversx.runContractSnippet",
"when": "false"
},
{
"command": "multiversx.runScenarios",
"when": "false"
Expand Down Expand Up @@ -236,10 +217,6 @@
"command": "multiversx.cleanContract",
"when": "view == smartContracts && viewItem == contract"
},
{
"command": "multiversx.runContractSnippet",
"when": "view == smartContracts && viewItem == contract"
},
{
"command": "multiversx.runScenarios",
"when": "view == smartContracts && viewItem == contract"
Expand Down
60 changes: 1 addition & 59 deletions src/environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,74 +2,16 @@ import path = require("path");
import { MySettings } from "./settings";

export class Environment {
static old: { [key: string]: string | null };

static set() {
if (!Environment.old) {
Environment.saveOld();
}

let sdkPath = MySettings.getSdkPath();
let mxpyVenvFolder = path.join(sdkPath, "mxpy-venv");
let mxpyBinFolder = path.join(mxpyVenvFolder, "bin");
let vmToolsFolder = path.join(sdkPath, "vmtools");
let rustFolder = path.join(sdkPath, "vendor-rust");
let rustBinFolder = path.join(rustFolder, "bin");
let nodeJsFolder = path.join(sdkPath, "nodejs", "latest");
let nodeJsBinFolder = path.join(nodeJsFolder, "bin");

// This is required for other VS Code extensions to work well and use the custom (Rust) environment.
delete process.env["PYTHONHOME"];
process.env["PATH"] = `${rustBinFolder}:${mxpyBinFolder}:${vmToolsFolder}:${nodeJsBinFolder}:${process.env["PATH"]}`;
process.env["VIRTUAL_ENV"] = mxpyVenvFolder;
process.env["RUSTUP_HOME"] = rustFolder;
process.env["CARGO_HOME"] = rustFolder;
}

static getForVsCodeFiles(): any {
let sdkPath = path.join("${env:HOME}", MySettings.getSdkPathRelativeToHome());
let mxpyVenvFolder = path.join(sdkPath, "mxpy-venv");
let mxpyBinFolder = path.join(mxpyVenvFolder, "bin");
let vmToolsFolder = path.join(sdkPath, "vmtools");
let rustFolder = path.join(sdkPath, "vendor-rust");
let rustBinFolder = path.join(rustFolder, "bin");
let nodeJsFolder = path.join(sdkPath, "nodejs", "latest");
let nodeJsBinFolder = path.join(nodeJsFolder, "bin");

return {
"PATH": `${rustBinFolder}:${mxpyBinFolder}:${vmToolsFolder}:${nodeJsBinFolder}:\${env:PATH}`,
"VIRTUAL_ENV": mxpyVenvFolder,
"RUSTUP_HOME": rustFolder,
"CARGO_HOME": rustFolder
};
}

static getForTerminal(): any {
let sdkPath = path.join("${env:HOME}", MySettings.getSdkPathRelativeToHome());
let mxpyVenvFolder = path.join(sdkPath, "mxpy-venv");
let mxpyBinFolder = path.join(mxpyVenvFolder, "bin");
let vmToolsFolder = path.join(sdkPath, "vmtools");
let rustFolder = path.join(sdkPath, "vendor-rust");
let rustBinFolder = path.join(rustFolder, "bin");
let nodeJsFolder = path.join(sdkPath, "nodejs", "latest");
let nodeJsBinFolder = path.join(nodeJsFolder, "bin");

return {
"PYTHONHOME": null,
"PATH": `${rustBinFolder}:${mxpyBinFolder}:${vmToolsFolder}:${nodeJsBinFolder}:${process.env["PATH"]}`,
"VIRTUAL_ENV": mxpyVenvFolder,
"PATH": `${sdkPath}:${rustBinFolder}:${vmToolsFolder}:${process.env["PATH"]}`,
"RUSTUP_HOME": rustFolder,
"CARGO_HOME": rustFolder
};
}

private static saveOld() {
Environment.old = {
"PYTHONHOME": process.env["PYTHONHOME"],
"PATH": process.env["PATH"],
"VIRTUAL_ENV": process.env["VIRTUAL_ENV"],
"RUSTUP_HOME": process.env["RUSTUP_HOME"],
"CARGO_HOME": process.env["CARGO_HOME"]
};
}
}
17 changes: 0 additions & 17 deletions src/extension.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import * as vscode from 'vscode';
import { Uri } from 'vscode';
import { SmartContract, SmartContractsViewModel } from './contracts';
import { Environment } from './environment';
import * as errors from './errors';
import { Feedback } from './feedback';
import * as presenter from "./presenter";
import { Root } from './root';
import * as sdk from "./sdk";
import * as snippets from './snippets';
import { ContractTemplate, TemplatesViewModel } from './templates';
import * as workspace from "./workspace";
import path = require("path");
Expand All @@ -29,7 +27,6 @@ export async function activate(context: vscode.ExtensionContext) {
vscode.commands.registerCommand("multiversx.installRustDebuggerPrettyPrinterScript", installRustDebuggerPrettyPrinterScript);
vscode.commands.registerCommand("multiversx.gotoContract", gotoContract);
vscode.commands.registerCommand("multiversx.buildContract", buildContract);
vscode.commands.registerCommand("multiversx.runContractSnippet", runContractSnippet);
vscode.commands.registerCommand("multiversx.runScenarios", runScenarios);
vscode.commands.registerCommand("multiversx.runFreshTestnet", runFreshTestnet);
vscode.commands.registerCommand("multiversx.resumeExistingTestnet", resumeExistingTestnet);
Expand All @@ -39,8 +36,6 @@ export async function activate(context: vscode.ExtensionContext) {
vscode.commands.registerCommand("multiversx.refreshTemplates", async () => await refreshViewModel(templatesViewModel));
vscode.commands.registerCommand("multiversx.newFromTemplate", newFromTemplate);
vscode.commands.registerCommand("multiversx.refreshContracts", async () => await refreshViewModel(contractsViewModel));

Environment.set();
}

export function deactivate() {
Expand All @@ -52,10 +47,8 @@ async function setupWorkspace() {
return;
}

Environment.set();
await workspace.setup();
await sdk.ensureInstalled();
await workspace.patchLaunchAndTasks();
await ensureInstalledBuildchains();
await Feedback.infoModal("Workspace has been set up.");
}
Expand Down Expand Up @@ -99,7 +92,6 @@ async function newFromTemplate(template: ContractTemplate) {
let contractName = await presenter.askContractName();

await sdk.newFromTemplate(parentFolder, templateName, contractName);
await workspace.patchLaunchAndTasks();
await ensureInstalledBuildchains();
vscode.commands.executeCommand("workbench.files.action.refreshFilesExplorer");
} catch (error) {
Expand Down Expand Up @@ -135,15 +127,6 @@ async function cleanContract(contract: any) {
}
}

async function runContractSnippet(contract: any) {
try {
let folder = getContractFolder(contract);
await snippets.runContractSnippet(folder);
} catch (error) {
errors.caughtTopLevel(error);
}
}

function getContractFolder(contract: any): string {
if (contract instanceof Uri) {
let fsPath = contract.fsPath;
Expand Down
6 changes: 0 additions & 6 deletions src/presenter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,6 @@ export async function askContractName() {
return result;
}

export async function askModifyLaunchAndTasks(): Promise<boolean> {
let answer = await askYesNo(`Allow MultiversX IDE to modify this workspace's "launch.json" and "tasks.json"?\n
For a better experience when debugging Smart Contracts, we recommed allowing this change.`);
return answer;
}

export async function askInstallMxpy(requiredVersion: Version): Promise<boolean> {
let answer = await askYesNo(`MultiversX IDE requires mxpy ${requiredVersion}, which isn't available in your environment.
Do you agree to install it?`);
Expand Down
2 changes: 1 addition & 1 deletion src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export async function reinstallMxpy(version: Version) {
`python3 "${mxpyUp}" --exact-version=${version.value} --not-interactive` :
`python3 "${mxpyUp}" --no-modify-path --exact-version=${version}`;

await runInTerminal("installer", mxpyUpCommand, Environment.old);
await runInTerminal("installer", mxpyUpCommand);

Feedback.info("mxpy installation has been started. Please wait for installation to finish.");

Expand Down
88 changes: 0 additions & 88 deletions src/snippets.ts

This file was deleted.

Loading

0 comments on commit b850f6f

Please sign in to comment.