List of usage examples for com.google.common.base CharMatcher replaceFrom
@CheckReturnValue
public String replaceFrom(CharSequence sequence, CharSequence replacement)
From source file:fredboat.Config.java
private static String cleanTabs(String content, String file) { CharMatcher tab = CharMatcher.is('\t'); if (tab.matchesAnyOf(content)) { log.warn("{} contains tab characters! Trying a fix-up.", file); return tab.replaceFrom(content, " "); } else {/*from w ww . j a v a 2 s .c o m*/ return content; } }
From source file:local.laer.app.newgenerator.TileGenerator.java
public Tile section() { CharMatcher filter = CharMatcher.anyOf(" :/-"); LayoutFormat format = content.format(); String headline = content.headline(5, 40); SectionData section = new SectionData(); section.setHeadline(content.headline(5, 20)); section.setId(filter.replaceFrom(section.getHeadline(), "_")); return sectionBuilder.sectionTile(section, LayoutFormat.HALF); }
From source file:org.summer.dsl.model.types.xtext.ui.JdtTypesProposalProvider.java
protected void searchAndCreateProposals(IJavaSearchScope scope, final ICompletionProposalFactory proposalFactory, ContentAssistContext context, EReference typeReference, final Filter filter, final IValueConverter<String> valueConverter, final ICompletionProposalAcceptor acceptor) throws JavaModelException { String prefix = context.getPrefix(); List<String> split = Strings.split(prefix, '.'); char[] typeName = null; char[] packageName = null; if (prefix.length() > 0 && !split.isEmpty()) { CharMatcher dotMatcher = CharMatcher.is('.'); if (Character.isUpperCase(split.get(split.size() - 1).charAt(0))) { typeName = split.get(split.size() - 1).toCharArray(); if (split.size() > 1) packageName = ("*" + dotMatcher .replaceFrom(prefix.substring(0, prefix.length() - (typeName.length + 1)), "*.") + "*") .toCharArray(); } else {// w w w. j ava 2 s .c o m if (prefix.endsWith(".")) prefix = prefix.substring(0, prefix.length() - 1); packageName = ("*" + dotMatcher.replaceFrom(prefix, "*.") + "*").toCharArray(); } } IScope typeScope = null; if (context.getCurrentModel() != null) { typeScope = scopeProvider.getScope(context.getCurrentModel(), typeReference); } final IReplacementTextApplier textApplier = createTextApplier(context, typeScope, qualifiedNameConverter, valueConverter); final ICompletionProposalAcceptor scopeAware = new ICompletionProposalAcceptor.Delegate(acceptor) { @Override public void accept(ICompletionProposal proposal) { if (proposal instanceof ConfigurableCompletionProposal) { ((ConfigurableCompletionProposal) proposal).setTextApplier(textApplier); } super.accept(proposal); } }; Builder contextBuilder = context.copy(); final PrefixMatcher original = context.getMatcher(); contextBuilder.setMatcher(new PrefixMatcher() { @Override public boolean isCandidateMatchingPrefix(String name, String prefix) { if (original.isCandidateMatchingPrefix(name, prefix)) return true; String withoutDollars = name.replace('$', '.'); String prefixWithoutDollars = prefix.replace('$', '.'); if ((withoutDollars != name || prefixWithoutDollars != prefix) && original.isCandidateMatchingPrefix(withoutDollars, prefixWithoutDollars)) return true; String sub = withoutDollars; int delimiter = sub.indexOf('.'); while (delimiter != -1) { sub = sub.substring(delimiter + 1); delimiter = sub.indexOf('.'); if (delimiter == -1 || prefixWithoutDollars.length() > 0 && Character.isLowerCase(prefixWithoutDollars.charAt(0))) { if (original.isCandidateMatchingPrefix(sub, prefixWithoutDollars)) return true; } } return false; } }); final ContentAssistContext myContext = contextBuilder.toContext(); final IJvmTypeProvider jvmTypeProvider = jdtTypeProviderFatory .findOrCreateTypeProvider(context.getResource().getResourceSet()); BasicSearchEngine searchEngine = new BasicSearchEngine(); searchEngine.searchAllTypeNames(packageName, SearchPattern.R_PATTERN_MATCH, typeName, SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CAMELCASE_MATCH, filter.getSearchFor(), scope, new IRestrictedAccessTypeRequestor() { public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path, AccessRestriction access) { if (filter.accept(modifiers, packageName, simpleTypeName, enclosingTypeNames, path) && (!checkAccessRestriction() || (access == null || access.getProblemId() != IProblem.ForbiddenReference && !access.ignoreIfBetter()))) { StringBuilder fqName = new StringBuilder( packageName.length + simpleTypeName.length + 1); if (packageName.length != 0) { fqName.append(packageName); fqName.append('.'); } for (char[] enclosingType : enclosingTypeNames) { /* * the JDT index sometimes yields enclosingTypeNames in the form * char[][] { { Outer$Middle } } * rather than * char[][] { { Outer }, { Middle } } * thus we create the fqName as the binary name and post process the proposal later on */ fqName.append(enclosingType); fqName.append('$'); } fqName.append(simpleTypeName); String fqNameAsString = fqName.toString(); createTypeProposal(fqNameAsString, modifiers, enclosingTypeNames.length > 0, proposalFactory, myContext, scopeAware, jvmTypeProvider, valueConverter); } } }, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, new NullProgressMonitor() { @Override public boolean isCanceled() { return !acceptor.canAcceptMoreProposals(); } }); if (acceptor.canAcceptMoreProposals()) { Iterable<IEObjectDescription> allDirtyTypes = dirtyStateManager .getExportedObjectsByType(TypesPackage.Literals.JVM_TYPE); for (IEObjectDescription description : allDirtyTypes) { QualifiedName qualifiedName = description.getQualifiedName(); if (filter.accept(Flags.AccPublic, qualifiedName.skipLast(1).toString().toCharArray(), qualifiedName.getLastSegment().toCharArray(), new char[0][0], description.getEObjectURI().toPlatformString(true))) { String fqName = description.getQualifiedName().toString(); createTypeProposal(fqName, Flags.AccPublic, false, proposalFactory, myContext, scopeAware, jvmTypeProvider, valueConverter); } } } }
From source file:org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.java
protected void searchAndCreateProposals(IJavaSearchScope scope, final ICompletionProposalFactory proposalFactory, ContentAssistContext context, EReference typeReference, final Filter filter, final IValueConverter<String> valueConverter, final ICompletionProposalAcceptor acceptor) throws JavaModelException { String prefix = context.getPrefix(); List<String> split = Strings.split(prefix, '.'); char[] typeName = null; char[] packageName = null; if (prefix.length() > 0 && !split.isEmpty()) { CharMatcher dotMatcher = CharMatcher.is('.'); if (Character.isUpperCase(split.get(split.size() - 1).charAt(0))) { typeName = split.get(split.size() - 1).toCharArray(); if (split.size() > 1) packageName = ("*" + dotMatcher .replaceFrom(prefix.substring(0, prefix.length() - (typeName.length + 1)), "*.") + "*") .toCharArray(); } else {//w w w . j a v a 2s . c o m if (prefix.endsWith(".")) prefix = prefix.substring(0, prefix.length() - 1); packageName = ("*" + dotMatcher.replaceFrom(prefix, "*.") + "*").toCharArray(); } } IScope typeScope = null; if (context.getCurrentModel() != null) { typeScope = scopeProvider.getScope(context.getCurrentModel(), typeReference); } final IReplacementTextApplier textApplier = createTextApplier(context, typeScope, qualifiedNameConverter, valueConverter); final ICompletionProposalAcceptor scopeAware = textApplier != null ? new ICompletionProposalAcceptor.Delegate(acceptor) { @Override public void accept(ICompletionProposal proposal) { if (proposal instanceof ConfigurableCompletionProposal) { ((ConfigurableCompletionProposal) proposal).setTextApplier(textApplier); } super.accept(proposal); } } : acceptor; Builder contextBuilder = context.copy(); final PrefixMatcher original = context.getMatcher(); contextBuilder.setMatcher(new PrefixMatcher() { @Override public boolean isCandidateMatchingPrefix(String name, String prefix) { if (original.isCandidateMatchingPrefix(name, prefix)) return true; String nameWithoutDollars = name.replace('$', '.'); String prefixWithoutDollars = prefix.replace('$', '.'); final boolean nameOrPrefixHasDollars = (nameWithoutDollars != name) || (prefixWithoutDollars != prefix); if (nameOrPrefixHasDollars && original.isCandidateMatchingPrefix(nameWithoutDollars, prefixWithoutDollars)) return true; String sub = nameWithoutDollars; int delimiter = sub.indexOf('.'); while (delimiter != -1) { sub = sub.substring(delimiter + 1); delimiter = sub.indexOf('.'); if (delimiter == -1 || prefixWithoutDollars.length() > 0 && Character.isLowerCase(prefixWithoutDollars.charAt(0))) { if (original.isCandidateMatchingPrefix(sub, prefixWithoutDollars)) return true; } } return false; } }); final ContentAssistContext myContext = contextBuilder.toContext(); final IJvmTypeProvider jvmTypeProvider = jdtTypeProviderFactory .findOrCreateTypeProvider(context.getResource().getResourceSet()); final Set<String> filteredTypeNames = getDirtyTypeNames(); final Filter dirtyTypenameFilter = new ITypesProposalProvider.Filter() { @Override public boolean accept(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path) { if (path == null || path.endsWith(".class") || path.endsWith(".java")) { // Java index match String identifier = getIdentifier(packageName, simpleTypeName, enclosingTypeNames); if (filteredTypeNames.contains(identifier)) { return false; } } return true; } @Override public int getSearchFor() { return filter.getSearchFor(); } }; BasicSearchEngine searchEngine = new BasicSearchEngine(); searchEngine.searchAllTypeNames(packageName, SearchPattern.R_PATTERN_MATCH, typeName, SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CAMELCASE_MATCH, filter.getSearchFor(), scope, new IRestrictedAccessTypeRequestor() { @Override public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path, AccessRestriction access) { if (dirtyTypenameFilter.accept(modifiers, packageName, simpleTypeName, enclosingTypeNames, path) && filter.accept(modifiers, packageName, simpleTypeName, enclosingTypeNames, path) && (!checkAccessRestriction() || (access == null || access.getProblemId() != IProblem.ForbiddenReference && !access.ignoreIfBetter()))) { StringBuilder fqName = new StringBuilder( packageName.length + simpleTypeName.length + 1); if (packageName.length != 0) { fqName.append(packageName); fqName.append('.'); } for (char[] enclosingType : enclosingTypeNames) { /* * the JDT index sometimes yields enclosingTypeNames in the form * char[][] { { Outer$Middle } } * rather than * char[][] { { Outer }, { Middle } } * thus we create the fqName as the binary name and post process the proposal later on */ fqName.append(enclosingType); fqName.append('$'); } fqName.append(simpleTypeName); String fqNameAsString = fqName.toString(); createTypeProposal(fqNameAsString, modifiers, enclosingTypeNames.length > 0, proposalFactory, myContext, scopeAware, jvmTypeProvider, valueConverter); } } }, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, new NullProgressMonitor() { @Override public boolean isCanceled() { return !acceptor.canAcceptMoreProposals(); } }); if (acceptor.canAcceptMoreProposals()) { Iterable<IEObjectDescription> allDirtyTypes = dirtyStateManager .getExportedObjectsByType(TypesPackage.Literals.JVM_TYPE); for (IEObjectDescription description : allDirtyTypes) { QualifiedName qualifiedName = description.getQualifiedName(); if (filter.accept(Flags.AccPublic, qualifiedName.skipLast(1).toString().toCharArray(), qualifiedName.getLastSegment().toCharArray(), new char[0][0], description.getEObjectURI().toPlatformString(true))) { String fqName = description.getQualifiedName().toString(); createTypeProposal(fqName, Flags.AccPublic, fqName.indexOf('$') > 0, proposalFactory, myContext, scopeAware, jvmTypeProvider, valueConverter); } } } }