类org.eclipse.lsp4j.ApplyWorkspaceEditParams源码实例Demo

下面列出了怎么用org.eclipse.lsp4j.ApplyWorkspaceEditParams的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: intellij-quarkus   文件: LanguageClientImpl.java
@Override
public final CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
    CompletableFuture<ApplyWorkspaceEditResponse> future = new CompletableFuture<>();
    ApplicationManager.getApplication().executeOnPooledThread(() -> {
        LSPIJUtils.applyWorkspaceEdit(params.getEdit());
        future.complete(new ApplyWorkspaceEditResponse(true));
    });
    return future;
}
 
源代码2 项目: n4js   文件: IdeTestLanguageClient.java
@Override
public CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
	boolean applied = false;
	synchronized (listeners) {
		for (IIdeTestLanguageClientListener l : listeners) {
			applied |= l.onServerRequest_applyEdit(params);
		}
	}
	return CompletableFuture.completedFuture(new ApplyWorkspaceEditResponse(applied));
}
 
源代码3 项目: n4js   文件: N4JSCommandService.java
/**
 * Fix the issues of the same kind in the entire file.
 */
@ExecutableCommandHandler(COMPOSITE_FIX_FILE)
public Void fixAllInFile(String title, String code, String fixId, CodeActionParams codeActionParams,
		ILanguageServerAccess access, CancelIndicator cancelIndicator) {

	String uriString = codeActionParams.getTextDocument().getUri();
	URI uri = uriExtensions.toUri(uriString);

	WorkspaceEdit edit = codeActionService.applyToFile(uri, code, fixId, cancelIndicator);
	access.getLanguageClient().applyEdit(new ApplyWorkspaceEditParams(edit, title));
	return null;
}
 
源代码4 项目: n4js   文件: N4JSCommandService.java
/**
 * Fix the issues of the same kind in the entire project.
 */
@ExecutableCommandHandler(COMPOSITE_FIX_PROJECT)
public Void fixAllInProject(String title, String code, String fixId, CodeActionParams codeActionParams,
		ILanguageServerAccess access, CancelIndicator cancelIndicator) {

	String uriString = codeActionParams.getTextDocument().getUri();
	URI uri = uriExtensions.toUri(uriString);

	WorkspaceEdit edit = codeActionService.applyToProject(uri, code, fixId, cancelIndicator);
	access.getLanguageClient().applyEdit(new ApplyWorkspaceEditParams(edit, title));
	return null;
}
 
源代码5 项目: n4js   文件: N4JSCommandService.java
private Void doOrganizeImports(String uriString, ILanguageServerAccess.Context context,
		LanguageClient languageClient, CancelIndicator cancelIndicator) {

	Resource resource = context.getResource();
	if (!(resource instanceof N4JSResource)) {
		return null;
	}
	Script script = ((N4JSResource) resource).getScript();
	Document document = context.getDocument();

	// compute imports to be added for unresolved references
	List<ImportDescriptor> importsToBeAdded = new ArrayList<>();
	List<ReferenceResolution> resolutions = importHelper
			.findResolutionsForAllUnresolvedReferences(script, cancelIndicator);
	for (ReferenceResolution resolution : resolutions) {
		if (resolution.importToBeAdded != null) {
			importsToBeAdded.add(resolution.importToBeAdded);
		}
	}

	// organize all imports (existing and new ones)
	List<TextEdit> edits = importOrganizer.organizeImports(document, script, importsToBeAdded, cancelIndicator);

	WorkspaceEdit workspaceEdit = new WorkspaceEdit(Collections.singletonMap(uriString, edits));
	ApplyWorkspaceEditParams params = new ApplyWorkspaceEditParams(workspaceEdit, "Organize Imports");
	languageClient.applyEdit(params);
	return null;
}
 
源代码6 项目: lsp4intellij   文件: DefaultLanguageClient.java
@Override
public CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
    boolean response = WorkspaceEditHandler.applyEdit(params.getEdit(), "LSP edits");
    return CompletableFuture.supplyAsync(() -> new ApplyWorkspaceEditResponse(response));
}
 
源代码7 项目: n4js   文件: AbstractIdeTest.java
@Override
public boolean onServerRequest_applyEdit(ApplyWorkspaceEditParams params) {
	changeFilesOnDiskWithoutNotification(params.getEdit());
	return true;
}
 
源代码8 项目: netbeans   文件: LanguageClientImpl.java
@Override
public CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
    Utils.applyWorkspaceEdit(params.getEdit());
    return CompletableFuture.completedFuture(new ApplyWorkspaceEditResponse(true));
}
 
源代码9 项目: vscode-as3mxml   文件: ExecuteCommandProvider.java
private CompletableFuture<Object> executeAddImportCommand(ExecuteCommandParams params)
{
    return CompletableFutures.computeAsync(compilerWorkspace.getExecutorService(), cancelToken ->
    {
        cancelToken.checkCanceled();

        compilerWorkspace.startBuilding();
        try
        {
            cancelToken.checkCanceled();
            List<Object> args = params.getArguments();
            String qualifiedName = ((JsonPrimitive) args.get(0)).getAsString();
            String uri = ((JsonPrimitive) args.get(1)).getAsString();
            int line = ((JsonPrimitive) args.get(2)).getAsInt();
            int character = ((JsonPrimitive) args.get(3)).getAsInt();
            if(qualifiedName == null)
            {
                return new Object();
            }
            Path pathForImport = LanguageServerCompilerUtils.getPathFromLanguageServerURI(uri);
            if(pathForImport == null)
            {
                return new Object();
            }
            WorkspaceFolderData folderData = workspaceFolderManager.getWorkspaceFolderDataForSourceFile(pathForImport);
            if(folderData == null || folderData.project == null)
            {
                return new Object();
            }
            String text = fileTracker.getText(pathForImport);
            if(text == null)
            {
                return new Object();
            }
            int currentOffset = LanguageServerCompilerUtils.getOffsetFromPosition(new StringReader(text), new Position(line, character));
            ImportRange importRange = null;
            if(uri.endsWith(FILE_EXTENSION_MXML))
            {
                MXMLData mxmlData = workspaceFolderManager.getMXMLDataForPath(pathForImport, folderData);
                IMXMLTagData offsetTag = MXMLDataUtils.getOffsetMXMLTag(mxmlData, currentOffset);
                importRange = ImportRange.fromOffsetTag(offsetTag, currentOffset);
            }
            else
            {
                IASNode offsetNode = workspaceFolderManager.getOffsetNode(pathForImport, currentOffset, folderData);
                importRange = ImportRange.fromOffsetNode(offsetNode);
            }
            WorkspaceEdit workspaceEdit = CodeActionsUtils.createWorkspaceEditForAddImport(
                qualifiedName, text, uri, importRange);
            if(workspaceEdit == null)
            {
                //no edit required
                return new Object();
            }

            ApplyWorkspaceEditParams editParams = new ApplyWorkspaceEditParams();
            editParams.setEdit(workspaceEdit);

            languageClient.applyEdit(editParams);
            return new Object();
        }
        finally
        {
            compilerWorkspace.doneBuilding();
        }
    });
}
 
源代码10 项目: vscode-as3mxml   文件: ExecuteCommandProvider.java
private CompletableFuture<Object> executeAddMXMLNamespaceCommand(ExecuteCommandParams params)
{
    return CompletableFutures.computeAsync(compilerWorkspace.getExecutorService(), cancelToken ->
    {
        cancelToken.checkCanceled();

        compilerWorkspace.startBuilding();
        try
        {
            cancelToken.checkCanceled();
            List<Object> args = params.getArguments();
            String nsPrefix = ((JsonPrimitive) args.get(0)).getAsString();
            String nsUri = ((JsonPrimitive) args.get(1)).getAsString();
            String uri = ((JsonPrimitive) args.get(2)).getAsString();
            int startIndex = ((JsonPrimitive) args.get(3)).getAsInt();
            int endIndex = ((JsonPrimitive) args.get(4)).getAsInt();
            if(nsPrefix == null || nsUri == null)
            {
                return new Object();
            }
            Path pathForImport = LanguageServerCompilerUtils.getPathFromLanguageServerURI(uri);
            if(pathForImport == null)
            {
                return new Object();
            }
            String text = fileTracker.getText(pathForImport);
            if(text == null)
            {
                return new Object();
            }
            WorkspaceEdit workspaceEdit = CodeActionsUtils.createWorkspaceEditForAddMXMLNamespace(nsPrefix, nsUri, text, uri, startIndex, endIndex);
            if(workspaceEdit == null)
            {
                //no edit required
                return new Object();
            }

            ApplyWorkspaceEditParams editParams = new ApplyWorkspaceEditParams();
            editParams.setEdit(workspaceEdit);

            languageClient.applyEdit(editParams);
            return new Object();
        }
        finally
        {
            compilerWorkspace.doneBuilding();
        }
    });
}
 
源代码11 项目: xtext-core   文件: CommandRegistryTest.java
public CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
	return noImpl3.applyEdit(params);
}
 
源代码12 项目: lsp4j   文件: LanguageClient.java
/**
 * The workspace/applyEdit request is sent from the server to the client to modify resource on the client side.
 */
@JsonRequest("workspace/applyEdit")
default CompletableFuture<ApplyWorkspaceEditResponse> applyEdit(ApplyWorkspaceEditParams params) {
	throw new UnsupportedOperationException();
}
 
源代码13 项目: eclipse.jdt.ls   文件: JavaClientConnection.java
/**
 * Sends a message to client to apply the given workspace edit.
 * This is available since LSP v3.0 should be used
 * only by checking the ClientCapabilities.
 *
 * @param edit
 */
public boolean applyWorkspaceEdit(WorkspaceEdit edit){
	ApplyWorkspaceEditParams $ = new ApplyWorkspaceEditParams();
	$.setEdit(edit);
	ApplyWorkspaceEditResponse response = client.applyEdit($).join();
	return response.isApplied();
}
 
源代码14 项目: n4js   文件: IdeTestLanguageClient.java
/**
 * Invoked when the LSP server sends the {@link LanguageClient#applyEdit(ApplyWorkspaceEditParams)
 * workspace/applyEdit} request to the client during an {@link AbstractIdeTest N4JS IDE test}.
 * <p>
 * NOTE: will be invoked from one of the server's worker threads!
 *
 * @return <code>true</code> iff the workspace edit was applied.
 */
public boolean onServerRequest_applyEdit(ApplyWorkspaceEditParams params);
 
 类所在包
 同包方法