Search in sources :

Example 56 with TextSelection

use of org.eclipse.jface.text.TextSelection in project linuxtools by eclipse.

the class DoubleClickTest method testDoubleClickLine.

@Test
public void testDoubleClickLine() throws Exception {
    ILaunchConfiguration config = createConfiguration(proj.getProject());
    // $NON-NLS-1$
    doLaunch(config, "testDoubleClickFunction");
    CachegrindViewPart view = (CachegrindViewPart) ValgrindUIPlugin.getDefault().getView().getDynamicView();
    CachegrindOutput output = view.getOutputs()[0];
    // $NON-NLS-1$
    CachegrindFile file = getFileByName(output, "cpptest.cpp");
    // $NON-NLS-1$
    CachegrindFunction func = getFunctionByName(file, "main");
    CachegrindLine line = func.getLines()[0];
    TreePath path = new TreePath(new Object[] { output, file, func });
    doDoubleClick(path);
    // check file in editor
    IEditorPart editor = checkFile(file);
    // check line number
    ITextEditor textEditor = (ITextEditor) editor;
    ISelection selection = textEditor.getSelectionProvider().getSelection();
    TextSelection textSelection = (TextSelection) selection;
    // zero-indexed
    int actualLine = textSelection.getStartLine() + 1;
    assertEquals(line.getLine(), actualLine);
}
Also used : ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) ITextEditor(org.eclipse.ui.texteditor.ITextEditor) TreePath(org.eclipse.jface.viewers.TreePath) CachegrindOutput(org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindOutput) CachegrindFile(org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFile) CachegrindFunction(org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindFunction) TextSelection(org.eclipse.jface.text.TextSelection) ISelection(org.eclipse.jface.viewers.ISelection) CachegrindViewPart(org.eclipse.linuxtools.internal.valgrind.cachegrind.CachegrindViewPart) CachegrindLine(org.eclipse.linuxtools.internal.valgrind.cachegrind.model.CachegrindLine) IEditorPart(org.eclipse.ui.IEditorPart) Test(org.junit.Test)

Example 57 with TextSelection

use of org.eclipse.jface.text.TextSelection in project linuxtools by eclipse.

the class CParserTest method canParseCurrentFunctionFromCFile.

/**
 * Given an IEditorPart we should be able to retrieve the currently
 * function active C function inside a C source file.
 *
 * @throws Exception
 */
@Test
public void canParseCurrentFunctionFromCFile() throws Exception {
    // make testproject a C project
    project.addCNature();
    final String expectedFunctionName = "doSomething";
    final String cSourceCode = "static int " + expectedFunctionName + "(char *test)\n" + "{\n" + "int index = 0;\n" + "// " + OFFSET_MARKER + "\n" + "return 0;\n" + "}\n";
    assertNull(project.getTestProject().findMember(new Path("/src/some_c_file.c")));
    // Add some_c_file.c to project
    InputStream newFileInputStream = new ByteArrayInputStream(cSourceCode.getBytes());
    IFile cSourceFile = project.addFileToProject("/src", "some_c_file.c", newFileInputStream);
    assertNotNull(project.getTestProject().findMember(new Path("/src/some_c_file.c")));
    // Open a source file and get the IEditorPart
    cppSourceEditorPart = openEditor(cSourceFile);
    assertEquals(cSourceCode, getContent(cppSourceEditorPart));
    // make sure we have the proper editor type
    assertTrue(cppSourceEditorPart instanceof AbstractTextEditor);
    // Select the snippet we want
    int selectionStart = cSourceCode.indexOf(OFFSET_MARKER);
    assertTrue(selectionStart >= 0);
    int selectionLength = OFFSET_MARKER.length();
    AbstractTextEditor cEditor = (AbstractTextEditor) cppSourceEditorPart;
    cEditor.getSelectionProvider().setSelection(new TextSelection(selectionStart, selectionLength));
    final String actualFunctionName = cParser.parseCurrentFunction(cppSourceEditorPart);
    assertEquals(expectedFunctionName, actualFunctionName);
}
Also used : Path(org.eclipse.core.runtime.Path) IFile(org.eclipse.core.resources.IFile) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) TextSelection(org.eclipse.jface.text.TextSelection) AbstractTextEditor(org.eclipse.ui.texteditor.AbstractTextEditor) Test(org.junit.Test)

Example 58 with TextSelection

use of org.eclipse.jface.text.TextSelection in project linuxtools by eclipse.

the class CParserTest method canParseClassNameIfNoVariableIdentifierSelectedInCppFile.

/**
 * Given an IEditorPart and not selected any variable identifier in a class, we should
 * get the class name as selected function name only.
 *
 * @throws Exception
 */
@Test
public void canParseClassNameIfNoVariableIdentifierSelectedInCppFile() throws Exception {
    // make test project a C++ project
    project.addCCNature();
    final String className = "shape";
    final String cppSourceCode = "class " + className + " {\n" + "int x;\n" + "int y;\n" + "// " + OFFSET_MARKER + "\n" + "private:\n" + "int color;\n" + "void set_color(int color);\n" + "}\n";
    assertNull(project.getTestProject().findMember(new Path("/src/shape.h")));
    // Add shape.h to project
    InputStream newFileInputStream = new ByteArrayInputStream(cppSourceCode.getBytes());
    IFile cppSourceFile = project.addFileToProject("/src", "shape.h", newFileInputStream);
    assertNotNull(project.getTestProject().findMember(new Path("/src/shape.h")));
    // Open a source file and get the IEditorPart
    cppSourceEditorPart = openEditor(cppSourceFile);
    // make sure editor content is correct
    assertEquals(cppSourceCode, getContent(cppSourceEditorPart));
    // make sure we have the proper editor type
    assertTrue(cppSourceEditorPart instanceof AbstractTextEditor);
    // Select the snippet we want
    int selectionStart = cppSourceCode.indexOf(OFFSET_MARKER);
    assertTrue(selectionStart >= 0);
    int selectionLength = OFFSET_MARKER.length();
    AbstractTextEditor cppEditor = (AbstractTextEditor) cppSourceEditorPart;
    cppEditor.getSelectionProvider().setSelection(new TextSelection(selectionStart, selectionLength));
    final String actualFunction = cParser.parseCurrentFunction(cppSourceEditorPart);
    assertEquals(className, actualFunction);
}
Also used : Path(org.eclipse.core.runtime.Path) IFile(org.eclipse.core.resources.IFile) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) TextSelection(org.eclipse.jface.text.TextSelection) AbstractTextEditor(org.eclipse.ui.texteditor.AbstractTextEditor) Test(org.junit.Test)

Example 59 with TextSelection

use of org.eclipse.jface.text.TextSelection in project linuxtools by eclipse.

the class CParserTest method canDetermineThatInNoFunctionInCFile.

/**
 * Given an IEditorPart and not being inside any function within a C
 * source file, no function should be determined.
 *
 * @throws Exception
 */
@Test
public void canDetermineThatInNoFunctionInCFile() throws Exception {
    // make test project a C project
    project.addCNature();
    final String cSourceCode = "// Prototype " + OFFSET_MARKER + "\n" + "static int doSomething(char *test);\n\n" + "static int doSomething(char *test)\n" + "{\n" + "int index = 0;\n" + "return 0;\n" + "}\n";
    assertNull(project.getTestProject().findMember(new Path("/src/some_c_file.c")));
    // Add some_c_file.c to project
    InputStream newFileInputStream = new ByteArrayInputStream(cSourceCode.getBytes());
    IFile cSourceFile = project.addFileToProject("/src", "some_c_file.c", newFileInputStream);
    assertNotNull(project.getTestProject().findMember(new Path("/src/some_c_file.c")));
    // Open a source file and get the IEditorPart
    cppSourceEditorPart = openEditor(cSourceFile);
    assertEquals(cSourceCode, getContent(cppSourceEditorPart));
    // make sure we have the proper editor type
    assertTrue(cppSourceEditorPart instanceof AbstractTextEditor);
    // Select the snippet we want
    int selectionStart = cSourceCode.indexOf(OFFSET_MARKER);
    assertTrue(selectionStart >= 0);
    int selectionLength = OFFSET_MARKER.length();
    AbstractTextEditor cEditor = (AbstractTextEditor) cppSourceEditorPart;
    cEditor.getSelectionProvider().setSelection(new TextSelection(selectionStart, selectionLength));
    final String actualFunctionName = cParser.parseCurrentFunction(cppSourceEditorPart);
    assertEquals("", /* expect empty function name */
    actualFunctionName);
}
Also used : Path(org.eclipse.core.runtime.Path) IFile(org.eclipse.core.resources.IFile) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) TextSelection(org.eclipse.jface.text.TextSelection) AbstractTextEditor(org.eclipse.ui.texteditor.AbstractTextEditor) Test(org.junit.Test)

Example 60 with TextSelection

use of org.eclipse.jface.text.TextSelection in project linuxtools by eclipse.

the class JavaParserTest method canDetermineThatSelectionIsJustInClass.

/**
 * Given an IEditorPart and current selection is inside a class but not within a
 * method, not selecting a field and not in a nested class (somewhere else in the
 * class) it should return an empty string for the function.
 *
 * @throws Exception
 */
@Test
public void canDetermineThatSelectionIsJustInClass() throws Exception {
    // Apparently comments don't show up in the compilation units. Makes
    // sense, right? But we can't use the OFFSET_MARKER trick in this case.
    final String javaSourceCode = "public class JavaParserExampleClass {\n" + "private String someStrVariable = null;\n" + // want to select this line indexOf(';') + 2
    "\n" + "\n" + "private void someMethod(String param) {\n" + "// empty \n" + "}\n" + "}\n";
    assertNull(project.getTestProject().findMember(new Path("/src/org/eclipse/changelog/tests/JavaParserExampleClass.java")));
    // Add JavaParserExampleClass.java to project
    InputStream newFileInputStream = new ByteArrayInputStream(javaSourceCode.getBytes());
    IFile javaSourceFile = project.addFileToProject("/src/org/eclipse/changelog/tests", "JavaParserExampleClass.java", newFileInputStream);
    assertNotNull(project.getTestProject().findMember(new Path("/src/org/eclipse/changelog/tests/JavaParserExampleClass.java")));
    // Open a source file and get the IEditorPart
    javaSourceEditorPart = openEditor(javaSourceFile);
    // make sure changelog editor content is right before merging
    assertEquals(javaSourceCode, getContent(javaSourceEditorPart));
    // make sure we have the proper editor type
    assertTrue(javaSourceEditorPart instanceof AbstractDecoratedTextEditor);
    // Select the right point
    int selectionStart = javaSourceCode.indexOf(';') + 2;
    assertTrue(selectionStart >= 2);
    int selectionLength = 0;
    AbstractDecoratedTextEditor javaEditor = (AbstractDecoratedTextEditor) javaSourceEditorPart;
    javaEditor.getSelectionProvider().setSelection(new TextSelection(selectionStart, selectionLength));
    final String actualFunctionName = javaParser.parseCurrentFunction(javaSourceEditorPart);
    assertEquals("", /* expect empty string */
    actualFunctionName);
}
Also used : Path(org.eclipse.core.runtime.Path) IFile(org.eclipse.core.resources.IFile) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) TextSelection(org.eclipse.jface.text.TextSelection) AbstractDecoratedTextEditor(org.eclipse.ui.texteditor.AbstractDecoratedTextEditor) Test(org.junit.Test)

Aggregations

TextSelection (org.eclipse.jface.text.TextSelection)105 IFile (org.eclipse.core.resources.IFile)35 ITextSelection (org.eclipse.jface.text.ITextSelection)24 ISelection (org.eclipse.jface.viewers.ISelection)24 Test (org.junit.Test)23 IDocument (org.eclipse.jface.text.IDocument)21 IEditorPart (org.eclipse.ui.IEditorPart)19 InputStream (java.io.InputStream)14 ByteArrayInputStream (java.io.ByteArrayInputStream)13 Path (org.eclipse.core.runtime.Path)13 ITextEditor (org.eclipse.ui.texteditor.ITextEditor)11 BadLocationException (org.eclipse.jface.text.BadLocationException)10 IRegion (org.eclipse.jface.text.IRegion)10 XtextResource (org.eclipse.xtext.resource.XtextResource)9 IPreferencesService (org.eclipse.core.runtime.preferences.IPreferencesService)8 Module (org.eclipse.titan.designer.AST.Module)8 ProjectSourceParser (org.eclipse.titan.designer.parsers.ProjectSourceParser)8 XExpression (org.eclipse.xtext.xbase.XExpression)8 TTCN3Editor (org.eclipse.titan.designer.editors.ttcn3editor.TTCN3Editor)7 XtextEditor (org.eclipse.xtext.ui.editor.XtextEditor)7