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

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

public void automaticJarDetection() throws Exception {
	ClientPreferences mockCapabilies = mock(ClientPreferences.class);
	when(mockCapabilies.isWorkspaceChangeWatchedFilesDynamicRegistered()).thenReturn(Boolean.TRUE);
	when(preferenceManager.getClientPreferences()).thenReturn(mockCapabilies);

	File projectFolder = createSourceFolderWithLibs("automaticJarDetection", "src", true);

	IProject invisibleProject = importRootFolder(projectFolder, "Test.java");
	assertNoErrors(invisibleProject);

	IJavaProject javaProject = JavaCore.create(invisibleProject);
	IClasspathEntry[] classpath = javaProject.getRawClasspath();
	assertEquals("Unexpected classpath:\n" + JavaProjectHelper.toString(classpath), 3, classpath.length);
	assertEquals("foo.jar", classpath[2].getPath().lastSegment());
	assertEquals("foo-sources.jar", classpath[2].getSourceAttachmentPath().lastSegment());

	List<FileSystemWatcher> watchers = projectsManager.registerWatchers();
	watchers.sort((a, b) -> a.getGlobPattern().compareTo(b.getGlobPattern()));
	assertEquals(10, watchers.size());
	String srcGlobPattern = watchers.get(7).getGlobPattern();
	assertTrue("Unexpected source glob pattern: " + srcGlobPattern, srcGlobPattern.equals("**/src/**"));
	String libGlobPattern = watchers.get(9).getGlobPattern();
	assertTrue("Unexpected lib glob pattern: " + libGlobPattern, libGlobPattern.endsWith(projectFolder.getName() + "/lib/**"));
}
 
源代码2 项目: 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);
}
 
源代码3 项目: 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();
}
 
@Test
public void automaticJarDetectionLibUnderSource() throws Exception {
	ClientPreferences mockCapabilies = mock(ClientPreferences.class);
	when(mockCapabilies.isWorkspaceChangeWatchedFilesDynamicRegistered()).thenReturn(Boolean.TRUE);
	when(preferenceManager.getClientPreferences()).thenReturn(mockCapabilies);

	File projectFolder = createSourceFolderWithLibs("automaticJarDetectionLibUnderSource");

	IProject invisibleProject = importRootFolder(projectFolder, "Test.java");
	assertNoErrors(invisibleProject);

	IJavaProject javaProject = JavaCore.create(invisibleProject);
	IClasspathEntry[] classpath = javaProject.getRawClasspath();
	assertEquals("Unexpected classpath:\n" + JavaProjectHelper.toString(classpath), 3, classpath.length);
	assertEquals("foo.jar", classpath[2].getPath().lastSegment());
	assertEquals("foo-sources.jar", classpath[2].getSourceAttachmentPath().lastSegment());

	List<FileSystemWatcher> watchers = projectsManager.registerWatchers();
	watchers.sort((a, b) -> a.getGlobPattern().compareTo(b.getGlobPattern()));
	assertEquals(10, watchers.size()); // basic(8) + project(1) + library(1)
	String srcGlobPattern = watchers.get(7).getGlobPattern();
	assertTrue("Unexpected source glob pattern: " + srcGlobPattern, srcGlobPattern.equals("**/src/**"));
	String projGlobPattern = watchers.get(8).getGlobPattern();
	assertTrue("Unexpected project glob pattern: " + projGlobPattern, projGlobPattern.endsWith(projectFolder.getName() + "/**"));
	String libGlobPattern = watchers.get(9).getGlobPattern();
	assertTrue("Unexpected library glob pattern: " + libGlobPattern, libGlobPattern.endsWith(projectFolder.getName() + "/lib/**"));
}
 
@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();
}
 
源代码6 项目: eclipse.jdt.ls   文件: InitHandlerTest.java
private String toString(List<FileSystemWatcher> watchers) {
	return watchers.stream().map(FileSystemWatcher::getGlobPattern).collect(Collectors.joining("\n"));
}
 
public DidChangeWatchedFilesRegistrationOptions(@NonNull final List<FileSystemWatcher> watchers) {
  this.watchers = Preconditions.<List<FileSystemWatcher>>checkNotNull(watchers, "watchers");
}
 
/**
 * The watchers to register.
 */
@Pure
@NonNull
public List<FileSystemWatcher> getWatchers() {
  return this.watchers;
}
 
/**
 * The watchers to register.
 */
public void setWatchers(@NonNull final List<FileSystemWatcher> watchers) {
  this.watchers = Preconditions.checkNotNull(watchers, "watchers");
}
 
源代码10 项目: eclipse.jdt.ls   文件: IProjectsManager.java
/**
 * Update the watcher patterns.
 */
List<FileSystemWatcher> registerWatchers();
 
 类所在包
 同包方法