Xtext custom content assist problem [message #1735183] |
Thu, 16 June 2016 07:48  |
Eclipse User |
|
|
|
Hi,
I have below grammar
Annotation: {Annotation} ('@app()->') (appExp+=Expression);
Widget: {Widget} '@widget' (widgetExp+=Expression)+ ('->'widgetExp+=Expression)?;
ScreenNum : {ScreenNum} ('@screen_num'|'@screen')(screenExp+=Expression) ('!@widget'(screenExp+=Expression))? ('->'screenExp+=Expression)?;
FieldNum: {FieldNum} ('@field_num')(fieldExp+=Expression) (fieldExp+=Expression)? ('->'fieldExp+=Expression)?;
I want auto content assist when I click on '->'.
I have added below code in proposal provider class as
class JPLEditorUiModule extends AbstractJPLEditorUiModule {
override configure(Binder binder) {
super.configure(binder);
binder.bind(String).annotatedWith(Names.named((XtextContentAssistProcessor.COMPLETION_AUTO_ACTIVATION_CHARS))).toInstance(">");
}
def Class<? extends AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
JPLAntlrTokenToAttributeIdMapper
}
}
But when I writing @app()-> the contents belongs to @app are coming. But when I write @widget, @screen_num, @field_num it is showing all contents.
|
|
|
|
Re: Xtext custom content assist problem [message #1735190 is a reply to message #1735184] |
Thu, 16 June 2016 08:45   |
Eclipse User |
|
|
|
I have written content assist for the grammar rules defined as :
override completeAnnotation_AppExp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
for(String app : appSet) {
acceptor.accept(createCompletionProposal(app, app,null /*getBlackImage()*/, context));
}
}
override completeWidget_WidgetExp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor){
println("Inside Widget:::::::")
for(String widget : widgetSet) {
acceptor.accept(createCompletionProposal(widget, widget,null /*getBlackImage()*/, context));
}
}
override completeScreenNum_ScreenExp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor){
println("Inside Screen:::::::")
for(String screenNum : screenNumSet) {
acceptor.accept(createCompletionProposal(screenNum, screenNum,null /*getBlackImage()*/, context));
}
}
override completeIdObject_IdExp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor){
println("Inside idset:::::::")
for(String id : idSet) {
acceptor.accept(createCompletionProposal(id, id,null /*getBlackImage()*/, context));
}
}
override completeTpReq_TpreqExp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor){
println("Inside tpReqSet:::::::")
for(String tpReq : tpReqSet) {
acceptor.accept(createCompletionProposal(tpReq, tpReq,null /*getBlackImage()*/, context));
}
}
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04718 seconds