Moved code formatting logic to IDELanguage

This commit is contained in:
Akash Yadav
2022-03-19 10:41:12 +05:30
parent 8b45547248
commit fb8e452caf
3 changed files with 34 additions and 19 deletions
@@ -19,13 +19,14 @@ package com.itsaky.androidide.language;
import androidx.annotation.NonNull;
import com.itsaky.androidide.app.StudioApp;
import com.itsaky.lsp.api.ILanguageServer;
import com.itsaky.lsp.models.DiagnosticItem;
import io.github.rosemoe.sora.lang.Language;
import java.util.Collections;
import java.util.List;
import io.github.rosemoe.sora.lang.Language;
/**
* Base class for language implementations in the IDE.
*
@@ -51,4 +52,18 @@ public abstract class IDELanguage implements Language {
public List<DiagnosticItem> getDiagnostics() {
return Collections.emptyList();
}
@Override
public CharSequence format(CharSequence text) {
final var server = getLanguageServer();
if (server != null) {
return server.formatCode(text);
}
return text;
}
protected ILanguageServer getLanguageServer() {
return null;
}
}
@@ -28,6 +28,7 @@ import com.itsaky.androidide.lexers.java.JavaLexer;
import com.itsaky.androidide.lexers.java.JavaParser;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.androidide.views.editor.IDEEditor;
import com.itsaky.lsp.api.ILanguageServer;
import com.itsaky.lsp.models.DiagnosticItem;
import org.antlr.v4.runtime.CharStreams;
@@ -57,7 +58,7 @@ public class JavaLanguage extends IDELanguage {
private CommonCompletionProvider completer;
public JavaLanguage() {
final var server = StudioApp.getInstance().getJavaLanguageServer();
final var server = getLanguageServer();
this.analyzer = new JavaAnalyzer(server);
this.completer = new CommonCompletionProvider(server);
@@ -143,8 +144,8 @@ public class JavaLanguage extends IDELanguage {
}
@Override
public CharSequence format(CharSequence content) {
return StudioApp.getInstance().getJavaLanguageServer().formatCode(content);
protected ILanguageServer getLanguageServer() {
return StudioApp.getInstance().getJavaLanguageServer();
}
@Override
@@ -28,6 +28,14 @@ import com.itsaky.androidide.lexers.xml.XMLLexer;
import com.itsaky.androidide.utils.JavaCharacter;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.androidide.views.editor.IDEEditor;
import com.itsaky.lsp.api.ILanguageServer;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
import java.io.StringReader;
import java.nio.file.Paths;
import java.util.ArrayList;
import io.github.rosemoe.sora.lang.analysis.AnalyzeManager;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
@@ -37,24 +45,15 @@ import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.widget.SymbolPairMatch;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
import java.io.StringReader;
import java.nio.file.Paths;
import java.util.ArrayList;
public class XMLLanguage extends IDELanguage {
private XMLAnalyzer analyzer;
private static final Logger LOG = Logger.instance("XMLLanguage");
private final CommonCompletionProvider completer;
private final NewlineHandler[] newlineHandlers;
private static final Logger LOG = Logger.instance("XMLLanguage");
private XMLAnalyzer analyzer;
public XMLLanguage() {
this.completer =
new CommonCompletionProvider(StudioApp.getInstance().getXMLLanguageServer());
this.completer = new CommonCompletionProvider(getLanguageServer());
this.analyzer = new XMLAnalyzer();
this.newlineHandlers = new NewlineHandler[0];
}
@@ -142,8 +141,8 @@ public class XMLLanguage extends IDELanguage {
}
@Override
public CharSequence format(CharSequence content) {
return content;
protected ILanguageServer getLanguageServer() {
return StudioApp.getInstance().getXMLLanguageServer();
}
@Override