From fb8e452caf69a84b91f535f1a01fad773cc75cd7 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sat, 19 Mar 2022 10:41:12 +0530 Subject: [PATCH] Moved code formatting logic to IDELanguage --- .../androidide/language/IDELanguage.java | 19 +++++++++++-- .../language/java/JavaLanguage.java | 7 ++--- .../androidide/language/xml/XMLLanguage.java | 27 +++++++++---------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/language/IDELanguage.java b/app/src/main/java/com/itsaky/androidide/language/IDELanguage.java index 99460286a..ac229c7e4 100644 --- a/app/src/main/java/com/itsaky/androidide/language/IDELanguage.java +++ b/app/src/main/java/com/itsaky/androidide/language/IDELanguage.java @@ -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 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; + } } diff --git a/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java b/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java index 0a06fb7af..4b1782ed8 100755 --- a/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java +++ b/app/src/main/java/com/itsaky/androidide/language/java/JavaLanguage.java @@ -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 diff --git a/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java b/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java index a5872ccba..4ed3abd4c 100755 --- a/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java +++ b/app/src/main/java/com/itsaky/androidide/language/xml/XMLLanguage.java @@ -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