multiversx / mx-ide-vscode

💻 VS Code extension for developing MultiversX Smart Contracts - Rust, C and C++.
MIT License
69 stars 36 forks source link

Remove environment pollution, other cleanup and simplifications #73

Closed andreibancioiu closed 1 year ago

andreibancioiu commented 1 year ago

1

For less undesired side-effects, the extension does not automatically patch settings.json anymore. It's the responsibility of the VSCode user to adjust settings.json and include necessary PATHs and variables - only as needed (e.g. if the user does rely on the Rust installation in ~/multiversx-sdk as opposed to a separate installation):

For Linux:

{
    "terminal.integrated.env.linux": {
        "PATH": "${env:HOME}/multiversx-sdk:${env:HOME}/multiversx-sdk/vendor-rust/bin:${env:HOME}/multiversx-sdk/vmtools:${env:PATH}",
        "RUSTUP_HOME": "${env:HOME}/multiversx-sdk/vendor-rust",
        "CARGO_HOME": "${env:HOME}/multiversx-sdk/vendor-rust"
    },
    "rust-analyzer.server.extraEnv": {
        "PATH": "${env:HOME}/multiversx-sdk:${env:HOME}/multiversx-sdk/vendor-rust/bin:${env:HOME}/multiversx-sdk/vmtools:${env:PATH}",
        "RUSTUP_HOME": "${env:HOME}/multiversx-sdk/vendor-rust",
        "CARGO_HOME": "${env:HOME}/multiversx-sdk/vendor-rust"
    }
}

For MacOS:

{
    "terminal.integrated.env.osx": {
        "PATH": "${env:HOME}/multiversx-sdk:${env:HOME}/multiversx-sdk/vendor-rust/bin:${env:HOME}/multiversx-sdk/vmtools:${env:PATH}",
        "RUSTUP_HOME": "${env:HOME}/multiversx-sdk/vendor-rust",
        "CARGO_HOME": "${env:HOME}/multiversx-sdk/vendor-rust"
    },
    "rust-analyzer.server.extraEnv": {
        "PATH": "${env:HOME}/multiversx-sdk:${env:HOME}/multiversx-sdk/vendor-rust/bin:${env:HOME}/multiversx-sdk/vmtools:${env:PATH}",
        "RUSTUP_HOME": "${env:HOME}/multiversx-sdk/vendor-rust",
        "CARGO_HOME": "${env:HOME}/multiversx-sdk/vendor-rust"
    }
}

2

Rust-based contract interaction snippets will arise soon.

Writing contract interaction snippets in bash is now discouraged. We've dropped support for invoking such interaction snippets directly from the VSCode extension UI.

Existing bash-based interaction snippets can still be invoked from the CLI, as follows (example for the adder contract):

export PROJECT=$(pwd)
export USERS=~/multiversx-sdk/testwallets/latest/users

source interactions/testnet.snippets.sh && deploy
source interactions/testnet.snippets.sh && add

3

In the past, we've patched both launchItems and tasks collections of launch.json and tasks.json. Now we don't anymore.

4

Do not patch anymore .gitignore. This must be the responsibility of the user (with aid from the contract template system).