[MonoDevelop] Code completion

Lluis Sanchez lluis@ximian.com
Sat, 05 Jun 2004 14:50:42 +0200


On dv, 2004-06-04 at 14:54, Artur Brodowski wrote:
> W li¶cie z pi±, 04-06-2004, godz. 14:11 +0200, Lluis Sanchez napisał:
> > The new code completion service will only include information from the
> > assemblies referenced in the project. If the file does not belong to any
> > project, it will only include info from mscorlib.
> 
> Since there's no way to add a reference to a single file, that makes
> editing non-project files with MonoDevelop 0.4 really uncomfortable.
> Are there any chances to fix that? Or every time I'd like to fix sth
> in the sources I will have to open whole combine?

The reason of this behavior is to avoid loading in memory information
that is not needed. For project files, it is easy to know which code
completion information is needed: the information parsed from the
project files and the information from the assemblies referenced by the
project.

For non-project files, MD has no clue about which assemblies are
referenced, and that's why it only loads information from mscorlib. One
solution would be to have a list of default assemblies whose class
information would be always loaded. This could be easily implemented
using a configuration file (or using the MD configuration file if there
is one). It could be even added to the MD options dialog.

However, you should take into account that:
1) This may have an important impact in memory usage. Notice that
loading code completion information for an assembly will also implies
the recursive load of information of all assemblies it references.
2) Code completion will still not work for assemblies that are not in
the list.

I think that the default should be to have only mscorlib in the assembly
list, and give the option to the user to add more assemblies.
In any case, we should make sure that the user is aware of the
implications of adding them.

Lluis.

> 
> regards,
> artb.