While it might seem reasonable to create this discussion in the form of a poll, the built-in poll in Discourse is rather too limited, so I hope to get RedwoodJS user’s feedback in the form of a reply to this post, which should be not perceived as advertisement, but rather people’s preferences on Application Development Tooling (not RedwoodJS framework development tooling)
Details
Based on my own experience acquired in testing Redwood Tutorial I, my guess would be that relatively few people favor VSCode over the “classic” (Redwood CLI / Console Terminal - Yarn - npm) set. Since one of my projects includes writing the Developing Redwood Projects on Windows document, I created the RedwoodJS and VSCode section to discuss and define VSCodesettings issues
Since VSCode is a platform-independent tool, just like the “classic” (Redwood CLI / Console Terminal - Yarn - npm) set, even if you are not using VSCode please define the application development tools you are using. This will ensure that the setting.json maintained in this document which are used in:
yarn create redwood-app ./my-app
ensure identical application skeleton created across all platforms and development tools.
An example of different behavior between running the Jest tests in VSCode and the “classic” tooling is described in Test suite failed to run issue. The different behavior is a consequence of VSCode trying to run as many tasks in parallel as possible, including running the tests even before node_modules is built.
Information expected to be gathered
If you use VSCode already, please supply a copy of your VSCode settings (kept in .vscode\settings.json file from each OS you run VSCode).
Otherwise, please use the information in the Details section of this post, to figure out what data can help me to unify all these different .vscode/settings data
In this classic setup you describe, where do you write your code? If you remove VSCode from the equation, then you have a blank to fill in. For the sake of argument, let’s ignore which shell is being used.
I’m on VSCode with a very similar setup as @Tobbe, but with WSL as default shell.
I’m not sure I fully understand what you mean by “linux” mode, but VSCode with the Remote - WSL extension will recognize if my project is on the host (Windows) file system or the WSL guest (in my case Ubuntu) file system and integrate accordingly. As I use WSL as shell (terminal.integrated.shell.windows), it will give my WSL Ubuntu terminal.
Here is VSCode with Redwood on the WSL file system. Pay attention to the terminal path, and the bottom left corner (WSL: Ubuntu-20.04).
Here is VSCode with Redwood on the Windows file system. Pay attention to the terminal path with native access to the host file system (mapped to /mnt/c by default) and that we are not running in WSL integrated.
Note that I can change terminal tu run powershell (with VSCode settings only) in order to avoid running the VSCode in “Linux on Windows” - just as you wrote above
It is possible that your and my settings are identical (invoking the same OS API). Not being sure whether that is a true statement and remembering Aldo’s difficulties to run his VSCode extension in a “hybrid Windows / Linux” system, where VSCode might be missing some of the Windows API. I really like the Aldo’s extension described here. ( an API to explore a Redwood Project as a graph (like an AST) , which powers diagnostics and defines conventions).
I want to emphasize that I do not run VSCode in Linux. VSCode is installed and running* on my Windows machine. WSL is simply enabling you to have a Linux environment along your Windows environment, just like e.g. git-bash emulates a bash-like Linux environment.
Here is VSCode running (on Windows) with PowerShell and WSL shell side by side. It’s just a configuration after all.
*Technically, when running a project on the WSL filesystem, the VSCode Server is running in WSL userspace and the VSCode client remains on the Windows host.
I did not imply that you run VSCode on Linux - I wrote "running the VSCode in “Linux on Windows”. To be really precise, we need to use a dictionary we both agree with:
We both use “pure” Windows, meaning that any installed application uses Win32 API and nothing else (like accessing a VM that implements Linux file system). "Any installed application includes VSCode of course).
I use VSCode on Windows 10 for several languages in development but use Linux in production, didn’t know there was any “redwood” specific alternative but irrelevant as I am not just JS focused.
The fact that this issue is still open, may indicate that it is still off interest. Focus of the team since this issue was created is to get the 1.0 release before resolving all various platform issues.
A lot has changed on the Windows platform / VSCode since. This section will have to be scrubbed first.