|
|
|
|
Re: Grammar and Color high light of Nested Variable Names [message #1798366 is a reply to message #1798365] |
Fri, 16 November 2018 09:07 |
|
public class MyDslSemanticHighlightingCalculator extends DefaultSemanticHighlightingCalculator {
@Inject
private MyDslGrammarAccess ga;
@Inject
private OperationCanceledManager operationCanceledManager;
@Override
protected boolean highlightElement(EObject object, IHighlightedPositionAcceptor acceptor,
CancelIndicator cancelIndicator) {
if (object instanceof Model) {
ICompositeNode node = NodeModelUtils.findActualNodeFor(object);
handlePathNode(node,acceptor,cancelIndicator);
}
return super.highlightElement(object, acceptor, cancelIndicator);
}
private void handlePathNode(INode n, IHighlightedPositionAcceptor acceptor, CancelIndicator cancelIndicator) {
acceptor.addPosition(n.getOffset(), n.getLength()-1, HighlightingStyles.STRING_ID);
BidiTreeIterable<INode> iterable = n.getAsTreeIterable();
for (INode nx : iterable) {
operationCanceledManager.checkCanceled(cancelIndicator);
EObject grammarElement = nx.getGrammarElement();
if (grammarElement instanceof RuleCall) {
if (ga.getGlobalPathRule() == ((RuleCall) grammarElement).getRule()) {
acceptor.addPosition(nx.getOffset(), nx.getLength(), HighlightingStyles.KEYWORD_ID);
}
}
}
}
}
Twitter : @chrdietrich
Blog : https://www.dietrich-it.de
[Updated on: Fri, 16 November 2018 09:09] Report message to a moderator
|
|
|
Powered by
FUDForum. Page generated in 0.05066 seconds