There were bugs related to this code layout but I thought they are all fixed.
What looks weird is your public directory.
You have index.html, index.dart and pubspec.yaml in the same directory.
index.html and index.dart need to be in the web subdirectory of your package.
-> public
---> pubspec.yaml
---> web
-----> index.html
-----> index.dart
I would discourage using such a layout anyway.
Make all packages related to one application on the same directory level
myapp
--> client
----> pubspec.yaml
----> web
------> index.html
------> index.dart
----> lib
------> other files
--> server
----> pubspec.yaml
----> bin
------> main.dart
----> lib
------> other files
--> shared
----> pubspec.yaml
----> lib
The only disadvantage you have from this layout is that DartEditor doesn't show the entire code in one folder.
If this is what bothers you you can use workspaces in DartEditor.
To use workspaces you need to add a command line argument
DartEditor -data myworkspaces/my_cool_app
If you have other reasons please share so we can discuss how to avoid them.