This extension point replaces the extension point reconciliationParticipants, which is based on an deprecated API. Semantic highlighting participants are called by the Scala editor to enrich the semantic information with everything the participants provide.
The description attribute is needed for the quick access component of Eclipse.
mode. The hover shows values when hovering over local variables & class fields. Care has been taken for the hover to never show wrong values upon hover (the automated tests test this), although, I cannot rule-out possible bugs. Some implementation details: * The sdt.core project now exposes a new extension point (scalaHoverDebugOverride) that allows its text hover to be overriden by a plugin. The sdt.debug project provides an extension for this extension point. * The main logic of this commit is implemented in the StackFrameVariableOfTreeFinder.find() method. This method takes an ast node (compiler.Tree) as input and (if possible) returns the IVariable from the stack frame that corresponds to the given ast node. * Once an IVariable is sucessfully found, it is fed to the presentation component that is used internally by the jdt, which presents complex objects in a tree with collapsible sub-trees. Whenever an IVariable is not found, the existing implementation of text hover (the one before this commit) is used. * Some hacks are employed in the implementation (e.g. looking for stack-frame variables that are named '$this' or '$outer'). * The ScalaDebugger class now also keeps track of the currently selected stack frame. * A test case exercises the StackFrameVariableOfTreeFinder.find() function.
…ng logic can be easily used by other plugins (e.g., worksheet) The extension mechanism is such that other plugins will be able to register new source file provider and benefit of the existing declaration hyperlink detection logic. The fix was motivated by https://github.com/dragos/scala-worksheet/issues/23, and hopefully it will be useful for others. Fix #1001208
This is the initial import of all the implicit-highlighting code (i.e. Jin Mingjian's GSOC contribution) from wip_exp_backport to wip_experiment. This includes a new extension point to register extensions for the editor's reconciliation process, the parts that handle the actual annotation of the editor as well as quickfixes. I tried to change as little as possible in the code, but I changed some of the packages to keep the relevant code parts closer together. I also changed how the quickfix gets the annotations (ScalaQuick- AssistProcessor's getAssists): the previous version used the locations-Array, but this didn't work for me (I wonder why this ever worked), so I changed it to use the IInvocationContext. To the reviewers: I left some XXX/TODO comments in the code when I wasn't sure about something (there are also some left from the original implementation). Also, the parts relevant for the PC interaction is in the SemanticHighlightingPresenter's update method.