mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Fix for PR 57620
This commit is contained in:
parent
aad469ecbe
commit
412410a881
2 changed files with 42 additions and 22 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-05-01 Alain Magloire
|
||||||
|
|
||||||
|
Fix for PR 57620
|
||||||
|
* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
|
||||||
|
|
||||||
2004-04-30 Hoda Amer
|
2004-04-30 Hoda Amer
|
||||||
Partial fix for bug#60298 : [Content Assist] "No completions available" when using Content Assist during class definitions
|
Partial fix for bug#60298 : [Content Assist] "No completions available" when using Content Assist during class definitions
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,8 @@ import java.util.List;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.filetype.ICFileType;
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
import org.eclipse.cdt.core.model.ISourceRange;
|
import org.eclipse.cdt.core.model.ISourceRange;
|
||||||
import org.eclipse.cdt.core.model.ISourceReference;
|
import org.eclipse.cdt.core.model.ISourceReference;
|
||||||
|
@ -31,7 +31,6 @@ import org.eclipse.cdt.ui.actions.RefactoringActionGroup;
|
||||||
import org.eclipse.cdt.ui.actions.ShowInCViewAction;
|
import org.eclipse.cdt.ui.actions.ShowInCViewAction;
|
||||||
import org.eclipse.core.resources.IFile;
|
import org.eclipse.core.resources.IFile;
|
||||||
import org.eclipse.core.resources.IMarker;
|
import org.eclipse.core.resources.IMarker;
|
||||||
import org.eclipse.core.resources.IProject;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.Preferences;
|
import org.eclipse.core.runtime.Preferences;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
|
@ -198,7 +197,6 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
* Gets the current input
|
* Gets the current input
|
||||||
*/
|
*/
|
||||||
public IFile getInputFile() {
|
public IFile getInputFile() {
|
||||||
//IFileEditorInput editorInput = (IFileEditorInput)getEditorInput();
|
|
||||||
IEditorInput editorInput = getEditorInput();
|
IEditorInput editorInput = getEditorInput();
|
||||||
if (editorInput != null) {
|
if (editorInput != null) {
|
||||||
if ((editorInput instanceof IFileEditorInput)) {
|
if ((editorInput instanceof IFileEditorInput)) {
|
||||||
|
@ -448,6 +446,36 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @see AbstractTextEditor#canHandleMove(IEditorInput, IEditorInput)
|
||||||
|
*/
|
||||||
|
protected boolean canHandleMove(IEditorInput originalElement, IEditorInput movedElement) {
|
||||||
|
String oldLanguage = ""; //$NON-NLS-1$
|
||||||
|
if (originalElement instanceof IFileEditorInput) {
|
||||||
|
IFile file= ((IFileEditorInput) originalElement).getFile();
|
||||||
|
if (file != null) {
|
||||||
|
ICFileType type = CCorePlugin.getDefault().getFileType(file.getProject(), file.getName());
|
||||||
|
oldLanguage = type.getLanguageId();
|
||||||
|
if (oldLanguage == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String newLanguage = ""; //$NON-NLS-1$
|
||||||
|
if (movedElement instanceof IFileEditorInput) {
|
||||||
|
IFile file = ((IFileEditorInput) movedElement).getFile();
|
||||||
|
if (file != null) {
|
||||||
|
ICFileType type = CCorePlugin.getDefault().getFileType(file.getProject(), file.getName());
|
||||||
|
newLanguage = type.getLanguageId();
|
||||||
|
if (newLanguage == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return oldLanguage.equals(newLanguage);
|
||||||
|
}
|
||||||
|
|
||||||
protected void createActions() {
|
protected void createActions() {
|
||||||
super.createActions();
|
super.createActions();
|
||||||
|
|
||||||
|
@ -665,11 +693,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
provider.addSelectionChangedListener(fStatusLineClearer);
|
provider.addSelectionChangedListener(fStatusLineClearer);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
getStatusLineManager().setErrorMessage(""); //$NON-NLS-1$
|
getStatusLineManager().setErrorMessage(""); //$NON-NLS-1$
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -860,18 +885,10 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
*/
|
*/
|
||||||
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
|
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
|
||||||
// Figure out if this is a C or C++ source file
|
// Figure out if this is a C or C++ source file
|
||||||
String filename = getEditorInput().getName();
|
IWorkingCopyManager mgr = CUIPlugin.getDefault().getWorkingCopyManager();
|
||||||
boolean c_file = filename.endsWith(".c"); //$NON-NLS-1$
|
ITranslationUnit unit = mgr.getWorkingCopy(getEditorInput());
|
||||||
|
String fileType = (unit != null && unit.isCXXLanguage()) ? LANGUAGE_CPP : LANGUAGE_C;
|
||||||
|
|
||||||
if (!c_file && filename.endsWith(".h")) { //$NON-NLS-1$
|
|
||||||
// ensure that this .h file is part of a C project & not a CPP project
|
|
||||||
|
|
||||||
IFile file = getInputFile();
|
|
||||||
if (file != null) {
|
|
||||||
IProject project = file.getProject();
|
|
||||||
c_file = !CoreModel.getDefault().hasCCNature(project);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fAnnotationAccess = createAnnotationAccess();
|
fAnnotationAccess = createAnnotationAccess();
|
||||||
ISharedTextColors sharedColors = CUIPlugin.getDefault().getSharedTextColors();
|
ISharedTextColors sharedColors = CUIPlugin.getDefault().getSharedTextColors();
|
||||||
|
|
||||||
|
@ -890,7 +907,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
styles,
|
styles,
|
||||||
fOverviewRuler,
|
fOverviewRuler,
|
||||||
isOverviewRulerVisible(),
|
isOverviewRulerVisible(),
|
||||||
c_file ? LANGUAGE_C : LANGUAGE_CPP);
|
fileType);
|
||||||
fSourceViewerDecorationSupport =
|
fSourceViewerDecorationSupport =
|
||||||
new SourceViewerDecorationSupport(sourceViewer, fOverviewRuler, fAnnotationAccess, sharedColors);
|
new SourceViewerDecorationSupport(sourceViewer, fOverviewRuler, fAnnotationAccess, sharedColors);
|
||||||
|
|
||||||
|
@ -899,7 +916,6 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
return sourceViewer;
|
return sourceViewer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Outliner context menu Id */
|
/** Outliner context menu Id */
|
||||||
protected String fOutlinerContextMenuId;
|
protected String fOutlinerContextMenuId;
|
||||||
|
|
||||||
|
@ -953,7 +969,6 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Links
|
//Links
|
||||||
/**
|
/**
|
||||||
* Enables browser like links.
|
* Enables browser like links.
|
||||||
|
|
Loading…
Add table
Reference in a new issue