Allow LSP server capabilities to be accesssed

Update editor to v0.9.2
This commit is contained in:
Akash Yadav
2022-02-03 18:35:08 +05:30
parent 3045192aac
commit b49041cdd8
6 changed files with 45 additions and 31 deletions
+1
View File
@@ -47,6 +47,7 @@
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/layout_crash_report.xml" value="0.25" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/layout_diagnostic_info.xml" value="0.20512820512820512" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/layout_editor_bottom_sheet.xml" value="0.19572649572649573" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/layout_editor_text_actions.xml" value="0.25" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/layout_symbol_item.xml" value="0.20512820512820512" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/layout/test.xml" value="0.20512820512820512" />
<entry key="..\:/Projects/AndroidStudioProjects/AndroidIDE/app/src/main/res/menu/menu_editor.xml" value="0.20512820512820512" />
+1 -1
View File
@@ -1,6 +1,6 @@
ext {
common = [
editor: 'io.github.Rosemoe.sora-editor:editor:0.9.1',
editor: 'io.github.Rosemoe.sora-editor:editor:0.9.2',
utilcode: 'com.blankj:utilcodex:1.30.6',
file_picker: 'com.github.abhishekti7:UnicornFilePicker:1.0.2',
glide: 'com.github.bumptech.glide:glide:4.12.0',
@@ -37,8 +37,8 @@ package com.itsaky.lsp.api;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.itsaky.lsp.models.InitializeResult;
import com.itsaky.lsp.models.InitializeParams;
import com.itsaky.lsp.models.ServerCapabilities;
/**
* A language server provides API for providing functions related to
@@ -54,11 +54,16 @@ public interface ILanguageServer {
* language server was already initialized.
*
* @param params The params used to initialize the language server.
* @return The initialization result.
* @throws AlreadyInitializedException If the language server was already initialized.
*/
void initialize (@NonNull InitializeParams params) throws AlreadyInitializedException;
/**
* Returns the capabilities that the LSP implementation provides.
* @return The capabilities of the server.
*/
@NonNull
InitializeResult initialize (@NonNull InitializeParams params) throws AlreadyInitializedException;
ServerCapabilities getCapabilities ();
/**
* Called by client to notify the server to shutdown.
@@ -21,7 +21,7 @@ import java.nio.file.Path
data class InitializeParams (var workspaceRoots: Set<Path>)
data class InitializeResult
data class ServerCapabilities
(
var completionsAvailable: Boolean,
var codeActionsAvailable: Boolean,
@@ -22,9 +22,9 @@ import androidx.annotation.Nullable;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.lsp.api.ICodeActionProvider;
import com.itsaky.lsp.api.IDiagnosticProvider;
import com.itsaky.lsp.api.ICompletionProvider;
import com.itsaky.lsp.api.IDefinitionProvider;
import com.itsaky.lsp.api.IDiagnosticProvider;
import com.itsaky.lsp.api.IDocumentHandler;
import com.itsaky.lsp.api.ILanguageClient;
import com.itsaky.lsp.api.ILanguageServer;
@@ -47,11 +47,11 @@ import com.itsaky.lsp.models.DocumentCloseEvent;
import com.itsaky.lsp.models.DocumentOpenEvent;
import com.itsaky.lsp.models.DocumentSaveEvent;
import com.itsaky.lsp.models.InitializeParams;
import com.itsaky.lsp.models.InitializeResult;
import com.itsaky.lsp.models.ServerCapabilities;
import com.itsaky.lsp.util.NoCodeActionsProvider;
import com.itsaky.lsp.util.NoDiagnosticProvider;
import com.itsaky.lsp.util.NoCompletionsProvider;
import com.itsaky.lsp.util.NoDefinitionProvider;
import com.itsaky.lsp.util.NoDiagnosticProvider;
import com.itsaky.lsp.util.NoReferenceProvider;
import com.itsaky.lsp.util.NoSelectionProvider;
import com.itsaky.lsp.util.NoSignatureHelpProvider;
@@ -69,6 +69,7 @@ public class JavaLanguageServer implements ILanguageServer, IDocumentHandler {
private boolean createCompiler;
private static final Logger LOG = Logger.instance ("JavaLanguageServer");
private ServerCapabilities capabilities;
public JavaLanguageServer () {
this.initialized = false;
@@ -104,9 +105,8 @@ public class JavaLanguageServer implements ILanguageServer, IDocumentHandler {
);
}
@NonNull
@Override
public InitializeResult initialize (@NonNull InitializeParams params) throws AlreadyInitializedException {
public void initialize (@NonNull InitializeParams params) throws AlreadyInitializedException {
if (initialized) {
throw new AlreadyInitializedException ();
@@ -114,17 +114,21 @@ public class JavaLanguageServer implements ILanguageServer, IDocumentHandler {
FileStore.setWorkspaceRoots (params.getWorkspaceRoots ());
final InitializeResult result = new InitializeResult ();
result.setCompletionsAvailable (true);
result.setCodeActionsAvailable (true);
result.setDefinitionsAvailable (true);
result.setReferencesAvailable (true);
result.setSignatureHelpAvailable (true);
result.setCodeAnalysisAvailable (true);
capabilities = new ServerCapabilities ();
capabilities.setCompletionsAvailable (true);
capabilities.setCodeActionsAvailable (true);
capabilities.setDefinitionsAvailable (true);
capabilities.setReferencesAvailable (true);
capabilities.setSignatureHelpAvailable (true);
capabilities.setCodeAnalysisAvailable (true);
initialized = true;
return result;
}
@NonNull
@Override
public ServerCapabilities getCapabilities () {
return capabilities;
}
@Override
@@ -31,7 +31,7 @@ import com.itsaky.lsp.api.ISelectionProvider;
import com.itsaky.lsp.api.IServerSettings;
import com.itsaky.lsp.api.ISignatureHelpProvider;
import com.itsaky.lsp.models.InitializeParams;
import com.itsaky.lsp.models.InitializeResult;
import com.itsaky.lsp.models.ServerCapabilities;
import com.itsaky.lsp.util.NoCodeActionsProvider;
import com.itsaky.lsp.util.NoDiagnosticProvider;
import com.itsaky.lsp.util.NoCompletionsProvider;
@@ -60,6 +60,7 @@ public class XMLLanguageServer implements ILanguageServer {
private boolean canProvideCompletions = false;
private final IDocumentHandler documentHandler = new NoDocumentHandler ();
private ServerCapabilities capabilities;
public XMLLanguageServer () {
}
@@ -77,23 +78,26 @@ public class XMLLanguageServer implements ILanguageServer {
return settings;
}
@NonNull
@Override
public InitializeResult initialize (@NonNull InitializeParams params) throws AlreadyInitializedException {
public void initialize (@NonNull InitializeParams params) throws AlreadyInitializedException {
if (initialized) {
throw new AlreadyInitializedException ();
}
final var result = new InitializeResult ();
result.setCompletionsAvailable (true);
result.setCodeAnalysisAvailable (true);
result.setSignatureHelpAvailable (false);
result.setReferencesAvailable (false);
result.setDefinitionsAvailable (false);
capabilities = new ServerCapabilities ();
capabilities.setCompletionsAvailable (true);
capabilities.setCodeAnalysisAvailable (true);
capabilities.setSignatureHelpAvailable (false);
capabilities.setReferencesAvailable (false);
capabilities.setDefinitionsAvailable (false);
initialized = true;
return result;
}
@NonNull
@Override
public ServerCapabilities getCapabilities () {
return capabilities;
}
@Override