Skip to content

Commit

Permalink
Deleted unnecessary code
Browse files Browse the repository at this point in the history
  • Loading branch information
jakub-suliga committed Jan 15, 2025
1 parent 8d52085 commit c8fb3bb
Show file tree
Hide file tree
Showing 6 changed files with 900 additions and 181 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,339 @@
package org.eclipse.jdt.ui.tests.folding;

import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

import org.eclipse.core.runtime.CoreException;

import org.eclipse.jface.preference.IPreferenceStore;

import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.projection.ProjectionAnnotation;
import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
import org.eclipse.jface.text.source.projection.ProjectionViewer;

import org.eclipse.ui.PartInitException;

import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;

import org.eclipse.jdt.ui.PreferenceConstants;
import org.eclipse.jdt.ui.tests.core.rules.ProjectTestSetup;

import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
import org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer;

public class FoldingTest {

@Rule
public ProjectTestSetup projectSetup = new ProjectTestSetup();

private IJavaProject jProject;
private IPackageFragmentRoot sourceFolder;
private IPackageFragment packageFragment;

@Before
public void setUp() throws CoreException {
jProject = projectSetup.getProject();
sourceFolder = jProject.findPackageFragmentRoot(jProject.getResource().getFullPath().append("src"));
if (sourceFolder == null) {
sourceFolder = org.eclipse.jdt.testplugin.JavaProjectHelper.addSourceContainer(jProject, "src");
}
packageFragment = sourceFolder.createPackageFragment("org.example.test", false, null);
IPreferenceStore store = JavaPlugin.getDefault().getPreferenceStore();
store.setValue(PreferenceConstants.EDITOR_NEW_FOLDING_ENABLED, true);
}

@After
public void tearDown() throws CoreException {
org.eclipse.jdt.testplugin.JavaProjectHelper.delete(jProject);
}

@Test
public void testCompilationUnitFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class A {
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.isEmpty());
}

@Test
public void testTypeDeclarationFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class B {
class Inner {
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 1);
}

@Test
public void testMethodDeclarationFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class C {
void m() {
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 1);
}

@Test
public void testIfStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class D {
void x() {
if (true) {
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testTryStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class E {
void x() {
try {
} catch (Exception e) {
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 3);
}

@Test
public void testWhileStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class F {
void x() {
while (true) {
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testForStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class G {
void x() {
for(int i=0;i<1;i++){
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testEnhancedForStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class H {
void x() {
for(String s: new String[0]){
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testDoStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class I {
void x() {
do {
} while(false);
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testSynchronizedStatementFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class K {
void x() {
synchronized(this) {
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testLambdaExpressionFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
import java.util.function.Supplier;
public class L {
void x() {
Supplier<String> s = () -> {
return "";
};
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testAnonymousClassDeclarationFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class M {
Object o = new Object(){
void y() {
}
};
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 2);
}

@Test
public void testEnumDeclarationFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public enum N {
A,
B
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 1);
}

@Test
public void testInitializerFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class O {
static {
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 1);
}

@Test
public void testNestedFolding() throws JavaModelException, PartInitException {
String str = """
package org.example.test;
public class P {
void x() {
if (true) {
for(int i=0;i<1;i++){
while(true) {
do {
} while(false);
}
}
}
}
}
""";
List<IRegion> regions = getProjectionRangesOfFile(str);
assertTrue(regions.size() >= 4);
}

@Test
public void testCollapsed() throws JavaModelException, PartInitException {
String code = """
package org.example.test;
public class P {
void x() {
if (true) {
}
}
}
""";
ICompilationUnit cu = packageFragment.createCompilationUnit("TestFolding.java", code, true, null);
JavaEditor editor = (JavaEditor) EditorUtility.openInEditor(cu);
JavaSourceViewer viewer = (JavaSourceViewer) editor.getViewer();

viewer.doOperation(ProjectionViewer.COLLAPSE_ALL);

ProjectionAnnotationModel model = editor.getAdapter(ProjectionAnnotationModel.class);
int foundCollapsed = 0;

for (Iterator<Annotation> it = model.getAnnotationIterator(); it.hasNext();) {
Annotation annotation = it.next();
if (annotation instanceof ProjectionAnnotation pa) {
if (pa.isCollapsed()) {
foundCollapsed += 1;
}
}
}
assertTrue(foundCollapsed == 2);
}

private List<IRegion> getProjectionRangesOfFile(String str) throws JavaModelException, PartInitException {
ICompilationUnit cu = packageFragment.createCompilationUnit("TestFolding.java", str, true, null);
JavaEditor editor = (JavaEditor) EditorUtility.openInEditor(cu);
ProjectionAnnotationModel model = editor.getAdapter(ProjectionAnnotationModel.class);
List<IRegion> regions = new ArrayList<>();
Iterator<Annotation> it = model.getAnnotationIterator();
while (it.hasNext()) {
Annotation a = it.next();
if (a instanceof ProjectionAnnotation) {
Position p = model.getPosition(a);
regions.add(new Region(p.getOffset(), p.getLength()));
}
}
return regions;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private OverlayKey[] createKeys() {
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_METHODS));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_IMPORTS));
overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOLDING_HEADERS));

overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_NEW_FOLDING_ENABLED));
return overlayKeys.toArray(new OverlayKey[overlayKeys.size()]);
}

Expand All @@ -102,6 +102,12 @@ public Control createControl(Composite composite) {
addCheckBox(inner, FoldingMessages.DefaultJavaFoldingPreferenceBlock_methods, PreferenceConstants.EDITOR_FOLDING_METHODS, 0);
addCheckBox(inner, FoldingMessages.DefaultJavaFoldingPreferenceBlock_imports, PreferenceConstants.EDITOR_FOLDING_IMPORTS, 0);

Label label2= new Label(inner, SWT.LEFT);
label2.setText(""); //$NON-NLS-1$
Label label1= new Label(inner, SWT.LEFT);
label1.setText(FoldingMessages.DefaultJavaFoldingPreferenceBlock_New_Setting_Title);

addCheckBox(inner, FoldingMessages.DefaultJavaFoldingPreferenceBlock_New, PreferenceConstants.EDITOR_NEW_FOLDING_ENABLED, 0);
return inner;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,11 @@ private FoldingMessages() {
public static String DefaultJavaFoldingPreferenceBlock_innerTypes;
public static String DefaultJavaFoldingPreferenceBlock_methods;
public static String DefaultJavaFoldingPreferenceBlock_imports;
public static String DefaultJavaFoldingPreferenceBlock_New;
public static String DefaultJavaFoldingPreferenceBlock_headers;
public static String EmptyJavaFoldingPreferenceBlock_emptyCaption;
public static String JavaFoldingStructureProviderRegistry_warning_providerNotFound_resetToDefault;

public static String DefaultJavaFoldingPreferenceBlock_New_Setting_Title;
static {
NLS.initializeMessages(BUNDLE_NAME, FoldingMessages.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ DefaultJavaFoldingPreferenceBlock_innerTypes= Inner &types
DefaultJavaFoldingPreferenceBlock_methods= &Members
DefaultJavaFoldingPreferenceBlock_imports= &Imports
DefaultJavaFoldingPreferenceBlock_headers= &Header Comments

DefaultJavaFoldingPreferenceBlock_New = &New Folding (Experimental)
DefaultJavaFoldingPreferenceBlock_New_Setting_Title = &New Folding
JavaFoldingStructureProviderRegistry_warning_providerNotFound_resetToDefault= The ''{0}'' folding provider could not be found. Resetting to the default folding provider.

EmptyJavaFoldingPreferenceBlock_emptyCaption=
Loading

0 comments on commit c8fb3bb

Please sign in to comment.