Kein Compileraufruf bei Type-Insert
- Code aufgeräumt.
This commit is contained in:
parent
0252781d13
commit
0b34810037
@ -3,19 +3,12 @@ package typinferenzplugin.editor;
|
|||||||
import static org.eclipse.core.runtime.IStatus.ERROR;
|
import static org.eclipse.core.runtime.IStatus.ERROR;
|
||||||
import static typinferenzplugin.Activator.PLUGIN_ID;
|
import static typinferenzplugin.Activator.PLUGIN_ID;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.antlr.v4.parse.ANTLRParser.element_return;
|
|
||||||
import org.antlr.v4.runtime.CommonToken;
|
|
||||||
import org.antlr.v4.runtime.Token;
|
|
||||||
import org.eclipse.core.resources.IMarker;
|
import org.eclipse.core.resources.IMarker;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
@ -40,15 +33,10 @@ import org.eclipse.ui.texteditor.IDocumentProvider;
|
|||||||
import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
|
import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
|
||||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.collect.TreeMultiset;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
import de.dhbwstuttgart.exceptions.TypeinferenceException;
|
||||||
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||||
import de.dhbwstuttgart.typeinference.result.ResultPair;
|
|
||||||
import de.dhbwstuttgart.typeinference.result.ResultPairMap;
|
import de.dhbwstuttgart.typeinference.result.ResultPairMap;
|
||||||
import de.dhbwstuttgart.typeinference.result.ResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.unify.UnifyResultEvent;
|
import de.dhbwstuttgart.typeinference.unify.UnifyResultEvent;
|
||||||
import de.dhbwstuttgart.typeinference.unify.UnifyResultListener;
|
import de.dhbwstuttgart.typeinference.unify.UnifyResultListener;
|
||||||
import typinferenzplugin.Activator;
|
import typinferenzplugin.Activator;
|
||||||
@ -59,8 +47,6 @@ import typinferenzplugin.TypeReplaceMarker;
|
|||||||
import typinferenzplugin.Typinferenz;
|
import typinferenzplugin.Typinferenz;
|
||||||
import typinferenzplugin.error.ErrorOutput;
|
import typinferenzplugin.error.ErrorOutput;
|
||||||
|
|
||||||
import static de.dhbwstuttgart.typeinference.result.ResultPairMap.RESULT_PAIRS;
|
|
||||||
|
|
||||||
//Example from: http://help.eclipse.org/indigo/index.jsp
|
//Example from: http://help.eclipse.org/indigo/index.jsp
|
||||||
/**
|
/**
|
||||||
* Editor f<EFBFBD>r .jav-Dateien Anmerkung: Für jede ge<EFBFBD>ffntete Datei wird eine
|
* Editor f<EFBFBD>r .jav-Dateien Anmerkung: Für jede ge<EFBFBD>ffntete Datei wird eine
|
||||||
@ -114,6 +100,7 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
*/
|
*/
|
||||||
protected void initializeEditor() {
|
protected void initializeEditor() {
|
||||||
super.initializeEditor();
|
super.initializeEditor();
|
||||||
|
ResultPairMap.RESULT_PAIRS.clear();
|
||||||
setSourceViewerConfiguration(new JavViewerConfiguration(this));
|
setSourceViewerConfiguration(new JavViewerConfiguration(this));
|
||||||
// install the document provider
|
// install the document provider
|
||||||
// setDocumentProvider(new JavFileProvider());
|
// setDocumentProvider(new JavFileProvider());
|
||||||
@ -124,6 +111,7 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
super.doSave(monitor);
|
super.doSave(monitor);
|
||||||
// Wird aufgerufen, sobald das Dokument gespeichert wird.
|
// Wird aufgerufen, sobald das Dokument gespeichert wird.
|
||||||
this.removeMarkers();
|
this.removeMarkers();
|
||||||
|
ResultPairMap.RESULT_PAIRS.clear();
|
||||||
this.typeReconstruction();
|
this.typeReconstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +153,6 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
// ResourceMarkerAnnotationModel model = new
|
// ResourceMarkerAnnotationModel model = new
|
||||||
// ResourceMarkerAnnotationModel(inDocument.);
|
// ResourceMarkerAnnotationModel(inDocument.);
|
||||||
for (JavMarker rm : markers) {
|
for (JavMarker rm : markers) {
|
||||||
CodePoint point = rm.getPoint();
|
|
||||||
try {
|
try {
|
||||||
IMarker m = inDocument.createMarker(Activator.TYPINFERENZMARKER_NAME);
|
IMarker m = inDocument.createMarker(Activator.TYPINFERENZMARKER_NAME);
|
||||||
m.setAttribute(IMarker.CHAR_START, rm.getPositionInCode());
|
m.setAttribute(IMarker.CHAR_START, rm.getPositionInCode());
|
||||||
@ -224,6 +211,7 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
/**
|
/**
|
||||||
* Erzeugt die Outline-View
|
* Erzeugt die Outline-View
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
public Object getAdapter(Class required) {
|
public Object getAdapter(Class required) {
|
||||||
if (IContentOutlinePage.class.equals(required)) {
|
if (IContentOutlinePage.class.equals(required)) {
|
||||||
if (outlinePage == null) {
|
if (outlinePage == null) {
|
||||||
@ -244,12 +232,6 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
IDocument document = this.getDocumentProvider().getDocument(this.getEditorInput());
|
IDocument document = this.getDocumentProvider().getDocument(this.getEditorInput());
|
||||||
document.set(typeReplaceMarker.insertType(document.get()));
|
document.set(typeReplaceMarker.insertType(document.get()));
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
this.removeMarkers();
|
|
||||||
this.typeReconstruction();
|
|
||||||
*/
|
|
||||||
|
|
||||||
typeReplaceMarkers.removeIf(trm -> trm.getPoint().getPositionInCode() == typeReplaceMarker.getPoint().getPositionInCode());
|
typeReplaceMarkers.removeIf(trm -> trm.getPoint().getPositionInCode() == typeReplaceMarker.getPoint().getPositionInCode());
|
||||||
typeReplaceMarkers.removeIf(trm -> !trm.isConsistent(typeReplaceMarker));
|
typeReplaceMarkers.removeIf(trm -> !trm.isConsistent(typeReplaceMarker));
|
||||||
|
|
||||||
@ -259,64 +241,7 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
toCheck.getInsertPoint().point.addExtraOffset(lengthOfInsert);
|
toCheck.getInsertPoint().point.addExtraOffset(lengthOfInsert);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateGuiWithNewMarkers(typeReplaceMarkers);
|
updateGuiWithNewMarkers(typeReplaceMarkers);
|
||||||
|
|
||||||
/*
|
|
||||||
ResultPair<?, ?> resultPairOfCurrentTrm = RESULT_PAIRS.get(typeReplaceMarker.getPoint().offset);
|
|
||||||
|
|
||||||
int curLine = typeReplaceMarker.getInsertPoint().point.getToken().getLine();
|
|
||||||
int curPosInLine = typeReplaceMarker.getInsertPoint().point.getToken().getCharPositionInLine();
|
|
||||||
*/
|
|
||||||
//List<ResultSet> newResultSets = new ArrayList<>(typeinference.getResultSets());//fakeRun();
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (int i = 0; i < newResultSets.size(); i++) {
|
|
||||||
ResultSet rs = newResultSets.get(i);
|
|
||||||
if (!rs.contains(resultPairOfCurrentTrm)) {
|
|
||||||
newResultSets.remove(rs);
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
//this.removeMarkers();
|
|
||||||
|
|
||||||
/*
|
|
||||||
List<JavMarker> markers = new ArrayList<>(updateMarkers(new UnifyResultEvent(newResultSets)));
|
|
||||||
List<TypeReplaceMarker> trms = new ArrayList<>();
|
|
||||||
for (JavMarker marker : markers) {
|
|
||||||
if (marker instanceof TypeReplaceMarker) {
|
|
||||||
trms.add((TypeReplaceMarker)marker);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
trms.remove(typeReplaceMarker);
|
|
||||||
/*
|
|
||||||
|
|
||||||
/*
|
|
||||||
int lengthOfInsert = typeReplaceMarker.getInsertPoint().getInsertString().length();
|
|
||||||
for (int i = 0; i < markers.size(); i++) {
|
|
||||||
JavMarker toCheck = markers.get(i);
|
|
||||||
((TypeReplaceMarker)toCheck).getInsertPoint().point.addExtraOffset(lengthOfInsert);;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
Display.getDefault().asyncExec(() -> {
|
|
||||||
updateGuiWithNewMarkers(new ArrayList<TypeReplaceMarker>(typeReplaceMarkers));
|
|
||||||
this.errorMarkers.addAll(new ArrayList<TypeReplaceMarker>(typeReplaceMarkers));
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* removeVisualMarkers();
|
|
||||||
* updateGuiWithNewMarkers(typeReplaceMarkers);
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* this.removeMarkers();
|
|
||||||
* this.typeReconstruction();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeMarkers() {
|
private void removeMarkers() {
|
||||||
@ -389,7 +314,6 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
return ((FileEditorInput) this.getEditorInput()).getPath();
|
return ((FileEditorInput) this.getEditorInput()).getPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
|
||||||
@Override
|
@Override
|
||||||
public void onNewTypeResultFound(UnifyResultEvent evt) {
|
public void onNewTypeResultFound(UnifyResultEvent evt) {
|
||||||
Vector<TypeReplaceMarker> markers = updateMarkers(evt);
|
Vector<TypeReplaceMarker> markers = updateMarkers(evt);
|
||||||
@ -406,7 +330,7 @@ public class JavEditor extends TextEditor implements UnifyResultListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Vector<TypeReplaceMarker> updateMarkers(UnifyResultEvent evt) {
|
private Vector<TypeReplaceMarker> updateMarkers(UnifyResultEvent evt) {
|
||||||
typeinference.updateresultSets(new Vector(evt.getNewTypeResult()));
|
typeinference.updateresultSets(new Vector<>(evt.getNewTypeResult()));
|
||||||
|
|
||||||
Vector<TypeReplaceMarker> markers = new Vector<TypeReplaceMarker>();
|
Vector<TypeReplaceMarker> markers = new Vector<TypeReplaceMarker>();
|
||||||
Vector<TypeReplaceMarker> newMarkers = typeinference.updateWithResult(markers, evt.getNewTypeResult());
|
Vector<TypeReplaceMarker> newMarkers = typeinference.updateWithResult(markers, evt.getNewTypeResult());
|
||||||
|
Loading…
Reference in New Issue
Block a user