类org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher源码实例Demo

下面列出了怎么用org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: xtext-eclipse   文件: FQNPrefixMatcherTest.java
@Override
protected FQNPrefixMatcher createMatcher() {
	IgnoreCase ignoreCase = new PrefixMatcher.IgnoreCase();
	FQNPrefixMatcher result = new FQNPrefixMatcher();
	result.setDelegate(ignoreCase);
	result.setLastSegmentFinder(new FQNPrefixMatcher.LastSegmentFinder() {
		@Override
		public String getLastSegment(String fqn, char delimiter) {
			int i = fqn.lastIndexOf(delimiter);
			if (i >= 0) {
				if (i != fqn.length() - 1)
					return fqn.substring(i + 1);
				return "";
			}
			return fqn;
		}
	});
	return result;
}
 
源代码2 项目: n4js   文件: PrefixMatcherHelper.java
/***/
// NOTE: Xtext's FQNPrefixMatcher injects PrefixMatcher.IgnoreCase, not PrefixMatcher, so we have to follow suit:
@Inject
public PrefixMatcherHelper(PrefixMatcher.IgnoreCase prefixMatcher) {
	if (!(prefixMatcher instanceof N4JSPrefixMatcher)) {
		throw new IllegalStateException("wrong injection setup: "
				+ "PrefixMatcher.IgnoreCase is expected to be bound to "
				+ N4JSPrefixMatcher.class.getSimpleName() + " but is bound to "
				+ prefixMatcher.getClass().getName());
	}
	this.prefixMatcher = prefixMatcher;
	this.canDoCamelCaseMatch = ((N4JSPrefixMatcher) prefixMatcher).isJdtAvailable();
}
 
@Override
protected StringMatcher createStringMatcher(String pattern) {
	FQNPrefixMatcher fqnPrefixMatcher = new FQNPrefixMatcher();
	fqnPrefixMatcher.setLastSegmentFinder(new FQNPrefixMatcher.DefaultLastSegmentFinder());
	fqnPrefixMatcher.setDelegate(new PrefixMatcher.CamelCase());
	return new PrefixMatcherOutlineAdapter(pattern, fqnPrefixMatcher);
}
 
源代码4 项目: xtext-eclipse   文件: Bug349773Test.java
@Override
protected FQNPrefixMatcher createMatcher() {
	IgnoreCase ignoreCase = new PrefixMatcher.IgnoreCase();
	FQNPrefixMatcher result = new FQNPrefixMatcher();
	result.setDelegate(ignoreCase);
	result.setLastSegmentFinder(new FQNPrefixMatcher.DefaultLastSegmentFinder());
	return result;
}
 
源代码5 项目: xtext-eclipse   文件: XtextProposalProvider.java
@Override
public void completeReferencedMetamodel_EPackage(EObject model, Assignment assignment,
		final ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
	super.completeReferencedMetamodel_EPackage(model, assignment, context.copy().setMatcher(new PrefixMatcher() {

		@Override
		public boolean isCandidateMatchingPrefix(String name, String prefix) {
			if (prefix.startsWith("\"")) {
				if (prefix.length() == 1)
					prefix = "";
				else {
					prefix = prefix.substring(1);
					if (prefix.endsWith("\"")) {
						prefix = prefix.substring(0, prefix.length() - 1);
					}
				}
			}
			name = getValueConverter().toValue(name, "STRING", null).toString();
			if (context.getMatcher().isCandidateMatchingPrefix(name, prefix))
				return true;
			try {
				URI uri = URI.createURI(name);
				if (context.getMatcher().isCandidateMatchingPrefix(uri.lastSegment(), prefix))
					return true;
			} catch (Exception e) {
				// ignore
			}
			return false;
		}

	}).toContext(), acceptor);
}
 
public PrefixMatcherOutlineAdapter(String prefix, PrefixMatcher strategy) {
	super("", true);
	this.prefix = prefix;
	this.prefixParts = splitIntoParts(prefix);
	this.strategy = strategy;
	this.prefixStringMatcher = new StringMatcher(prefix, true);
	stringMatchers = Lists.newArrayList();
	for(String part: prefixParts) {
		stringMatchers.add(new StringMatcher(part, true));
	}
}
 
源代码7 项目: xtext-eclipse   文件: TerminalsProposalProvider.java
public void complete_ID(EObject model, RuleCall ruleCall, final ContentAssistContext context,
		ICompletionProposalAcceptor acceptor) {
	if (doCreateIdProposals()) {
		PrefixMatcher newMatcher = new PrefixMatcher() {
			@Override
			public boolean isCandidateMatchingPrefix(String name, String prefix) {
				String strippedName = name;
				if (name.startsWith("^") && !prefix.startsWith("^")) {
					strippedName = name.substring(1);
				}
				return context.getMatcher().isCandidateMatchingPrefix(strippedName, prefix);
			}
		};
		ContentAssistContext myContext = context.copy().setMatcher(newMatcher).toContext();
		String feature = getAssignedFeature(ruleCall);
		String proposalText = feature != null ? feature : Strings.toFirstUpper(ruleCall.getRule().getName().toLowerCase());
		String displayText = proposalText;
		if (feature != null)
			displayText = proposalText + " - " + ruleCall.getRule().getName();
		proposalText = getValueConverter().toString(proposalText, ruleCall.getRule().getName());
		ICompletionProposal proposal = createCompletionProposal(proposalText, displayText, null, myContext);
		if (proposal instanceof ConfigurableCompletionProposal) {
			ConfigurableCompletionProposal configurable = (ConfigurableCompletionProposal) proposal;
			configurable.setSelectionStart(configurable.getReplacementOffset());
			configurable.setSelectionLength(proposalText.length());
			configurable.setAutoInsertable(false);
			configurable.setSimpleLinkedMode(myContext.getViewer(), '\t', ' ');
		}
		acceptor.accept(proposal);
	}
}
 
源代码8 项目: n4js   文件: N4JSUiModule.java
/**
 * Filter fully qualified proposals also by their last segment and not only by their fully qualified name.
 */
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码9 项目: n4js   文件: N4JSUiModule.java
/**
 * Custom prefix matcher.
 */
public Class<? extends PrefixMatcher.IgnoreCase> bindPrefixMatcherIgnoreCase() {
	return N4JSPrefixMatcher.class;
}
 
源代码10 项目: n4js   文件: AbstractRegularExpressionUiModule.java
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码11 项目: n4js   文件: AbstractJSONUiModule.java
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码12 项目: bromium   文件: AbstractBromiumUiModule.java
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码13 项目: M2Doc   文件: AbstractMyDslUiModule.java
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码21 项目: xtext-eclipse   文件: AbstractXmlUiModule.java
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
@Override
protected IgnoreCase createMatcher() {
	return new PrefixMatcher.IgnoreCase();
}
 
源代码26 项目: xtext-eclipse   文件: CamelCasePrefixMatcherTest.java
@Override
protected CamelCase createMatcher() {
	return new PrefixMatcher.CamelCase();
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
源代码29 项目: xtext-eclipse   文件: XtextProposalProvider.java
public ClassifierPrefixMatcher(PrefixMatcher delegate, IQualifiedNameConverter qualifiedNameConverter) {
	this.delegate = delegate;
	this.qualifiedNameConverter = qualifiedNameConverter;
}
 
public Class<? extends PrefixMatcher> bindPrefixMatcher() {
	return FQNPrefixMatcher.class;
}
 
 类所在包
 类方法
 同包方法