Java 类org.eclipse.lsp4j.WorkspaceEdit 实例源码

项目:eclipse.jdt.ls    文件:OrganizeImportsCommand.java   
public void organizeImportsInCompilationUnit(ICompilationUnit unit, WorkspaceEdit rootEdit) {
    try {
        InnovationContext context = new InnovationContext(unit, 0, unit.getBuffer().getLength() - 1);
        CUCorrectionProposal proposal = new CUCorrectionProposal("OrganizeImports", unit, IProposalRelevance.ORGANIZE_IMPORTS) {
            @Override
            protected void addEdits(IDocument document, TextEdit editRoot) throws CoreException {
                CompilationUnit astRoot = context.getASTRoot();
                OrganizeImportsOperation op = new OrganizeImportsOperation(unit, astRoot, true, false, true, null);
                editRoot.addChild(op.createTextEdit(null));
            }
        };

        addWorkspaceEdit(unit, proposal, rootEdit);
    } catch (CoreException e) {
        JavaLanguageServerPlugin.logException("Problem organize imports ", e);
    }
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommandTest.java   
@Test
public void testOrganizeImportsUnused() throws CoreException, BadLocationException {

    IPackageFragment pack1 = fSourceFolder.createPackageFragment("test1", false, null);

    StringBuilder buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("import java.util.ArrayList;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("}\n");

    ICompilationUnit cu = pack1.createCompilationUnit("E.java", buf.toString(), false, null);

    buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("}\n");

    WorkspaceEdit rootEdit = new WorkspaceEdit();
    command.organizeImportsInCompilationUnit(cu, rootEdit);
    assertEquals(getOrganizeImportResult(cu, rootEdit), buf.toString());
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameSystemLibrary() throws JavaModelException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   public int bar() {\n",
            "       String str = new String();\n",
            "       str.len|*gth();\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 0);
}
项目:eclipse.jdt.ls    文件:AbstractQuickFixTest.java   
private String evaluateCodeActionCommand(Command c)
        throws BadLocationException, JavaModelException {
    Assert.assertEquals(CodeActionHandler.COMMAND_ID_APPLY_EDIT, c.getCommand());
    Assert.assertNotNull(c.getArguments());
    Assert.assertTrue(c.getArguments().get(0) instanceof WorkspaceEdit);
    WorkspaceEdit we = (WorkspaceEdit) c.getArguments().get(0);
    Iterator<Entry<String, List<TextEdit>>> editEntries = we.getChanges().entrySet().iterator();
    Entry<String, List<TextEdit>> entry = editEntries.next();
    assertNotNull("No edits generated", entry);
    assertEquals("More than one resource modified", false, editEntries.hasNext());

    ICompilationUnit cu = JDTUtils.resolveCompilationUnit(entry.getKey());
    assertNotNull("CU not found: " + entry.getKey(), cu);

    Document doc = new Document();
    doc.set(cu.getSource());

    return TextEditUtil.apply(doc, entry.getValue());
}
项目:xtext-core    文件:RenameTest.java   
protected void doTest(final String fileName, final Position position) {
  try {
    TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier(fileName);
    final RenameParams params = new RenameParams(_textDocumentIdentifier, position, "Tescht");
    final WorkspaceEdit workspaceEdit = this.languageServer.rename(params).get();
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("changes :");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("MyType1.testlang : Tescht [[0, 5] .. [0, 9]]");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("Tescht [[1, 4] .. [1, 8]]");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("MyType2.testlang : Tescht [[1, 4] .. [1, 8]]");
    _builder.newLine();
    _builder.append("documentChanges : ");
    _builder.newLine();
    this.assertEquals(_builder.toString(), this.toExpectation(workspaceEdit));
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String _toExpectation(final WorkspaceEdit it) {
  StringConcatenation _builder = new StringConcatenation();
  _builder.append("changes :");
  _builder.newLine();
  {
    Set<Map.Entry<String, List<TextEdit>>> _entrySet = it.getChanges().entrySet();
    for(final Map.Entry<String, List<TextEdit>> entry : _entrySet) {
      _builder.append("\t");
      String _lastSegment = org.eclipse.emf.common.util.URI.createURI(entry.getKey()).lastSegment();
      _builder.append(_lastSegment, "\t");
      _builder.append(" : ");
      String _expectation = this.toExpectation(entry.getValue());
      _builder.append(_expectation, "\t");
      _builder.newLineIfNotEmpty();
    }
  }
  _builder.append("documentChanges : ");
  _builder.newLine();
  _builder.append("\t");
  String _expectation_1 = this.toExpectation(it.getDocumentChanges());
  _builder.append(_expectation_1, "\t");
  _builder.newLineIfNotEmpty();
  return _builder.toString();
}
项目:xtext-core    文件:LanguageServerImpl.java   
@Override
public CompletableFuture<WorkspaceEdit> rename(final RenameParams params) {
  final Function1<CancelIndicator, WorkspaceEdit> _function = (CancelIndicator cancelIndicator) -> {
    WorkspaceEdit _xblockexpression = null;
    {
      final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri());
      final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri);
      IRenameService _get = null;
      if (resourceServiceProvider!=null) {
        _get=resourceServiceProvider.<IRenameService>get(IRenameService.class);
      }
      final IRenameService renameService = _get;
      if ((renameService == null)) {
        return new WorkspaceEdit();
      }
      _xblockexpression = renameService.rename(this.workspaceManager, params, cancelIndicator);
    }
    return _xblockexpression;
  };
  return this.requestManager.<WorkspaceEdit>runRead(_function);
}
项目:che    文件:DtoConversionTest.java   
@Test
public void testMapConversion() {
  Map<String, List<TextEdit>> changes =
      Collections.singletonMap(
          "anURL",
          Arrays.asList(
              new TextEdit(new Range(new Position(0, 1), new Position(3, 4)), "blabla")));
  WorkspaceEdit edit = new WorkspaceEdit();
  edit.setChanges(changes);

  WorkspaceEditDto originalDto = new WorkspaceEditDto(edit);
  Assert.assertTrue(reflectionEquals(originalDto, edit));
  String jsonString = originalDto.toJson();
  WorkspaceEditDto convertedDto = WorkspaceEditDto.fromJson(jsonString);
  Assert.assertTrue(reflectionEquals(originalDto, convertedDto));
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommand.java   
/**
 * Organize imports when select a project.
 *
 * @param proj
 *            the target project
 * @return
 */
public WorkspaceEdit organizeImportsInProject(IProject proj) {
    WorkspaceEdit rootEdit = new WorkspaceEdit();
    HashSet<IJavaElement> result = new HashSet<>();

    collectCompilationUnits(JavaCore.create(proj), result, null);
    for (IJavaElement elem : result) {
        if (elem.getElementType() == IJavaElement.COMPILATION_UNIT) {
            organizeImportsInCompilationUnit((ICompilationUnit) elem, rootEdit);
        }
    }
    return rootEdit;
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommand.java   
/**
 * Organize imports underlying a directory
 *
 * @param folderUri
 *            Selected folder URI
 * @param proj
 *            the folder associated project
 * @return
 * @throws CoreException
 */
public WorkspaceEdit organizeImportsInDirectory(String folderUri, IProject proj) throws CoreException {
    WorkspaceEdit rootEdit = new WorkspaceEdit();
    IPackageFragment fragment = null;
    if (JDTUtils.toURI(folderUri) != null) {
        fragment = JDTUtils.resolvePackage(folderUri);
    }
    // Select an individual package
    if (fragment != null) {
        organizeImportsInPackageFragment(fragment, rootEdit);
    } else if (proj != null) {
        // Search the packages under the selected folder:
        IJavaProject javaProject = JavaCore.create(proj);
        IPath rootPath = ResourceUtils.filePathFromURI(folderUri);
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        HashSet<IJavaElement> result = new HashSet<>();
        for (IPackageFragmentRoot root : roots) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                String packageRoot = root.getResource().getLocation().toString();
                if (packageRoot.toLowerCase().indexOf(rootPath.toString().toLowerCase()) >= 0) {
                    collectCompilationUnits(javaProject, result, null);
                }
            }
        }
        for (IJavaElement elem : result) {
            if (elem.getElementType() == IJavaElement.COMPILATION_UNIT) {
                organizeImportsInCompilationUnit((ICompilationUnit) elem, rootEdit);
            }
        }
    }
    return rootEdit;
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommand.java   
public WorkspaceEdit organizeImportsInFile(String fileUri) {
    WorkspaceEdit rootEdit = new WorkspaceEdit();
    ICompilationUnit unit = null;
    if (JDTUtils.toURI(fileUri) != null) {
        unit = JDTUtils.resolveCompilationUnit(fileUri);
    }
    if (unit == null) {
        return rootEdit;
    }
    organizeImportsInCompilationUnit(unit, rootEdit);
    return rootEdit;
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommand.java   
public void organizeImportsInPackageFragment(IPackageFragment fragment, WorkspaceEdit rootEdit) throws CoreException {
    HashSet<IJavaElement> result = new HashSet<>();
    collectCompilationUnits(fragment.getParent(), result, fragment.getElementName());
    for (IJavaElement elem : result) {
        if (elem.getElementType() == IJavaElement.COMPILATION_UNIT) {
            organizeImportsInCompilationUnit((ICompilationUnit) elem, rootEdit);
        }
    }
}
项目:eclipse.jdt.ls    文件:RenameTypeProcessor.java   
@Override
public void renameOccurrences(WorkspaceEdit edit, String newName, IProgressMonitor monitor) throws CoreException {
    super.renameOccurrences(edit, newName, monitor);

    IType t = (IType) fElement;
    IMethod[] methods = t.getMethods();

    for (IMethod method : methods) {
        if (method.isConstructor()) {
            TextEdit replaceEdit = new ReplaceEdit(method.getNameRange().getOffset(), method.getNameRange().getLength(), newName);
            convert(edit, t.getCompilationUnit(), replaceEdit);
        }
    }
}
项目:eclipse.jdt.ls    文件:RenameProcessor.java   
public void renameOccurrences(WorkspaceEdit edit, String newName, IProgressMonitor monitor) throws CoreException {
    if (fElement == null || !canRename()) {
        return;
    }

    IJavaElement[] elementsToSearch = null;

    if (fElement instanceof IMethod) {
        elementsToSearch = RippleMethodFinder.getRelatedMethods((IMethod) fElement, monitor, null);
    } else {
        elementsToSearch = new IJavaElement[] { fElement };
    }

    SearchPattern pattern = createOccurrenceSearchPattern(elementsToSearch);
    if (pattern == null) {
        return;
    }
    SearchEngine engine = new SearchEngine();
    engine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, createSearchScope(), new SearchRequestor() {

        @Override
        public void acceptSearchMatch(SearchMatch match) throws CoreException {
            Object o = match.getElement();
            if (o instanceof IJavaElement) {
                IJavaElement element = (IJavaElement) o;
                ICompilationUnit compilationUnit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
                if (compilationUnit == null) {
                    return;
                }
                TextEdit replaceEdit = collectMatch(match, element, compilationUnit, newName);
                if (replaceEdit != null) {
                    convert(edit, compilationUnit, replaceEdit);
                }
            }
        }
    }, monitor);

}
项目:eclipse.jdt.ls    文件:RenameProcessor.java   
protected void convert(WorkspaceEdit root, ICompilationUnit unit, TextEdit edits) {
    TextEditConverter converter = new TextEditConverter(unit, edits);
    String uri = JDTUtils.toURI(unit);
    Map<String, List<org.eclipse.lsp4j.TextEdit>> changes = root.getChanges();
    if (changes.containsKey(uri)) {
        changes.get(uri).addAll(converter.convert());
    } else {
        changes.put(uri, converter.convert());
    }
}
项目:eclipse.jdt.ls    文件:SaveActionHandler.java   
private List<TextEdit> handleSaveActionOrganizeImports(String documentUri, IProgressMonitor monitor) {
    String uri = ResourceUtils.fixURI(JDTUtils.toURI(documentUri));
    if (monitor.isCanceled()) {
        return Collections.emptyList();
    }
    WorkspaceEdit organizedResult = organizeImportsCommand.organizeImportsInFile(uri);
    List<TextEdit> edit = organizedResult.getChanges().get(uri);
    edit = edit == null ? Collections.emptyList() : edit;
    return edit;
}
项目:eclipse.jdt.ls    文件:RenameHandler.java   
public WorkspaceEdit rename(RenameParams params, IProgressMonitor monitor) {
    WorkspaceEdit edit = new WorkspaceEdit();
    if (!preferenceManager.getPreferences().isRenameEnabled()) {
        return edit;
    }
    try {
        final ICompilationUnit unit = JDTUtils.resolveCompilationUnit(params.getTextDocument().getUri());

        IJavaElement[] elements = JDTUtils.findElementsAtSelection(unit, params.getPosition().getLine(), params.getPosition().getCharacter(), this.preferenceManager, monitor);
        if (elements == null || elements.length == 0) {
            return edit;
        }
        IJavaElement curr = null;
        if (elements.length != 1) {
            // they could be package fragments.
            // We need to select the one that matches the package fragment of the current unit
            IPackageFragment packageFragment = (IPackageFragment) unit.getParent();
            IJavaElement found = Stream.of(elements).filter(e -> e.equals(packageFragment)).findFirst().orElse(null);
            if (found == null) {
                // this would be a binary package fragment
                curr = elements[0];
            } else {
                curr = found;
            }
        } else {
            curr = elements[0];
        }

        RenameProcessor processor = createRenameProcessor(curr);
        processor.renameOccurrences(edit, params.getNewName(), monitor);
    } catch (CoreException ex) {
        JavaLanguageServerPlugin.logException("Problem with rename for " + params.getTextDocument().getUri(), ex);
    }

    return edit;
}
项目:eclipse.jdt.ls    文件:CodeActionHandler.java   
private static Command textEditToCommand(ICompilationUnit unit, String label, TextEdit textEdit) {
    TextEditConverter converter = new TextEditConverter(unit, textEdit);
    String uri = JDTUtils.toURI(unit);
    WorkspaceEdit $ = new WorkspaceEdit();
    $.getChanges().put(uri, converter.convert());
    return new Command(label, COMMAND_ID_APPLY_EDIT, Arrays.asList($));
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommandTest.java   
@Test
public void testOrganizeImportsSort() throws CoreException, BadLocationException {

    IPackageFragment pack1 = fSourceFolder.createPackageFragment("test1", false, null);

    StringBuilder buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("import java.util.HashMap;\n");
    buf.append("import java.util.ArrayList;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("\n");
    buf.append("    public E() {\n");
    buf.append("        ArrayList list = new ArrayList();\n");
    buf.append("        HashMap<String, String> map = new HashMap<String, String>();\n");
    buf.append("    }\n");
    buf.append("}\n");

    ICompilationUnit cu = pack1.createCompilationUnit("E.java", buf.toString(), false, null);

    buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("import java.util.ArrayList;\n");
    buf.append("import java.util.HashMap;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("\n");
    buf.append("    public E() {\n");
    buf.append("        ArrayList list = new ArrayList();\n");
    buf.append("        HashMap<String, String> map = new HashMap<String, String>();\n");
    buf.append("    }\n");
    buf.append("}\n");
    WorkspaceEdit rootEdit = new WorkspaceEdit();
    command.organizeImportsInCompilationUnit(cu, rootEdit);
    assertEquals(getOrganizeImportResult(cu, rootEdit), buf.toString());
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommandTest.java   
@Test
public void testOrganizeImportsAutomaticallyResolve() throws CoreException, BadLocationException {

    IPackageFragment pack1 = fSourceFolder.createPackageFragment("test1", false, null);

    StringBuilder buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("import java.util.ArrayList;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("\n");
    buf.append("    public E() {\n");
    buf.append("        ArrayList list = new ArrayList();\n");
    buf.append("        HashMap<String, String> map = new HashMap<String, String>();\n");
    buf.append("    }\n");
    buf.append("}\n");

    ICompilationUnit cu = pack1.createCompilationUnit("E.java", buf.toString(), false, null);

    buf = new StringBuilder();
    buf.append("package test1;\n");
    buf.append("\n");
    buf.append("import java.util.ArrayList;\n");
    buf.append("import java.util.HashMap;\n");
    buf.append("\n");
    buf.append("public class E {\n");
    buf.append("\n");
    buf.append("    public E() {\n");
    buf.append("        ArrayList list = new ArrayList();\n");
    buf.append("        HashMap<String, String> map = new HashMap<String, String>();\n");
    buf.append("    }\n");
    buf.append("}\n");

    WorkspaceEdit rootEdit = new WorkspaceEdit();
    command.organizeImportsInCompilationUnit(cu, rootEdit);
    assertEquals(getOrganizeImportResult(cu, rootEdit), buf.toString());
}
项目:eclipse.jdt.ls    文件:OrganizeImportsCommandTest.java   
private String getOrganizeImportResult(ICompilationUnit cu, WorkspaceEdit we) throws BadLocationException, CoreException {
    List<TextEdit> change = we.getChanges().get(JDTUtils.getFileURI(cu));
    Document doc = new Document();
    doc.set(cu.getSource());

    return TextEditUtil.apply(doc, change);
}
项目:eclipse.jdt.ls    文件:CodeActionHandlerTest.java   
@Test
@Ignore
public void testCodeAction_superfluousSemicolon() throws Exception{
    ICompilationUnit unit = getWorkingCopy(
            "src/java/Foo.java",
            "public class Foo {\n"+
                    "   void foo() {\n"+
                    ";" +
                    "   }\n"+
            "}\n");

    CodeActionParams params = new CodeActionParams();
    params.setTextDocument(new TextDocumentIdentifier(JDTUtils.toURI(unit)));
    final Range range = getRange(unit, ";");
    params.setRange(range);
    params.setContext(new CodeActionContext(Arrays.asList(getDiagnostic(Integer.toString(IProblem.SuperfluousSemicolon), range))));
    List<? extends Command> commands = server.codeAction(params).join();
    Assert.assertNotNull(commands);
    Assert.assertEquals(1, commands.size());
    Command c = commands.get(0);
    Assert.assertEquals(CodeActionHandler.COMMAND_ID_APPLY_EDIT, c.getCommand());
    Assert.assertNotNull(c.getArguments());
    Assert.assertTrue(c.getArguments().get(0) instanceof WorkspaceEdit);
    WorkspaceEdit we = (WorkspaceEdit) c.getArguments().get(0);
    List<org.eclipse.lsp4j.TextEdit> edits = we.getChanges().get(JDTUtils.toURI(unit));
    Assert.assertEquals(1, edits.size());
    Assert.assertEquals("", edits.get(0).getNewText());
    Assert.assertEquals(range, edits.get(0).getRange());
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameParameter() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   public int foo(String str) {\n",
            "       str|*.length();\n",
            "   }\n",
            "   public int bar(String str) {\n",
            "       str.length();\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");

    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);

    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class E {\n" +
            "   public int foo(String newname) {\n" +
            "       newname.length();\n" +
            "   }\n" +
            "   public int bar(String str) {\n" +
            "       str.length();\n" +
            "   }\n" +
            "}\n");
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameLocalVariable() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   public int bar() {\n",
            "       String str = new String();\n",
            "       str.length();\n",
            "   }\n",
            "   public int foo() {\n",
            "       String str = new String();\n",
            "       str|*.length()\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);
    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class E {\n" +
            "   public int bar() {\n" +
            "       String str = new String();\n" +
            "       str.length();\n" +
            "   }\n" +
            "   public int foo() {\n" +
            "       String newname = new String();\n" +
            "       newname.length()\n" +
            "   }\n" +
            "}\n");
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameField() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   private int myValue = 2;\n",
            "   public void bar() {\n",
            "       myValue|* = 3;\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);
    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class E {\n" +
            "   private int newname = 2;\n" +
            "   public void bar() {\n" +
            "       newname = 3;\n" +
            "   }\n" +
            "}\n");
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameMethod() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   public int bar() {\n",
            "   }\n",
            "   public int foo() {\n",
            "       this.bar|*();\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "newname");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);
    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class E {\n" +
            "   public int newname() {\n" +
            "   }\n" +
            "   public int foo() {\n" +
            "       this.newname();\n" +
            "   }\n" +
            "}\n"
            );
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameSuperMethod() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "class A {\n",
            "   public void bar() {\n",
            "   }\n",
            "}\n",
            "class B extends A {\n",
            "   public void bar() {\n",
            "       super|*.bar();\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "TypeA");
    assertNotNull(edit);
    assertEquals(1, edit.getChanges().size());

    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "class TypeA {\n" +
            "   public void bar() {\n" +
            "   }\n" +
            "}\n" +
            "class B extends TypeA {\n" +
            "   public void bar() {\n" +
            "       super.bar();\n" +
            "   }\n" +
            "}\n"
            );
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameTypeParameter() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes= {
            "package test1;\n",
            "public class A<T|*> {\n",
            "   private T t;\n",
            "   public T get() { return t; }\n",
            "}\n"
    };

    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("A.java", builder.toString(), false, null);


    WorkspaceEdit edit = getRenameEdit(cu, pos, "TT");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);

    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class A<TT> {\n" +
            "   private TT t;\n" +
            "   public TT get() { return t; }\n" +
            "}\n"
            );
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameTypeParameterInMethod() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class B<T> {\n",
            "   private T t;\n",
            "   public <U|* extends Number> inspect(U u) { return u; }\n",
            "}\n"
    };

    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("B.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "UU");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);

    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class B<T> {\n" +
            "   private T t;\n" +
            "   public <UU extends Number> inspect(UU u) { return u; }\n" +
            "}\n"
            );
}
项目:eclipse.jdt.ls    文件:RenameHandlerTest.java   
@Test
public void testRenameJavadoc() throws JavaModelException, BadLocationException {
    IPackageFragment pack1 = sourceFolder.createPackageFragment("test1", false, null);

    String[] codes = {
            "package test1;\n",
            "public class E {\n",
            "   /**\n",
            "    *@param i int\n",
            "    */\n",
            "   public int foo(int i|*) {\n",
            "       E e = new E();\n",
            "       e.foo();\n",
            "   }\n",
            "}\n"
    };
    StringBuilder builder = new StringBuilder();
    Position pos = mergeCode(builder, codes);
    ICompilationUnit cu = pack1.createCompilationUnit("E.java", builder.toString(), false, null);

    WorkspaceEdit edit = getRenameEdit(cu, pos, "i2");
    assertNotNull(edit);
    assertEquals(edit.getChanges().size(), 1);
    assertEquals(TextEditUtil.apply(builder.toString(), edit.getChanges().get(JDTUtils.toURI(cu))),
            "package test1;\n" +
            "public class E {\n" +
            "   /**\n" +
            "    *@param i2 int\n" +
            "    */\n" +
            "   public int foo(int i2) {\n" +
            "       E e = new E();\n" +
            "       e.foo();\n" +
            "   }\n" +
            "}\n"
            );
}
项目:xtext-core    文件:RenameTest2.java   
@Test
public void testRenameSelfRef() {
  try {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("package foo");
    _builder.newLine();
    _builder.newLine();
    _builder.append("element Foo {");
    _builder.newLine();
    _builder.append(" ");
    _builder.append("ref Foo");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    final String model = _builder.toString();
    final String file = this.writeFile("foo/Foo.fileawaretestlanguage", model);
    this.initialize();
    TextDocumentIdentifier _textDocumentIdentifier = new TextDocumentIdentifier(file);
    Position _position = new Position(2, 9);
    final RenameParams params = new RenameParams(_textDocumentIdentifier, _position, "Bar");
    final WorkspaceEdit workspaceEdit = this.languageServer.rename(params).get();
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("changes :");
    _builder_1.newLine();
    _builder_1.append("    ");
    _builder_1.append("Foo.fileawaretestlanguage : Bar [[2, 8] .. [2, 11]]");
    _builder_1.newLine();
    _builder_1.append("    ");
    _builder_1.append("Bar [[3, 5] .. [3, 8]]");
    _builder_1.newLine();
    _builder_1.append("documentChanges : ");
    _builder_1.newLine();
    this.assertEquals(_builder_1.toString(), this.toExpectation(workspaceEdit));
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-core    文件:CodeActionService.java   
private WorkspaceEdit recordWorkspaceEdit(final Document doc, final XtextResource resource, final IChangeSerializer.IModification<Resource> mod) {
  try {
    final XtextResourceSet rs = new XtextResourceSet();
    final Resource copy = rs.createResource(resource.getURI());
    String _text = resource.getParseResult().getRootNode().getText();
    StringInputStream _stringInputStream = new StringInputStream(_text);
    copy.load(_stringInputStream, CollectionLiterals.<Object, Object>emptyMap());
    this.serializer.<Resource>addModification(copy, mod);
    final ArrayList<IEmfResourceChange> documentchanges = CollectionLiterals.<IEmfResourceChange>newArrayList();
    this.serializer.applyModifications(CollectionBasedAcceptor.<IEmfResourceChange>of(documentchanges));
    WorkspaceEdit _workspaceEdit = new WorkspaceEdit();
    final Procedure1<WorkspaceEdit> _function = (WorkspaceEdit it) -> {
      Iterable<ITextDocumentChange> _filter = Iterables.<ITextDocumentChange>filter(documentchanges, ITextDocumentChange.class);
      for (final ITextDocumentChange documentchange : _filter) {
        {
          final Function1<ITextReplacement, TextEdit> _function_1 = (ITextReplacement replacement) -> {
            TextEdit _textEdit = new TextEdit();
            final Procedure1<TextEdit> _function_2 = (TextEdit it_1) -> {
              it_1.setNewText(replacement.getReplacementText());
              Position _position = doc.getPosition(replacement.getOffset());
              Position _position_1 = doc.getPosition(replacement.getEndOffset());
              Range _range = new Range(_position, _position_1);
              it_1.setRange(_range);
            };
            return ObjectExtensions.<TextEdit>operator_doubleArrow(_textEdit, _function_2);
          };
          final List<TextEdit> edits = ListExtensions.<ITextReplacement, TextEdit>map(documentchange.getReplacements(), _function_1);
          it.getChanges().put(documentchange.getNewURI().toString(), edits);
        }
      }
    };
    return ObjectExtensions.<WorkspaceEdit>operator_doubleArrow(_workspaceEdit, _function);
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
项目:xtext-core    文件:RenameService.java   
@Override
public WorkspaceEdit rename(final WorkspaceManager workspaceManager, final RenameParams renameParams, final CancelIndicator cancelIndicator) {
  WorkspaceEdit _xblockexpression = null;
  {
    final URI uri = this._uriExtensions.toUri(renameParams.getTextDocument().getUri());
    final ServerRefactoringIssueAcceptor issueAcceptor = this.issueProvider.get();
    final Function2<Document, XtextResource, WorkspaceEdit> _function = (Document document, XtextResource resource) -> {
      final ProjectManager projectManager = workspaceManager.getProjectManager(uri);
      final XtextResourceSet resourceSet = projectManager.createNewResourceSet(projectManager.getIndexState().getResourceDescriptions());
      resourceSet.getLoadOptions().put(ResourceDescriptionsProvider.LIVE_SCOPE, Boolean.valueOf(true));
      final int offset = document.getOffSet(renameParams.getPosition());
      final WorkspaceEdit workspaceEdit = new WorkspaceEdit();
      final Resource xtextResource = resourceSet.getResource(resource.getURI(), true);
      if ((xtextResource instanceof XtextResource)) {
        final EObject element = this._eObjectAtOffsetHelper.resolveElementAt(((XtextResource)xtextResource), offset);
        if (((element == null) || element.eIsProxy())) {
          StringConcatenation _builder = new StringConcatenation();
          _builder.append("No element found at position line:");
          int _line = renameParams.getPosition().getLine();
          _builder.append(_line);
          _builder.append(" column:");
          int _character = renameParams.getPosition().getCharacter();
          _builder.append(_character);
          issueAcceptor.add(RefactoringIssueAcceptor.Severity.FATAL, _builder.toString());
        } else {
          String _newName = renameParams.getNewName();
          URI _uRI = EcoreUtil.getURI(element);
          final RenameChange change = new RenameChange(_newName, _uRI);
          final IChangeSerializer changeSerializer = this.changeSerializerProvider.get();
          final RenameContext context = new RenameContext(Collections.<RenameChange>unmodifiableList(CollectionLiterals.<RenameChange>newArrayList(change)), resourceSet, changeSerializer, issueAcceptor);
          this.renameStrategy.applyRename(context);
          final ChangeConverter changeConverter = this.converterFactory.create(workspaceManager, workspaceEdit);
          changeSerializer.applyModifications(changeConverter);
        }
      } else {
        issueAcceptor.add(RefactoringIssueAcceptor.Severity.FATAL, "Loaded resource is not an XtextResource", resource.getURI());
      }
      return workspaceEdit;
    };
    _xblockexpression = workspaceManager.<WorkspaceEdit>doRead(uri, _function);
  }
  return _xblockexpression;
}
项目:che    文件:RenamePresenter.java   
private void applyRename(List<RenameProject> projects) {
  List<TextDocumentEdit> edits = new ArrayList<>();
  for (RenameProject project : projects) {
    edits.addAll(project.getTextDocumentEdits());
  }
  workspaceEditAction.applyWorkspaceEdit(new WorkspaceEdit(edits));
}
项目:che    文件:ApplyWorkspaceEditAction.java   
@Override
public void actionPerformed(ActionEvent evt) {
  QuickassistActionEvent qaEvent = (QuickassistActionEvent) evt;
  List<Object> arguments = qaEvent.getArguments();
  WorkspaceEdit edit =
      dtoFactory.createDtoFromJson(arguments.get(0).toString(), WorkspaceEdit.class);
  applyWorkspaceEdit(edit);
}
项目:camel-language-server    文件:CamelTextDocumentService.java   
@Override
public CompletableFuture<WorkspaceEdit> rename(RenameParams params) {
    LOGGER.info("rename: " + params.getTextDocument());
    return CompletableFuture.completedFuture(null);
}
项目:SOMns-vscode    文件:ApplyWorkspaceEditParams.java   
public ApplyWorkspaceEditParams(final WorkspaceEdit edit) {
  this.edit = edit;
}
项目:SOMns-vscode    文件:ApplyWorkspaceEditParams.java   
/**
 * The edits to apply.
 */
@Pure
public WorkspaceEdit getEdit() {
  return this.edit;
}
项目:SOMns-vscode    文件:ApplyWorkspaceEditParams.java   
/**
 * The edits to apply.
 */
public void setEdit(final WorkspaceEdit edit) {
  this.edit = edit;
}
项目:SOMns-vscode    文件:SomLanguageServer.java   
@Override
public CompletableFuture<WorkspaceEdit> rename(final RenameParams params) {
  // TODO Auto-generated method stub
  return null;
}