This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Beta Feedback: nRF Connect VSCode Extension

Hello,

I have been experimenting with the new VSCode extension for the last week or so and I've noticed some issues. I understand that this is a currently a beta release, but figured this could be potentially useful information.

I'll label my feedback into three categories:

  • Minor: Frustrating, but usable
  • Major: Concern, but usable
  • Critical: Unusable

Issues (tested on Windows 10, Powershell 7):

  1. [Minor] The extension does not respect VS Code variables.
    1. For example when setting `kconfig.zephyr.board.dir" to "${workspaceFolder}\\zephyr\\boards\\arm\\nrf52dk_nrf52832", the extension will replace the VS Code variable with the absolute path. The same is true for "kconfig.zephyr.base"
  2. [Minor] When creating a new launch config via "Run > Add configuration", nrf-connect should add "armToolchainPath""${env:GNUARMEMB_TOOLCHAIN_PATH}\\bin\\" to the config by default
    1. Zephyr already requires the environmental variable to be declared if using gnuarmemb and from what I can see, Nordic is setting it up to point to the toolchain anyway.
    2. Debugging without this will fail unless the path to GDB is declared directly in the PATH (which is typically bad practice for environments that may use multiple versions of a compiler)
    3. I've found that on my locked down corporate machine, IT has disabled exporting variables (I'm not sure if that is what the extension is attempting or not). But I had to manually add that variable to my user with admin perms and rapidee before debugging would work.
  3. [Minor] It would be nice if the Actions tab could be extended by a user to add custom tasks like linting or running tests.
  4. [Major] The extension phrases boolean configuration options awkwardly.
    1. For example: "Whether or not to show the welcome page when VS Code opens" could be better stated as "Show the welcome page when VS Code opens."
  5. [Major] The extension feels like its only designed for a single type of workflow (full sdk downloaded to a single location on a drive with the toolchain manager)
    1. I operate in a regulated market and will be needing to take out code that I don't want to track as well as having multiple versions of the sdk depending on the product being worked on.
    2. For this type of work, its much easier to have a west yaml in the project repo and download the required sdk components to a directory inside the project which I can ignore with git. That way each project is tracking its own version info rather than relying on making local copies and edits to the SDK (or manually updating things). Alternatively, I could set up the nrf sdk repos as submodules, but the effect is the same. I'm tracking the version within the project itself instead of depending on a local copy which could be different on each developers machine.
    3. I've had to hack around this limitation by setting the topdir variable to the ${workspaceFolder} which I've pre-configured by initializing the directory with west
    4. An ideal solution might be to have advanced options to initialize west locally
  6. [Critical] The extensions defaults do not respect other VS Code workflows that are unrelated to nrf-connect
    1. The default configuration of the extension is to override the default PATH info of VS Code. This means that if I use VS Code for other projects or workflows, those projects will now use Nordic's toolchain for cmake, python, and arm-gcc (and likely other tools I didn't have time to check).
    2. This causes issues when a developer attempts to use the system pip (via Poweshell or some other terminal not in VS Code) to install something and then expects it to be active in VS Code.
    3. I can disable this behavior with a setting, however that leads to the next issue
  7. [Critical] The extension is buggy when disabling PATH overrides.
    1. When nrf-connect: Terminal Env is unchecked, VS Code's Powershell terminal can be totally cleared except for the path to Powershell itself. It doesn't happen all the time and I'm still trying to figure out how to reproduce it reliably. However, when it does happen, the only way I have found to fix the path in VS Code is to uninstall the extension and start over.

I'm really excited by the possibilities for this extension. Its a lot better than manually setting stuff up in VS Code but it feels like there needs to be a bit more polish before I'm comfortable recommending it to others.

  • Hello, thanks for the excellent feedback! I have forwarded to our team working with the extension.

    I'm really excited by the possibilities for this extension. Its a lot better than manually setting stuff up in VS Code but it feels like there needs to be a bit more polish before I'm comfortable recommending it to others.

    Yes, this is why it's still a preview, so that we can get feedback. 

    Kind regards,
    Øyvind

  • Hi jdswensen-molex,

    Thank you for taking time to provide us with a detailed feedback.

    1 & 2: we will look into this

    3: This is an interesting idea. No immediate plans for such a function but I'll take a note.

    5: West management function is planned. Hopefully we can get it by the end of the year. It depends a bit on how much work will have with addressing feedback and issues.

    A basic support for workspace applications is already available  - you can create a new workspace application that will have a manifest and it's own version of the SDK. Try Command Palette -> nRF Connect: New Application. Please let us know if this is close to what you are looking for.

    6 & 7: Yes, this was an intended feature but turned out to be an issue for many users. We've already implemented a workaround not to override users terminal env when manual toolchain is selected. The proper solution we'd like to have is to introduce a dedicated terminal profile.

    Kind regards,

    Wojtek

    VSC Team

  • Thanks wbober!

    I took another look at the New Application command. The Workspace type seems to be what I'm looking for here. However, when I try to set things up, the Create Application button doesn't work. Its highlighted and seems clickable, but clicking the button doesn't do anything (that I can see).

  • Hi

    I've tested the released version and I can confirm this. I does work properly on our master, though. If all goes well we will release to the market place next week, so you'll be able to test if this works for you.

    Wojtek

  • Hi Wojtek,

    I downloaded and installed the marketplace version. However, I'm running into 2 errors.

    When attempting to make a workspace with our own internal git urls, I receive this error:

    "There was an error resolving the available nRF Connect SDK tags: Invalid GitHub repository URL".

    We're using bitbucket, is this solution exclusive to github content only?

    The Create Application button is still not clickable.

Related