Run dart code continusously on save in VScode - flutter

I am new to dart.
I have configured, dart + flutter + vscode etc. In the vscode i am able to run .dart file through Debug panel.
What I want it to run the program on file save. Just like I do in node.js using nodemon package. it watches the files save and rerun the app.
Is something like this possible in VSCode.

This looks promising. He modified Save and Run Ext plugin for VS Code

Go to Vs code settings
next type flutter hot on search box.
then select these two options

Related

flutter.create in VSC

I am trying to create a new flutter project using Visual Studio Code on Windows.
View > Command Palette > Flutter: New Project > Application
I tried to create a project using this order as it was introduced in the flutter document.
However, all I see is a file called "flutter.create" in my folder instead of the flutter related files that I am supposed to see.
May I ask what kind of possible problems I am confronting?
I searched the internet and I rebooted my pc, VSC, etc, but it just did not work.

Can we open a flutter project created in Android Studio, in VS Code?

I am using VSCode for Flutter development but my team is using Android Studio. So when I tried to clone the repo which has Flutter Project created from Android Studio into VSCode, it is not even detecting import 'package: flutter/material.dart'; and throwing a lot of errors.
Is there a way possible or is it like we cannot use other code editors for projects created in Android.
Yes, It is possible. Just open your terminal and enter the following commands
cd my-project-folder/
#takes you to your project folder
then
code .
#this will open your project in vs code
Yes, but make sure VS Code is correctly set up. It needs to have Flutter and Dart Extensions installed.
Yes it's easy
Open VS Code
Open terminal ( press CTRL + ~ ) or ( from top bar press view >> command palette and select Create New Terminal )
Copy your project path and add it to terminal
To add the path to terminal type
cd type/your/path
then type code . in terminal to open your file

How to run an individual dart file in Flutter without having to build the UI in vscode?

I know that in Android Studio you could run a dart file that you put out of the lib folder individually much like dartpad. I'm wondering how you could do the same in VSCode. I haven't found a way to do it without it running and building the whole UI.
You can run a dart file from the command line like this.
$ dart path_to_your_file/your_file_with_main.dart
This will execute the main() function of the file.
After creating a flutter project to run individually dart file in Flutter
you have to add main function like below code with you desire class name
void main() { runApp(newfile()); }
or
void main() => runApp(newfile());
then go to project bar of android studio right click on the selected file you will see Run'newfile.dart' then you will also see in the toolbar, select your app from the run configurations drop-down menu
like
Select File and Edit Configuration
Add Run External Tools
Add dart in Program & Working dir $ProjectFileDir$

VSCode Can't Find the PATH To the Flutter SDK

I just tried to execute Flutter: New Project, but it shows an error that could not find a flutter SDK.
I've ensured to complete all of the requirements from the flutter doctor.
Is there any way to solve this problem?
Thanks.
On macOS this was solved by following these steps.
First find where you downloaded the flutter sdk (Can be downloaded from here). It should be in your downloads folder unless you selected somewhere else.
Next:
Open up Terminal. Run the following command: sudo nano /etc/paths
Enter your password, when prompted.
Go to the bottom of the file, and enter the path you wish to add.
Hit control-x to quit.
Enter “Y” to save the modified buffer.
If the sdk is downloaded into your Downloads folder, your path to add should be /Users/yourusername/Downloads/flutter/bin
Lastly, quit and restart your terminal windows and VS Code. After restarting, both apps should recognize flutter and running flutter doctor should now work.
If you installed Flutter extension please restart VS_CODE and try it again. I already had the same problem.
The thing is VSCode looks for .packages file in your Flutter project this file contains path to your Flutter SDK & some other metadata. You're getting this error because either the .packages file is missing or either the path to Flutter SDK in .packages file contains some discrepancies.
To resolve it, you can;
Either edit the .packages file & set the path.
Or if you already have a working Flutter project then a .packages must've been already created. Copy that file & paste it in the root directory of your project.
Restart VSCode & run flutter pub get
This should resolve the issue.
Check your environment variables:
Look for the PATH if it exists append the full path to flutter\bin
using ; as a separator from existing values.
If it does not exist, create a new user variable named PATH with the
full path to flutter\bin as its value.
And check the installation guide
After doing this:
Open VS Code.
Press Ctrl + Shift + P.
Then type flutter and select run flutter doctor it should be fixed now.
Create a new project to make sure it's run.
For Linux Users
For future visitors :)
I had the same problem, in my Terminal flutter doctor or in general flutter was recognized, but VSCode couldn't recognize my SDK location so flutter doctor for instance didn't work.
The first thing to do is to follow the steps in flutter documentation: Flutter Doc
If it didn't work, change the environment variables directly.
sudo nano /etc/environment
Now add the location of the bin folder of your flutter SDK, The folder that you downloaded from here.
For example, you extracted it here: /Home/User/Software
Add /Home/User/Software/flutter/bin to the PATH variable. Paths are separated by a colon(:)
After a few solutions I tried, this one worked.
For Windows
Open Visual Studio Code
Click Locate SDK
Find your flutter folder
Click Save
Re-open your Visual Studio Code
Press Ctrl + Shift + P
Type flutter and choose Flutter: New Application Project
Type your project name (e.g: flutter_application_1)
Select a folder to create the project in
If you want to change your flutter sdk location
Go to Visual Studio Code > Manage > Setting (or with shortcut Ctrl
Search dart
Find [dart] configure setting to be overriden for [dart] language
Click Edit in settings.json
You'll see :
{
"dart.sdkPath": "C:\\tools\\dart-sdk",
"dart.flutterSdkPath": "C:\\tools\\flutter",
"[dart]": {
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"editor.suggest.insertMode": "replace"
}
}
Replace dart.sdkPath and dart.flutterSdkPath with your new sdk location
Installing Flutter on Linux is a breeze using snapd as is documented officially. But then trying to create a Flutter project by following the official steps as mentioned here - Test drive - Flutter will throw an error similar to the description provided in the question.
On a side note though, you don't have to bother adding Flutter to PATH if it was installed using snapd.
Rather, follow these steps:
flutter create <insert_app_folder_name>
cd <insert_app_folder_name>
code .
What it really does is:
The Flutter binary is called from within snapd & creates a project with a directory name you provide.
You can now cd into that specific directory.
Call VSCode in the current directory which opens a VSCode instance within the project directory.
Refer to the answer by #maheshmnj about the .package. This file was created by Flutter earlier if you followed the aforementioned steps.
This means the Flutter extension couldn't find the Flutter SDK automatically (eg. by looking in your PATH or a path configured with dart.flutterSdkPath). Clicking Locate SDK should let you browse to the SDK manually and record that location for the next time. If you see this again after restarting, that's definitely a bug in the Dart/Flutter extension, so please open an issue at https://github.com/Dart-Code/Dart-Code and include the output from clicking the Show Log button, as well as noting whether there's a dart.flutterSdkPath setting in your VS Code User Settings.
If you have just installed the flutter extension, close all the vs code applications running and restart the vs code then it will work as expected.
In order to run a new flutter project,
Go to vs code-> View tab -> command pallette -> select Flutter ->
give a name to the project ->give the path of the project
Now you are good to go with flutter.
I would like to complete NoobN3rd information.
In VSCode Linux I used this steps:
sudo nano /etc/environment
Type your password
I added 3 paths at the end of line:
3.1 /"flutter instalation directory"/flutter/bin
3.2 /"flutter instalation directory"/flutter/packages
3.3 /"flutter instalation directory"/flutter/dev
Save it and reboot your system
Look at my environment file to have an example:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/paulo/development/flutter/bin:/home/paulo/development/flutter/packages:/home/paulo/development/flutter/dev"
if youknow where have you extracted your zip file of dart(Eg. at the time of extraction i setup the path C:\src\flutter)
then in vs code goto
c drive
-src
-flutter
-bin
-cache
-(dart-sdk)
select this folder and your
vs code will be adjusted.
I was facing the same problem. I've initially followed all the steps provided by installation guide of Flutter and was able to run an existing project using flutter run command.
So I've tried again repeating the very same steps of the installation guide and changed the path that I initially set like:
export PATH="$PATH:~/path/to/flutter/bin"
For one like:
export PATH="$PATH:/home/user/path/to/flutter/bin"
Then I run source ~/.bashrc and restarted Visual Code and worked! so I suppose that it was something related to ~ in the path.
I would like to add a complementary and alternative response to the Linux solutions given by NoobN3rd, Traufvihal and Paulo Ravaiano.
I'm using Manjaro and for some reason my Visual Studio Code was not picking up all the environment variables definition. I tried all the solutions and finally I realised the problem was not with the variables definition (my final solution contains them all in ~/.bashrc but it should work with /etc/environment as well) but on how Visual Studio Code was launched.
In case someone else is facing this problem, I noticed that running VS Code from the applications menu fails to link the environment variables for some reason. On the other hand, launching "code-oss" from the terminal does the trick and picks all my variables defined in my ~/.bashrc file.
Hope it helps!
I just got out of the same trouble, after numerous hit and trials trying to run flutter commands from vs code terminal the below set of steps got the things up for me.
In Ubuntu 18.04
Grab the path of the directory where flutter was unpacked by you.Mine was in the Home directory for the root user. Location can be any of your choice.
Go to the Home for your root user
Un-hide all of the hidden files in this directory.
Look for .bashrc file. Do not look for .profile file.
Open .bashrc file using nano/vim/text editor which ever you like.
Scroll to the bottom of the file and add this line -
export PATH="$PATH:pwd/flutter_linux/flutter/bin"
Quit all instances of the vscode (if any) opened.
Re-open and in the terminal type which flutter
Here -
I had re-named the un-zipped folder name like "flutter_linux_v1.12.13+hotfix.9-stable" with "flutter_linux"
Hope this helps......
i was also facing this error, after putting the flutter sdk path at the End of the PATH variable(not in middle or start) it works fine for me
For those who want to change their Flutter SDK path for the Dart & Flutter plugin
Click on Manage Icon(on Mac)
Click on Settings
On the Settings page, Click on Dart & Flutter.
Look for Dart: Sdk Path, click on Edit in settings.json
Edit dart.flutterSdkPath to your VSCode Flutter path
For me non of the answers helped.
What helped was (on macOS) opening the .bash_profile file via
sudo nano .bash_profile
and change the path to where my Flutter was as this has changed. Or add this line export PATH="$PATH:/home/user/path/to/flutter/bin"
hope this helpes.
QUICK SOLUTION!: If on macOS, PLUS everything had been working flawlessly previously, and this happens all of a sudden, or periodically, here is what I eventually discovered...
If your mac restarted, either on its own due to a crash, freeze or overnight install of updates, and VS Code was running, it generally restores all your vscode instances, but with various environment-related errors such as this one. The reason is that you are not running in the context of a shell and you don't have access to those environment settings. See this article from the VS Code documentation.
THE SOLUTION?: Quit and restart VS code as you normally would. Others have mentioned this, but I thought it would be good to know why this happens so you aren't surprised next time.
Please refer to the Get Flutter SDK section and locate where you have installed your flutter\bin folder. In my case, I put the flutter bin in my Documents folder.
See the following image Flutter\bin location
Windows
After make sure right Flutter version is in your path: https://docs.flutter.dev/get-started/install/windows
and you can run flutter doctor successfully
in VS Code you need to go to File->Preferences->Settings (or Ctrl+,)
then search for dart.flutterSdkPath then click on "Edit in settings.json" make sure it is the right path there.
I had the same problem, the solution was:
take the folder where you have extracted your zip file (for example: C:\src\flutter\flutter) then put it in the environment variable path and restart vscode.

VS Code and Flutter/Dart, Widget Autocomplete not working

I'm working with some tutorials to learn Flutter and the one that I'm taking now uses VSCode. I actually prefer it to Android Studio because it doesn't overheat my Macbook. The only frustration I've had with it so far is that there are quite a few times where autocomplete just stops working. For instance, if I wrap a Column in a widget and then start typing Container, Android Studio will pop up an autocomplete showing Container VS Code used to do this for me, but has stopped for some reason. I can still get the autocomplete list if I press Ctrl+Spacebar.
I'm using the following:
VS Code - 1.36.1
Dart Extension - 3.2.0
Flutter Extension - 3.2.0
Material Icon Theme - 3.8.0
This is the latest version for all of these.
Is there some setting or something that I need to change? I've spent the last two hours trying to work out what's going on. In searching, I did see some references to earlier versions of VS Code and the extensions causing problems, but nothing about these versions.
Go to pubspec.yaml and hit save or run get packages. It worked for me, hope it helps
There are generally two reasons for VS Code to automatically open code completion - 1) when you press a key that the extension ahs told VS Code should invoke it and 2) when VS Code thinks it would be useful (for example when you start typing on a blank line). If you're typing in a line of existing code it won't always do this.
Pressing Ctrl+Space is the correct way to open completion in the cases where it doesn't appear automatically.
That said, if you can provide more information about a specific instance, I can take a look if it's something we could/should pop completion open for. It would be best raised at https://github.com/Dart-Code/Dart-Code/issues with a screenshot and details of exactly where your cursor is (and how you got there).
dont use too many flutter extension, I also face this problem , then I realize that 3 flutter extension are installed, use only one , it works for me, try it.
I did have a derivative of this problem when I was working with VS Code and flutter and this is what I did.
This is for windows though. This is what I did ;
Go to C:\Users<your username >\AppData\Roaming\Code and delete all the files and the directory called "Code". Usually the folder AppData is hidden so you'll have to unhide it. Then restart your computer and then reopen VS Code. This I think cleared some of the unwanted cache files which kind of made things right again.
Hope it helped.
Make sure
Preferences > Editor > Intentions > Quick assist powered by the Dart
Analysis Server
is enabled (Screenshot).
If so, most likely your Dart Analysis server is crashing. Navigate to your HOME folder:
cd ~
And then below should resolve your issue:
sudo chown -R $USER .dart .flutter
Clear your cache if the issue still exists:
File > Invalidate Caches > Clear file system cache and Local History > Invalidate and Restart.
Also, Power Save Mode should be disabled:
File > Power Save Mode
Doing a flutter clean and then flutter pub upgrade worked for me. Sometimes flutter clean using the command line does not work if you have android studio then in tools go to flutter and then do flutter clean.
just do flutter clean then flutter create. and then flutter pub upgrade, and also see if your flutter SDK is latest or not.
Check to make sure Android Studio is not on low power mode
Menu>File>Low Power Save Mode
I solved in in my Macbook Pro by
Going to System Preferences > Keyboard > Shortcuts > Input Sources
Disable: Select the previous input source (^ space)
Updating VS Code dart and flutter extensions
Restarting the computer.
And voila! Ctrl + space now shows options in VS Code.