mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
Fix warnings.
This commit is contained in:
parent
d29b51bbd4
commit
29abe81d9e
68 changed files with 581 additions and 601 deletions
|
@ -86,8 +86,8 @@ public abstract class AbstractCScanner extends BufferedRuleBasedScanner implemen
|
|||
if(fTokenStore.affectsBehavior(event)) {
|
||||
fTokenStore.adaptToPreferenceChange(event);
|
||||
}
|
||||
for(Iterator i= pcps.iterator(); i.hasNext(); ) {
|
||||
((IPropertyChangeParticipant)i.next()).adaptToPreferenceChange(event);
|
||||
for (IPropertyChangeParticipant propertyChangeParticipant : pcps) {
|
||||
propertyChangeParticipant.adaptToPreferenceChange(event);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,8 +96,8 @@ public abstract class AbstractCScanner extends BufferedRuleBasedScanner implemen
|
|||
*/
|
||||
public boolean affectsBehavior(PropertyChangeEvent event) {
|
||||
boolean result= fTokenStore.affectsBehavior(event);
|
||||
for(Iterator i= pcps.iterator(); !result && i.hasNext(); ) {
|
||||
result |= ((IPropertyChangeParticipant)i.next()).affectsBehavior(event);
|
||||
for(Iterator<IPropertyChangeParticipant> i= pcps.iterator(); !result && i.hasNext(); ) {
|
||||
result |= (i.next()).affectsBehavior(event);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -96,8 +96,8 @@ public abstract class AbstractInformationControl extends PopupDialog implements
|
|||
private boolean hasUnfilteredChild(TreeViewer viewer, Object element) {
|
||||
if (element instanceof IParent) {
|
||||
Object[] children= ((ITreeContentProvider) viewer.getContentProvider()).getChildren(element);
|
||||
for (int i= 0; i < children.length; i++)
|
||||
if (select(viewer, element, children[i]))
|
||||
for (Object element2 : children)
|
||||
if (select(viewer, element, element2))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -413,21 +413,19 @@ public abstract class AbstractInformationControl extends PopupDialog implements
|
|||
|
||||
private ICElement findElement(TreeItem[] items) {
|
||||
ILabelProvider labelProvider= (ILabelProvider)fTreeViewer.getLabelProvider();
|
||||
for (int i= 0; i < items.length; i++) {
|
||||
Object item= items[i].getData();
|
||||
for (TreeItem item2 : items) {
|
||||
Object item= item2.getData();
|
||||
ICElement element= null;
|
||||
if (item instanceof ICElement) {
|
||||
element= (ICElement)item;
|
||||
if (fStringMatcher == null)
|
||||
return element;
|
||||
|
||||
if (element != null) {
|
||||
String label= labelProvider.getText(element);
|
||||
if (fStringMatcher.match(label))
|
||||
return element;
|
||||
}
|
||||
String label= labelProvider.getText(element);
|
||||
if (fStringMatcher.match(label))
|
||||
return element;
|
||||
}
|
||||
element= findElement(items[i].getItems());
|
||||
element= findElement(item2.getItems());
|
||||
if (element != null)
|
||||
return element;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
package org.eclipse.cdt.internal.ui.text;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.action.IMenuManager;
|
||||
|
@ -128,8 +127,7 @@ public abstract class AbstractSourceViewerInformationControl extends PopupDialog
|
|||
@Override
|
||||
protected Control createContents(Composite parent) {
|
||||
Control contents= super.createContents(parent);
|
||||
for (Iterator<Control> it= fColorExclusionControls.iterator(); it.hasNext(); ) {
|
||||
Control ctrl = it.next();
|
||||
for (Control ctrl : fColorExclusionControls) {
|
||||
ctrl.setBackground(fBackgroundColor);
|
||||
}
|
||||
return contents;
|
||||
|
@ -207,6 +205,7 @@ public abstract class AbstractSourceViewerInformationControl extends PopupDialog
|
|||
*/
|
||||
@Override
|
||||
protected List<Control> getBackgroundColorExclusions() {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Control> exclusions= super.getBackgroundColorExclusions();
|
||||
exclusions.addAll(fColorExclusionControls);
|
||||
return exclusions;
|
||||
|
@ -217,6 +216,7 @@ public abstract class AbstractSourceViewerInformationControl extends PopupDialog
|
|||
*/
|
||||
@Override
|
||||
protected List<Control> getForegroundColorExclusions() {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Control> exclusions= super.getForegroundColorExclusions();
|
||||
exclusions.addAll(fColorExclusionControls);
|
||||
return exclusions;
|
||||
|
|
|
@ -765,8 +765,7 @@ public class CAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy {
|
|||
private int computeVisualLength(char ch) {
|
||||
if (ch == '\t')
|
||||
return getVisualTabLengthPreference();
|
||||
else
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,11 +11,12 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.text;
|
||||
|
||||
import com.ibm.icu.text.BreakIterator;
|
||||
import java.text.CharacterIterator;
|
||||
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
|
||||
import com.ibm.icu.text.BreakIterator;
|
||||
|
||||
|
||||
/**
|
||||
* A C break iterator. It returns all breaks, including before and after
|
||||
|
@ -355,8 +356,7 @@ public class CBreakIterator extends BreakIterator {
|
|||
public boolean isBoundary(int offset) {
|
||||
if (offset == getText().getBeginIndex())
|
||||
return true;
|
||||
else
|
||||
return following(offset - 1) == offset;
|
||||
return following(offset - 1) == offset;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
package org.eclipse.cdt.internal.ui.text;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
|
@ -35,9 +36,9 @@ public class CFormattingStrategy extends ContextBasedFormattingStrategy {
|
|||
|
||||
|
||||
/** Documents to be formatted by this strategy */
|
||||
private final LinkedList fDocuments= new LinkedList();
|
||||
private final LinkedList<IDocument> fDocuments= new LinkedList<IDocument>();
|
||||
/** Partitions to be formatted by this strategy */
|
||||
private final LinkedList fPartitions= new LinkedList();
|
||||
private final LinkedList<TypedPosition> fPartitions= new LinkedList<TypedPosition>();
|
||||
|
||||
/**
|
||||
* Creates a new java formatting strategy.
|
||||
|
@ -53,17 +54,18 @@ public class CFormattingStrategy extends ContextBasedFormattingStrategy {
|
|||
public void format() {
|
||||
super.format();
|
||||
|
||||
final IDocument document= (IDocument)fDocuments.removeFirst();
|
||||
final TypedPosition partition= (TypedPosition)fPartitions.removeFirst();
|
||||
final IDocument document= fDocuments.removeFirst();
|
||||
final TypedPosition partition= fPartitions.removeFirst();
|
||||
|
||||
if (document != null && partition != null) {
|
||||
try {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final Map<String,String> preferences = getPreferences();
|
||||
final TextEdit edit = CodeFormatterUtil.format(
|
||||
CodeFormatter.K_TRANSLATION_UNIT, document.get(),
|
||||
partition.getOffset(), partition.getLength(), 0,
|
||||
TextUtilities.getDefaultLineDelimiter(document),
|
||||
getPreferences());
|
||||
preferences);
|
||||
|
||||
if (edit != null)
|
||||
edit.apply(document);
|
||||
|
@ -85,8 +87,14 @@ public class CFormattingStrategy extends ContextBasedFormattingStrategy {
|
|||
public void formatterStarts(final IFormattingContext context) {
|
||||
super.formatterStarts(context);
|
||||
|
||||
fPartitions.addLast(context.getProperty(FormattingContextProperties.CONTEXT_PARTITION));
|
||||
fDocuments.addLast(context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM));
|
||||
Object property = context.getProperty(FormattingContextProperties.CONTEXT_PARTITION);
|
||||
if (property instanceof TypedPosition) {
|
||||
fPartitions.addLast((TypedPosition) property);
|
||||
}
|
||||
property= context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM);
|
||||
if (property instanceof IDocument) {
|
||||
fDocuments.addLast((IDocument) property);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -38,7 +38,7 @@ public class CHelpProviderDescriptor {
|
|||
final private static String ELEMENT_PROVIDER = "provider"; //$NON-NLS-1$
|
||||
final private static String ATTRIBUTE_ID = "id"; //$NON-NLS-1$
|
||||
|
||||
private static Map fProvidersMap = null;
|
||||
private static Map<String, ICHelpProvider> fProvidersMap = null;
|
||||
|
||||
private ICHelpProvider fHelpProvider = null;
|
||||
private IConfigurationElement fConfigElement;
|
||||
|
@ -79,9 +79,9 @@ public class CHelpProviderDescriptor {
|
|||
return null;
|
||||
}
|
||||
|
||||
private static Map getProvidersMap(){
|
||||
private static Map<String, ICHelpProvider> getProvidersMap(){
|
||||
if(fProvidersMap == null){
|
||||
fProvidersMap = new HashMap();
|
||||
fProvidersMap = new HashMap<String, ICHelpProvider>();
|
||||
}
|
||||
return fProvidersMap;
|
||||
}
|
||||
|
@ -91,9 +91,9 @@ public class CHelpProviderDescriptor {
|
|||
if(id == null || "".equals(id)) //$NON-NLS-1$
|
||||
return null;
|
||||
|
||||
Map providersMap = getProvidersMap();
|
||||
Map<String, ICHelpProvider> providersMap = getProvidersMap();
|
||||
try{
|
||||
ICHelpProvider provider = (ICHelpProvider)providersMap.get(id);
|
||||
ICHelpProvider provider = providersMap.get(id);
|
||||
if(provider == null){
|
||||
provider = (ICHelpProvider)element.createExecutableExtension(CLASS);
|
||||
providersMap.put(id,provider);
|
||||
|
@ -133,13 +133,13 @@ public class CHelpProviderDescriptor {
|
|||
if (provider != null && fProject != null) {
|
||||
ICHelpBook books[] = provider.getCHelpBooks();
|
||||
if(books != null){
|
||||
List descriptorList = new ArrayList();
|
||||
List<CHelpBookDescriptor> descriptorList = new ArrayList<CHelpBookDescriptor>();
|
||||
for(int i = 0; i < books.length; i++){
|
||||
CHelpBookDescriptor des = new CHelpBookDescriptor(books[i],projectElement);
|
||||
if(des.matches(fProject))
|
||||
descriptorList.add(des);
|
||||
}
|
||||
fHelpBookDescriptors = (CHelpBookDescriptor[])descriptorList.toArray(new CHelpBookDescriptor[descriptorList.size()]);
|
||||
fHelpBookDescriptors = descriptorList.toArray(new CHelpBookDescriptor[descriptorList.size()]);
|
||||
}
|
||||
}
|
||||
if(fHelpBookDescriptors == null)
|
||||
|
@ -156,12 +156,12 @@ public class CHelpProviderDescriptor {
|
|||
CHelpBookDescriptor bookDescriptors[] = getCHelpBookDescriptors();
|
||||
if(bookDescriptors.length == 0)
|
||||
return null;
|
||||
List bookList = new ArrayList();
|
||||
List<ICHelpBook> bookList = new ArrayList<ICHelpBook>();
|
||||
for(int i = 0; i < bookDescriptors.length; i++){
|
||||
if(bookDescriptors[i].isEnabled() && bookDescriptors[i].matches(context))
|
||||
bookList.add(bookDescriptors[i].getCHelpBook());
|
||||
}
|
||||
return (ICHelpBook[])bookList.toArray(new ICHelpBook[bookList.size()]);
|
||||
return bookList.toArray(new ICHelpBook[bookList.size()]);
|
||||
}
|
||||
|
||||
public void serialize(Document doc, Element parentElement){
|
||||
|
|
|
@ -93,13 +93,13 @@ public class CHelpSettings {
|
|||
if(providerDescriptors.length == 0)
|
||||
return new CHelpBookDescriptor[0];
|
||||
|
||||
List bookList = new ArrayList();
|
||||
List<CHelpBookDescriptor> bookList = new ArrayList<CHelpBookDescriptor>();
|
||||
for(int i = 0; i < providerDescriptors.length; i++){
|
||||
CHelpBookDescriptor bookDescriptors[] = providerDescriptors[i].getCHelpBookDescriptors();
|
||||
if(bookDescriptors.length != 0)
|
||||
bookList.addAll(Arrays.asList(bookDescriptors));
|
||||
}
|
||||
return (CHelpBookDescriptor[])bookList.toArray(new CHelpBookDescriptor[bookList.size()]);
|
||||
return bookList.toArray(new CHelpBookDescriptor[bookList.size()]);
|
||||
}
|
||||
|
||||
private static IConfigurationElement[] getConfigElements(){
|
||||
|
@ -129,7 +129,7 @@ public class CHelpSettings {
|
|||
|
||||
public IFunctionSummary[] getMatchingFunctions(ICHelpInvocationContext context, String frag){
|
||||
CHelpProviderDescriptor providerDescriptors[] = getCHelpProviderDescriptors();
|
||||
List sumaryList = new ArrayList();
|
||||
List<IFunctionSummary> sumaryList = new ArrayList<IFunctionSummary>();
|
||||
for(int i = 0; i < providerDescriptors.length; i++){
|
||||
ICHelpBook books[] = providerDescriptors[i].getEnabledMatchedCHelpBooks(context);
|
||||
if(books != null && books.length != 0){
|
||||
|
@ -144,12 +144,12 @@ public class CHelpSettings {
|
|||
if(sumaryList.size() == 0)
|
||||
return null;
|
||||
|
||||
return (IFunctionSummary[])sumaryList.toArray(new IFunctionSummary[sumaryList.size()]);
|
||||
return sumaryList.toArray(new IFunctionSummary[sumaryList.size()]);
|
||||
}
|
||||
|
||||
public ICHelpResourceDescriptor[] getHelpResources(ICHelpInvocationContext context, String name){
|
||||
CHelpProviderDescriptor providerDescriptors[] = getCHelpProviderDescriptors();
|
||||
List resourcesList = new ArrayList();
|
||||
List<ICHelpResourceDescriptor> resourcesList = new ArrayList<ICHelpResourceDescriptor>();
|
||||
for(int i = 0; i < providerDescriptors.length; i++){
|
||||
ICHelpBook books[] = providerDescriptors[i].getEnabledMatchedCHelpBooks(context);
|
||||
if(books != null && books.length != 0){
|
||||
|
@ -164,7 +164,7 @@ public class CHelpSettings {
|
|||
if(resourcesList.size() == 0)
|
||||
return null;
|
||||
|
||||
return (ICHelpResourceDescriptor[])resourcesList.toArray(new ICHelpResourceDescriptor[resourcesList.size()]);
|
||||
return resourcesList.toArray(new ICHelpResourceDescriptor[resourcesList.size()]);
|
||||
}
|
||||
|
||||
public void serialize(Document doc, Element parentElement){
|
||||
|
|
|
@ -409,10 +409,9 @@ public final class CHeuristicScanner implements Symbols {
|
|||
return getToken(identOrKeyword);
|
||||
|
||||
|
||||
} else {
|
||||
// operators, number literals etc
|
||||
return TokenOTHER;
|
||||
}
|
||||
// operators, number literals etc
|
||||
return TokenOTHER;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -511,10 +510,9 @@ public final class CHeuristicScanner implements Symbols {
|
|||
return getToken(identOrKeyword);
|
||||
|
||||
|
||||
} else {
|
||||
// operators, number literals etc
|
||||
return TokenOTHER;
|
||||
}
|
||||
// operators, number literals etc
|
||||
return TokenOTHER;
|
||||
|
||||
}
|
||||
|
||||
|
@ -1084,6 +1082,7 @@ public final class CHeuristicScanner implements Symbols {
|
|||
* <code>bound</code> < <code>start</code>, or <code>UNBOUND</code>
|
||||
* @return <code>true</code> if the current position looks like a composite type definition
|
||||
*/
|
||||
@SuppressWarnings("fallthrough")
|
||||
public boolean looksLikeCompositeTypeDefinitionBackward(int start, int bound) {
|
||||
int token= previousToken(start - 1, bound);
|
||||
switch (token) {
|
||||
|
|
|
@ -217,7 +217,7 @@ public class CParameterListValidator implements IContextInformationValidator, IC
|
|||
private int[] computeCommaPositions(String code) {
|
||||
final int length= code.length();
|
||||
int pos= 0;
|
||||
List positions= new ArrayList();
|
||||
List<Integer> positions= new ArrayList<Integer>();
|
||||
positions.add(new Integer(-1));
|
||||
while (pos < length && pos != -1) {
|
||||
char ch= code.charAt(pos);
|
||||
|
@ -244,7 +244,7 @@ public class CParameterListValidator implements IContextInformationValidator, IC
|
|||
|
||||
int[] fields= new int[positions.size()];
|
||||
for (int i= 0; i < fields.length; i++)
|
||||
fields[i]= ((Integer) positions.get(i)).intValue();
|
||||
fields[i]= positions.get(i).intValue();
|
||||
return fields;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.eclipse.core.resources.IFile;
|
|||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.content.IContentType;
|
||||
|
@ -642,10 +643,10 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
|
|||
CEditorTextHoverDescriptor[] hoverDescs= CUIPlugin.getDefault().getCEditorTextHoverDescriptors();
|
||||
int stateMasks[]= new int[hoverDescs.length];
|
||||
int stateMasksLength= 0;
|
||||
for (int i= 0; i < hoverDescs.length; i++) {
|
||||
if (hoverDescs[i].isEnabled()) {
|
||||
for (CEditorTextHoverDescriptor hoverDesc : hoverDescs) {
|
||||
if (hoverDesc.isEnabled()) {
|
||||
int j= 0;
|
||||
int stateMask= hoverDescs[i].getStateMask();
|
||||
int stateMask= hoverDesc.getStateMask();
|
||||
while (j < stateMasksLength) {
|
||||
if (stateMasks[j] == stateMask)
|
||||
break;
|
||||
|
@ -784,8 +785,8 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
|
|||
// Register information provider
|
||||
IInformationProvider provider= new CInformationProvider(getEditor());
|
||||
String[] contentTypes= getConfiguredContentTypes(sourceViewer);
|
||||
for (int i= 0; i < contentTypes.length; i++)
|
||||
presenter.setInformationProvider(provider, contentTypes[i]);
|
||||
for (String contentType : contentTypes)
|
||||
presenter.setInformationProvider(provider, contentType);
|
||||
|
||||
presenter.setSizeConstraints(60, 10, true, true);
|
||||
return presenter;
|
||||
|
@ -975,8 +976,9 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
|
|||
* @see org.eclipse.jface.text.source.SourceViewerConfiguration#getHyperlinkDetectorTargets(org.eclipse.jface.text.source.ISourceViewer)
|
||||
*/
|
||||
@Override
|
||||
protected Map getHyperlinkDetectorTargets(ISourceViewer sourceViewer) {
|
||||
Map targets= super.getHyperlinkDetectorTargets(sourceViewer);
|
||||
protected Map<String, IAdaptable> getHyperlinkDetectorTargets(ISourceViewer sourceViewer) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, IAdaptable> targets= super.getHyperlinkDetectorTargets(sourceViewer);
|
||||
targets.put("org.eclipse.cdt.ui.cCode", fTextEditor); //$NON-NLS-1$
|
||||
return targets;
|
||||
}
|
||||
|
|
|
@ -13,14 +13,12 @@
|
|||
package org.eclipse.cdt.internal.ui.text;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy;
|
||||
import org.eclipse.jface.text.DocumentCommand;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.ITypedRegion;
|
||||
import org.eclipse.jface.text.TextUtilities;
|
||||
|
||||
import org.eclipse.ui.IEditorPart;
|
||||
import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.part.MultiPageEditorPart;
|
||||
|
@ -60,11 +58,10 @@ public class CStringAutoIndentStrategy extends DefaultIndentLineAutoEditStrategy
|
|||
buffer.append(indentation);
|
||||
buffer.append("\""); //$NON-NLS-1$
|
||||
continue;
|
||||
} else {
|
||||
buffer.append("\"" + delimiter); //$NON-NLS-1$
|
||||
buffer.append(indentation);
|
||||
buffer.append("\""); //$NON-NLS-1$
|
||||
}
|
||||
buffer.append("\"" + delimiter); //$NON-NLS-1$
|
||||
buffer.append(indentation);
|
||||
buffer.append("\""); //$NON-NLS-1$
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -278,8 +278,9 @@ public class CWordFinder {
|
|||
* @return true if curled brace found.
|
||||
*/
|
||||
public static boolean hasCBraces (String s) {
|
||||
if (s.indexOf(CBRACE_L) > -1 || s.indexOf(CBRACE_R) > -1) return true;
|
||||
else return false;
|
||||
if (s.indexOf(CBRACE_L) > -1 || s.indexOf(CBRACE_R) > -1)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -97,8 +97,7 @@ public class DocumentCharacterIterator implements CharacterIterator, CharSequenc
|
|||
public char last() {
|
||||
if (fFirst == fLast)
|
||||
return setIndex(getEndIndex());
|
||||
else
|
||||
return setIndex(getEndIndex() - 1);
|
||||
return setIndex(getEndIndex() - 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -127,9 +126,8 @@ public class DocumentCharacterIterator implements CharacterIterator, CharSequenc
|
|||
public char previous() {
|
||||
if (fIndex > getBeginIndex()) {
|
||||
return setIndex(fIndex - 1);
|
||||
} else {
|
||||
return DONE;
|
||||
}
|
||||
return DONE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -204,8 +202,7 @@ public class DocumentCharacterIterator implements CharacterIterator, CharSequenc
|
|||
// ignore and return DONE
|
||||
return DONE;
|
||||
}
|
||||
else
|
||||
throw new IndexOutOfBoundsException();
|
||||
throw new IndexOutOfBoundsException();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -31,12 +31,12 @@ import org.eclipse.swt.custom.StyleRange;
|
|||
* the tags or cut them out.
|
||||
*/
|
||||
public class HTML2TextReader extends SubstitutionTextReader {
|
||||
private static final Map fgEntityLookup;
|
||||
private static final Set fgTags;
|
||||
private static final Map<String, String> fgEntityLookup;
|
||||
private static final Set<String> fgTags;
|
||||
|
||||
static {
|
||||
|
||||
fgTags= new HashSet();
|
||||
fgTags= new HashSet<String>();
|
||||
fgTags.add("b"); //$NON-NLS-1$
|
||||
fgTags.add("br"); //$NON-NLS-1$
|
||||
fgTags.add("h5"); //$NON-NLS-1$
|
||||
|
@ -47,7 +47,7 @@ public class HTML2TextReader extends SubstitutionTextReader {
|
|||
fgTags.add("li"); //$NON-NLS-1$
|
||||
fgTags.add("ul"); //$NON-NLS-1$
|
||||
|
||||
fgEntityLookup= new HashMap(7);
|
||||
fgEntityLookup= new HashMap<String, String>(7);
|
||||
fgEntityLookup.put("lt", "<"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
fgEntityLookup.put("gt", ">"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
fgEntityLookup.put("nbsp", " "); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
@ -230,7 +230,7 @@ public class HTML2TextReader extends SubstitutionTextReader {
|
|||
} catch (NumberFormatException e) {
|
||||
}
|
||||
} else {
|
||||
String str= (String) fgEntityLookup.get(symbol);
|
||||
String str= fgEntityLookup.get(symbol);
|
||||
if (str != null) {
|
||||
return str;
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ public class HTMLAnnotationHover extends DefaultAnnotationHover {
|
|||
/*
|
||||
* Formats several message as HTML text.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
protected String formatMultipleMessages(List messages) {
|
||||
StringBuffer buffer= new StringBuffer();
|
||||
|
@ -47,9 +48,9 @@ public class HTMLAnnotationHover extends DefaultAnnotationHover {
|
|||
HTMLPrinter.addParagraph(buffer, HTMLPrinter.convertToHTMLContent(CUIMessages.getString("CAnnotationHover.multipleMarkers"))); //$NON-NLS-1$
|
||||
|
||||
HTMLPrinter.startBulletList(buffer);
|
||||
Iterator e= messages.iterator();
|
||||
Iterator<String> e= messages.iterator();
|
||||
while (e.hasNext())
|
||||
HTMLPrinter.addBullet(buffer, HTMLPrinter.convertToHTMLContent((String) e.next()));
|
||||
HTMLPrinter.addBullet(buffer, HTMLPrinter.convertToHTMLContent(e.next()));
|
||||
HTMLPrinter.endBulletList(buffer);
|
||||
|
||||
HTMLPrinter.addPageEpilog(buffer);
|
||||
|
|
|
@ -14,16 +14,16 @@ package org.eclipse.cdt.internal.ui.text;
|
|||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.eclipse.jface.text.DefaultInformationControl;
|
||||
import org.eclipse.jface.text.Region;
|
||||
import org.eclipse.jface.text.TextPresentation;
|
||||
import org.eclipse.swt.custom.StyleRange;
|
||||
import org.eclipse.swt.graphics.GC;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.jface.text.DefaultInformationControl;
|
||||
import org.eclipse.jface.text.Region;
|
||||
import org.eclipse.jface.text.TextPresentation;
|
||||
|
||||
|
||||
public class HTMLTextPresenter implements DefaultInformationControl.IInformationPresenter {
|
||||
|
@ -52,10 +52,11 @@ public class HTMLTextPresenter implements DefaultInformationControl.IInformation
|
|||
int yoursEnd= offset + insertLength -1;
|
||||
yoursEnd= Math.max(yoursStart, yoursEnd);
|
||||
|
||||
Iterator e= presentation.getAllStyleRangeIterator();
|
||||
@SuppressWarnings("unchecked")
|
||||
Iterator<StyleRange> e= presentation.getAllStyleRangeIterator();
|
||||
while (e.hasNext()) {
|
||||
|
||||
StyleRange range= (StyleRange) e.next();
|
||||
StyleRange range= e.next();
|
||||
|
||||
int myStart= range.start;
|
||||
int myEnd= range.start + range.length -1;
|
||||
|
|
|
@ -87,8 +87,7 @@ public class SequenceCharacterIterator implements CharacterIterator {
|
|||
public char last() {
|
||||
if (fFirst == fLast)
|
||||
return setIndex(getEndIndex());
|
||||
else
|
||||
return setIndex(getEndIndex() - 1);
|
||||
return setIndex(getEndIndex() - 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -97,8 +96,7 @@ public class SequenceCharacterIterator implements CharacterIterator {
|
|||
public char current() {
|
||||
if (fIndex >= fFirst && fIndex < fLast)
|
||||
return fSequence.charAt(fIndex);
|
||||
else
|
||||
return DONE;
|
||||
return DONE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -114,9 +112,8 @@ public class SequenceCharacterIterator implements CharacterIterator {
|
|||
public char previous() {
|
||||
if (fIndex > getBeginIndex()) {
|
||||
return setIndex(fIndex - 1);
|
||||
} else {
|
||||
return DONE;
|
||||
}
|
||||
return DONE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
package org.eclipse.cdt.internal.ui.text;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
||||
import org.eclipse.jface.text.IAutoEditStrategy;
|
||||
import org.eclipse.jface.text.IInformationControlCreator;
|
||||
import org.eclipse.jface.text.ITextHover;
|
||||
|
@ -22,7 +21,6 @@ import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
|
|||
import org.eclipse.jface.text.information.IInformationPresenter;
|
||||
import org.eclipse.jface.text.source.IAnnotationHover;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
|
||||
import org.eclipse.ui.texteditor.ITextEditor;
|
||||
|
||||
|
||||
|
@ -108,8 +106,7 @@ public class SimpleCSourceViewerConfiguration extends CSourceViewerConfiguration
|
|||
public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
|
||||
if (fConfigureFormatter)
|
||||
return super.getContentFormatter(sourceViewer);
|
||||
else
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -13,10 +13,6 @@ package org.eclipse.cdt.internal.ui.text.c.hover;
|
|||
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CAnnotationIterator;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.text.HTMLPrinter;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
|
@ -29,6 +25,12 @@ import org.eclipse.ui.texteditor.AnnotationPreference;
|
|||
import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
|
||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CAnnotationIterator;
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
import org.eclipse.cdt.internal.ui.text.HTMLPrinter;
|
||||
|
||||
/**
|
||||
* AbstractAnnotationHover
|
||||
* Abstract super class for annotation hovers.
|
||||
|
@ -68,11 +70,11 @@ public class AbstractAnnotationHover extends AbstractCEditorTextHover {
|
|||
IAnnotationModel model= provider.getAnnotationModel(getEditor().getEditorInput());
|
||||
|
||||
if (model != null) {
|
||||
Iterator e= new CAnnotationIterator(model, true, fAllAnnotations);
|
||||
Iterator<Annotation> e= new CAnnotationIterator(model, true, fAllAnnotations);
|
||||
int layer= -1;
|
||||
String message= null;
|
||||
while (e.hasNext()) {
|
||||
Annotation a= (Annotation) e.next();
|
||||
Annotation a= e.next();
|
||||
|
||||
AnnotationPreference preference= getAnnotationPreference(a);
|
||||
if (preference == null || !(preference.getTextPreferenceKey() != null && fStore.getBoolean(preference.getTextPreferenceKey()) || (preference.getHighlightPreferenceKey() != null && fStore.getBoolean(preference.getHighlightPreferenceKey()))))
|
||||
|
|
|
@ -33,8 +33,8 @@ import org.eclipse.ui.IEditorPart;
|
|||
*/
|
||||
public class BestMatchHover extends AbstractCEditorTextHover {
|
||||
|
||||
private List fTextHoverSpecifications;
|
||||
private List fInstantiatedTextHovers;
|
||||
private List<CEditorTextHoverDescriptor> fTextHoverSpecifications;
|
||||
private List<ITextHover> fInstantiatedTextHovers;
|
||||
private ITextHover fBestHover;
|
||||
|
||||
public BestMatchHover() {
|
||||
|
@ -52,8 +52,8 @@ public class BestMatchHover extends AbstractCEditorTextHover {
|
|||
private void installTextHovers() {
|
||||
|
||||
// initialize lists - indicates that the initialization happened
|
||||
fTextHoverSpecifications= new ArrayList(2);
|
||||
fInstantiatedTextHovers= new ArrayList(2);
|
||||
fTextHoverSpecifications= new ArrayList<CEditorTextHoverDescriptor>(2);
|
||||
fInstantiatedTextHovers= new ArrayList<ITextHover>(2);
|
||||
|
||||
// populate list
|
||||
CEditorTextHoverDescriptor[] hoverDescs= CUIPlugin.getDefault().getCEditorTextHoverDescriptors();
|
||||
|
@ -68,8 +68,8 @@ public class BestMatchHover extends AbstractCEditorTextHover {
|
|||
if (fTextHoverSpecifications.size() == 0)
|
||||
return;
|
||||
|
||||
for (Iterator iterator= new ArrayList(fTextHoverSpecifications).iterator(); iterator.hasNext(); ) {
|
||||
CEditorTextHoverDescriptor spec= (CEditorTextHoverDescriptor) iterator.next();
|
||||
for (Iterator<CEditorTextHoverDescriptor> iterator= new ArrayList<CEditorTextHoverDescriptor>(fTextHoverSpecifications).iterator(); iterator.hasNext(); ) {
|
||||
CEditorTextHoverDescriptor spec= iterator.next();
|
||||
|
||||
ICEditorTextHover hover= spec.createTextHover();
|
||||
if (hover != null) {
|
||||
|
@ -97,8 +97,8 @@ public class BestMatchHover extends AbstractCEditorTextHover {
|
|||
if (fInstantiatedTextHovers == null)
|
||||
return null;
|
||||
|
||||
for (Iterator iterator= fInstantiatedTextHovers.iterator(); iterator.hasNext(); ) {
|
||||
ITextHover hover= (ITextHover)iterator.next();
|
||||
for (Iterator<ITextHover> iterator= fInstantiatedTextHovers.iterator(); iterator.hasNext(); ) {
|
||||
ITextHover hover= iterator.next();
|
||||
|
||||
String s= hover.getHoverInfo(textViewer, hoverRegion);
|
||||
if (s != null && s.trim().length() > 0) {
|
||||
|
@ -122,8 +122,8 @@ public class BestMatchHover extends AbstractCEditorTextHover {
|
|||
if (fInstantiatedTextHovers == null)
|
||||
return null;
|
||||
|
||||
for (Iterator iterator= fInstantiatedTextHovers.iterator(); iterator.hasNext(); ) {
|
||||
ITextHover hover= (ITextHover)iterator.next();
|
||||
for (Iterator<ITextHover> iterator= fInstantiatedTextHovers.iterator(); iterator.hasNext(); ) {
|
||||
ITextHover hover= iterator.next();
|
||||
|
||||
if (hover instanceof ITextHoverExtension2) {
|
||||
Object info= ((ITextHoverExtension2) hover).getHoverInfo2(textViewer, hoverRegion);
|
||||
|
|
|
@ -119,14 +119,16 @@ public class CDocHover extends AbstractCEditorTextHover {
|
|||
*/
|
||||
@Override
|
||||
public IRegion getHoverRegion(ITextViewer viewer, int offset) {
|
||||
Point selectedRange = viewer.getSelectedRange();
|
||||
if (selectedRange.x >= 0 &&
|
||||
selectedRange.y > 0 &&
|
||||
offset >= selectedRange.x &&
|
||||
offset <= selectedRange.x + selectedRange.y)
|
||||
return new Region( selectedRange.x, selectedRange.y );
|
||||
if (viewer != null)
|
||||
if (viewer != null) {
|
||||
Point selectedRange = viewer.getSelectedRange();
|
||||
if (selectedRange.x >= 0 &&
|
||||
selectedRange.y > 0 &&
|
||||
offset >= selectedRange.x &&
|
||||
offset <= selectedRange.x + selectedRange.y)
|
||||
return new Region( selectedRange.x, selectedRange.y );
|
||||
|
||||
return CWordFinder.findWord(viewer.getDocument(), offset);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,24 +18,26 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.util.EditorUtility;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.c.hover.ICEditorTextHover;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.core.runtime.IExtensionRegistry;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.osgi.framework.Bundle;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.c.hover.ICEditorTextHover;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.util.EditorUtility;
|
||||
|
||||
/**
|
||||
* CEditorTexHoverDescriptor
|
||||
*/
|
||||
public class CEditorTextHoverDescriptor implements Comparable {
|
||||
public class CEditorTextHoverDescriptor implements Comparable<CEditorTextHoverDescriptor> {
|
||||
|
||||
private static final String C_EDITOR_TEXT_HOVER_EXTENSION_POINT= "org.eclipse.cdt.ui.textHovers"; //$NON-NLS-1$
|
||||
private static final String HOVER_TAG= "hover"; //$NON-NLS-1$
|
||||
|
@ -182,28 +184,27 @@ public class CEditorTextHoverDescriptor implements Comparable {
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public int compareTo(Object o) {
|
||||
return Collator.getInstance().compare(getLabel(), ((CEditorTextHoverDescriptor)o).getLabel());
|
||||
public int compareTo(CEditorTextHoverDescriptor o) {
|
||||
return Collator.getInstance().compare(getLabel(), o.getLabel());
|
||||
}
|
||||
|
||||
private static CEditorTextHoverDescriptor[] createDescriptors(IConfigurationElement[] elements) {
|
||||
List result= new ArrayList(elements.length);
|
||||
for (int i= 0; i < elements.length; i++) {
|
||||
IConfigurationElement element= elements[i];
|
||||
List<CEditorTextHoverDescriptor> result= new ArrayList<CEditorTextHoverDescriptor>(elements.length);
|
||||
for (IConfigurationElement element : elements) {
|
||||
if (HOVER_TAG.equals(element.getName())) {
|
||||
CEditorTextHoverDescriptor desc= new CEditorTextHoverDescriptor(element);
|
||||
result.add(desc);
|
||||
}
|
||||
}
|
||||
Collections.sort(result);
|
||||
return (CEditorTextHoverDescriptor[])result.toArray(new CEditorTextHoverDescriptor[result.size()]);
|
||||
return result.toArray(new CEditorTextHoverDescriptor[result.size()]);
|
||||
}
|
||||
|
||||
private static void initializeFromPreferences(CEditorTextHoverDescriptor[] hovers) {
|
||||
String compiledTextHoverModifiers= CUIPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS);
|
||||
|
||||
StringTokenizer tokenizer= new StringTokenizer(compiledTextHoverModifiers, VALUE_SEPARATOR);
|
||||
HashMap idToModifier= new HashMap(tokenizer.countTokens() / 2);
|
||||
HashMap<String, String> idToModifier= new HashMap<String, String>(tokenizer.countTokens() / 2);
|
||||
|
||||
while (tokenizer.hasMoreTokens()) {
|
||||
String id= tokenizer.nextToken();
|
||||
|
@ -214,7 +215,7 @@ public class CEditorTextHoverDescriptor implements Comparable {
|
|||
String compiledTextHoverModifierMasks= CUIPlugin.getDefault().getPreferenceStore().getString(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS);
|
||||
|
||||
tokenizer= new StringTokenizer(compiledTextHoverModifierMasks, VALUE_SEPARATOR);
|
||||
HashMap idToModifierMask= new HashMap(tokenizer.countTokens() / 2);
|
||||
HashMap<String, String> idToModifierMask= new HashMap<String, String>(tokenizer.countTokens() / 2);
|
||||
|
||||
while (tokenizer.hasMoreTokens()) {
|
||||
String id= tokenizer.nextToken();
|
||||
|
@ -223,7 +224,7 @@ public class CEditorTextHoverDescriptor implements Comparable {
|
|||
}
|
||||
|
||||
for (int i= 0; i < hovers.length; i++) {
|
||||
String modifierString= (String)idToModifier.get(hovers[i].getId());
|
||||
String modifierString= idToModifier.get(hovers[i].getId());
|
||||
boolean enabled= true;
|
||||
if (modifierString == null)
|
||||
modifierString= DISABLED_TAG;
|
||||
|
@ -242,7 +243,7 @@ public class CEditorTextHoverDescriptor implements Comparable {
|
|||
if (hovers[i].fStateMask == -1) {
|
||||
// Fallback: use stored modifier masks
|
||||
try {
|
||||
hovers[i].fStateMask= Integer.parseInt((String)idToModifierMask.get(hovers[i].getId()));
|
||||
hovers[i].fStateMask= Integer.parseInt(idToModifierMask.get(hovers[i].getId()));
|
||||
} catch (NumberFormatException ex) {
|
||||
hovers[i].fStateMask= -1;
|
||||
}
|
||||
|
|
|
@ -188,9 +188,9 @@ public class CSourceHover extends AbstractCEditorTextHover {
|
|||
IASTPreprocessorMacroDefinition[] macroDefs;
|
||||
final IASTPreprocessorMacroDefinition[] localMacroDefs= ast.getMacroDefinitions();
|
||||
for (macroDefs= localMacroDefs; macroDefs != null; macroDefs= (macroDefs == localMacroDefs) ? ast.getBuiltinMacroDefinitions() : null) {
|
||||
for (int i = 0; i < macroDefs.length; i++) {
|
||||
if (Arrays.equals(macroDefs[i].getName().toCharArray(), macroName)) {
|
||||
macroDef= macroDefs[i];
|
||||
for (IASTPreprocessorMacroDefinition macroDef2 : macroDefs) {
|
||||
if (Arrays.equals(macroDef2.getName().toCharArray(), macroName)) {
|
||||
macroDef= macroDef2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -244,8 +244,8 @@ public class CSourceHover extends AbstractCEditorTextHover {
|
|||
names= findDeclarations(ast, binding);
|
||||
}
|
||||
if (names.length > 0) {
|
||||
for (int i = 0; i < names.length; i++) {
|
||||
String source= computeSourceForName(names[0], binding);
|
||||
for (IName name : names) {
|
||||
String source= computeSourceForName(name, binding);
|
||||
if (source != null) {
|
||||
return source;
|
||||
}
|
||||
|
@ -417,9 +417,7 @@ public class CSourceHover extends AbstractCEditorTextHover {
|
|||
type= ((ITypedef)binding).getType();
|
||||
} else if (binding instanceof IVariable) {
|
||||
type= ((IVariable)binding).getType();
|
||||
} else {
|
||||
type= null;
|
||||
}
|
||||
}
|
||||
} catch (DOMException exc) {
|
||||
}
|
||||
expectClosingBrace= type instanceof ICompositeType || type instanceof IEnumeration;
|
||||
|
@ -786,8 +784,7 @@ public class CSourceHover extends AbstractCEditorTextHover {
|
|||
i= 0;
|
||||
} finally {
|
||||
try {
|
||||
if (reader != null)
|
||||
reader.close();
|
||||
reader.close();
|
||||
} catch (IOException ex) {
|
||||
CUIPlugin.log(ex);
|
||||
}
|
||||
|
@ -831,7 +828,7 @@ public class CSourceHover extends AbstractCEditorTextHover {
|
|||
* name is not considered a keyword
|
||||
*/
|
||||
private boolean selectionIsKeyword(String name) {
|
||||
Set keywords= ParserFactory.getKeywordSet(KeywordSetKey.KEYWORDS, ParserLanguage.CPP);
|
||||
Set<String> keywords= ParserFactory.getKeywordSet(KeywordSetKey.KEYWORDS, ParserLanguage.CPP);
|
||||
return keywords.contains(name);
|
||||
}
|
||||
|
||||
|
|
|
@ -12,12 +12,9 @@
|
|||
package org.eclipse.cdt.internal.ui.text.contentassist;
|
||||
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.CTextTools;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.text.ICCompletionProposal;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferenceConverter;
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.BadPositionCategoryException;
|
||||
import org.eclipse.jface.text.DefaultPositionUpdater;
|
||||
|
@ -52,6 +49,11 @@ import org.eclipse.swt.graphics.Point;
|
|||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.eclipse.ui.texteditor.link.EditorLinkedModeUI;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.text.ICCompletionProposal;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.CTextTools;
|
||||
|
||||
public class CCompletionProposal implements ICCompletionProposal, ICompletionProposalExtension, ICompletionProposalExtension2, ICompletionProposalExtension3 {
|
||||
|
||||
private String fDisplayString;
|
||||
|
@ -510,7 +512,10 @@ public class CCompletionProposal implements ICCompletionProposal, ICompletionPro
|
|||
* <code>false</code> otherwise.
|
||||
*/
|
||||
protected boolean startsWith(IDocument document, int offset, String word) {
|
||||
int wordLength= word == null ? 0 : word.length();
|
||||
if (word == null)
|
||||
return false;
|
||||
|
||||
final int wordLength= word.length();
|
||||
if (offset >= fReplacementOffset + wordLength)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ package org.eclipse.cdt.internal.ui.text.contentassist;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
@ -148,14 +147,14 @@ public class CContentAssistProcessor extends ContentAssistProcessor {
|
|||
* @see org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistProcessor#filterAndSort(java.util.List, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
@Override
|
||||
protected List filterAndSortProposals(List proposals, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
protected List<ICompletionProposal> filterAndSortProposals(List<ICompletionProposal> proposals, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
IProposalFilter filter = getCompletionFilter();
|
||||
ICCompletionProposal[] proposalsInput= new ICCompletionProposal[proposals.size()];
|
||||
// wrap proposals which are no ICCompletionProposals
|
||||
boolean wrapped= false;
|
||||
int i=0;
|
||||
for (Iterator iterator = proposals.iterator(); iterator.hasNext(); ) {
|
||||
ICompletionProposal proposal= (ICompletionProposal) iterator.next();
|
||||
for (Object element : proposals) {
|
||||
ICompletionProposal proposal= (ICompletionProposal) element;
|
||||
if (proposal instanceof ICCompletionProposal) {
|
||||
proposalsInput[i++]= (ICCompletionProposal)proposal;
|
||||
} else {
|
||||
|
@ -177,12 +176,11 @@ public class CContentAssistProcessor extends ContentAssistProcessor {
|
|||
propsComp.setOrderAlphabetically(sortByAlphabet);
|
||||
Arrays.sort(proposalsFiltered, propsComp);
|
||||
}
|
||||
List filteredList;
|
||||
List<ICompletionProposal> filteredList;
|
||||
if (wrapped) {
|
||||
// unwrap again
|
||||
filteredList= new ArrayList(proposalsFiltered.length);
|
||||
for (int j= 0; j < proposalsFiltered.length; j++) {
|
||||
ICCompletionProposal proposal= proposalsFiltered[j];
|
||||
filteredList= new ArrayList<ICompletionProposal>(proposalsFiltered.length);
|
||||
for (ICCompletionProposal proposal : proposalsFiltered) {
|
||||
if (proposal instanceof CCompletionProposalWrapper) {
|
||||
filteredList.add(((CCompletionProposalWrapper)proposal).unwrap());
|
||||
} else {
|
||||
|
@ -190,7 +188,8 @@ public class CContentAssistProcessor extends ContentAssistProcessor {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
filteredList= Arrays.asList(proposalsFiltered);
|
||||
final ICompletionProposal[] tmp= proposalsFiltered;
|
||||
filteredList= Arrays.asList(tmp);
|
||||
}
|
||||
return filteredList;
|
||||
}
|
||||
|
@ -222,7 +221,7 @@ public class CContentAssistProcessor extends ContentAssistProcessor {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected List filterAndSortContextInformation(List contexts,
|
||||
protected List<IContextInformation> filterAndSortContextInformation(List<IContextInformation> contexts,
|
||||
IProgressMonitor monitor) {
|
||||
return contexts;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.ui.text.contentassist;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.commands.IParameterValues;
|
||||
|
@ -27,11 +26,10 @@ public final class ContentAssistComputerParameter implements IParameterValues {
|
|||
/*
|
||||
* @see org.eclipse.core.commands.IParameterValues#getParameterValues()
|
||||
*/
|
||||
public Map getParameterValues() {
|
||||
Collection descriptors= CompletionProposalComputerRegistry.getDefault().getProposalCategories();
|
||||
Map map= new HashMap(descriptors.size());
|
||||
for (Iterator it= descriptors.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory category= (CompletionProposalCategory) it.next();
|
||||
public Map<String,String> getParameterValues() {
|
||||
Collection<CompletionProposalCategory> descriptors= CompletionProposalComputerRegistry.getDefault().getProposalCategories();
|
||||
Map<String, String> map= new HashMap<String, String>(descriptors.size());
|
||||
for (CompletionProposalCategory category : descriptors) {
|
||||
map.put(category.getDisplayName(), category.getId());
|
||||
}
|
||||
return map;
|
||||
|
|
|
@ -16,7 +16,6 @@ package org.eclipse.cdt.internal.ui.text.contentassist;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.Assert;
|
||||
|
@ -91,12 +90,9 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
*/
|
||||
private static final String PREF_WARN_ABOUT_EMPTY_ASSIST_CATEGORY= "EmptyDefaultAssistCategory"; //$NON-NLS-1$
|
||||
|
||||
private static final Comparator ORDER_COMPARATOR= new Comparator() {
|
||||
private static final Comparator<CompletionProposalCategory> ORDER_COMPARATOR= new Comparator<CompletionProposalCategory>() {
|
||||
|
||||
public int compare(Object o1, Object o2) {
|
||||
CompletionProposalCategory d1= (CompletionProposalCategory) o1;
|
||||
CompletionProposalCategory d2= (CompletionProposalCategory) o2;
|
||||
|
||||
public int compare(CompletionProposalCategory d1, CompletionProposalCategory d2) {
|
||||
return d1.getSortOrder() - d2.getSortOrder();
|
||||
}
|
||||
|
||||
|
@ -104,7 +100,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
|
||||
private static final ICompletionProposal[] NO_PROPOSALS= {};
|
||||
|
||||
private final List fCategories;
|
||||
private final List<CompletionProposalCategory> fCategories;
|
||||
private final String fPartition;
|
||||
private final ContentAssistant fAssistant;
|
||||
|
||||
|
@ -112,7 +108,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
|
||||
/* cycling stuff */
|
||||
private int fRepetition= -1;
|
||||
private List/*<List<CompletionProposalCategory>>*/ fCategoryIteration= null;
|
||||
private List<List<CompletionProposalCategory>> fCategoryIteration= null;
|
||||
private String fIterationGesture= null;
|
||||
private int fNumberOfComputedResults= 0;
|
||||
private String fErrorMessage;
|
||||
|
@ -139,8 +135,8 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
|
||||
// this may show the warning dialog if all categories are disabled
|
||||
fCategoryIteration= getCategoryIteration();
|
||||
for (Iterator it= fCategories.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) it.next();
|
||||
for (Object element : fCategories) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) element;
|
||||
cat.sessionStarted();
|
||||
}
|
||||
|
||||
|
@ -172,8 +168,8 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
if (event.processor != ContentAssistProcessor.this)
|
||||
return;
|
||||
|
||||
for (Iterator it= fCategories.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) it.next();
|
||||
for (Object element : fCategories) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) element;
|
||||
cat.sessionEnded();
|
||||
}
|
||||
|
||||
|
@ -221,15 +217,15 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
long setup= DEBUG ? System.currentTimeMillis() : 0;
|
||||
|
||||
monitor.subTask(ContentAssistMessages.ContentAssistProcessor_collecting_proposals);
|
||||
List proposals= collectProposals(viewer, offset, monitor, context);
|
||||
List<ICompletionProposal> proposals= collectProposals(viewer, offset, monitor, context);
|
||||
long collect= DEBUG ? System.currentTimeMillis() : 0;
|
||||
|
||||
monitor.subTask(ContentAssistMessages.ContentAssistProcessor_sorting_proposals);
|
||||
List filtered= filterAndSortProposals(proposals, monitor, context);
|
||||
List<ICompletionProposal> filtered= filterAndSortProposals(proposals, monitor, context);
|
||||
fNumberOfComputedResults= filtered.size();
|
||||
long filter= DEBUG ? System.currentTimeMillis() : 0;
|
||||
|
||||
ICompletionProposal[] result= (ICompletionProposal[]) filtered.toArray(new ICompletionProposal[filtered.size()]);
|
||||
ICompletionProposal[] result= filtered.toArray(new ICompletionProposal[filtered.size()]);
|
||||
monitor.done();
|
||||
|
||||
if (DEBUG) {
|
||||
|
@ -264,12 +260,11 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
fNumberOfComputedResults= 0;
|
||||
}
|
||||
|
||||
private List collectProposals(ITextViewer viewer, int offset, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
List proposals= new ArrayList();
|
||||
List providers= getCategories();
|
||||
for (Iterator it= providers.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) it.next();
|
||||
List computed= cat.computeCompletionProposals(context, fPartition, new SubProgressMonitor(monitor, 1));
|
||||
private List<ICompletionProposal> collectProposals(ITextViewer viewer, int offset, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
List<ICompletionProposal> proposals= new ArrayList<ICompletionProposal>();
|
||||
List<CompletionProposalCategory> providers= getCategories();
|
||||
for (CompletionProposalCategory cat : providers) {
|
||||
List<ICompletionProposal> computed= cat.computeCompletionProposals(context, fPartition, new SubProgressMonitor(monitor, 1));
|
||||
proposals.addAll(computed);
|
||||
if (fErrorMessage == null)
|
||||
fErrorMessage= cat.getErrorMessage();
|
||||
|
@ -289,7 +284,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
* @return the list of filtered and sorted proposals, ready for
|
||||
* display (element type: {@link ICompletionProposal})
|
||||
*/
|
||||
protected List filterAndSortProposals(List proposals, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
protected List<ICompletionProposal> filterAndSortProposals(List<ICompletionProposal> proposals, IProgressMonitor monitor, ContentAssistInvocationContext context) {
|
||||
return proposals;
|
||||
}
|
||||
|
||||
|
@ -303,26 +298,25 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
monitor.beginTask(ContentAssistMessages.ContentAssistProcessor_computing_contexts, fCategories.size() + 1);
|
||||
|
||||
monitor.subTask(ContentAssistMessages.ContentAssistProcessor_collecting_contexts);
|
||||
List proposals= collectContextInformation(viewer, offset, monitor);
|
||||
|
||||
List<IContextInformation> proposals= collectContextInformation(viewer, offset, monitor);
|
||||
|
||||
monitor.subTask(ContentAssistMessages.ContentAssistProcessor_sorting_contexts);
|
||||
List filtered= filterAndSortContextInformation(proposals, monitor);
|
||||
List<IContextInformation> filtered= filterAndSortContextInformation(proposals, monitor);
|
||||
fNumberOfComputedResults= filtered.size();
|
||||
|
||||
IContextInformation[] result= (IContextInformation[]) filtered.toArray(new IContextInformation[filtered.size()]);
|
||||
IContextInformation[] result= filtered.toArray(new IContextInformation[filtered.size()]);
|
||||
monitor.done();
|
||||
return result;
|
||||
}
|
||||
|
||||
private List collectContextInformation(ITextViewer viewer, int offset, IProgressMonitor monitor) {
|
||||
List proposals= new ArrayList();
|
||||
private List<IContextInformation> collectContextInformation(ITextViewer viewer, int offset, IProgressMonitor monitor) {
|
||||
List<IContextInformation> proposals= new ArrayList<IContextInformation>();
|
||||
ContentAssistInvocationContext context= createContext(viewer, offset, false);
|
||||
|
||||
try {
|
||||
List providers= getCategories();
|
||||
for (Iterator it= providers.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) it.next();
|
||||
List computed= cat.computeContextInformation(context, fPartition, new SubProgressMonitor(monitor, 1));
|
||||
List<CompletionProposalCategory> providers= getCategories();
|
||||
for (CompletionProposalCategory cat : providers) {
|
||||
List<IContextInformation> computed= cat.computeContextInformation(context, fPartition, new SubProgressMonitor(monitor, 1));
|
||||
proposals.addAll(computed);
|
||||
if (fErrorMessage == null)
|
||||
fErrorMessage= cat.getErrorMessage();
|
||||
|
@ -345,7 +339,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
* @return the list of filtered and sorted proposals, ready for
|
||||
* display (element type: {@link IContextInformation})
|
||||
*/
|
||||
protected List filterAndSortContextInformation(List contexts, IProgressMonitor monitor) {
|
||||
protected List<IContextInformation> filterAndSortContextInformation(List<IContextInformation> contexts, IProgressMonitor monitor) {
|
||||
return contexts;
|
||||
}
|
||||
|
||||
|
@ -426,7 +420,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
return fIsAutoActivated;
|
||||
}
|
||||
|
||||
private List getCategories() {
|
||||
private List<CompletionProposalCategory> getCategories() {
|
||||
if (fCategoryIteration == null)
|
||||
return fCategories;
|
||||
|
||||
|
@ -437,22 +431,21 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
|
||||
// fAssistant.setShowMessage(fRepetition % 2 != 0);
|
||||
//
|
||||
return (List) fCategoryIteration.get(iteration);
|
||||
return fCategoryIteration.get(iteration);
|
||||
}
|
||||
|
||||
private List getCategoryIteration() {
|
||||
List sequence= new ArrayList();
|
||||
private List<List<CompletionProposalCategory>> getCategoryIteration() {
|
||||
List<List<CompletionProposalCategory>> sequence= new ArrayList<List<CompletionProposalCategory>>();
|
||||
sequence.add(getDefaultCategories());
|
||||
for (Iterator it= getSeparateCategories().iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory cat= (CompletionProposalCategory) it.next();
|
||||
for (CompletionProposalCategory cat : getSeparateCategories()) {
|
||||
sequence.add(Collections.singletonList(cat));
|
||||
}
|
||||
return sequence;
|
||||
}
|
||||
|
||||
private List getDefaultCategories() {
|
||||
private List<CompletionProposalCategory> getDefaultCategories() {
|
||||
// default mix - enable all included computers
|
||||
List included= getDefaultCategoriesUnchecked();
|
||||
List<CompletionProposalCategory> included= getDefaultCategoriesUnchecked();
|
||||
|
||||
if (IDocument.DEFAULT_CONTENT_TYPE.equals(fPartition) && included.isEmpty() && !fCategories.isEmpty())
|
||||
if (informUserAboutEmptyDefaultCategory())
|
||||
|
@ -462,10 +455,10 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
return included;
|
||||
}
|
||||
|
||||
private List getDefaultCategoriesUnchecked() {
|
||||
List included= new ArrayList();
|
||||
for (Iterator it= fCategories.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory category= (CompletionProposalCategory) it.next();
|
||||
private List<CompletionProposalCategory> getDefaultCategoriesUnchecked() {
|
||||
List<CompletionProposalCategory> included= new ArrayList<CompletionProposalCategory>();
|
||||
for (Object element : fCategories) {
|
||||
CompletionProposalCategory category= (CompletionProposalCategory) element;
|
||||
if (category.isIncluded() && category.hasComputers(fPartition))
|
||||
included.add(category);
|
||||
}
|
||||
|
@ -554,10 +547,10 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
return false;
|
||||
}
|
||||
|
||||
private List getSeparateCategories() {
|
||||
ArrayList sorted= new ArrayList();
|
||||
for (Iterator it= fCategories.iterator(); it.hasNext();) {
|
||||
CompletionProposalCategory category= (CompletionProposalCategory) it.next();
|
||||
private List<CompletionProposalCategory> getSeparateCategories() {
|
||||
ArrayList<CompletionProposalCategory> sorted= new ArrayList<CompletionProposalCategory>();
|
||||
for (Object element : fCategories) {
|
||||
CompletionProposalCategory category= (CompletionProposalCategory) element;
|
||||
if (category.isSeparateCommand() && category.hasComputers(fPartition))
|
||||
sorted.add(category);
|
||||
}
|
||||
|
@ -577,7 +570,7 @@ public class ContentAssistProcessor implements IContentAssistProcessor {
|
|||
int iteration= repetition % fCategoryIteration.size();
|
||||
if (iteration == 0)
|
||||
return ContentAssistMessages.ContentAssistProcessor_defaultProposalCategory;
|
||||
return toString((CompletionProposalCategory) ((List) fCategoryIteration.get(iteration)).get(0));
|
||||
return toString(fCategoryIteration.get(iteration).get(0));
|
||||
}
|
||||
|
||||
private String toString(CompletionProposalCategory category) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.eclipse.jface.text.BadLocationException;
|
|||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.ITypedRegion;
|
||||
import org.eclipse.jface.text.TextUtilities;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
|
||||
|
@ -86,11 +87,11 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
}
|
||||
|
||||
@Override
|
||||
protected List<CCompletionProposal> computeCompletionProposals(
|
||||
protected List<ICompletionProposal> computeCompletionProposals(
|
||||
CContentAssistInvocationContext context,
|
||||
IASTCompletionNode completionNode, String prefix) {
|
||||
|
||||
List<CCompletionProposal> proposals = new ArrayList<CCompletionProposal>();
|
||||
List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
|
||||
|
||||
if(inPreprocessorDirective(context)) {
|
||||
if (!inPreprocessorKeyword(context)) {
|
||||
|
@ -183,7 +184,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
return false;
|
||||
}
|
||||
|
||||
private void addMacroProposals(CContentAssistInvocationContext context, String prefix, List<CCompletionProposal> proposals) {
|
||||
private void addMacroProposals(CContentAssistInvocationContext context, String prefix, List<ICompletionProposal> proposals) {
|
||||
char[] prefixChars= prefix.toCharArray();
|
||||
final boolean matchPrefix= !context.isContextInformationStyle();
|
||||
IASTCompletionNode completionNode = context.getCompletionNode();
|
||||
|
@ -203,7 +204,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
}
|
||||
}
|
||||
|
||||
private void handleMacro(IASTPreprocessorMacroDefinition macro, CContentAssistInvocationContext context, String prefix, List<CCompletionProposal> proposals) {
|
||||
private void handleMacro(IASTPreprocessorMacroDefinition macro, CContentAssistInvocationContext context, String prefix, List<ICompletionProposal> proposals) {
|
||||
final String macroName = macro.getName().toString();
|
||||
final int baseRelevance= computeBaseRelevance(prefix, macroName);
|
||||
|
||||
|
@ -255,7 +256,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
CContentAssistInvocationContext cContext,
|
||||
String prefix,
|
||||
IASTCompletionContext astContext,
|
||||
List<CCompletionProposal> proposals) {
|
||||
List<ICompletionProposal> proposals) {
|
||||
|
||||
if ((binding instanceof CPPImplicitFunction
|
||||
|| binding instanceof CPPImplicitFunctionTemplate || binding instanceof CPPImplicitTypedef)
|
||||
|
@ -293,12 +294,12 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
return name.length == 0 || name[0] == '{';
|
||||
}
|
||||
|
||||
private void handleClass(ICPPClassType classType, IASTCompletionContext astContext, CContentAssistInvocationContext context, int baseRelevance, List<CCompletionProposal> proposals) {
|
||||
private void handleClass(ICPPClassType classType, IASTCompletionContext astContext, CContentAssistInvocationContext context, int baseRelevance, List<ICompletionProposal> proposals) {
|
||||
if (context.isContextInformationStyle()) {
|
||||
try {
|
||||
ICPPConstructor[] constructors = classType.getConstructors();
|
||||
for (int i = 0; i < constructors.length; i++) {
|
||||
handleFunction(constructors[i], context, baseRelevance, proposals);
|
||||
for (ICPPConstructor constructor : constructors) {
|
||||
handleFunction(constructor, context, baseRelevance, proposals);
|
||||
}
|
||||
} catch (DOMException e) {
|
||||
}
|
||||
|
@ -309,10 +310,10 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
case ICPPClassType.k_class:
|
||||
relevance= RelevanceConstants.CLASS_TYPE_RELEVANCE;
|
||||
break;
|
||||
case ICPPClassType.k_struct:
|
||||
case ICompositeType.k_struct:
|
||||
relevance= RelevanceConstants.STRUCT_TYPE_RELEVANCE;
|
||||
break;
|
||||
case ICPPClassType.k_union:
|
||||
case ICompositeType.k_union:
|
||||
relevance= RelevanceConstants.UNION_TYPE_RELEVANCE;
|
||||
break;
|
||||
}
|
||||
|
@ -328,7 +329,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
}
|
||||
}
|
||||
|
||||
private void handleFunction(IFunction function, CContentAssistInvocationContext context, int baseRelevance, List<CCompletionProposal> proposals) {
|
||||
private void handleFunction(IFunction function, CContentAssistInvocationContext context, int baseRelevance, List<ICompletionProposal> proposals) {
|
||||
Image image = getImage(function);
|
||||
|
||||
StringBuilder repStringBuff = new StringBuilder();
|
||||
|
@ -340,7 +341,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
String returnTypeStr = null;
|
||||
try {
|
||||
IParameter[] params = function.getParameters();
|
||||
if (params != null)
|
||||
if (params != null) {
|
||||
for (int i = 0; i < params.length; ++i) {
|
||||
IType paramType = params[i].getType();
|
||||
if (i > 0) {
|
||||
|
@ -357,18 +358,18 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
}
|
||||
}
|
||||
|
||||
if (function.takesVarArgs()) {
|
||||
if (params.length > 0) {
|
||||
dispargs.append(',');
|
||||
idargs.append(',');
|
||||
}
|
||||
dispargs.append("..."); //$NON-NLS-1$
|
||||
idargs.append("..."); //$NON-NLS-1$
|
||||
} else if (params.length == 0) { // force the void in
|
||||
dispargs.append("void"); //$NON-NLS-1$
|
||||
idargs.append("void"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
if (function.takesVarArgs()) {
|
||||
if (params.length > 0) {
|
||||
dispargs.append(',');
|
||||
idargs.append(',');
|
||||
}
|
||||
dispargs.append("..."); //$NON-NLS-1$
|
||||
idargs.append("..."); //$NON-NLS-1$
|
||||
} else if (params.length == 0) { // force the void in
|
||||
dispargs.append("void"); //$NON-NLS-1$
|
||||
idargs.append("void"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
IFunctionType functionType = function.getType();
|
||||
if (functionType != null) {
|
||||
IType returnType = functionType.getReturnType();
|
||||
|
@ -413,7 +414,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
proposals.add(proposal);
|
||||
}
|
||||
|
||||
private void handleVariable(IVariable variable, CContentAssistInvocationContext context, int baseRelevance, List<CCompletionProposal> proposals) {
|
||||
private void handleVariable(IVariable variable, CContentAssistInvocationContext context, int baseRelevance, List<ICompletionProposal> proposals) {
|
||||
StringBuilder repStringBuff = new StringBuilder();
|
||||
repStringBuff.append(variable.getName());
|
||||
|
||||
|
@ -479,7 +480,7 @@ public class DOMCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
IASTCompletionContext astContext,
|
||||
CContentAssistInvocationContext cContext,
|
||||
int baseRelevance,
|
||||
List<CCompletionProposal> proposals) {
|
||||
List<ICompletionProposal> proposals) {
|
||||
|
||||
if (astContext instanceof ICPPASTQualifiedName) {
|
||||
IASTCompletionContext parent = ((ICPPASTQualifiedName) astContext)
|
||||
|
|
|
@ -17,6 +17,7 @@ import java.util.List;
|
|||
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
|
||||
|
@ -33,7 +34,7 @@ import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
|
|||
public class HelpCompletionProposalComputer extends ParsingBasedProposalComputer {
|
||||
|
||||
@Override
|
||||
protected List computeCompletionProposals(
|
||||
protected List<ICompletionProposal> computeCompletionProposals(
|
||||
CContentAssistInvocationContext cContext,
|
||||
IASTCompletionNode completionNode, String prefix)
|
||||
throws CoreException {
|
||||
|
@ -58,7 +59,7 @@ public class HelpCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
}
|
||||
|
||||
if (!handleHelp) {
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
final ITranslationUnit tu = cContext.getTranslationUnit();
|
||||
|
@ -77,17 +78,16 @@ public class HelpCompletionProposalComputer extends ParsingBasedProposalComputer
|
|||
IFunctionSummary[] summaries = CHelpProviderManager.getDefault()
|
||||
.getMatchingFunctions(helpContext, prefix);
|
||||
if (summaries == null)
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
|
||||
int repOffset = cContext.getInvocationOffset() - prefix.length();
|
||||
int repLength = prefix.length();
|
||||
Image image = CUIPlugin.getImageDescriptorRegistry().get(
|
||||
CElementImageProvider.getFunctionImageDescriptor());
|
||||
|
||||
List proposals = new ArrayList();
|
||||
List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
|
||||
|
||||
for (int j = 0; j < summaries.length; j++) {
|
||||
IFunctionSummary summary = summaries[j];
|
||||
for (IFunctionSummary summary : summaries) {
|
||||
String fname = summary.getName() + "()"; //$NON-NLS-1$
|
||||
String fdesc = summary.getDescription();
|
||||
IFunctionSummary.IFunctionPrototypeSummary fproto = summary
|
||||
|
|
|
@ -15,6 +15,8 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.ui.texteditor.HippieProposalProcessor;
|
||||
|
||||
import org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext;
|
||||
|
@ -39,14 +41,14 @@ public final class HippieProposalComputer implements ICompletionProposalComputer
|
|||
/*
|
||||
* @see org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer#computeCompletionProposals(org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Arrays.asList(fProcessor.computeCompletionProposals(context.getViewer(), context.getInvocationOffset()));
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer#computeContextInformation(org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Arrays.asList(fProcessor.computeContextInformation(context.getViewer(), context.getInvocationOffset()));
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,8 @@ import org.eclipse.jface.text.BadLocationException;
|
|||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.ITypedRegion;
|
||||
import org.eclipse.jface.text.TextUtilities;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
|
@ -54,15 +56,15 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
|
||||
private String fErrorMessage;
|
||||
|
||||
public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
List<CCompletionProposal> proposals= Collections.emptyList();
|
||||
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
List<ICompletionProposal> proposals= Collections.emptyList();
|
||||
fErrorMessage= null;
|
||||
|
||||
if (context instanceof CContentAssistInvocationContext) {
|
||||
CContentAssistInvocationContext cContext= (CContentAssistInvocationContext) context;
|
||||
if (inIncludeDirective(cContext)) {
|
||||
// add include file proposals
|
||||
proposals= new ArrayList<CCompletionProposal>();
|
||||
proposals= new ArrayList<ICompletionProposal>();
|
||||
try {
|
||||
addInclusionProposals(cContext, proposals);
|
||||
} catch (Exception exc) {
|
||||
|
@ -74,7 +76,7 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
return proposals;
|
||||
}
|
||||
|
||||
public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -113,7 +115,7 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
return false;
|
||||
}
|
||||
|
||||
private void addInclusionProposals(CContentAssistInvocationContext context, List<CCompletionProposal> proposals) throws Exception {
|
||||
private void addInclusionProposals(CContentAssistInvocationContext context, List<ICompletionProposal> proposals) throws Exception {
|
||||
if (context.isContextInformationStyle()) {
|
||||
return;
|
||||
}
|
||||
|
@ -130,13 +132,11 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
if (potentialIncludes.length > 0) {
|
||||
IInclude[] includes= context.getTranslationUnit().getIncludes();
|
||||
Set<String> alreadyIncluded= new HashSet<String>();
|
||||
for (int i = 0; i < includes.length; i++) {
|
||||
IInclude includeDirective= includes[i];
|
||||
for (IInclude includeDirective : includes) {
|
||||
alreadyIncluded.add(includeDirective.getElementName());
|
||||
}
|
||||
Image image = getImage(CElementImageProvider.getIncludeImageDescriptor());
|
||||
for (int i = 0; i < potentialIncludes.length; i++) {
|
||||
String include= potentialIncludes[i];
|
||||
for (String include : potentialIncludes) {
|
||||
if (alreadyIncluded.add(include)) {
|
||||
final char openingBracket= angleBrackets ? '<' : '"';
|
||||
final char closingBracket= angleBrackets ? '>' : '"';
|
||||
|
@ -205,16 +205,16 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
String[] quoteIncludes= extendedInfo.getLocalIncludePath();
|
||||
|
||||
if (quoteIncludes != null) {
|
||||
for (int i = 0; i < quoteIncludes.length; i++) {
|
||||
IPath includeDir= new Path(quoteIncludes[i]);
|
||||
for (String quoteInclude : quoteIncludes) {
|
||||
IPath includeDir= new Path(quoteInclude);
|
||||
collectIncludeFilesFromDirectory(tu, includeDir, prefixPath, includeFiles);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String[] allIncludes= info.getIncludePaths();
|
||||
for (int i = 0; i < allIncludes.length; i++) {
|
||||
IPath includeDir= new Path(allIncludes[i]);
|
||||
for (String allInclude : allIncludes) {
|
||||
IPath includeDir= new Path(allInclude);
|
||||
collectIncludeFilesFromDirectory(tu, includeDir, prefixPath, includeFiles);
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +228,6 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
* @param includeFiles the result list
|
||||
*/
|
||||
private void collectIncludeFilesFromDirectory(ITranslationUnit tu, IPath directory, IPath prefixPath, List<String> includeFiles) {
|
||||
final boolean isCpp= tu.isCXXLanguage();
|
||||
final String namePrefix;
|
||||
if (prefixPath.segmentCount() == 0) {
|
||||
namePrefix= ""; //$NON-NLS-1$
|
||||
|
@ -250,8 +249,7 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
final int prefixLength = namePrefix.length();
|
||||
final IProject project= tu.getCProject().getProject();
|
||||
File[] files= fileDir.listFiles();
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
File file = files[i];
|
||||
for (File file : files) {
|
||||
final String name= file.getName();
|
||||
if (name.length() >= prefixLength && namePrefix.equalsIgnoreCase(name.substring(0, prefixLength))) {
|
||||
if (file.isFile()) {
|
||||
|
@ -275,7 +273,6 @@ public class InclusionProposalComputer implements ICompletionProposalComputer {
|
|||
* @throws CoreException
|
||||
*/
|
||||
private void collectIncludeFilesFromContainer(final ITranslationUnit tu, IContainer parent, IPath prefixPath, final List<String> includeFiles) throws CoreException {
|
||||
final boolean isCpp= tu.isCXXLanguage();
|
||||
final String namePrefix;
|
||||
if (prefixPath.segmentCount() == 0) {
|
||||
namePrefix= ""; //$NON-NLS-1$
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.eclipse.jface.text.BadLocationException;
|
|||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.ITypedRegion;
|
||||
import org.eclipse.jface.text.TextUtilities;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
|
||||
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
|
||||
|
@ -31,14 +32,13 @@ import org.eclipse.cdt.core.parser.Directives;
|
|||
import org.eclipse.cdt.core.parser.Keywords;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.text.ICPartitions;
|
||||
import org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider;
|
||||
|
||||
public class KeywordCompletionProposalComputer extends ParsingBasedProposalComputer implements ICompletionProposalComputer {
|
||||
public class KeywordCompletionProposalComputer extends ParsingBasedProposalComputer {
|
||||
|
||||
@Override
|
||||
protected List<CCompletionProposal> computeCompletionProposals(
|
||||
protected List<ICompletionProposal> computeCompletionProposals(
|
||||
CContentAssistInvocationContext context,
|
||||
IASTCompletionNode completionNode, String prefix)
|
||||
throws CoreException {
|
||||
|
@ -58,7 +58,7 @@ public class KeywordCompletionProposalComputer extends ParsingBasedProposalCompu
|
|||
// keywords are matched case-sensitive
|
||||
final int relevance = RelevanceConstants.CASE_MATCH_RELEVANCE + RelevanceConstants.KEYWORD_TYPE_RELEVANCE;
|
||||
|
||||
List<CCompletionProposal> proposals = new ArrayList<CCompletionProposal>();
|
||||
List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
|
||||
|
||||
if (inPreprocessorDirective(context)) {
|
||||
// TODO split this into a separate proposal computer?
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
package org.eclipse.cdt.internal.ui.text.contentassist;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -38,14 +38,15 @@ public abstract class ParsingBasedProposalComputer implements ICompletionProposa
|
|||
|
||||
private String fErrorMessage = null;
|
||||
|
||||
public List computeCompletionProposals(
|
||||
public List<ICompletionProposal> computeCompletionProposals(
|
||||
ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
try {
|
||||
if (context instanceof CContentAssistInvocationContext) {
|
||||
CContentAssistInvocationContext cContext = (CContentAssistInvocationContext) context;
|
||||
|
||||
IASTCompletionNode completionNode = cContext.getCompletionNode();
|
||||
if (completionNode == null) return Collections.EMPTY_LIST;
|
||||
if (completionNode == null)
|
||||
return Collections.emptyList();
|
||||
String prefix = completionNode.getPrefix();
|
||||
if (prefix == null) {
|
||||
prefix = cContext.computeIdentifierPrefix().toString();
|
||||
|
@ -58,23 +59,22 @@ public abstract class ParsingBasedProposalComputer implements ICompletionProposa
|
|||
CUIPlugin.log(e);
|
||||
}
|
||||
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
protected abstract List computeCompletionProposals(
|
||||
protected abstract List<ICompletionProposal> computeCompletionProposals(
|
||||
CContentAssistInvocationContext context,
|
||||
IASTCompletionNode completionNode,
|
||||
String prefix) throws CoreException;
|
||||
|
||||
public List computeContextInformation(
|
||||
public List<IContextInformation> computeContextInformation(
|
||||
ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
List proposals= computeCompletionProposals(context, monitor);
|
||||
Collection<ICompletionProposal> proposals= computeCompletionProposals(context, monitor);
|
||||
// remove duplicates
|
||||
proposals= new ArrayList(new LinkedHashSet(proposals));
|
||||
List result= new ArrayList();
|
||||
|
||||
for (Iterator it= proposals.iterator(); it.hasNext();) {
|
||||
ICompletionProposal proposal= (ICompletionProposal) it.next();
|
||||
|
||||
proposals= (new LinkedHashSet<ICompletionProposal>(proposals));
|
||||
List<IContextInformation> result= new ArrayList<IContextInformation>();
|
||||
for (ICompletionProposal proposal : proposals) {
|
||||
IContextInformation contextInformation= proposal.getContextInformation();
|
||||
if (contextInformation != null) {
|
||||
result.add(contextInformation);
|
||||
|
@ -106,11 +106,10 @@ public abstract class ParsingBasedProposalComputer implements ICompletionProposa
|
|||
boolean caseMatch= prefix.length() > 0 && match.startsWith(prefix);
|
||||
if (caseMatch) {
|
||||
return RelevanceConstants.CASE_MATCH_RELEVANCE;
|
||||
} else {
|
||||
boolean exactNameMatch= match.equalsIgnoreCase(prefix);
|
||||
if (exactNameMatch) {
|
||||
return RelevanceConstants.EXACT_NAME_MATCH_RELEVANCE;
|
||||
}
|
||||
}
|
||||
boolean exactNameMatch= match.equalsIgnoreCase(prefix);
|
||||
if (exactNameMatch) {
|
||||
return RelevanceConstants.EXACT_NAME_MATCH_RELEVANCE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,8 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.TextUtilities;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.jface.text.templates.TemplateContextType;
|
||||
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
|
@ -51,25 +53,19 @@ public class TemplateCompletionProposalComputer implements ICompletionProposalCo
|
|||
contextType= new CContextType();
|
||||
CUIPlugin.getDefault().getTemplateContextRegistry().addContextType(contextType);
|
||||
}
|
||||
if (contextType != null)
|
||||
fCTemplateEngine= new TemplateEngine(contextType);
|
||||
else
|
||||
fCTemplateEngine= null;
|
||||
fCTemplateEngine= new TemplateEngine(contextType);
|
||||
contextType= CUIPlugin.getDefault().getTemplateContextRegistry().getContextType(CommentContextType.ID);
|
||||
if (contextType == null) {
|
||||
contextType= new CommentContextType();
|
||||
CUIPlugin.getDefault().getTemplateContextRegistry().addContextType(contextType);
|
||||
}
|
||||
if (contextType != null)
|
||||
fCommentTemplateEngine= new TemplateEngine(contextType);
|
||||
else
|
||||
fCommentTemplateEngine= null;
|
||||
fCommentTemplateEngine= new TemplateEngine(contextType);
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer#computeCompletionProposals(org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
ITextViewer viewer= context.getViewer();
|
||||
int offset= context.getInvocationOffset();
|
||||
TemplateEngine engine= null;
|
||||
|
@ -83,23 +79,23 @@ public class TemplateCompletionProposalComputer implements ICompletionProposalCo
|
|||
}
|
||||
}
|
||||
} catch (BadLocationException x) {
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
if (engine != null && context instanceof CContentAssistInvocationContext) {
|
||||
CContentAssistInvocationContext cContext= (CContentAssistInvocationContext)context;
|
||||
ITranslationUnit tUnit = cContext.getTranslationUnit();
|
||||
if (tUnit == null) {
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
engine.reset();
|
||||
engine.complete(viewer, offset, tUnit);
|
||||
|
||||
List result= engine.getResults();
|
||||
List<ICompletionProposal> result= engine.getResults();
|
||||
|
||||
return result;
|
||||
}
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -117,8 +113,8 @@ public class TemplateCompletionProposalComputer implements ICompletionProposalCo
|
|||
/*
|
||||
* @see org.eclipse.cdt.ui.text.contentassist.ICompletionProposalComputer#computeContextInformation(org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Collections.EMPTY_LIST;
|
||||
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -18,15 +18,8 @@ import java.util.Iterator;
|
|||
import org.eclipse.core.runtime.Assert;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.PreferenceConverter;
|
||||
|
||||
import org.eclipse.jface.text.BadLocationException;
|
||||
import org.eclipse.jface.text.DefaultInformationControl;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
|
@ -40,7 +33,10 @@ import org.eclipse.jface.text.quickassist.QuickAssistAssistant;
|
|||
import org.eclipse.jface.text.source.Annotation;
|
||||
import org.eclipse.jface.text.source.IAnnotationModel;
|
||||
import org.eclipse.jface.text.source.ISourceViewer;
|
||||
|
||||
import org.eclipse.swt.graphics.Color;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.IEditorPart;
|
||||
import org.eclipse.ui.texteditor.IDocumentProvider;
|
||||
import org.eclipse.ui.texteditor.ITextEditor;
|
||||
|
@ -156,7 +152,7 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
return super.showPossibleQuickAssists();
|
||||
|
||||
|
||||
ArrayList resultingAnnotations= new ArrayList(20);
|
||||
ArrayList<Annotation> resultingAnnotations= new ArrayList<Annotation>(20);
|
||||
try {
|
||||
Point selectedRange= fViewer.getSelectedRange();
|
||||
int currOffset= selectedRange.x;
|
||||
|
@ -172,7 +168,7 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
} catch (BadLocationException e) {
|
||||
CUIPlugin.log(e);
|
||||
}
|
||||
fCurrentAnnotations= (Annotation[]) resultingAnnotations.toArray(new Annotation[resultingAnnotations.size()]);
|
||||
fCurrentAnnotations= resultingAnnotations.toArray(new Annotation[resultingAnnotations.size()]);
|
||||
|
||||
return super.showPossibleQuickAssists();
|
||||
}
|
||||
|
@ -190,7 +186,7 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
return document.getLineInformationOfOffset(invocationLocation);
|
||||
}
|
||||
|
||||
public static int collectQuickFixableAnnotations(ITextEditor editor, int invocationLocation, boolean goToClosest, ArrayList resultingAnnotations) throws BadLocationException {
|
||||
public static int collectQuickFixableAnnotations(ITextEditor editor, int invocationLocation, boolean goToClosest, ArrayList<Annotation> resultingAnnotations) throws BadLocationException {
|
||||
IAnnotationModel model= CUIPlugin.getDefault().getDocumentProvider().getAnnotationModel(editor.getEditorInput());
|
||||
if (model == null) {
|
||||
return invocationLocation;
|
||||
|
@ -198,7 +194,7 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
|
||||
ensureUpdatedAnnotations(editor);
|
||||
|
||||
Iterator iter= model.getAnnotationIterator();
|
||||
Iterator<?> iter= model.getAnnotationIterator();
|
||||
if (goToClosest) {
|
||||
IRegion lineInfo= getRegionOfInterest(editor, invocationLocation);
|
||||
if (lineInfo == null) {
|
||||
|
@ -207,8 +203,8 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
int rangeStart= lineInfo.getOffset();
|
||||
int rangeEnd= rangeStart + lineInfo.getLength();
|
||||
|
||||
ArrayList allAnnotations= new ArrayList();
|
||||
ArrayList allPositions= new ArrayList();
|
||||
ArrayList<Annotation> allAnnotations= new ArrayList<Annotation>();
|
||||
ArrayList<Position> allPositions= new ArrayList<Position>();
|
||||
int bestOffset= Integer.MAX_VALUE;
|
||||
while (iter.hasNext()) {
|
||||
Annotation annot= (Annotation) iter.next();
|
||||
|
@ -225,24 +221,23 @@ public class CCorrectionAssistant extends QuickAssistAssistant {
|
|||
return invocationLocation;
|
||||
}
|
||||
for (int i= 0; i < allPositions.size(); i++) {
|
||||
Position pos= (Position) allPositions.get(i);
|
||||
Position pos= allPositions.get(i);
|
||||
if (isInside(bestOffset, pos.offset, pos.offset + pos.length)) {
|
||||
resultingAnnotations.add(allAnnotations.get(i));
|
||||
}
|
||||
}
|
||||
return bestOffset;
|
||||
} else {
|
||||
while (iter.hasNext()) {
|
||||
Annotation annot= (Annotation) iter.next();
|
||||
if (CCorrectionProcessor.isQuickFixableType(annot)) {
|
||||
Position pos= model.getPosition(annot);
|
||||
if (pos != null && isInside(invocationLocation, pos.offset, pos.offset + pos.length)) {
|
||||
resultingAnnotations.add(annot);
|
||||
}
|
||||
}
|
||||
while (iter.hasNext()) {
|
||||
Annotation annot= (Annotation) iter.next();
|
||||
if (CCorrectionProcessor.isQuickFixableType(annot)) {
|
||||
Position pos= model.getPosition(annot);
|
||||
if (pos != null && isInside(invocationLocation, pos.offset, pos.offset + pos.length)) {
|
||||
resultingAnnotations.add(annot);
|
||||
}
|
||||
}
|
||||
return invocationLocation;
|
||||
}
|
||||
return invocationLocation;
|
||||
}
|
||||
|
||||
private static void ensureUpdatedAnnotations(ITextEditor editor) {
|
||||
|
|
|
@ -59,7 +59,7 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
|
||||
private static ContributedProcessorDescriptor[] getProcessorDescriptors(String contributionId, boolean testMarkerTypes) {
|
||||
IConfigurationElement[] elements= Platform.getExtensionRegistry().getConfigurationElementsFor(CUIPlugin.PLUGIN_ID, contributionId);
|
||||
ArrayList res= new ArrayList(elements.length);
|
||||
ArrayList<ContributedProcessorDescriptor> res= new ArrayList<ContributedProcessorDescriptor>(elements.length);
|
||||
|
||||
for (int i= 0; i < elements.length; i++) {
|
||||
ContributedProcessorDescriptor desc= new ContributedProcessorDescriptor(elements[i], testMarkerTypes);
|
||||
|
@ -70,7 +70,7 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
CUIPlugin.log(status);
|
||||
}
|
||||
}
|
||||
return (ContributedProcessorDescriptor[]) res.toArray(new ContributedProcessorDescriptor[res.size()]);
|
||||
return res.toArray(new ContributedProcessorDescriptor[res.size()]);
|
||||
}
|
||||
|
||||
private static ContributedProcessorDescriptor[] getCorrectionProcessors() {
|
||||
|
@ -198,9 +198,9 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
|
||||
ICCompletionProposal[] res= null;
|
||||
if (model != null && annotations != null) {
|
||||
ArrayList proposals= new ArrayList(10);
|
||||
ArrayList<ICCompletionProposal> proposals= new ArrayList<ICCompletionProposal>(10);
|
||||
IStatus status= collectProposals(context, model, annotations, true, !fAssistant.isUpdatedOffset(), proposals);
|
||||
res= (ICCompletionProposal[]) proposals.toArray(new ICCompletionProposal[proposals.size()]);
|
||||
res= proposals.toArray(new ICCompletionProposal[proposals.size()]);
|
||||
if (!status.isOK()) {
|
||||
fErrorMessage= status.getMessage();
|
||||
CUIPlugin.log(status);
|
||||
|
@ -217,8 +217,8 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
return res;
|
||||
}
|
||||
|
||||
public static IStatus collectProposals(CorrectionContext context, IAnnotationModel model, Annotation[] annotations, boolean addQuickFixes, boolean addQuickAssists, Collection proposals) {
|
||||
ArrayList problems= new ArrayList();
|
||||
public static IStatus collectProposals(CorrectionContext context, IAnnotationModel model, Annotation[] annotations, boolean addQuickFixes, boolean addQuickAssists, Collection<ICCompletionProposal> proposals) {
|
||||
ArrayList<ProblemLocation> problems= new ArrayList<ProblemLocation>();
|
||||
|
||||
// collect problem locations and corrections from marker annotations
|
||||
for (int i= 0; i < annotations.length; i++) {
|
||||
|
@ -235,7 +235,7 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
}
|
||||
MultiStatus resStatus= null;
|
||||
|
||||
IProblemLocation[] problemLocations= (IProblemLocation[]) problems.toArray(new IProblemLocation[problems.size()]);
|
||||
IProblemLocation[] problemLocations= problems.toArray(new IProblemLocation[problems.size()]);
|
||||
if (addQuickFixes) {
|
||||
IStatus status= collectCorrections(context, problemLocations, proposals);
|
||||
if (!status.isOK()) {
|
||||
|
@ -269,7 +269,7 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
return null;
|
||||
}
|
||||
|
||||
private static void collectMarkerProposals(SimpleMarkerAnnotation annotation, Collection proposals) {
|
||||
private static void collectMarkerProposals(SimpleMarkerAnnotation annotation, Collection<ICCompletionProposal> proposals) {
|
||||
IMarker marker= annotation.getMarker();
|
||||
IMarkerResolution[] res= IDE.getMarkerHelpRegistry().getResolutions(marker);
|
||||
if (res.length > 0) {
|
||||
|
@ -318,10 +318,10 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
|
||||
private static class SafeCorrectionCollector extends SafeCorrectionProcessorAccess {
|
||||
private final CorrectionContext fContext;
|
||||
private final Collection fProposals;
|
||||
private final Collection<ICCompletionProposal> fProposals;
|
||||
private IProblemLocation[] fLocations;
|
||||
|
||||
public SafeCorrectionCollector(CorrectionContext context, Collection proposals) {
|
||||
public SafeCorrectionCollector(CorrectionContext context, Collection<ICCompletionProposal> proposals) {
|
||||
fContext= context;
|
||||
fProposals= proposals;
|
||||
}
|
||||
|
@ -347,9 +347,9 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
private static class SafeAssistCollector extends SafeCorrectionProcessorAccess {
|
||||
private final CorrectionContext fContext;
|
||||
private final IProblemLocation[] fLocations;
|
||||
private final Collection fProposals;
|
||||
private final Collection<ICCompletionProposal> fProposals;
|
||||
|
||||
public SafeAssistCollector(CorrectionContext context, IProblemLocation[] locations, Collection proposals) {
|
||||
public SafeAssistCollector(CorrectionContext context, IProblemLocation[] locations, Collection<ICCompletionProposal> proposals) {
|
||||
fContext= context;
|
||||
fLocations= locations;
|
||||
fProposals= proposals;
|
||||
|
@ -415,7 +415,7 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
}
|
||||
}
|
||||
|
||||
public static IStatus collectCorrections(CorrectionContext context, IProblemLocation[] locations, Collection proposals) {
|
||||
public static IStatus collectCorrections(CorrectionContext context, IProblemLocation[] locations, Collection<ICCompletionProposal> proposals) {
|
||||
ContributedProcessorDescriptor[] processors= getCorrectionProcessors();
|
||||
SafeCorrectionCollector collector= new SafeCorrectionCollector(context, proposals);
|
||||
for (int i= 0; i < processors.length; i++) {
|
||||
|
@ -432,19 +432,19 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
private static IProblemLocation[] getHandledProblems(IProblemLocation[] locations, ContributedProcessorDescriptor processor) {
|
||||
// implementation tries to avoid creating a new array
|
||||
boolean allHandled= true;
|
||||
ArrayList res= null;
|
||||
ArrayList<IProblemLocation> res= null;
|
||||
for (int i= 0; i < locations.length; i++) {
|
||||
IProblemLocation curr= locations[i];
|
||||
if (processor.canHandleMarkerType(curr.getMarkerType())) {
|
||||
if (!allHandled) { // first handled problem
|
||||
if (res == null) {
|
||||
res= new ArrayList(locations.length - i);
|
||||
res= new ArrayList<IProblemLocation>(locations.length - i);
|
||||
}
|
||||
res.add(curr);
|
||||
}
|
||||
} else if (allHandled) {
|
||||
if (i > 0) { // first non handled problem
|
||||
res= new ArrayList(locations.length - i);
|
||||
res= new ArrayList<IProblemLocation>(locations.length - i);
|
||||
for (int k= 0; k < i; k++) {
|
||||
res.add(locations[k]);
|
||||
}
|
||||
|
@ -458,10 +458,10 @@ public class CCorrectionProcessor implements IQuickAssistProcessor {
|
|||
if (res == null) {
|
||||
return null;
|
||||
}
|
||||
return (IProblemLocation[]) res.toArray(new IProblemLocation[res.size()]);
|
||||
return res.toArray(new IProblemLocation[res.size()]);
|
||||
}
|
||||
|
||||
public static IStatus collectAssists(CorrectionContext context, IProblemLocation[] locations, Collection proposals) {
|
||||
public static IStatus collectAssists(CorrectionContext context, IProblemLocation[] locations, Collection<ICCompletionProposal> proposals) {
|
||||
ContributedProcessorDescriptor[] processors= getAssistProcessors();
|
||||
SafeAssistCollector collector= new SafeAssistCollector(context, locations, proposals);
|
||||
collector.process(processors);
|
||||
|
|
|
@ -111,7 +111,7 @@ public class CSelectAnnotationRulerAction extends SelectMarkerRulerAction {
|
|||
if (model == null)
|
||||
return ;
|
||||
|
||||
Iterator iter= model.getAnnotationIterator();
|
||||
Iterator<?> iter= model.getAnnotationIterator();
|
||||
int layer= Integer.MIN_VALUE;
|
||||
|
||||
while (iter.hasNext()) {
|
||||
|
@ -138,21 +138,20 @@ public class CSelectAnnotationRulerAction extends SelectMarkerRulerAction {
|
|||
fHasCorrection= true;
|
||||
layer= annotationLayer;
|
||||
continue;
|
||||
} else {
|
||||
AnnotationPreference preference= fAnnotationPreferenceLookup.getAnnotationPreference(annotation);
|
||||
if (preference == null)
|
||||
continue;
|
||||
|
||||
String key= preference.getVerticalRulerPreferenceKey();
|
||||
if (key == null)
|
||||
continue;
|
||||
|
||||
if (fStore.getBoolean(key)) {
|
||||
fPosition= position;
|
||||
fHasCorrection= false;
|
||||
layer= annotationLayer;
|
||||
}
|
||||
}
|
||||
AnnotationPreference preference= fAnnotationPreferenceLookup.getAnnotationPreference(annotation);
|
||||
if (preference == null)
|
||||
continue;
|
||||
|
||||
String key= preference.getVerticalRulerPreferenceKey();
|
||||
if (key == null)
|
||||
continue;
|
||||
|
||||
if (fStore.getBoolean(key)) {
|
||||
fPosition= position;
|
||||
fHasCorrection= false;
|
||||
layer= annotationLayer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,15 +15,14 @@ import java.util.Arrays;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
|
||||
import org.eclipse.core.expressions.EvaluationContext;
|
||||
import org.eclipse.core.expressions.EvaluationResult;
|
||||
import org.eclipse.core.expressions.Expression;
|
||||
import org.eclipse.core.expressions.ExpressionConverter;
|
||||
import org.eclipse.core.expressions.ExpressionTagNames;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IConfigurationElement;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
|
||||
import org.eclipse.cdt.core.model.ICModelMarker;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
|
@ -37,7 +36,7 @@ public final class ContributedProcessorDescriptor {
|
|||
private Object fProcessorInstance;
|
||||
private Boolean fStatus;
|
||||
private boolean fLastResult;
|
||||
private final Set fHandledMarkerTypes;
|
||||
private final Set<String> fHandledMarkerTypes;
|
||||
|
||||
private static final String ID= "id"; //$NON-NLS-1$
|
||||
private static final String CLASS= "class"; //$NON-NLS-1$
|
||||
|
@ -55,13 +54,13 @@ public final class ContributedProcessorDescriptor {
|
|||
fHandledMarkerTypes= testMarkerTypes ? getHandledMarkerTypes(element) : null;
|
||||
}
|
||||
|
||||
private Set getHandledMarkerTypes(IConfigurationElement element) {
|
||||
HashSet map= new HashSet(7);
|
||||
private Set<String> getHandledMarkerTypes(IConfigurationElement element) {
|
||||
HashSet<String> map= new HashSet<String>(7);
|
||||
IConfigurationElement[] children= element.getChildren(HANDLED_MARKER_TYPES);
|
||||
for (int i= 0; i < children.length; i++) {
|
||||
IConfigurationElement[] types= children[i].getChildren(MARKER_TYPE);
|
||||
for (int k= 0; k < types.length; k++) {
|
||||
String attribute= types[k].getAttribute(ID);
|
||||
for (IConfigurationElement element2 : children) {
|
||||
IConfigurationElement[] types= element2.getChildren(MARKER_TYPE);
|
||||
for (IConfigurationElement type : types) {
|
||||
String attribute= type.getAttribute(ID);
|
||||
if (attribute != null) {
|
||||
map.add(attribute);
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ import org.eclipse.ui.keys.IBindingService;
|
|||
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.text.ICCompletionProposal;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.editor.CEditor;
|
||||
|
||||
|
@ -74,7 +75,7 @@ public class CorrectionCommandHandler extends AbstractHandler {
|
|||
|
||||
private ICompletionProposal findCorrection(String id, boolean isAssist, ITextSelection selection, ITranslationUnit cu, IAnnotationModel model) {
|
||||
CorrectionContext context= new CorrectionContext(cu, selection.getOffset(), selection.getLength());
|
||||
Collection proposals= new ArrayList(10);
|
||||
Collection<ICCompletionProposal> proposals= new ArrayList<ICCompletionProposal>(10);
|
||||
if (isAssist) {
|
||||
CCorrectionProcessor.collectAssists(context, new ProblemLocation[0], proposals);
|
||||
} else {
|
||||
|
@ -86,7 +87,7 @@ public class CorrectionCommandHandler extends AbstractHandler {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
for (Iterator iter= proposals.iterator(); iter.hasNext();) {
|
||||
for (Iterator<ICCompletionProposal> iter= proposals.iterator(); iter.hasNext();) {
|
||||
Object curr= iter.next();
|
||||
if (curr instanceof ICommandAccess) {
|
||||
if (id.equals(((ICommandAccess) curr).getCommandId())) {
|
||||
|
@ -98,9 +99,9 @@ public class CorrectionCommandHandler extends AbstractHandler {
|
|||
}
|
||||
|
||||
private Annotation[] getAnnotations(int offset, boolean goToClosest) throws BadLocationException {
|
||||
ArrayList resultingAnnotations= new ArrayList();
|
||||
ArrayList<Annotation> resultingAnnotations= new ArrayList<Annotation>();
|
||||
CCorrectionAssistant.collectQuickFixableAnnotations(fEditor, offset, goToClosest, resultingAnnotations);
|
||||
return (Annotation[]) resultingAnnotations.toArray(new Annotation[resultingAnnotations.size()]);
|
||||
return resultingAnnotations.toArray(new Annotation[resultingAnnotations.size()]);
|
||||
}
|
||||
|
||||
private IDocument getDocument() {
|
||||
|
|
|
@ -14,7 +14,6 @@ package org.eclipse.cdt.internal.ui.text.correction;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.ui.IWorkbench;
|
||||
|
@ -39,7 +38,7 @@ public class CorrectionCommandInstaller {
|
|||
*/
|
||||
public static final String ASSIST_SUFFIX= ".assist"; //$NON-NLS-1$
|
||||
|
||||
private List fCorrectionHandlerActivations;
|
||||
private List<IHandlerActivation> fCorrectionHandlerActivations;
|
||||
|
||||
public CorrectionCommandInstaller() {
|
||||
fCorrectionHandlerActivations= null;
|
||||
|
@ -56,11 +55,12 @@ public class CorrectionCommandInstaller {
|
|||
if (fCorrectionHandlerActivations != null) {
|
||||
CUIPlugin.getDefault().logErrorMessage("correction handler activations not released"); //$NON-NLS-1$
|
||||
}
|
||||
fCorrectionHandlerActivations= new ArrayList();
|
||||
fCorrectionHandlerActivations= new ArrayList<IHandlerActivation>();
|
||||
|
||||
Collection definedCommandIds= commandService.getDefinedCommandIds();
|
||||
for (Iterator iter= definedCommandIds.iterator(); iter.hasNext();) {
|
||||
String id= (String) iter.next();
|
||||
@SuppressWarnings("unchecked")
|
||||
Collection<String> definedCommandIds= commandService.getDefinedCommandIds();
|
||||
for (Object element : definedCommandIds) {
|
||||
String id= (String) element;
|
||||
if (id.startsWith(COMMAND_PREFIX)) {
|
||||
boolean isAssist= id.endsWith(ASSIST_SUFFIX);
|
||||
CorrectionCommandHandler handler= new CorrectionCommandHandler(editor, id, isAssist);
|
||||
|
|
|
@ -260,7 +260,7 @@ public class QuickAssistLightBulbUpdater {
|
|||
int currLine= document.getLineOfOffset(offset);
|
||||
|
||||
// this iterator is not protected, it may throw ConcurrentModificationExceptions
|
||||
Iterator iter= model.getAnnotationIterator();
|
||||
Iterator<?> iter= model.getAnnotationIterator();
|
||||
while (iter.hasNext()) {
|
||||
Annotation annot= (Annotation) iter.next();
|
||||
if (CCorrectionProcessor.isQuickFixableType(annot)) {
|
||||
|
|
|
@ -14,6 +14,8 @@ import java.util.List;
|
|||
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
import org.eclipse.ui.IEditorPart;
|
||||
import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
|
@ -38,11 +40,11 @@ abstract class AbstractDocCommentProposalComputer implements ICompletionProposal
|
|||
return getConfiguration(owner);
|
||||
}
|
||||
|
||||
public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return getConfiguration().createProposalComputer().computeCompletionProposals(context, monitor);
|
||||
}
|
||||
|
||||
public List computeContextInformation(
|
||||
public List<IContextInformation> computeContextInformation(
|
||||
ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return getConfiguration().createProposalComputer().computeContextInformation(context, monitor);
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ package org.eclipse.cdt.internal.ui.text.doctools;
|
|||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -225,16 +224,15 @@ public class DocCommentOwnerManager {
|
|||
IExtensionRegistry registry = Platform.getExtensionRegistry();
|
||||
IExtensionPoint indexProviders = registry.getExtensionPoint(CUIPlugin.ID_COMMENT_OWNER);
|
||||
IExtension[] extensions = indexProviders.getExtensions();
|
||||
for(int i=0; i<extensions.length; i++) {
|
||||
IExtension extension = extensions[i];
|
||||
for (IExtension extension : extensions) {
|
||||
try {
|
||||
IConfigurationElement[] ce = extension.getConfigurationElements();
|
||||
for(int j=0; j<ce.length; j++) {
|
||||
if(ce[j].getName().equals(ELEMENT_OWNER)) {
|
||||
IDocCommentViewerConfiguration multi = (IDocCommentViewerConfiguration) ce[j].createExecutableExtension(ATTRKEY_OWNER_MULTILINE);
|
||||
IDocCommentViewerConfiguration single = (IDocCommentViewerConfiguration) ce[j].createExecutableExtension(ATTRKEY_OWNER_SINGLELINE);
|
||||
String id= ce[j].getAttribute(ATTRKEY_OWNER_ID);
|
||||
String name= ce[j].getAttribute(ATTRKEY_OWNER_NAME);
|
||||
for (IConfigurationElement element : ce) {
|
||||
if(element.getName().equals(ELEMENT_OWNER)) {
|
||||
IDocCommentViewerConfiguration multi = (IDocCommentViewerConfiguration) element.createExecutableExtension(ATTRKEY_OWNER_MULTILINE);
|
||||
IDocCommentViewerConfiguration single = (IDocCommentViewerConfiguration) element.createExecutableExtension(ATTRKEY_OWNER_SINGLELINE);
|
||||
String id= element.getAttribute(ATTRKEY_OWNER_ID);
|
||||
String name= element.getAttribute(ATTRKEY_OWNER_NAME);
|
||||
if(result.put(id, new DocCommentOwner(id, name, multi, single))!=null) {
|
||||
String msg= MessageFormat.format(Messages.DocCommentOwnerManager_DuplicateMapping0, id);
|
||||
CCorePlugin.log(new Status(IStatus.WARNING, CUIPlugin.PLUGIN_ID, msg));
|
||||
|
@ -250,14 +248,14 @@ public class DocCommentOwnerManager {
|
|||
}
|
||||
|
||||
private void fireOwnershipChanged(IResource resource, boolean submappingsRemoved, IDocCommentOwner oldOwner, IDocCommentOwner newOwner) {
|
||||
for(Iterator i= fListeners.iterator(); i.hasNext();) {
|
||||
((IDocCommentOwnershipListener)i.next()).ownershipChanged(resource, submappingsRemoved, oldOwner, newOwner);
|
||||
for (IDocCommentOwnershipListener docCommentOwnershipListener : fListeners) {
|
||||
docCommentOwnershipListener.ownershipChanged(resource, submappingsRemoved, oldOwner, newOwner);
|
||||
}
|
||||
}
|
||||
|
||||
private void fireWorkspaceOwnershipChanged(IDocCommentOwner oldOwner, IDocCommentOwner newOwner) {
|
||||
for(Iterator i= fListeners.iterator(); i.hasNext();) {
|
||||
((IDocCommentOwnershipListener)i.next()).workspaceOwnershipChanged(oldOwner, newOwner);
|
||||
for (IDocCommentOwnershipListener element : fListeners) {
|
||||
element.workspaceOwnershipChanged(oldOwner, newOwner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,12 +158,12 @@ class ProjectMap {
|
|||
}
|
||||
|
||||
// invert and persist associations
|
||||
for(Iterator i= fMap.values().iterator(); i.hasNext();) {
|
||||
String cid= (String) i.next();
|
||||
for(Iterator<String> i= fMap.values().iterator(); i.hasNext();) {
|
||||
String cid= i.next();
|
||||
Element commentNode= data.getOwnerDocument().createElement(ELEMENT_DOC_COMMENT_OWNER);
|
||||
commentNode.setAttribute(ATTRKEY_DCO_ID, cid);
|
||||
for(Iterator j= fMap.keySet().iterator(); j.hasNext(); ) {
|
||||
IPath path= (IPath) j.next();
|
||||
for(Iterator<IPath> j= fMap.keySet().iterator(); j.hasNext(); ) {
|
||||
IPath path= j.next();
|
||||
String ccid= fMap.get(path);
|
||||
if(cid.equals(ccid)) {
|
||||
Element pathNode= data.getOwnerDocument().createElement(ELEMENT_PATH);
|
||||
|
|
|
@ -28,7 +28,7 @@ public class CFoldingStructureProviderRegistry {
|
|||
private static final String EXTENSION_POINT= "foldingStructureProviders"; //$NON-NLS-1$
|
||||
|
||||
/** The map of descriptors, indexed by their identifiers. */
|
||||
private Map fDescriptors;
|
||||
private Map<String, CFoldingStructureProviderDescriptor> fDescriptors;
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
|
@ -46,7 +46,7 @@ public class CFoldingStructureProviderRegistry {
|
|||
public CFoldingStructureProviderDescriptor[] getFoldingProviderDescriptors() {
|
||||
synchronized (this) {
|
||||
ensureRegistered();
|
||||
return (CFoldingStructureProviderDescriptor[]) fDescriptors.values().toArray(new CFoldingStructureProviderDescriptor[fDescriptors.size()]);
|
||||
return fDescriptors.values().toArray(new CFoldingStructureProviderDescriptor[fDescriptors.size()]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ public class CFoldingStructureProviderRegistry {
|
|||
public CFoldingStructureProviderDescriptor getFoldingProviderDescriptor(String id) {
|
||||
synchronized (this) {
|
||||
ensureRegistered();
|
||||
return (CFoldingStructureProviderDescriptor) fDescriptors.get(id);
|
||||
return fDescriptors.get(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ public class CFoldingStructureProviderRegistry {
|
|||
*/
|
||||
public void reloadExtensions() {
|
||||
IExtensionRegistry registry= Platform.getExtensionRegistry();
|
||||
Map map= new HashMap();
|
||||
Map<String, CFoldingStructureProviderDescriptor> map= new HashMap<String, CFoldingStructureProviderDescriptor>();
|
||||
|
||||
IConfigurationElement[] elements= registry.getConfigurationElementsFor(CUIPlugin.getPluginId(), EXTENSION_POINT);
|
||||
for (int i= 0; i < elements.length; i++) {
|
||||
|
|
|
@ -43,14 +43,14 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
private IPreferenceStore fStore;
|
||||
protected OverlayPreferenceStore fOverlayStore;
|
||||
private OverlayKey[] fKeys;
|
||||
protected Map fCheckBoxes= new HashMap();
|
||||
protected Map<Button, String> fCheckBoxes= new HashMap<Button, String>();
|
||||
|
||||
private SelectionListener fCheckBoxListener= new SelectionListener() {
|
||||
public void widgetDefaultSelected(SelectionEvent e) {
|
||||
}
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
Button button= (Button) e.widget;
|
||||
String key= (String) fCheckBoxes.get(button);
|
||||
String key= fCheckBoxes.get(button);
|
||||
fOverlayStore.setValue(key, button.getSelection());
|
||||
updateEnablement(key);
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
}
|
||||
|
||||
private OverlayKey[] createKeys() {
|
||||
ArrayList overlayKeys= new ArrayList();
|
||||
ArrayList<OverlayKey> overlayKeys= new ArrayList<OverlayKey>();
|
||||
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_MACROS));
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_FUNCTIONS));
|
||||
|
@ -77,7 +77,7 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_PREPROCESSOR_BRANCHES_ENABLED));
|
||||
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_STATEMENTS));
|
||||
|
||||
return (OverlayKey[]) overlayKeys.toArray(new OverlayKey[overlayKeys.size()]);
|
||||
return overlayKeys.toArray(new OverlayKey[overlayKeys.size()]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -127,10 +127,10 @@ public class DefaultCFoldingPreferenceBlock implements ICFoldingPreferenceBlock
|
|||
}
|
||||
|
||||
private void initializeFields() {
|
||||
Iterator it= fCheckBoxes.keySet().iterator();
|
||||
Iterator<Button> it= fCheckBoxes.keySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
Button b= (Button) it.next();
|
||||
String key= (String) fCheckBoxes.get(b);
|
||||
Button b= it.next();
|
||||
String key= fCheckBoxes.get(b);
|
||||
b.setSelection(fOverlayStore.getBoolean(key));
|
||||
updateEnablement(key);
|
||||
}
|
||||
|
|
|
@ -84,6 +84,7 @@ import org.eclipse.cdt.core.model.IParent;
|
|||
import org.eclipse.cdt.core.model.ISourceRange;
|
||||
import org.eclipse.cdt.core.model.ISourceReference;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.core.parser.IProblem;
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
import org.eclipse.cdt.ui.text.ICPartitions;
|
||||
|
@ -170,8 +171,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
if (switchstmt instanceof IASTCompoundStatement) {
|
||||
IASTStatement[] stmts = ((IASTCompoundStatement)switchstmt).getStatements();
|
||||
boolean pushedMR = false;
|
||||
for (int i = 0; i < stmts.length; i++) {
|
||||
IASTStatement tmpstmt = stmts[i];
|
||||
for (IASTStatement tmpstmt : stmts) {
|
||||
StatementRegion tmpmr;
|
||||
if (!(tmpstmt instanceof IASTCaseStatement || tmpstmt instanceof IASTDefaultStatement)) {
|
||||
if (!pushedMR) return PROCESS_SKIP;
|
||||
|
@ -315,16 +315,14 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
return false;
|
||||
}
|
||||
IASTProblem[] problems= ast.getPreprocessorProblems();
|
||||
for (int i = 0; i < problems.length; i++) {
|
||||
IASTProblem problem = problems[i];
|
||||
if ((problem.getID() & (IASTProblem.SYNTAX_ERROR | IASTProblem.SCANNER_RELATED)) != 0) {
|
||||
for (IASTProblem problem : problems) {
|
||||
if ((problem.getID() & (IProblem.SYNTAX_ERROR | IProblem.SCANNER_RELATED)) != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
problems= CPPVisitor.getProblems(ast);
|
||||
for (int i = 0; i < problems.length; i++) {
|
||||
IASTProblem problem = problems[i];
|
||||
if ((problem.getID() & (IASTProblem.SYNTAX_ERROR | IASTProblem.SCANNER_RELATED)) != 0) {
|
||||
for (IASTProblem problem : problems) {
|
||||
if ((problem.getID() & (IProblem.SYNTAX_ERROR | IProblem.SCANNER_RELATED)) != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -1024,23 +1022,23 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
Map<CProjectionAnnotation,Position> updated= ctx.fMap;
|
||||
Map<Object, List<Tuple>> previous= computeCurrentStructure(ctx);
|
||||
|
||||
Iterator e= updated.keySet().iterator();
|
||||
Iterator<CProjectionAnnotation> e= updated.keySet().iterator();
|
||||
while (e.hasNext()) {
|
||||
CProjectionAnnotation newAnnotation= (CProjectionAnnotation) e.next();
|
||||
CProjectionAnnotation newAnnotation= e.next();
|
||||
Object key= newAnnotation.getElement();
|
||||
Position newPosition= updated.get(newAnnotation);
|
||||
|
||||
List annotations= previous.get(key);
|
||||
List<Tuple> annotations= previous.get(key);
|
||||
if (annotations == null) {
|
||||
if (DEBUG) System.out.println("DefaultCFoldingStructureProvider.update() new annotation " + newAnnotation); //$NON-NLS-1$
|
||||
|
||||
additions.put(newAnnotation, newPosition);
|
||||
|
||||
} else {
|
||||
Iterator x= annotations.iterator();
|
||||
Iterator<Tuple> x= annotations.iterator();
|
||||
boolean matched= false;
|
||||
while (x.hasNext()) {
|
||||
Tuple tuple= (Tuple) x.next();
|
||||
Tuple tuple= x.next();
|
||||
CProjectionAnnotation existingAnnotation= tuple.annotation;
|
||||
Position existingPosition= tuple.position;
|
||||
if (newAnnotation.getCategory() == existingAnnotation.getCategory()) {
|
||||
|
@ -1072,12 +1070,12 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
}
|
||||
}
|
||||
|
||||
e= previous.values().iterator();
|
||||
while (e.hasNext()) {
|
||||
List list= (List) e.next();
|
||||
Iterator<List<Tuple>> e2= previous.values().iterator();
|
||||
while (e2.hasNext()) {
|
||||
List<Tuple> list= e2.next();
|
||||
int size= list.size();
|
||||
for (int i= 0; i < size; i++) {
|
||||
CProjectionAnnotation annotation= ((Tuple) list.get(i)).annotation;
|
||||
CProjectionAnnotation annotation= list.get(i).annotation;
|
||||
if (DEBUG) System.out.println("DefaultCFoldingStructureProvider.update() deleted annotation " + annotation); //$NON-NLS-1$
|
||||
deletions.add(annotation);
|
||||
}
|
||||
|
@ -1109,9 +1107,9 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
List<CProjectionAnnotation> newDeletions= new ArrayList<CProjectionAnnotation>();
|
||||
List<CProjectionAnnotation> newChanges= new ArrayList<CProjectionAnnotation>();
|
||||
|
||||
Iterator deletionIterator= deletions.iterator();
|
||||
Iterator<CProjectionAnnotation> deletionIterator= deletions.iterator();
|
||||
while (deletionIterator.hasNext()) {
|
||||
CProjectionAnnotation deleted= (CProjectionAnnotation) deletionIterator.next();
|
||||
CProjectionAnnotation deleted= deletionIterator.next();
|
||||
Position deletedPosition= ctx.getModel().getPosition(deleted);
|
||||
if (deletedPosition == null || deletedPosition.length < 5)
|
||||
continue;
|
||||
|
@ -1197,7 +1195,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
boolean includeCModel= ctx.fAST != null || !(fPreprocessorBranchFoldingEnabled || fStatementsFoldingEnabled);
|
||||
Map<Object, List<Tuple>> map= new HashMap<Object, List<Tuple>>();
|
||||
ProjectionAnnotationModel model= ctx.getModel();
|
||||
Iterator e= model.getAnnotationIterator();
|
||||
Iterator<?> e= model.getAnnotationIterator();
|
||||
while (e.hasNext()) {
|
||||
Object annotation= e.next();
|
||||
if (annotation instanceof CProjectionAnnotation) {
|
||||
|
@ -1366,8 +1364,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
|
||||
IASTPreprocessorStatement[] preprocStmts = ast.getAllPreprocessorStatements();
|
||||
|
||||
for (int i = 0; i < preprocStmts.length; i++) {
|
||||
IASTPreprocessorStatement statement = preprocStmts[i];
|
||||
for (IASTPreprocessorStatement statement : preprocStmts) {
|
||||
if (!statement.isPartOfTranslationUnitFile()) {
|
||||
// preprocessor directive is from a different file
|
||||
continue;
|
||||
|
@ -1418,8 +1415,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
}
|
||||
|
||||
Map<String, Counter> keys= new HashMap<String, Counter>(branches.size());
|
||||
for (Iterator<Branch> iter = branches.iterator(); iter.hasNext(); ) {
|
||||
Branch branch= iter.next();
|
||||
for (Branch branch : branches) {
|
||||
IRegion aligned = alignRegion(branch, ctx, branch.fInclusive);
|
||||
if (aligned != null) {
|
||||
Position alignedPos= new Position(aligned.getOffset(), aligned.getLength());
|
||||
|
@ -1468,8 +1464,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
int endLine = -1;
|
||||
List<Tuple> comments= new ArrayList<Tuple>();
|
||||
ModifiableRegion commentRange = new ModifiableRegion();
|
||||
for (int i = 0; i < partitions.length; i++) {
|
||||
ITypedRegion partition = partitions[i];
|
||||
for (ITypedRegion partition : partitions) {
|
||||
boolean singleLine= false;
|
||||
if (ICPartitions.C_MULTI_LINE_COMMENT.equals(partition.getType())
|
||||
|| ICPartitions.C_MULTI_LINE_DOC_COMMENT.equals(partition.getType())) {
|
||||
|
@ -1550,9 +1545,7 @@ public class DefaultCFoldingStructureProvider implements ICFoldingStructureProvi
|
|||
}
|
||||
|
||||
private void computeFoldingStructure(ICElement[] elements, FoldingStructureComputationContext ctx) throws CModelException {
|
||||
for (int i= 0; i < elements.length; i++) {
|
||||
ICElement element= elements[i];
|
||||
|
||||
for (ICElement element : elements) {
|
||||
computeFoldingStructure(element, ctx);
|
||||
|
||||
if (element instanceof IParent) {
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.eclipse.jface.text.BadLocationException;
|
|||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.osgi.util.NLS;
|
||||
import org.eclipse.ui.texteditor.spelling.SpellingProblem;
|
||||
|
||||
import org.eclipse.cdt.ui.text.ICCompletionProposal;
|
||||
|
@ -81,9 +82,9 @@ public class CSpellingProblem extends SpellingProblem {
|
|||
@Override
|
||||
public String getMessage() {
|
||||
if (isSentenceStart() && isDictionaryMatch())
|
||||
return Messages.bind(Messages.Spelling_error_case_label, fSpellEvent.getWord());
|
||||
return NLS.bind(Messages.Spelling_error_case_label, fSpellEvent.getWord());
|
||||
|
||||
return Messages.bind(Messages.Spelling_error_label, fSpellEvent.getWord());
|
||||
return NLS.bind(Messages.Spelling_error_label, fSpellEvent.getWord());
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -97,7 +98,7 @@ public class CSpellingProblem extends SpellingProblem {
|
|||
|
||||
final int threshold= SpellingPreferences.spellingProposalThreshold();
|
||||
int size= 0;
|
||||
List proposals= null;
|
||||
List<RankedWordProposal> proposals= null;
|
||||
|
||||
RankedWordProposal proposal= null;
|
||||
ICCompletionProposal[] result= null;
|
||||
|
@ -118,7 +119,7 @@ public class CSpellingProblem extends SpellingProblem {
|
|||
arguments, getOffset(), getLength(), context,
|
||||
engine.getLocale()) };
|
||||
} else {
|
||||
proposals= new ArrayList(checker.getProposals(arguments[0],
|
||||
proposals= new ArrayList<RankedWordProposal>(checker.getProposals(arguments[0],
|
||||
sentence));
|
||||
size= proposals.size();
|
||||
|
||||
|
@ -132,7 +133,7 @@ public class CSpellingProblem extends SpellingProblem {
|
|||
result= new ICCompletionProposal[size + (extendable ? 3 : 2)];
|
||||
|
||||
for (index= 0; index < size; index++) {
|
||||
proposal= (RankedWordProposal) proposals.get(index);
|
||||
proposal= proposals.get(index);
|
||||
result[index]= new WordCorrectionProposal(proposal
|
||||
.getText(), arguments, getOffset(), getLength(),
|
||||
context, proposal.getRank());
|
||||
|
|
|
@ -46,7 +46,7 @@ public class SpellCheckIterator implements ISpellCheckIterator {
|
|||
protected int fPrevious= 0;
|
||||
|
||||
/** The sentence breaks */
|
||||
private final LinkedList fSentenceBreaks= new LinkedList();
|
||||
private final LinkedList<Integer> fSentenceBreaks= new LinkedList<Integer>();
|
||||
|
||||
/** Does the current word start a sentence? */
|
||||
private boolean fStartsSentence= false;
|
||||
|
@ -174,8 +174,8 @@ public class SpellCheckIterator implements ISpellCheckIterator {
|
|||
*/
|
||||
protected final boolean isToken(final String token, final String[] tags) {
|
||||
if (token != null) {
|
||||
for (int index= 0; index < tags.length; index++) {
|
||||
if (token.equals(tags[index]))
|
||||
for (String tag : tags) {
|
||||
if (token.equals(tag))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -211,8 +211,8 @@ public class SpellCheckIterator implements ISpellCheckIterator {
|
|||
* <code>false</code> otherwise
|
||||
*/
|
||||
protected final boolean isUrlToken(final int begin) {
|
||||
for (int index= 0; index < DefaultSpellChecker.URL_PREFIXES.length; index++) {
|
||||
if (fContent.startsWith(DefaultSpellChecker.URL_PREFIXES[index], begin))
|
||||
for (String element : DefaultSpellChecker.URL_PREFIXES) {
|
||||
if (fContent.startsWith(element, begin))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -237,7 +237,7 @@ public class SpellCheckIterator implements ISpellCheckIterator {
|
|||
/*
|
||||
* @see java.util.Iterator#next()
|
||||
*/
|
||||
public Object next() {
|
||||
public String next() {
|
||||
String token= nextToken();
|
||||
while (token == null && fSuccessor != BreakIterator.DONE)
|
||||
token= nextToken();
|
||||
|
@ -261,7 +261,7 @@ public class SpellCheckIterator implements ISpellCheckIterator {
|
|||
* @return the next sentence break
|
||||
*/
|
||||
protected final int nextSentence() {
|
||||
return ((Integer) fSentenceBreaks.getFirst()).intValue();
|
||||
return fSentenceBreaks.getFirst().intValue();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -46,7 +46,7 @@ public class SpellingEngineDispatcher implements ISpellingEngine {
|
|||
private static final IContentType CXXSOURCE_CONTENT_TYPE= Platform.getContentTypeManager().getContentType(CCorePlugin.CONTENT_TYPE_CXXSOURCE);
|
||||
|
||||
/** Available spelling engines by content type */
|
||||
private Map fEngines= new HashMap();
|
||||
private Map<IContentType, SpellingEngine> fEngines= new HashMap<IContentType, SpellingEngine>();
|
||||
private ISpellingEngine defaultEngine;
|
||||
|
||||
/**
|
||||
|
@ -96,7 +96,7 @@ public class SpellingEngineDispatcher implements ISpellingEngine {
|
|||
return null;
|
||||
|
||||
if (fEngines.containsKey(contentType))
|
||||
return (ISpellingEngine) fEngines.get(contentType);
|
||||
return fEngines.get(contentType);
|
||||
|
||||
return getEngine(contentType.getBaseType());
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ package org.eclipse.cdt.internal.ui.text.spelling;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
@ -22,6 +21,8 @@ import org.eclipse.jface.text.BadLocationException;
|
|||
import org.eclipse.jface.text.DocumentEvent;
|
||||
import org.eclipse.jface.text.IDocument;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.contentassist.IContextInformation;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
import org.eclipse.cdt.ui.text.contentassist.ContentAssistInvocationContext;
|
||||
|
@ -45,7 +46,7 @@ public final class WordCompletionProposalComputer implements ICompletionProposal
|
|||
/*
|
||||
* @see org.eclipse.jface.text.contentassist.ICompletionProposalComputer#computeCompletionProposals(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
if (contributes()) {
|
||||
try {
|
||||
IDocument document= context.getDocument();
|
||||
|
@ -66,11 +67,11 @@ public final class WordCompletionProposalComputer implements ICompletionProposal
|
|||
final ISpellChecker checker= engine.getSpellChecker();
|
||||
|
||||
if (checker != null) {
|
||||
final List proposals= new ArrayList(checker.getProposals(candidate, Character.isUpperCase(candidate.charAt(0))));
|
||||
final List result= new ArrayList(proposals.size());
|
||||
final List<RankedWordProposal> proposals= new ArrayList<RankedWordProposal>(checker.getProposals(candidate, Character.isUpperCase(candidate.charAt(0))));
|
||||
final List<ICompletionProposal> result= new ArrayList<ICompletionProposal>(proposals.size());
|
||||
|
||||
for (Iterator it= proposals.iterator(); it.hasNext();) {
|
||||
RankedWordProposal word= (RankedWordProposal) it.next();
|
||||
for (Object element : proposals) {
|
||||
RankedWordProposal word= (RankedWordProposal) element;
|
||||
String text= word.getText();
|
||||
if (text.startsWith(candidate))
|
||||
word.setRank(word.getRank() + PREFIX_RANK_SHIFT);
|
||||
|
@ -95,7 +96,7 @@ public final class WordCompletionProposalComputer implements ICompletionProposal
|
|||
CUIPlugin.log(exception);
|
||||
}
|
||||
}
|
||||
return Collections.EMPTY_LIST;
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
private boolean contributes() {
|
||||
|
@ -105,8 +106,8 @@ public final class WordCompletionProposalComputer implements ICompletionProposal
|
|||
/*
|
||||
* @see org.eclipse.jface.text.contentassist.ICompletionProposalComputer#computeContextInformation(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public List computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Collections.EMPTY_LIST;
|
||||
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -46,7 +46,7 @@ public class WordQuickFixProcessor implements IQuickFixProcessor {
|
|||
final int threshold= SpellingPreferences.spellingProposalThreshold();
|
||||
|
||||
int size= 0;
|
||||
List proposals= null;
|
||||
List<RankedWordProposal> proposals= null;
|
||||
String[] arguments= null;
|
||||
|
||||
IProblemLocation location= null;
|
||||
|
@ -73,7 +73,7 @@ public class WordQuickFixProcessor implements IQuickFixProcessor {
|
|||
if ((sentence && match) && !fixed) {
|
||||
result= new ICCompletionProposal[] { new ChangeCaseProposal(arguments, location.getOffset(), location.getLength(), context, engine.getLocale())};
|
||||
} else {
|
||||
proposals= new ArrayList(checker.getProposals(arguments[0], sentence));
|
||||
proposals= new ArrayList<RankedWordProposal>(checker.getProposals(arguments[0], sentence));
|
||||
size= proposals.size();
|
||||
|
||||
if (threshold > 0 && size > threshold) {
|
||||
|
@ -86,7 +86,7 @@ public class WordQuickFixProcessor implements IQuickFixProcessor {
|
|||
result= new ICCompletionProposal[size + (extendable ? 3 : 2)];
|
||||
|
||||
for (index= 0; index < size; index++) {
|
||||
proposal= (RankedWordProposal)proposals.get(index);
|
||||
proposal= proposals.get(index);
|
||||
result[index]= new WordCorrectionProposal(proposal.getText(), arguments, location.getOffset(), location.getLength(), context, proposal.getRank());
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ import java.io.FileNotFoundException;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Serializable;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
|
@ -33,6 +34,7 @@ import java.util.Set;
|
|||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.osgi.util.NLS;
|
||||
|
||||
import org.eclipse.cdt.ui.CUIPlugin;
|
||||
|
||||
|
@ -59,7 +61,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
private IPhoneticDistanceAlgorithm fDistanceAlgorithm= new DefaultPhoneticDistanceAlgorithm();
|
||||
|
||||
/** The mapping from phonetic hashes to word lists */
|
||||
private final Map fHashBuckets= new HashMap(HASH_CAPACITY);
|
||||
private final Map<String, Serializable> fHashBuckets= new HashMap<String, Serializable>(HASH_CAPACITY);
|
||||
|
||||
/** The phonetic hash provider */
|
||||
private IPhoneticHashProvider fHashProvider= new DefaultPhoneticHashProvider();
|
||||
|
@ -100,17 +102,17 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
* Array of close hashes to find the matches
|
||||
* @return Set of ranked words with bounded distance to the specified word
|
||||
*/
|
||||
protected final Set getCandidates(final String word, final boolean sentence, final ArrayList hashs) {
|
||||
protected final Set<RankedWordProposal> getCandidates(final String word, final boolean sentence, final ArrayList<String> hashs) {
|
||||
|
||||
int distance= 0;
|
||||
String hash= null;
|
||||
|
||||
final StringBuffer buffer= new StringBuffer(BUFFER_CAPACITY);
|
||||
final HashSet result= new HashSet(BUCKET_CAPACITY * hashs.size());
|
||||
final HashSet<RankedWordProposal> result= new HashSet<RankedWordProposal>(BUCKET_CAPACITY * hashs.size());
|
||||
|
||||
for (int index= 0; index < hashs.size(); index++) {
|
||||
|
||||
hash= (String)hashs.get(index);
|
||||
hash= hashs.get(index);
|
||||
|
||||
final Object candidates= getCandidates(hash);
|
||||
if (candidates == null)
|
||||
|
@ -128,10 +130,11 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
continue;
|
||||
}
|
||||
|
||||
final ArrayList candidateList= (ArrayList)candidates;
|
||||
@SuppressWarnings("unchecked")
|
||||
final ArrayList<String> candidateList= (ArrayList<String>)candidates;
|
||||
for (int offset= 0; offset < candidateList.size(); offset++) {
|
||||
|
||||
String candidate= (String)candidateList.get(offset);
|
||||
String candidate= candidateList.get(offset);
|
||||
distance= fDistanceAlgorithm.getDistance(word, candidate);
|
||||
|
||||
if (distance < DISTANCE_THRESHOLD) {
|
||||
|
@ -162,7 +165,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
* Set of ranked words with smallest possible distance to the
|
||||
* specified word
|
||||
*/
|
||||
protected final void getCandidates(final String word, final boolean sentence, final Set result) {
|
||||
protected final void getCandidates(final String word, final boolean sentence, final Set<RankedWordProposal> result) {
|
||||
|
||||
int distance= 0;
|
||||
int minimum= Integer.MAX_VALUE;
|
||||
|
@ -182,11 +185,12 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
return;
|
||||
}
|
||||
|
||||
final ArrayList candidateList= (ArrayList)candidates;
|
||||
final ArrayList matches= new ArrayList(candidateList.size());
|
||||
@SuppressWarnings("unchecked")
|
||||
final ArrayList<String> candidateList= (ArrayList<String>)candidates;
|
||||
final ArrayList<RankedWordProposal> matches= new ArrayList<RankedWordProposal>(candidateList.size());
|
||||
|
||||
for (int index= 0; index < candidateList.size(); index++) {
|
||||
String candidate= (String)candidateList.get(index);
|
||||
String candidate= candidateList.get(index);
|
||||
distance= fDistanceAlgorithm.getDistance(word, candidate);
|
||||
|
||||
if (distance <= minimum) {
|
||||
|
@ -238,7 +242,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.text.spelling.engine.ISpellDictionary#getProposals(java.lang.String,boolean)
|
||||
*/
|
||||
public Set getProposals(final String word, final boolean sentence) {
|
||||
public Set<RankedWordProposal> getProposals(final String word, final boolean sentence) {
|
||||
|
||||
try {
|
||||
|
||||
|
@ -257,10 +261,10 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
final String hash= fHashProvider.getHash(word);
|
||||
final char[] mutators= fHashProvider.getMutators();
|
||||
|
||||
final ArrayList neighborhood= new ArrayList((word.length() + 1) * (mutators.length + 2));
|
||||
final ArrayList<String> neighborhood= new ArrayList<String>((word.length() + 1) * (mutators.length + 2));
|
||||
neighborhood.add(hash);
|
||||
|
||||
final Set candidates= getCandidates(word, sentence, neighborhood);
|
||||
final Set<RankedWordProposal> candidates= getCandidates(word, sentence, neighborhood);
|
||||
neighborhood.clear();
|
||||
|
||||
char previous= 0;
|
||||
|
@ -288,9 +292,9 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
|
||||
while (true) {
|
||||
|
||||
for (int index= 0; index < mutators.length; index++) {
|
||||
for (char mutator : mutators) {
|
||||
|
||||
characters[offset]= mutators[index];
|
||||
characters[offset]= mutator;
|
||||
neighborhood.add(fHashProvider.getHash(new String(characters)));
|
||||
}
|
||||
|
||||
|
@ -307,9 +311,9 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
for (int index= 0; index < word.length(); index++) {
|
||||
|
||||
mutated= characters[index];
|
||||
for (int mutator= 0; mutator < mutators.length; mutator++) {
|
||||
for (char mutator2 : mutators) {
|
||||
|
||||
characters[index]= mutators[mutator];
|
||||
characters[index]= mutator2;
|
||||
neighborhood.add(fHashProvider.getHash(new String(characters)));
|
||||
}
|
||||
characters[index]= mutated;
|
||||
|
@ -338,7 +342,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
}
|
||||
|
||||
neighborhood.remove(hash);
|
||||
final Set matches= getCandidates(word, sentence, neighborhood);
|
||||
final Set<RankedWordProposal> matches= getCandidates(word, sentence, neighborhood);
|
||||
|
||||
if (matches.size() == 0 && candidates.size() == 0)
|
||||
getCandidates(word, sentence, candidates);
|
||||
|
@ -371,9 +375,11 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
if (bucket == null) {
|
||||
fHashBuckets.put(hash, word);
|
||||
} else if (bucket instanceof ArrayList) {
|
||||
((ArrayList)bucket).add(word);
|
||||
@SuppressWarnings("unchecked")
|
||||
final ArrayList<Object> bucket2 = (ArrayList)bucket;
|
||||
bucket2.add(word);
|
||||
} else {
|
||||
ArrayList list= new ArrayList(BUCKET_CAPACITY);
|
||||
ArrayList<Object> list= new ArrayList<Object>(BUCKET_CAPACITY);
|
||||
list.add(bucket);
|
||||
list.add(word);
|
||||
fHashBuckets.put(hash, list);
|
||||
|
@ -408,7 +414,8 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
return true;
|
||||
return false;
|
||||
}
|
||||
final ArrayList candidateList= (ArrayList)candidates;
|
||||
@SuppressWarnings("unchecked")
|
||||
final ArrayList<String> candidateList= (ArrayList)candidates;
|
||||
if (candidateList.contains(word) || candidateList.contains(word.toLowerCase()))
|
||||
return true;
|
||||
|
||||
|
@ -492,7 +499,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
word= reader.readLine();
|
||||
decoder.onMalformedInput(CodingErrorAction.REPORT);
|
||||
|
||||
String message= Messages.bind(Messages.AbstractSpellingDictionary_encodingError,
|
||||
String message= NLS.bind(Messages.AbstractSpellingDictionary_encodingError,
|
||||
new String[] { word, decoder.replacement(), url.toString() });
|
||||
IStatus status= new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, IStatus.OK, message, ex);
|
||||
CUIPlugin.log(status);
|
||||
|
@ -520,7 +527,7 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
}
|
||||
} catch (IOException exception) {
|
||||
if (line > 0) {
|
||||
String message= Messages.bind(Messages.AbstractSpellingDictionary_encodingError,
|
||||
String message= NLS.bind(Messages.AbstractSpellingDictionary_encodingError,
|
||||
String.valueOf(line), url.toString());
|
||||
IStatus status= new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, IStatus.OK, message, exception);
|
||||
CUIPlugin.log(status);
|
||||
|
@ -543,11 +550,11 @@ public abstract class AbstractSpellDictionary implements ISpellDictionary {
|
|||
* Compacts the dictionary.
|
||||
*/
|
||||
private void compact() {
|
||||
Iterator iter= fHashBuckets.values().iterator();
|
||||
Iterator<Serializable> iter= fHashBuckets.values().iterator();
|
||||
while (iter.hasNext()) {
|
||||
Object element= iter.next();
|
||||
if (element instanceof ArrayList)
|
||||
((ArrayList)element).trimToSize();
|
||||
((ArrayList<?>)element).trimToSize();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -142,9 +142,9 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
return false;
|
||||
|
||||
final String checkable= new String(token, offset, length);
|
||||
for (int index= 0; index < candidates.length; index++) {
|
||||
for (String candidate : candidates) {
|
||||
|
||||
if (candidates[index].equals(checkable))
|
||||
if (candidate.equals(checkable))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -162,9 +162,9 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
* candidates, <code>false</code> otherwise.
|
||||
*/
|
||||
protected static final boolean hasOneOf(final String[] candidates, final String token) {
|
||||
for (int index= 0; index < candidates.length; index++) {
|
||||
for (String candidate : candidates) {
|
||||
|
||||
if (token.indexOf(candidates[index]) >= 0)
|
||||
if (token.indexOf(candidate) >= 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -186,8 +186,8 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
protected static final boolean hasVowel(final char[] token, final int offset, final int length) {
|
||||
if (offset >= 0 && offset < length) {
|
||||
final char character= token[offset];
|
||||
for (int index= 0; index < VOWEL_CHARACTERS.length; index++) {
|
||||
if (VOWEL_CHARACTERS[index] == character)
|
||||
for (char element : VOWEL_CHARACTERS) {
|
||||
if (element == character)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -291,12 +291,11 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
else
|
||||
buffer.append('X');
|
||||
offset += 3;
|
||||
break;
|
||||
} else {
|
||||
buffer.append('K');
|
||||
offset += 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (hasOneOf(meta24, hashable, offset, 2)) {
|
||||
buffer.append('K');
|
||||
|
@ -324,12 +323,11 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
if (hasOneOf(meta31, hashable, offset + 2, 1)) {
|
||||
buffer.append('J');
|
||||
offset += 3;
|
||||
break;
|
||||
} else {
|
||||
buffer.append("TK"); //$NON-NLS-1$
|
||||
offset += 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
buffer.append('T');
|
||||
if (hasOneOf(meta32, hashable, offset, 2)) {
|
||||
|
@ -364,7 +362,6 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
}
|
||||
if ((offset > 1) && hasOneOf(meta33, hashable, offset - 2, 1) || ((offset > 2) && hasOneOf(meta34, hashable, offset - 3, 1)) || ((offset > 3) && hasOneOf(meta35, hashable, offset - 4, 1))) {
|
||||
offset += 2;
|
||||
break;
|
||||
} else {
|
||||
if ((offset > 2) && (hashable[offset - 1] == 'U') && hasOneOf(meta36, hashable, offset - 3, 1)) {
|
||||
buffer.append('F');
|
||||
|
@ -373,8 +370,8 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
buffer.append('K');
|
||||
}
|
||||
offset += 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (hashable[offset + 1] == 'N') {
|
||||
if ((offset == 1) && hasVowel(hashable, 0, hashable.length) && !has95) {
|
||||
|
@ -553,7 +550,7 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
break;
|
||||
}
|
||||
if (hasOneOf(meta74, hashable, offset, 2)) {
|
||||
if (hashable[offset + 2] == 'H')
|
||||
if (hashable[offset + 2] == 'H') {
|
||||
if (hasOneOf(meta75, hashable, offset + 3, 2)) {
|
||||
if (hasOneOf(meta76, hashable, offset + 3, 2)) {
|
||||
buffer.append("X"); //$NON-NLS-1$
|
||||
|
@ -561,12 +558,12 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
buffer.append("SK"); //$NON-NLS-1$
|
||||
}
|
||||
offset += 3;
|
||||
break;
|
||||
} else {
|
||||
buffer.append('X');
|
||||
offset += 3;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (hasOneOf(meta77, hashable, offset + 2, 1)) {
|
||||
buffer.append('S');
|
||||
offset += 3;
|
||||
|
@ -650,9 +647,8 @@ public final class DefaultPhoneticHashProvider implements IPhoneticHashProvider
|
|||
buffer.append('J');
|
||||
offset += 2;
|
||||
break;
|
||||
} else {
|
||||
buffer.append('S');
|
||||
}
|
||||
buffer.append('S');
|
||||
if (hashable[offset + 1] == 'Z')
|
||||
offset += 2;
|
||||
else
|
||||
|
|
|
@ -101,8 +101,8 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
* otherwise
|
||||
*/
|
||||
protected static boolean isUrl(final String word) {
|
||||
for (int index= 0; index < URL_PREFIXES.length; index++) {
|
||||
if (word.startsWith(URL_PREFIXES[index]))
|
||||
for (String element : URL_PREFIXES) {
|
||||
if (word.startsWith(element))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -112,18 +112,18 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
* The dictionaries to use for spell checking. Synchronized to avoid
|
||||
* concurrent modifications.
|
||||
*/
|
||||
private final Set fDictionaries= Collections.synchronizedSet(new HashSet());
|
||||
private final Set<ISpellDictionary> fDictionaries= Collections.synchronizedSet(new HashSet<ISpellDictionary>());
|
||||
|
||||
/**
|
||||
* The words to be ignored. Synchronized to avoid concurrent modifications.
|
||||
*/
|
||||
private final Set fIgnored= Collections.synchronizedSet(new HashSet());
|
||||
private final Set<String> fIgnored= Collections.synchronizedSet(new HashSet<String>());
|
||||
|
||||
/**
|
||||
* The spell event listeners. Synchronized to avoid concurrent
|
||||
* modifications.
|
||||
*/
|
||||
private final Set fListeners= Collections.synchronizedSet(new HashSet());
|
||||
private final Set<ISpellEventListener> fListeners= Collections.synchronizedSet(new HashSet<ISpellEventListener>());
|
||||
|
||||
/**
|
||||
* The locale of this checker.
|
||||
|
@ -166,14 +166,14 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
// synchronizing might not be needed here since acceptWords is
|
||||
// a read-only access and only called in the same thread as
|
||||
// the modifying methods add/checkWord (?)
|
||||
Set copy;
|
||||
Set<ISpellDictionary> copy;
|
||||
synchronized (fDictionaries) {
|
||||
copy= new HashSet(fDictionaries);
|
||||
copy= new HashSet<ISpellDictionary>(fDictionaries);
|
||||
}
|
||||
|
||||
ISpellDictionary dictionary= null;
|
||||
for (final Iterator iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= (ISpellDictionary) iterator.next();
|
||||
for (final Iterator<ISpellDictionary> iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= iterator.next();
|
||||
if (dictionary.acceptsWords())
|
||||
return true;
|
||||
}
|
||||
|
@ -185,14 +185,13 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
*/
|
||||
public void addWord(final String word) {
|
||||
// synchronizing is necessary as this is a write access
|
||||
Set copy;
|
||||
Set<ISpellDictionary> copy;
|
||||
synchronized (fDictionaries) {
|
||||
copy= new HashSet(fDictionaries);
|
||||
copy= new HashSet<ISpellDictionary>(fDictionaries);
|
||||
}
|
||||
|
||||
final String addable= word.toLowerCase();
|
||||
for (final Iterator iterator= copy.iterator(); iterator.hasNext();) {
|
||||
ISpellDictionary dictionary= (ISpellDictionary) iterator.next();
|
||||
for (ISpellDictionary dictionary : copy) {
|
||||
if (dictionary.acceptsWords())
|
||||
dictionary.addWord(addable);
|
||||
}
|
||||
|
@ -220,15 +219,15 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
|
||||
iterator.setIgnoreSingleLetters(ignoreSingleLetters);
|
||||
|
||||
Iterator iter= fDictionaries.iterator();
|
||||
Iterator<ISpellDictionary> iter= fDictionaries.iterator();
|
||||
while (iter.hasNext())
|
||||
((ISpellDictionary) iter.next()).setStripNonLetters(ignoreNonLetters);
|
||||
iter.next().setStripNonLetters(ignoreNonLetters);
|
||||
|
||||
String word= null;
|
||||
boolean starts= false;
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
word= (String) iterator.next();
|
||||
word= iterator.next();
|
||||
if (word != null) {
|
||||
// synchronizing is necessary as this is called inside the reconciler
|
||||
if (!fIgnored.contains(word)) {
|
||||
|
@ -258,32 +257,32 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
*/
|
||||
protected final void fireEvent(final ISpellEvent event) {
|
||||
// synchronizing is necessary as this is called from execute
|
||||
Set copy;
|
||||
Set<ISpellEventListener> copy;
|
||||
synchronized (fListeners) {
|
||||
copy= new HashSet(fListeners);
|
||||
copy= new HashSet<ISpellEventListener>(fListeners);
|
||||
}
|
||||
for (final Iterator iterator= copy.iterator(); iterator.hasNext();) {
|
||||
((ISpellEventListener)iterator.next()).handle(event);
|
||||
for (ISpellEventListener spellEventListener : copy) {
|
||||
spellEventListener.handle(event);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* @see org.eclipse.spelling.done.ISpellChecker#getProposals(java.lang.String,boolean)
|
||||
*/
|
||||
public Set getProposals(final String word, final boolean sentence) {
|
||||
public Set<RankedWordProposal> getProposals(final String word, final boolean sentence) {
|
||||
// synchronizing might not be needed here since getProposals is
|
||||
// a read-only access and only called in the same thread as
|
||||
// the modifying methods add/removeDictionary (?)
|
||||
Set copy;
|
||||
Set<ISpellDictionary> copy;
|
||||
synchronized (fDictionaries) {
|
||||
copy= new HashSet(fDictionaries);
|
||||
copy= new HashSet<ISpellDictionary>(fDictionaries);
|
||||
}
|
||||
|
||||
ISpellDictionary dictionary= null;
|
||||
final HashSet proposals= new HashSet();
|
||||
final HashSet<RankedWordProposal> proposals= new HashSet<RankedWordProposal>();
|
||||
|
||||
for (final Iterator iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= (ISpellDictionary)iterator.next();
|
||||
for (final Iterator<ISpellDictionary> iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= iterator.next();
|
||||
proposals.addAll(dictionary.getProposals(word, sentence));
|
||||
}
|
||||
return proposals;
|
||||
|
@ -302,17 +301,17 @@ public class DefaultSpellChecker implements ISpellChecker {
|
|||
*/
|
||||
public final boolean isCorrect(final String word) {
|
||||
// synchronizing is necessary as this is called from execute
|
||||
Set copy;
|
||||
Set<ISpellDictionary> copy;
|
||||
synchronized (fDictionaries) {
|
||||
copy= new HashSet(fDictionaries);
|
||||
copy= new HashSet<ISpellDictionary>(fDictionaries);
|
||||
}
|
||||
|
||||
if (fIgnored.contains(word.toLowerCase()))
|
||||
return true;
|
||||
|
||||
ISpellDictionary dictionary= null;
|
||||
for (final Iterator iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= (ISpellDictionary) iterator.next();
|
||||
for (final Iterator<ISpellDictionary> iterator= copy.iterator(); iterator.hasNext();) {
|
||||
dictionary= iterator.next();
|
||||
if (dictionary.isCorrect(word))
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ import java.util.Iterator;
|
|||
/**
|
||||
* Interface for iterators used for spell checking.
|
||||
*/
|
||||
public interface ISpellCheckIterator extends Iterator {
|
||||
public interface ISpellCheckIterator extends Iterator<String> {
|
||||
/**
|
||||
* Returns the begin index (inclusive) of the current word.
|
||||
*
|
||||
|
|
|
@ -71,7 +71,7 @@ public interface ISpellChecker {
|
|||
* sentence, <code>false</code> otherwise
|
||||
* @return Set of ranked proposals for the word
|
||||
*/
|
||||
Set getProposals(String word, boolean sentence);
|
||||
Set<RankedWordProposal> getProposals(String word, boolean sentence);
|
||||
|
||||
/**
|
||||
* Ignores the specified word until calling <code>checkWord(String)</code>.
|
||||
|
|
|
@ -40,7 +40,7 @@ public interface ISpellDictionary {
|
|||
* <code>false</code> otherwise
|
||||
* @return Array of ranked word proposals
|
||||
*/
|
||||
public Set getProposals(String word, boolean sentence);
|
||||
public Set<RankedWordProposal> getProposals(String word, boolean sentence);
|
||||
|
||||
/**
|
||||
* Is the specified word correctly spelled?
|
||||
|
|
|
@ -38,7 +38,7 @@ public interface ISpellEvent {
|
|||
*
|
||||
* @return Array of proposals for the word
|
||||
*/
|
||||
public Set getProposals();
|
||||
public Set<RankedWordProposal> getProposals();
|
||||
|
||||
/**
|
||||
* Returns the incorrectly spelled word.
|
||||
|
|
|
@ -14,7 +14,6 @@ package org.eclipse.cdt.internal.ui.text.spelling.engine;
|
|||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.net.URL;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
|
@ -53,7 +52,7 @@ public class PersistentSpellDictionary extends AbstractSpellDictionary {
|
|||
if (isCorrect(word))
|
||||
return;
|
||||
|
||||
OutputStreamWriter writer= null;
|
||||
FileOutputStream fileStream= null;
|
||||
try {
|
||||
Charset charset= Charset.forName(getEncoding());
|
||||
ByteBuffer byteBuffer= charset.encode(word + "\n"); //$NON-NLS-1$
|
||||
|
@ -66,7 +65,7 @@ public class PersistentSpellDictionary extends AbstractSpellDictionary {
|
|||
byteBuffer.get(byteArray);
|
||||
}
|
||||
|
||||
FileOutputStream fileStream= new FileOutputStream(fLocation.getPath(), true);
|
||||
fileStream= new FileOutputStream(fLocation.getPath(), true);
|
||||
|
||||
// Encoding UTF-16 charset writes a BOM. In which case we need to cut it away if the file isn't empty
|
||||
int bomCutSize= 0;
|
||||
|
@ -79,8 +78,8 @@ public class PersistentSpellDictionary extends AbstractSpellDictionary {
|
|||
return;
|
||||
} finally {
|
||||
try {
|
||||
if (writer != null)
|
||||
writer.close();
|
||||
if (fileStream != null)
|
||||
fileStream.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ package org.eclipse.cdt.internal.ui.text.spelling.engine;
|
|||
/**
|
||||
* Ranked word proposal for quick fix and content assist.
|
||||
*/
|
||||
public class RankedWordProposal implements Comparable {
|
||||
public class RankedWordProposal implements Comparable<RankedWordProposal> {
|
||||
/** The word rank */
|
||||
private int fRank;
|
||||
|
||||
|
@ -36,9 +36,8 @@ public class RankedWordProposal implements Comparable {
|
|||
/*
|
||||
* @see java.lang.Comparable#compareTo(java.lang.Object)
|
||||
*/
|
||||
public final int compareTo(Object object) {
|
||||
public final int compareTo(RankedWordProposal word) {
|
||||
|
||||
final RankedWordProposal word= (RankedWordProposal)object;
|
||||
final int rank= word.getRank();
|
||||
|
||||
if (fRank < rank)
|
||||
|
|
|
@ -74,7 +74,7 @@ public class SpellEvent implements ISpellEvent {
|
|||
/*
|
||||
* @see org.eclipse.cdt.internal.ui.text.spelling.engine.ISpellEvent#getProposals()
|
||||
*/
|
||||
public final Set getProposals() {
|
||||
public final Set<RankedWordProposal> getProposals() {
|
||||
return fChecker.getProposals(fWord, fSentence);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@ package org.eclipse.cdt.internal.ui.text.template;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
@ -28,6 +27,7 @@ import org.eclipse.jface.text.IRegion;
|
|||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.Position;
|
||||
import org.eclipse.jface.text.Region;
|
||||
import org.eclipse.jface.text.contentassist.ICompletionProposal;
|
||||
import org.eclipse.jface.text.templates.GlobalTemplateVariables;
|
||||
import org.eclipse.jface.text.templates.Template;
|
||||
import org.eclipse.jface.text.templates.TemplateContext;
|
||||
|
@ -58,9 +58,9 @@ public class TemplateEngine {
|
|||
/** The context type. */
|
||||
private TemplateContextType fContextType;
|
||||
/** The result proposals. */
|
||||
private ArrayList fProposals= new ArrayList();
|
||||
private ArrayList<ICompletionProposal> fProposals= new ArrayList<ICompletionProposal>();
|
||||
/** Positions created on the key documents to remove in reset. */
|
||||
private final Map fPositions= new HashMap();
|
||||
private final Map<IDocument, Position> fPositions= new HashMap<IDocument, Position>();
|
||||
|
||||
public class CTemplateProposal extends TemplateProposal implements ICCompletionProposal {
|
||||
|
||||
|
@ -116,10 +116,10 @@ public class TemplateEngine {
|
|||
*/
|
||||
public void reset() {
|
||||
fProposals.clear();
|
||||
for (Iterator it= fPositions.entrySet().iterator(); it.hasNext();) {
|
||||
Entry entry= (Entry) it.next();
|
||||
IDocument doc= (IDocument) entry.getKey();
|
||||
Position position= (Position) entry.getValue();
|
||||
for (Entry<IDocument, Position> entry2 : fPositions.entrySet()) {
|
||||
Entry<IDocument, Position> entry= entry2;
|
||||
IDocument doc= entry.getKey();
|
||||
Position position= entry.getValue();
|
||||
doc.removePosition(position);
|
||||
}
|
||||
fPositions.clear();
|
||||
|
@ -128,7 +128,7 @@ public class TemplateEngine {
|
|||
/**
|
||||
* Returns the array of matching templates.
|
||||
*/
|
||||
public List getResults() {
|
||||
public List<ICompletionProposal> getResults() {
|
||||
//return (TemplateProposal[]) fProposals.toArray(new TemplateProposal[fProposals.size()]);
|
||||
return fProposals;
|
||||
}
|
||||
|
|
|
@ -29,12 +29,9 @@ import org.eclipse.jface.text.templates.TemplateVariableResolver;
|
|||
|
||||
public class TemplateVariableProcessor implements IContentAssistProcessor {
|
||||
|
||||
private static Comparator fgTemplateVariableProposalComparator= new Comparator() {
|
||||
public int compare(Object arg0, Object arg1) {
|
||||
TemplateVariableProposal proposal0= (TemplateVariableProposal) arg0;
|
||||
TemplateVariableProposal proposal1= (TemplateVariableProposal) arg1;
|
||||
|
||||
return proposal0.getDisplayString().compareTo(proposal1.getDisplayString());
|
||||
private static Comparator<TemplateVariableProposal> fgTemplateVariableProposalComparator= new Comparator<TemplateVariableProposal>() {
|
||||
public int compare(TemplateVariableProposal arg0, TemplateVariableProposal arg1) {
|
||||
return arg0.getDisplayString().compareTo(arg1.getDisplayString());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -73,7 +70,7 @@ public class TemplateVariableProcessor implements IContentAssistProcessor {
|
|||
if (fContextType == null)
|
||||
return null;
|
||||
|
||||
List proposals= new ArrayList();
|
||||
List<TemplateVariableProposal> proposals= new ArrayList<TemplateVariableProposal>();
|
||||
|
||||
String text= viewer.getDocument().get();
|
||||
int start= getStart(text, documentOffset);
|
||||
|
@ -101,15 +98,17 @@ public class TemplateVariableProcessor implements IContentAssistProcessor {
|
|||
|
||||
int length= end - offset;
|
||||
|
||||
for (Iterator iterator= fContextType.resolvers(); iterator.hasNext(); ) {
|
||||
TemplateVariableResolver variable= (TemplateVariableResolver) iterator.next();
|
||||
@SuppressWarnings("unchecked")
|
||||
final Iterator<TemplateVariableResolver> resolvers = fContextType.resolvers();
|
||||
while (resolvers.hasNext()) {
|
||||
TemplateVariableResolver variable= resolvers.next();
|
||||
|
||||
if (variable.getType().startsWith(prefix))
|
||||
proposals.add(new TemplateVariableProposal(variable, offset, length, viewer, includeBrace));
|
||||
}
|
||||
|
||||
Collections.sort(proposals, fgTemplateVariableProposalComparator);
|
||||
return (ICompletionProposal[]) proposals.toArray(new ICompletionProposal[proposals.size()]);
|
||||
return proposals.toArray(new ICompletionProposal[proposals.size()]);
|
||||
}
|
||||
|
||||
/* Guesses the start position of the completion */
|
||||
|
|
|
@ -12,8 +12,6 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.text.util;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.IColorManager;
|
||||
import org.eclipse.cdt.internal.ui.text.IColorManagerExtension;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
@ -22,13 +20,16 @@ import org.eclipse.swt.graphics.Color;
|
|||
import org.eclipse.swt.graphics.RGB;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.text.IColorManager;
|
||||
import org.eclipse.cdt.internal.ui.text.IColorManagerExtension;
|
||||
|
||||
/**
|
||||
* CDT color manager.
|
||||
*/
|
||||
public class CColorManager implements IColorManager, IColorManagerExtension {
|
||||
|
||||
protected Map fKeyTable= new HashMap(10);
|
||||
protected Map fDisplayTable= new HashMap(2);
|
||||
protected Map<String, RGB> fKeyTable= new HashMap<String, RGB>(10);
|
||||
protected Map<Display, Map<RGB, Color>> fDisplayTable= new HashMap<Display, Map<RGB, Color>>(2);
|
||||
|
||||
/**
|
||||
* Flag which tells if the colors are automatically disposed when
|
||||
|
@ -59,11 +60,11 @@ public class CColorManager implements IColorManager, IColorManagerExtension {
|
|||
}
|
||||
|
||||
protected void dispose(Display display) {
|
||||
Map colorTable= (Map) fDisplayTable.get(display);
|
||||
Map<RGB, Color> colorTable= fDisplayTable.get(display);
|
||||
if (colorTable != null) {
|
||||
Iterator e= colorTable.values().iterator();
|
||||
Iterator<Color> e= colorTable.values().iterator();
|
||||
while (e.hasNext())
|
||||
((Color) e.next()).dispose();
|
||||
(e.next()).dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,9 +77,9 @@ public class CColorManager implements IColorManager, IColorManagerExtension {
|
|||
return null;
|
||||
|
||||
final Display display= Display.getCurrent();
|
||||
Map colorTable= (Map) fDisplayTable.get(display);
|
||||
Map<RGB, Color> colorTable= fDisplayTable.get(display);
|
||||
if (colorTable == null) {
|
||||
colorTable= new HashMap(10);
|
||||
colorTable= new HashMap<RGB, Color>(10);
|
||||
fDisplayTable.put(display, colorTable);
|
||||
if (fAutoDisposeOnDisplayDispose) {
|
||||
display.disposeExec(new Runnable() {
|
||||
|
@ -89,7 +90,7 @@ public class CColorManager implements IColorManager, IColorManagerExtension {
|
|||
}
|
||||
}
|
||||
|
||||
Color color= (Color) colorTable.get(rgb);
|
||||
Color color= colorTable.get(rgb);
|
||||
if (color == null) {
|
||||
color= new Color(Display.getCurrent(), rgb);
|
||||
colorTable.put(rgb, color);
|
||||
|
@ -114,7 +115,7 @@ public class CColorManager implements IColorManager, IColorManagerExtension {
|
|||
if (key == null)
|
||||
return null;
|
||||
|
||||
RGB rgb= (RGB) fKeyTable.get(key);
|
||||
RGB rgb= fKeyTable.get(key);
|
||||
return getColor(rgb);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ public class THHistoryListAction extends Action {
|
|||
|
||||
private class HistoryListDialog extends StatusDialog {
|
||||
|
||||
private ListDialogField fHistoryList;
|
||||
private ListDialogField<ICElement> fHistoryList;
|
||||
private IStatus fHistoryStatus;
|
||||
private ICElement fResult;
|
||||
|
||||
|
@ -53,22 +53,22 @@ public class THHistoryListAction extends Action {
|
|||
Messages.THHistoryListAction_Remove,
|
||||
};
|
||||
|
||||
IListAdapter adapter= new IListAdapter() {
|
||||
public void customButtonPressed(ListDialogField field, int index) {
|
||||
IListAdapter<ICElement> adapter= new IListAdapter<ICElement>() {
|
||||
public void customButtonPressed(ListDialogField<ICElement> field, int index) {
|
||||
doCustomButtonPressed();
|
||||
}
|
||||
public void selectionChanged(ListDialogField field) {
|
||||
public void selectionChanged(ListDialogField<ICElement> field) {
|
||||
doSelectionChanged();
|
||||
}
|
||||
|
||||
public void doubleClicked(ListDialogField field) {
|
||||
public void doubleClicked(ListDialogField<ICElement> field) {
|
||||
doDoubleClicked();
|
||||
}
|
||||
};
|
||||
|
||||
LabelProvider labelProvider= new CUILabelProvider(THHistoryAction.LABEL_OPTIONS, CElementImageProvider.OVERLAY_ICONS);
|
||||
|
||||
fHistoryList= new ListDialogField(adapter, buttonLabels, labelProvider);
|
||||
fHistoryList= new ListDialogField<ICElement>(adapter, buttonLabels, labelProvider);
|
||||
fHistoryList.setLabelText(Messages.THHistoryListAction_HistoryList_label);
|
||||
fHistoryList.setElements(Arrays.asList(historyEntries));
|
||||
|
||||
|
|
|
@ -31,16 +31,16 @@ import org.eclipse.swt.widgets.Table;
|
|||
* List model is independend of widget creation.
|
||||
* DialogFields controls are: Label, List and Composite containing buttons.
|
||||
*/
|
||||
public class CheckedListDialogField extends ListDialogField {
|
||||
public class CheckedListDialogField<T> extends ListDialogField<T> {
|
||||
|
||||
private int fCheckAllButtonIndex;
|
||||
private int fUncheckAllButtonIndex;
|
||||
|
||||
private List fCheckElements;
|
||||
private List<T> fCheckElements;
|
||||
|
||||
public CheckedListDialogField(IListAdapter adapter, String[] customButtonLabels, IBaseLabelProvider lprovider) {
|
||||
public CheckedListDialogField(IListAdapter<T> adapter, String[] customButtonLabels, IBaseLabelProvider lprovider) {
|
||||
super(adapter, customButtonLabels, lprovider);
|
||||
fCheckElements= new ArrayList();
|
||||
fCheckElements= new ArrayList<T>();
|
||||
|
||||
fCheckAllButtonIndex= -1;
|
||||
fUncheckAllButtonIndex= -1;
|
||||
|
@ -117,8 +117,8 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
/**
|
||||
* Gets the checked elements.
|
||||
*/
|
||||
public List getCheckedElements() {
|
||||
return new ArrayList(fCheckElements);
|
||||
public List<T> getCheckedElements() {
|
||||
return new ArrayList<T>(fCheckElements);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -138,8 +138,8 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
/**
|
||||
* Sets the checked elements.
|
||||
*/
|
||||
public void setCheckedElements(Collection list) {
|
||||
fCheckElements= new ArrayList(list);
|
||||
public void setCheckedElements(Collection<T> list) {
|
||||
fCheckElements= new ArrayList<T>(list);
|
||||
if (fTable != null) {
|
||||
((CheckboxTableViewer)fTable).setCheckedElements(list.toArray());
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
/**
|
||||
* Sets the checked state of an element.
|
||||
*/
|
||||
public void setChecked(Object object, boolean state) {
|
||||
public void setChecked(T object, boolean state) {
|
||||
setCheckedWithoutUpdate(object, state);
|
||||
checkStateChanged();
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
/**
|
||||
* Sets the checked state of an element. No dialog changed listener is informed.
|
||||
*/
|
||||
public void setCheckedWithoutUpdate(Object object, boolean state) {
|
||||
public void setCheckedWithoutUpdate(T object, boolean state) {
|
||||
if (state) {
|
||||
if (!fCheckElements.contains(object)) {
|
||||
fCheckElements.add(object);
|
||||
|
@ -188,7 +188,9 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
|
||||
void doCheckStateChanged(CheckStateChangedEvent e) {
|
||||
if (e.getChecked()) {
|
||||
fCheckElements.add(e.getElement());
|
||||
@SuppressWarnings("unchecked")
|
||||
T elem= (T) e.getElement();
|
||||
fCheckElements.add(elem);
|
||||
} else {
|
||||
fCheckElements.remove(e.getElement());
|
||||
}
|
||||
|
@ -199,7 +201,7 @@ public class CheckedListDialogField extends ListDialogField {
|
|||
* @see org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField#replaceElement(java.lang.Object, java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public void replaceElement(Object oldElement, Object newElement) throws IllegalArgumentException {
|
||||
public void replaceElement(T oldElement, T newElement) throws IllegalArgumentException {
|
||||
boolean wasChecked= isChecked(oldElement);
|
||||
super.replaceElement(oldElement, newElement);
|
||||
setChecked(newElement, wasChecked);
|
||||
|
|
Loading…
Add table
Reference in a new issue