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

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

源代码1 项目: vscode-as3mxml   文件: WorkspaceFolderManager.java
public WorkspaceFolderData setFallbackFolderData(WorkspaceFolder folder, IProjectConfigStrategy config)
{
    if(fallbackFolderData != null)
    {
        if(fallbackFolderData.folder.equals(folder)
                && fallbackFolderData.config.equals(config))
        {
            return fallbackFolderData;
        }
        fallbackFolderData.cleanup();
        fallbackFolderData = null;
    }
    WorkspaceFolderData folderData = new WorkspaceFolderData(folder, config);
    fallbackFolderData = folderData;
    return fallbackFolderData;
}
 
源代码2 项目: vscode-as3mxml   文件: ActionScriptServices.java
public void addWorkspaceFolder(WorkspaceFolder folder)
{
    IProjectConfigStrategy config = projectConfigStrategyFactory.create(folder);
    WorkspaceFolderData folderData = workspaceFolderManager.addWorkspaceFolder(folder, config);
    folderData.codeProblemTracker.setLanguageClient(languageClient);
    folderData.configProblemTracker.setLanguageClient(languageClient);
    
    //let's get the code intelligence up and running!
    Path path = getMainCompilationUnitPath(folderData);
    if (path != null)
    {
        String normalizedPath = FilenameNormalization.normalize(path.toAbsolutePath().toString());
        IFileSpecification fileSpec = fileTracker.getFileSpecification(normalizedPath);
        compilerWorkspace.fileChanged(fileSpec);
    }

    checkProjectForProblems(folderData);
}
 
源代码3 项目: vscode-as3mxml   文件: ActionScriptServices.java
private void updateFallbackWorkspaceFolder()
{
    if(oldFrameworkSDKPath == null)
    {
        return;
    }
    WorkspaceFolder folder = new WorkspaceFolder(Paths.get(oldFrameworkSDKPath).toUri().toString());
    fallbackConfig = new SimpleProjectConfigStrategy(folder);
    WorkspaceFolderData fallbackFolderData = workspaceFolderManager.setFallbackFolderData(folder, fallbackConfig);
    for(Path openFilePath : fileTracker.getOpenFiles())
    {
        WorkspaceFolderData folderData = workspaceFolderManager.getWorkspaceFolderDataForSourceFile(openFilePath);
        if(fallbackFolderData.equals(folderData))
        {
            fallbackConfig.didOpen(openFilePath);
        }
    }
}
 
源代码4 项目: intellij-quarkus   文件: LSPIJUtils.java
@Nonnull
public static WorkspaceFolder toWorkspaceFolder(@Nonnull Module project) {
    WorkspaceFolder folder = new WorkspaceFolder();
    folder.setUri(toUri(project).toString());
    folder.setName(project.getName());
    return folder;
}
 
源代码5 项目: intellij-quarkus   文件: LanguageClientImpl.java
@Override
public CompletableFuture<List<WorkspaceFolder>> workspaceFolders() {
    List<WorkspaceFolder> res = new ArrayList<>(wrapper.allWatchedProjects.size());
    for (final Module project : wrapper.allWatchedProjects) {
        res.add(LSPIJUtils.toWorkspaceFolder(project));
    }
    return CompletableFuture.completedFuture(res);
}
 
源代码6 项目: MSPaintIDE   文件: DefaultLanguageServerWrapper.java
public DefaultLanguageServerWrapper(StartupLogic startupLogic, LSP lsp, String serverPath, List<String> lspArgs, BiConsumer<LanguageServerWrapper, File> workspaceInit) {
    this.documentManager = new DefaultDocumentManager(this, startupLogic);
    this.startupLogic = startupLogic;
    this.fileWatchManager = startupLogic.getFileWatchManager();
    this.lsp = lsp;
    this.serverPath = () -> serverPath;
    this.lspArgs = lspArgs;
    this.workspaceInit = workspaceInit;

    if (!lsp.usesWorkspaces()) return;
    this.workspaces.addListener((ListChangeListener<WorkspaceFolder>) change -> {
        var added = new ArrayList<WorkspaceFolder>();
        var removed = new ArrayList<WorkspaceFolder>();

        while (change.next()) {
            added.addAll(change.getAddedSubList());
            removed.addAll(change.getRemoved());
        }

        LOGGER.info("Adding: {}  Removing: {}", added, removed);

        this.languageServer.getWorkspaceService().didChangeWorkspaceFolders(
                new DidChangeWorkspaceFoldersParams(
                        new WorkspaceFoldersChangeEvent(
                                added,
                                removed)));
    });
}
 
public ASConfigProjectConfigStrategy(WorkspaceFolder workspaceFolder)
{
    this.workspaceFolder = workspaceFolder;

    Path workspacePath = Paths.get(URI.create(workspaceFolder.getUri()));
    asconfigPath = workspacePath.resolve(ASCONFIG_JSON);
}
 
源代码8 项目: vscode-as3mxml   文件: WorkspaceFolderManager.java
public WorkspaceFolderData addWorkspaceFolder(WorkspaceFolder folder, IProjectConfigStrategy config)
{
    workspaceFolders.add(folder);
    WorkspaceFolderData folderData = new WorkspaceFolderData(folder, config);
    workspaceFolderToData.put(folder, folderData);
    return folderData;
}
 
源代码9 项目: vscode-as3mxml   文件: WorkspaceFolderManager.java
public void removeWorkspaceFolder(WorkspaceFolder folder)
{
    if(!workspaceFolderToData.containsKey(folder))
    {
        return;
    }
    workspaceFolders.remove(folder);
    WorkspaceFolderData folderData = workspaceFolderToData.get(folder);
    workspaceFolderToData.remove(folder);
    folderData.cleanup();
}
 
源代码10 项目: xtext-core   文件: SourceFolderCustomImplTest.java
@Override
public void addProjectsForWorkspaceFolder(WorkspaceConfig workspaceConfig, WorkspaceFolder workspaceFolder,
		Set<String> existingNames) {
	if (workspaceFolder != null) {
		if (workspaceFolder.getUri() != null) {
			SourceFolderCustomImplTest.CustomFileProjectConfig project = new SourceFolderCustomImplTest.CustomFileProjectConfig(
					getUriExtensions().toUri(workspaceFolder.getUri()), workspaceConfig);
			project.addSourceFolder(".");
			workspaceConfig.addProject(project);
		}
	}
}
 
源代码11 项目: xtext-core   文件: IndexOnlyProjectTest.java
@Override
public com.google.inject.Module getServerModule() {
  ServerModule _serverModule = new ServerModule();
  final com.google.inject.Module _function = (Binder it) -> {
    AnnotatedBindingBuilder<IMultiRootWorkspaceConfigFactory> _bind = it.<IMultiRootWorkspaceConfigFactory>bind(IMultiRootWorkspaceConfigFactory.class);
    _bind.toInstance(new MultiRootWorkspaceConfigFactory() {
      @Override
      public void addProjectsForWorkspaceFolder(final WorkspaceConfig workspaceConfig, final WorkspaceFolder workspaceFolder, final Set<String> existingNames) {
        String _uri = null;
        if (workspaceFolder!=null) {
          _uri=workspaceFolder.getUri();
        }
        boolean _tripleNotEquals = (_uri != null);
        if (_tripleNotEquals) {
          URI _uri_1 = this.getUriExtensions().toUri(workspaceFolder.getUri());
          String _uniqueProjectName = this.getUniqueProjectName(workspaceFolder.getName(), existingNames);
          final FileProjectConfig project = new FileProjectConfig(_uri_1, _uniqueProjectName) {
            @Override
            public boolean isIndexOnly() {
              return true;
            }
          };
          project.addSourceFolder(".");
          workspaceConfig.addProject(project);
        }
      }
    });
  };
  return Modules2.mixin(_serverModule, _function);
}
 
@Override
public IWorkspaceConfig getWorkspaceConfig(List<WorkspaceFolder> workspaceFolders) {
	WorkspaceConfig workspaceConfig = new WorkspaceConfig();
	Set<String> existingProjectNames = new HashSet<>();
	for(WorkspaceFolder workspaceFolder: workspaceFolders) 
		addProjectsForWorkspaceFolder(workspaceConfig, workspaceFolder, existingProjectNames);
	return workspaceConfig;
}
 
protected void addProjectsForWorkspaceFolder(WorkspaceConfig workspaceConfig, WorkspaceFolder workspaceFolder, Set<String> existingNames) {
	if (workspaceFolder != null && workspaceFolder.getUri() != null) {
		FileProjectConfig project = new FileProjectConfig(uriExtensions.toUri(workspaceFolder.getUri()), getUniqueProjectName(workspaceFolder.getName(), existingNames));
		project.addSourceFolder(".");
		workspaceConfig.addProject(project);
	}
}
 
源代码14 项目: xtext-core   文件: LanguageServerImpl.java
@Override
public CompletableFuture<InitializeResult> initialize(InitializeParams params) {
	if (initializeParams != null) {
		throw new IllegalStateException("This language server has already been initialized.");
	}
	URI baseDir = getBaseDir(params);
	if (languagesRegistry.getExtensionToFactoryMap().isEmpty()) {
		throw new IllegalStateException(
				"No Xtext languages have been registered. Please make sure you have added the languages\'s setup class in \'/META-INF/services/org.eclipse.xtext.ISetup\'");
	}
	initializeParams = params;

	InitializeResult result = new InitializeResult();

	result.setCapabilities(createServerCapabilities(params));
	access.addBuildListener(this);
	return requestManager.runWrite(() -> {
		if (workspaceManager.isSupportsWorkspaceFolders()) {
			List<WorkspaceFolder> workspaceFolders = params.getWorkspaceFolders();
			if (workspaceFolders == null)
				workspaceFolders = Collections.emptyList();
			workspaceManager.initialize(workspaceFolders, this::publishDiagnostics, CancelIndicator.NullImpl);
		} else {
			workspaceManager.initialize(baseDir, this::publishDiagnostics, CancelIndicator.NullImpl);
		}
		return result;
	}, (cancelIndicator, it) -> it).thenApply(it -> initializeResult = it);
}
 
源代码15 项目: xtext-core   文件: WorkspaceManager.java
/**
 * Updates the workspace folders and refreshes the workspace.
 * 
 * @since 2.21
 */
public void didChangeWorkspaceFolders(DidChangeWorkspaceFoldersParams params, CancelIndicator cancelIndicator) {
	WorkspaceFoldersChangeEvent event = params.getEvent();
	Map<String, WorkspaceFolder> uri2workspaceFolder = new HashMap<>();
	workspaceFolders.forEach(it -> uri2workspaceFolder.put(it.getUri(), it));
	event.getRemoved().forEach(it -> uri2workspaceFolder.remove(it.getUri()));
	event.getAdded().forEach(it -> {
		if (!uri2workspaceFolder.containsKey(it.getUri())) 
			uri2workspaceFolder.put(it.getUri(), it);
	});
	this.workspaceFolders = new ArrayList<>(uri2workspaceFolder.values());
	refreshWorkspaceConfig(cancelIndicator);
}
 
源代码16 项目: lsp4intellij   文件: DefaultLanguageClient.java
@Override
public CompletableFuture<List<WorkspaceFolder>> workspaceFolders() {
    return LanguageClient.super.workspaceFolders();
}
 
源代码17 项目: MSPaintIDE   文件: DefaultLanguageServerWrapper.java
private WorkspaceFolder getWorkspace(File file) {
    return getWorkspace(file.getAbsolutePath());
}
 
源代码18 项目: MSPaintIDE   文件: DefaultLanguageServerWrapper.java
private WorkspaceFolder getWorkspace(String file) {
    var workspace = new WorkspaceFolder();
    workspace.setUri(getURI(file));
    workspace.setName(ProjectManager.getPPFProject().getName());
    return workspace;
}
 
源代码19 项目: MSPaintIDE   文件: DefaultLanguageServerWrapper.java
private WorkspaceFolder getWorkspace(String file, String name) {
    var workspace = new WorkspaceFolder();
    workspace.setUri(getURI(file));
    workspace.setName(name);
    return workspace;
}
 
public WorkspaceFolder getWorkspaceFolder()
{
    return workspaceFolder;
}
 
源代码21 项目: vscode-as3mxml   文件: WorkspaceFolderData.java
public WorkspaceFolderData(WorkspaceFolder folder, IProjectConfigStrategy config)
{
	this.folder = folder;
	this.config = config;
}
 
public SimpleProjectConfigStrategy(WorkspaceFolder workspaceFolder)
{
    this.workspaceFolder = workspaceFolder;
}
 
public WorkspaceFolder getWorkspaceFolder()
{
    return workspaceFolder;
}
 
源代码24 项目: vscode-as3mxml   文件: WorkspaceFolderManager.java
public List<WorkspaceFolder> getWorkspaceFolders()
{
    return workspaceFolders;
}
 
源代码25 项目: vscode-as3mxml   文件: WorkspaceFolderManager.java
public WorkspaceFolderData getWorkspaceFolderData(WorkspaceFolder folder)
{
    return workspaceFolderToData.get(folder);
}
 
源代码26 项目: vscode-as3mxml   文件: WorkspaceSymbolProvider.java
public List<? extends SymbolInformation> workspaceSymbol(WorkspaceSymbolParams params, CancelChecker cancelToken)
{
	cancelToken.checkCanceled();
	Set<String> qualifiedNames = new HashSet<>();
	List<SymbolInformation> result = new ArrayList<>();
	String query = params.getQuery();
	StringBuilder currentQuery = new StringBuilder();
	List<String> queries = new ArrayList<>();
	for(int i = 0, length = query.length(); i < length; i++)
	{
		String charAtI = query.substring(i, i + 1);
		if(i > 0 && charAtI.toUpperCase().equals(charAtI))
		{
			queries.add(currentQuery.toString().toLowerCase());
			currentQuery = new StringBuilder();
		}
		currentQuery.append(charAtI);
	}
	if(currentQuery.length() > 0)
	{
		queries.add(currentQuery.toString().toLowerCase());
	}
	for (WorkspaceFolder folder : workspaceFolderManager.getWorkspaceFolders())
	{
		WorkspaceFolderData folderData = workspaceFolderManager.getWorkspaceFolderData(folder);
		ILspProject project = folderData.project;
		if (project == null)
		{
			continue;
		}
		for (ICompilationUnit unit : project.getCompilationUnits())
		{
			if (unit == null)
			{
				continue;
			}
			UnitType unitType = unit.getCompilationUnitType();
			if (UnitType.SWC_UNIT.equals(unitType))
			{
				List<IDefinition> definitions = unit.getDefinitionPromises();
				for (IDefinition definition : definitions)
				{
					if (definition instanceof DefinitionPromise)
					{
						//we won't be able to detect what type of definition
						//this is without getting the actual definition from the
						//promise.
						DefinitionPromise promise = (DefinitionPromise) definition;
						definition = promise.getActualDefinition();
					}
					if (definition.isImplicit())
					{
						continue;
					}
					if (!matchesQueries(queries, definition.getQualifiedName()))
					{
						continue;
					}
					String qualifiedName = definition.getQualifiedName();
					if (qualifiedNames.contains(qualifiedName))
					{
						//we've already added this symbol
						//this can happen when there are multiple root
						//folders in the workspace
						continue;
					}
					SymbolInformation symbol = workspaceFolderManager.definitionToSymbolInformation(definition, project);
					if (symbol != null)
					{
						qualifiedNames.add(qualifiedName);
						result.add(symbol);
					}
				}
			}
			else if (UnitType.AS_UNIT.equals(unitType) || UnitType.MXML_UNIT.equals(unitType))
			{
				IASScope[] scopes;
				try
				{
					scopes = unit.getFileScopeRequest().get().getScopes();
				}
				catch (Exception e)
				{
					return Collections.emptyList();
				}
				for (IASScope scope : scopes)
				{
					querySymbolsInScope(queries, scope, qualifiedNames, project, result);
				}
			}
		}
	}
	cancelToken.checkCanceled();
	return result;
}
 
源代码27 项目: vscode-as3mxml   文件: Main.java
public IProjectConfigStrategy create(WorkspaceFolder folder)
{
    return new ASConfigProjectConfigStrategy(folder);
}
 
源代码28 项目: vscode-as3mxml   文件: ActionScriptServices.java
public List<WorkspaceFolder> getWorkspaceFolders()
{
    return workspaceFolderManager.getWorkspaceFolders();
}
 
源代码29 项目: vscode-as3mxml   文件: ActionScriptServices.java
public WorkspaceFolderData getWorkspaceFolderData(WorkspaceFolder folder)
{
    return workspaceFolderManager.getWorkspaceFolderData(folder);
}
 
源代码30 项目: vscode-as3mxml   文件: ActionScriptServices.java
public void removeWorkspaceFolder(WorkspaceFolder folder)
{
    workspaceFolderManager.removeWorkspaceFolder(folder);
}
 
 类所在包
 类方法
 同包方法