Google Summer of Code
History Key
- New content
Removed content
Recent Versions
Choose two versions to compare, or click the link to view it.
Google Summer of Code 2010
Features Proposal of GSOC 2010 Project
Features:
Feature#1. Visual indicators of the application of implicit conversions and the provision of implicit parameters.
- A. indicator
A.1 what of indicator:
Bold highlighting or green squiggly underline or yellow squiggly underline(we can reuse yellow squiggly underline which has been used as the "Problem" indicator if we do not want to distinguish the differences of "Implicits" and current "Problem".)
A.2 where of indicator:
implicit conversions: the Id or expression of Ids under the conversion.(Id means identifier, such as variable, function, field and method member)
implicit parameters: the function calls which implicitly used the implicit parameters
A.3 others:
hover and annotation can be enhanced(a link can be added here to allow to navigate to the location of the related in-scope implicit). - B. preference
add one customizable "Syntax Coloring"(or "Semantic Coloring" ) page in the "Preferences->Scala->Editor" (One thing is that the JDT add the semantic highlightings to the "Syntax Coloring" page.)
Feature#2. A mechanism, possibly similar to code folding, for transiently expanding inferred types and implicit conversion and parameters inline in source text.
- all("expanding inferred types and implicit conversion and parameters inline") are considered to be done in quick fix/assist(Ctrl+1) (with feature#1)
Feature#3. A mechanism for showing inferred type hovers for expressions (currently inferred types can only be shown for simple terms).
- A. improve the hover that missed the type info (after tests, the basic type hover info is ready.)
- B. type info completion by "id:" auto activation ("expanding inferred types" can considered to be done as one enhancement of the current code completion functionality when : activation with Id: or Ids(exp of Id) in the case that the type of Id/Ids can be inferred out. see more discussion at [3] - I move one feature from #2 to here): the current feature is limited to the the val definition and function definition which I think the most useful places for such functionalities. see some screenshots below.
- (inferred type hovers for expressions means what?)
p.s.: There are some relevancies existed from Feature#1 to Feature#3.
Discussions
If you have any comments or suggestions, it would be much appreciated to discuss them here [3]. It is happy to discuss this proposal with you:)
Screenshots of above features

1. Semantic Highlighting and related preference page for Implicit Conversions and Implicit Arguments
2. quick assist for implicit conversions - before applying
3. quick assist for implicit conversions - after applying
4. quick assist for implicit arguments - before applying
5. quick assist for implicit arguments - after applying
6. type info completion by "id:" auto activation - when typing ":"
7. type info completion by "id:" auto activation - after applying that type proposal
Sources
For my network limitation, I update my work as patches here[4]. And the corresponding git repo can be found here[5].
References
[1]http://www.scala-lang.org/gsoc2010
[2]https://groups.google.com/group/scala-ide-dev/browse_thread/thread/a917606573c06bdc
[3]https://groups.google.com/group/scala-ide-dev/browse_thread/thread/f7cffb3d69a44fee
[4]http://www.assembla.com/spaces/scala-ide/tickets/1000110-scala-ide-gsoc-2010-patches