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

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

源代码1 项目: lemminx   文件: XMLCapabilityManager.java
private void registerWatchedFiles() {
	List<FileSystemWatcher> watchers = new ArrayList<>(2);
	watchers.add(new FileSystemWatcher("**/*.xsd"));
	watchers.add(new FileSystemWatcher("**/*.dtd"));
	DidChangeWatchedFilesRegistrationOptions options = new DidChangeWatchedFilesRegistrationOptions(watchers);
	registerCapability(WORKSPACE_WATCHED_FILES_ID, WORKSPACE_WATCHED_FILES, options);
}
 
源代码2 项目: eclipse.jdt.ls   文件: SyntaxProjectsManager.java
@Override
public List<FileSystemWatcher> registerWatchers() {
	logInfo(">> registerFeature 'workspace/didChangeWatchedFiles'");
	if (JavaLanguageServerPlugin.getPreferencesManager().getClientPreferences().isWorkspaceChangeWatchedFilesDynamicRegistered()) {
		IPath[] sources = new IPath[0];
		try {
			sources = listAllSourcePaths();
		} catch (JavaModelException e) {
			JavaLanguageServerPlugin.logException(e.getMessage(), e);
		}
		List<FileSystemWatcher> fileWatchers = new ArrayList<>();
		Set<String> patterns = new LinkedHashSet<>(basicWatchers);
		patterns.addAll(Stream.of(sources).map(ResourceUtils::toGlobPattern).collect(Collectors.toList()));

		for (String pattern : patterns) {
			FileSystemWatcher watcher = new FileSystemWatcher(pattern);
			fileWatchers.add(watcher);
		}

		if (!patterns.equals(watchers)) {
			JavaLanguageServerPlugin.logInfo(">> registerFeature 'workspace/didChangeWatchedFiles'");
			DidChangeWatchedFilesRegistrationOptions didChangeWatchedFilesRegistrationOptions = new DidChangeWatchedFilesRegistrationOptions(fileWatchers);
			JavaLanguageServerPlugin.getInstance().unregisterCapability(Preferences.WORKSPACE_WATCHED_FILES_ID, Preferences.WORKSPACE_WATCHED_FILES);
			JavaLanguageServerPlugin.getInstance().registerCapability(Preferences.WORKSPACE_WATCHED_FILES_ID, Preferences.WORKSPACE_WATCHED_FILES, didChangeWatchedFilesRegistrationOptions);
			watchers.clear();
			watchers.addAll(patterns);
		}

		return fileWatchers;
	}

	return Collections.emptyList();
}
 
@Override
public void initialized(InitializedParams params)
{
    boolean canRegisterDidChangeWatchedFiles = false;
    try
    {
        canRegisterDidChangeWatchedFiles = actionScriptServices.getClientCapabilities().getWorkspace().getDidChangeWatchedFiles().getDynamicRegistration();
    }
    catch(NullPointerException e)
    {
        canRegisterDidChangeWatchedFiles = false;
    }
    if(canRegisterDidChangeWatchedFiles)
    {
        List<FileSystemWatcher> watchers = new ArrayList<>();
        //ideally, we'd only check .as, .mxml, asconfig.json, and directories
        //but there's no way to target directories without *
        watchers.add(new FileSystemWatcher("**/*"));

        String id = "as3mxml-language-server-" + Math.random();
        DidChangeWatchedFilesRegistrationOptions options = new DidChangeWatchedFilesRegistrationOptions(watchers);
        Registration registration = new Registration(id, "workspace/didChangeWatchedFiles", options);
        List<Registration> registrations = new ArrayList<>();
        registrations.add(registration);

        RegistrationParams registrationParams = new RegistrationParams(registrations);
        languageClient.registerCapability(registrationParams);
    }

    //we can't notify the client about problems until we receive this
    //initialized notification. this is the first time that we'll start
    //checking for errors.
    actionScriptServices.setInitialized();
}
 
 类所在包
 同包方法