Organized imports in project

This commit is contained in:
Akash Yadav
2022-04-04 11:22:19 +05:30
parent a0b41e2aa0
commit 12ae59f6eb
62 changed files with 258 additions and 157 deletions
@@ -27,8 +27,6 @@ import android.view.View.OnClickListener;
import androidx.core.content.ContextCompat;
import androidx.transition.TransitionManager;
import abhishekti7.unicorn.filepicker.UnicornFilePicker;
import com.blankj.utilcode.util.FileIOUtils;
import com.blankj.utilcode.util.SizeUtils;
import com.blankj.utilcode.util.ThreadUtils;
@@ -54,6 +52,8 @@ import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import abhishekti7.unicorn.filepicker.UnicornFilePicker;
public class DownloadActivity extends StudioActivity {
private ActivityDownloadBinding binding;
@@ -117,12 +117,6 @@ import com.itsaky.lsp.models.Range;
import com.itsaky.toaster.Toaster;
import com.unnamed.b.atv.model.TreeNode;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.event.Unsubscribe;
import me.piruin.quickaction.ActionItem;
import me.piruin.quickaction.QuickAction;
import org.jetbrains.annotations.Contract;
import java.io.File;
@@ -139,6 +133,11 @@ import java.util.concurrent.CompletionException;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.event.Unsubscribe;
import me.piruin.quickaction.ActionItem;
import me.piruin.quickaction.QuickAction;
public class EditorActivity extends StudioActivity
implements FileTreeFragment.FileActionListener,
TabLayout.OnTabSelectedListener,
@@ -27,8 +27,6 @@ import android.view.View;
import androidx.transition.TransitionManager;
import abhishekti7.unicorn.filepicker.UnicornFilePicker;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.transition.MaterialContainerTransform;
import com.itsaky.androidide.app.StudioActivity;
@@ -54,6 +52,8 @@ import java.util.ArrayList;
import java.util.Objects;
import java.util.concurrent.Callable;
import abhishekti7.unicorn.filepicker.UnicornFilePicker;
public class MainActivity extends StudioActivity
implements View.OnClickListener, ProjectWriterCallback {
@@ -46,11 +46,11 @@ import com.itsaky.apiinfo.models.MethodInfo;
import com.itsaky.lsp.models.CompletionItem;
import com.itsaky.lsp.models.CompletionItemKind;
import java.util.List;
import io.github.rosemoe.sora.widget.component.EditorAutoCompletion;
import io.github.rosemoe.sora.widget.component.EditorCompletionAdapter;
import java.util.List;
public class CompletionListAdapter extends EditorCompletionAdapter {
private static final Logger LOG = Logger.newInstance("CompletionListAdapter");
@@ -27,12 +27,12 @@ import com.blankj.utilcode.util.ThreadUtils;
import com.itsaky.androidide.language.logs.LogLanguageImpl;
import com.itsaky.androidide.models.LogLine;
import io.github.rosemoe.sora.lang.Language;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import io.github.rosemoe.sora.lang.Language;
public class LogViewFragment extends NonEditableEditorFragment {
private final Language language = getLanguage();
@@ -17,7 +17,9 @@
**************************************************************************************/
package com.itsaky.androidide.fragments.preferences;
import static com.itsaky.androidide.managers.PreferenceManager.*;
import static com.itsaky.androidide.managers.PreferenceManager.KEY_CONFIRM_PROJECT_OPEN;
import static com.itsaky.androidide.managers.PreferenceManager.KEY_OPEN_PROJECTS;
import static com.itsaky.androidide.managers.PreferenceManager.KEY_TERMINAL_USE_SYSTEM_SHELL;
import android.os.Bundle;
@@ -27,12 +27,6 @@ import com.itsaky.lsp.models.CompletionParams;
import com.itsaky.lsp.models.CompletionResult;
import com.itsaky.lsp.models.Position;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
import io.github.rosemoe.sora.lang.completion.CompletionHelper;
import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.util.MyCharacter;
import org.jetbrains.annotations.Contract;
import java.nio.file.Path;
@@ -44,6 +38,12 @@ import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
import java.util.function.Predicate;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
import io.github.rosemoe.sora.lang.completion.CompletionHelper;
import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.util.MyCharacter;
/**
* Common implementation of completion provider which requests completions to provided language
* server.
@@ -22,12 +22,12 @@ 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.ArrayList;
import java.util.Collections;
import java.util.List;
import io.github.rosemoe.sora.lang.Language;
/**
* Base class for language implementations in the IDE.
*
@@ -32,11 +32,6 @@ import com.itsaky.androidide.lexers.groovy.GroovyLexer;
import com.itsaky.androidide.utils.CharSequenceReader;
import com.itsaky.androidide.utils.Logger;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Styles;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CodePointCharStream;
import org.antlr.v4.runtime.Token;
@@ -44,6 +39,11 @@ import org.antlr.v4.runtime.Token;
import java.io.IOException;
import java.util.Stack;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Styles;
public class GroovyAnalyzer extends SimpleAnalyzeManager<Void> {
private static final Logger LOG = Logger.newInstance("GroovyAnalyzer");
@@ -25,16 +25,16 @@ import com.itsaky.lsp.models.CompletionItem;
import com.itsaky.lsp.models.CompletionItemKind;
import com.itsaky.lsp.models.InsertTextFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import io.github.rosemoe.sora.lang.completion.CompletionHelper;
import io.github.rosemoe.sora.lang.completion.CompletionPublisher;
import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.util.MyCharacter;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class GroovyAutoComplete {
private static final List<String> ANDROIDX_ARTIFACTS = createArtifacts();
@@ -26,6 +26,11 @@ import com.itsaky.androidide.lexers.groovy.GroovyLexer;
import com.itsaky.androidide.utils.CharSequenceReader;
import com.itsaky.androidide.utils.Logger;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
import java.io.StringReader;
import io.github.rosemoe.sora.lang.analysis.AnalyzeManager;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
import io.github.rosemoe.sora.lang.completion.CompletionPublisher;
@@ -36,11 +41,6 @@ import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.text.TextUtils;
import io.github.rosemoe.sora.widget.SymbolPairMatch;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
import java.io.StringReader;
public class GroovyLanguage extends IDELanguage {
private static final Logger LOG = Logger.newInstance("GroovyLanguage");
@@ -39,12 +39,6 @@ import com.itsaky.lsp.models.DiagnosticSeverity;
import com.itsaky.lsp.models.Position;
import com.itsaky.lsp.models.Range;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Span;
import io.github.rosemoe.sora.lang.styling.Styles;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CodePointCharStream;
import org.antlr.v4.runtime.Token;
@@ -55,6 +49,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Span;
import io.github.rosemoe.sora.lang.styling.Styles;
/**
* Code analyzer for the Java Language
*
@@ -31,6 +31,15 @@ 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;
import org.antlr.v4.runtime.Token;
import java.io.StringReader;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import io.github.rosemoe.sora.lang.analysis.AnalyzeManager;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
import io.github.rosemoe.sora.lang.completion.CompletionPublisher;
@@ -41,15 +50,6 @@ import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.text.TextUtils;
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;
import java.util.Collections;
import java.util.List;
public class JavaLanguage extends IDELanguage {
private static final Logger LOG = Logger.newInstance("JavaLanguage");
@@ -25,6 +25,9 @@ import com.itsaky.androidide.language.IDELanguage;
import com.itsaky.androidide.models.LogLine;
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
import java.util.ArrayList;
import java.util.List;
import io.github.rosemoe.sora.lang.analysis.AnalyzeManager;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
@@ -36,9 +39,6 @@ import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.ContentReference;
import io.github.rosemoe.sora.widget.SymbolPairMatch;
import java.util.ArrayList;
import java.util.List;
public class LogLanguageImpl extends IDELanguage {
private static final LogAnalyzer analyzer = new LogAnalyzer();
@@ -21,7 +21,6 @@ import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.OPERATO
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.TEXT_SELECTED;
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forComment;
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.get;
import static io.github.rosemoe.sora.widget.schemes.EditorColorScheme.LITERAL;
import com.itsaky.androidide.lexers.xml.XMLLexer;
@@ -29,11 +28,6 @@ import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
import com.itsaky.androidide.utils.CharSequenceReader;
import com.itsaky.androidide.utils.Logger;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Styles;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CodePointCharStream;
import org.antlr.v4.runtime.Token;
@@ -41,6 +35,11 @@ import org.antlr.v4.runtime.Token;
import java.io.IOException;
import java.util.Stack;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Styles;
/**
* Simple analyzer implementation for the XML files.
*
@@ -30,6 +30,13 @@ 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;
import io.github.rosemoe.sora.lang.completion.CompletionPublisher;
@@ -38,13 +45,6 @@ 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 static final Logger LOG = Logger.newInstance("XMLLanguage");
@@ -52,8 +52,6 @@ import com.itsaky.lsp.models.Range;
import com.itsaky.lsp.models.TextEdit;
import com.itsaky.toaster.Toaster;
import io.github.rosemoe.sora.text.Content;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@@ -61,6 +59,8 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import io.github.rosemoe.sora.text.Content;
/** AndroidIDE specific implementation of the LanguageClient */
public class IDELanguageClientImpl implements ILanguageClient {
@@ -23,8 +23,6 @@ import android.text.style.ForegroundColorSpan;
import com.itsaky.androidide.lexers.java.JavaLexer;
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
import io.github.rosemoe.sora.widget.schemes.EditorColorScheme;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
@@ -32,6 +30,8 @@ import java.io.StringReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import io.github.rosemoe.sora.widget.schemes.EditorColorScheme;
public class JavaHighlighter implements Highlighter {
@Override
@@ -17,7 +17,24 @@
package com.itsaky.androidide.utils;
import static com.itsaky.lsp.models.HighlightTokenKind.*;
import static com.itsaky.lsp.models.HighlightTokenKind.ANNOTATION;
import static com.itsaky.lsp.models.HighlightTokenKind.CONSTRUCTOR;
import static com.itsaky.lsp.models.HighlightTokenKind.ENUM;
import static com.itsaky.lsp.models.HighlightTokenKind.ENUM_TYPE;
import static com.itsaky.lsp.models.HighlightTokenKind.EXCEPTION_PARAMETER;
import static com.itsaky.lsp.models.HighlightTokenKind.FIELD;
import static com.itsaky.lsp.models.HighlightTokenKind.INSTANCE_INIT;
import static com.itsaky.lsp.models.HighlightTokenKind.INTERFACE;
import static com.itsaky.lsp.models.HighlightTokenKind.LOCAL_VARIABLE;
import static com.itsaky.lsp.models.HighlightTokenKind.METHOD_DECLARATION;
import static com.itsaky.lsp.models.HighlightTokenKind.METHOD_INVOCATION;
import static com.itsaky.lsp.models.HighlightTokenKind.PACKAGE_NAME;
import static com.itsaky.lsp.models.HighlightTokenKind.PARAMETER;
import static com.itsaky.lsp.models.HighlightTokenKind.RESOURCE_VARIABLE;
import static com.itsaky.lsp.models.HighlightTokenKind.STATIC_FIELD;
import static com.itsaky.lsp.models.HighlightTokenKind.STATIC_INIT;
import static com.itsaky.lsp.models.HighlightTokenKind.TYPE_NAME;
import static com.itsaky.lsp.models.HighlightTokenKind.TYPE_PARAMETER;
import com.itsaky.lsp.models.HighlightToken;
import com.itsaky.lsp.models.HighlightTokenKind;
@@ -25,8 +25,6 @@ import android.text.TextUtils;
import com.blankj.utilcode.util.FileIOUtils;
import com.itsaky.androidide.project.AndroidProject;
import fr.arnaudguyon.xmltojsonlib.XmlToJson;
import org.json.JSONException;
import org.json.JSONObject;
@@ -34,6 +32,8 @@ import java.io.File;
import java.io.FileFilter;
import java.util.regex.Pattern;
import fr.arnaudguyon.xmltojsonlib.XmlToJson;
public class ProjectFinder {
public static AndroidProject fromFolder(File file) {
@@ -26,9 +26,6 @@ import com.itsaky.androidide.tasks.TaskExecutor;
import com.itsaky.lsp.models.Position;
import com.itsaky.lsp.models.Range;
import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.Content;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
@@ -39,6 +36,9 @@ import java.util.concurrent.Callable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import io.github.rosemoe.sora.text.CharPosition;
import io.github.rosemoe.sora.text.Content;
/**
* This class provides API to search in files recursively
*
@@ -60,10 +60,6 @@ import com.itsaky.androidide.utils.TypefaceUtils;
import com.itsaky.inflater.values.ValuesTableFactory;
import com.itsaky.lsp.models.Range;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.lang.EmptyLanguage;
import io.github.rosemoe.sora.text.Content;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
@@ -75,6 +71,10 @@ import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.lang.EmptyLanguage;
import io.github.rosemoe.sora.text.Content;
/**
* A view that handles opened code editors.
*
@@ -28,15 +28,15 @@ import androidx.appcompat.view.menu.MenuBuilder;
import com.itsaky.androidide.utils.Logger;
import io.github.rosemoe.sora.event.ClickEvent;
import io.github.rosemoe.sora.event.SelectionChangeEvent;
import io.github.rosemoe.sora.widget.component.EditorTextActionWindow;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import io.github.rosemoe.sora.event.ClickEvent;
import io.github.rosemoe.sora.event.SelectionChangeEvent;
import io.github.rosemoe.sora.widget.component.EditorTextActionWindow;
/**
* Text action mode actions for the editor.
*
@@ -33,6 +33,13 @@ import com.itsaky.androidide.adapters.TextActionItemAdapter;
import com.itsaky.androidide.databinding.LayoutEditorActionsBinding;
import com.itsaky.androidide.utils.Logger;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import io.github.rosemoe.sora.event.HandleStateChangeEvent;
import io.github.rosemoe.sora.event.ScrollEvent;
import io.github.rosemoe.sora.event.SelectionChangeEvent;
@@ -42,13 +49,6 @@ import io.github.rosemoe.sora.widget.CodeEditor;
import io.github.rosemoe.sora.widget.EditorTouchEventHandler;
import io.github.rosemoe.sora.widget.base.EditorPopupWindow;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
/**
* Presents text actions in a popup widow.
*
@@ -62,12 +62,6 @@ import com.itsaky.lsp.util.DiagnosticUtil;
import com.itsaky.lsp.util.PathUtils;
import com.itsaky.toaster.Toaster;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.event.SelectionChangeEvent;
import io.github.rosemoe.sora.event.Unsubscribe;
import io.github.rosemoe.sora.widget.CodeEditor;
import io.github.rosemoe.sora.widget.component.EditorAutoCompletion;
import org.jetbrains.annotations.Contract;
import java.io.File;
@@ -77,6 +71,12 @@ import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import io.github.rosemoe.sora.event.ContentChangeEvent;
import io.github.rosemoe.sora.event.SelectionChangeEvent;
import io.github.rosemoe.sora.event.Unsubscribe;
import io.github.rosemoe.sora.widget.CodeEditor;
import io.github.rosemoe.sora.widget.component.EditorAutoCompletion;
public class IDEEditor extends CodeEditor {
public static final String KEY_FILE = "editor_file";
@@ -20,12 +20,16 @@
// Generated from JavaLexer.g4 by ANTLR 4.9.2
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavaLexer extends Lexer {
@@ -20,11 +20,25 @@
// Generated from JavaParser.g4 by ANTLR 4.9.2
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.FailedPredicateException;
import org.antlr.v4.runtime.NoViableAltException;
import org.antlr.v4.runtime.Parser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.RuleContext;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.ParserATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
import org.antlr.v4.runtime.tree.TerminalNode;
import java.util.List;
@@ -20,12 +20,17 @@
// Generated from JavadocLexer.g4 by ANTLR 4.9.2
package com.itsaky.androidide.antlr4.javadoc;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.RuleContext;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavadocLexer extends Lexer {
@@ -20,11 +20,23 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.2
package com.itsaky.androidide.antlr4.javadoc;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.NoViableAltException;
import org.antlr.v4.runtime.Parser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.ParserATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
import org.antlr.v4.runtime.tree.TerminalNode;
import java.util.List;
@@ -2,12 +2,16 @@
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLLexer.g4 by ANTLR 4.9.2
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLLexer extends Lexer {
@@ -2,11 +2,23 @@
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLParser.g4 by ANTLR 4.9.2
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.NoViableAltException;
import org.antlr.v4.runtime.Parser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.ParserATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import org.antlr.v4.runtime.tree.ParseTreeListener;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
import org.antlr.v4.runtime.tree.TerminalNode;
import java.util.List;
+1 -2
View File
@@ -16,7 +16,6 @@
~ along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itsaky.api">
<manifest package="com.itsaky.api">
</manifest>
@@ -17,7 +17,6 @@
package com.itsaky.lsp.models
import java.lang.IllegalArgumentException
import java.nio.file.Path
data class Location (var file: Path, var range: Range)
@@ -18,7 +18,7 @@
package com.itsaky.lsp.models
import java.nio.file.Path
import java.util.Collections
import java.util.*
data class ParameterInformation (var label: String, var documentation: MarkupContent) {
constructor() : this("", MarkupContent())
+1 -2
View File
@@ -15,7 +15,6 @@
~ You should have received a copy of the GNU General Public License
~ along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itsaky.lsp.java">
<manifest package="com.itsaky.lsp.java">
</manifest>
@@ -15,7 +15,6 @@
package com.google.googlejavaformat;
import static com.google.common.collect.Iterables.getLast;
import static java.lang.Math.max;
import com.google.common.base.MoreObjects;
@@ -16,7 +16,6 @@ package com.google.googlejavaformat.java;
import static com.google.common.base.StandardSystemProperty.JAVA_CLASS_VERSION;
import static com.google.common.base.StandardSystemProperty.JAVA_SPECIFICATION_VERSION;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.collect.ImmutableList;
@@ -16,7 +16,6 @@ package com.google.googlejavaformat.java;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Iterables.getLast;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.base.MoreObjects;
@@ -41,7 +41,6 @@ import static com.sun.source.tree.Tree.Kind.NEW_CLASS;
import static com.sun.source.tree.Tree.Kind.STRING_LITERAL;
import static com.sun.source.tree.Tree.Kind.UNION_TYPE;
import static com.sun.source.tree.Tree.Kind.VARIABLE;
import static java.util.stream.Collectors.toList;
import com.google.auto.value.AutoOneOf;
@@ -15,7 +15,6 @@
package com.google.googlejavaformat.java;
import static com.google.common.collect.Iterables.getLast;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.stream.Collectors.joining;
@@ -17,7 +17,6 @@ package com.google.googlejavaformat.java.javadoc;
import static com.google.googlejavaformat.java.javadoc.JavadocLexer.lex;
import static com.google.googlejavaformat.java.javadoc.Token.Type.BR_TAG;
import static com.google.googlejavaformat.java.javadoc.Token.Type.PARAGRAPH_OPEN_TAG;
import static java.util.regex.Pattern.CASE_INSENSITIVE;
import static java.util.regex.Pattern.compile;
@@ -45,7 +45,6 @@ import static com.google.googlejavaformat.java.javadoc.Token.Type.PRE_OPEN_TAG;
import static com.google.googlejavaformat.java.javadoc.Token.Type.TABLE_CLOSE_TAG;
import static com.google.googlejavaformat.java.javadoc.Token.Type.TABLE_OPEN_TAG;
import static com.google.googlejavaformat.java.javadoc.Token.Type.WHITESPACE;
import static java.lang.String.format;
import static java.util.regex.Pattern.CASE_INSENSITIVE;
import static java.util.regex.Pattern.DOTALL;
@@ -28,7 +28,9 @@ import static com.itsaky.lsp.java.utils.CodeActionUtils.unwrapJCDiagnostic;
import android.text.TextUtils;
import android.util.Pair;
import androidx.annotation.NonNull;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.lsp.java.compiler.CompileTask;
import com.itsaky.lsp.java.compiler.CompilerProvider;
@@ -50,6 +52,7 @@ import com.itsaky.lsp.models.CodeActionItem;
import com.itsaky.lsp.models.DiagnosticItem;
import com.itsaky.lsp.models.Range;
import com.sun.tools.javac.util.JCDiagnostic;
import java.nio.file.Path;
import java.time.Instant;
import java.util.ArrayList;
@@ -57,6 +60,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
import javax.tools.Diagnostic;
import javax.tools.JavaFileObject;
@@ -25,11 +25,18 @@ import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Path;
import java.util.*;
import java.util.Collection;
import java.util.Set;
import java.util.logging.Logger;
import java.util.stream.Stream;
import javax.tools.*;
import javax.tools.Diagnostic;
import javax.tools.FileObject;
import javax.tools.ForwardingJavaFileManager;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.StandardLocation;
public class SourceFileManager extends ForwardingJavaFileManager<StandardJavaFileManager> {
@@ -38,11 +38,11 @@ import androidx.annotation.NonNull;
import com.itsaky.androidide.utils.Logger;
import kotlin.jvm.functions.Function1;
import java.util.concurrent.Semaphore;
import java.util.function.Consumer;
import kotlin.jvm.functions.Function1;
public class SynchronizedTask {
private static final Logger LOG = Logger.newInstance("SynchronizedTask");
@@ -22,6 +22,7 @@ import static com.itsaky.lsp.java.utils.EditHelper.repeatSpaces;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.lsp.api.AbstractServiceProvider;
import com.itsaky.lsp.api.ICompletionProvider;
@@ -58,6 +59,7 @@ import com.sun.source.tree.SwitchTree;
import com.sun.source.tree.Tree;
import com.sun.source.util.TreePath;
import com.sun.source.util.Trees;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Duration;
@@ -73,6 +75,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
@@ -17,6 +17,7 @@
package com.itsaky.lsp.java.rewrite;
import androidx.annotation.NonNull;
import com.itsaky.lsp.java.compiler.CompileTask;
import com.itsaky.lsp.java.compiler.CompilerProvider;
import com.itsaky.lsp.java.utils.EditHelper;
@@ -31,6 +32,7 @@ import com.squareup.javapoet.TypeName;
import com.sun.source.tree.Tree;
import com.sun.source.util.TreePath;
import com.sun.source.util.Trees;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
@@ -39,6 +41,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.Modifier;
@@ -18,6 +18,7 @@ package com.itsaky.lsp.java.rewrite;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.itsaky.androidide.utils.Logger;
import com.itsaky.lsp.java.compiler.CompileTask;
import com.itsaky.lsp.java.compiler.CompilerProvider;
@@ -38,6 +39,7 @@ import com.sun.source.tree.ImportTree;
import com.sun.source.tree.Tree;
import com.sun.source.util.Trees;
import com.sun.tools.javac.util.JCDiagnostic;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
@@ -47,6 +49,7 @@ import java.util.Set;
import java.util.StringJoiner;
import java.util.TreeSet;
import java.util.stream.Collectors;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
@@ -30,6 +30,7 @@ import com.sun.source.tree.Tree;
import com.sun.source.util.JavacTask;
import com.sun.source.util.SourcePositions;
import com.sun.source.util.Trees;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collections;
@@ -37,6 +38,7 @@ import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.StringJoiner;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.Name;
@@ -6,7 +6,18 @@ import java.util.stream.Collectors;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.*;
import javax.lang.model.type.ArrayType;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.ErrorType;
import javax.lang.model.type.ExecutableType;
import javax.lang.model.type.IntersectionType;
import javax.lang.model.type.NoType;
import javax.lang.model.type.NullType;
import javax.lang.model.type.PrimitiveType;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.TypeVariable;
import javax.lang.model.type.UnionType;
import javax.lang.model.type.WildcardType;
import javax.lang.model.util.AbstractTypeVisitor8;
// TODO this should be package-private once completions code is refactored
@@ -19,8 +19,20 @@ package com.itsaky.lsp.java.visitors;
import com.itsaky.lsp.java.compiler.CompileTask;
import com.itsaky.lsp.java.utils.FindHelper;
import com.sun.source.tree.*;
import com.sun.source.util.*;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.IdentifierTree;
import com.sun.source.tree.MemberReferenceTree;
import com.sun.source.tree.MemberSelectTree;
import com.sun.source.tree.MethodTree;
import com.sun.source.tree.NewClassTree;
import com.sun.source.tree.Tree;
import com.sun.source.tree.VariableTree;
import com.sun.source.util.JavacTask;
import com.sun.source.util.SourcePositions;
import com.sun.source.util.TreePath;
import com.sun.source.util.TreePathScanner;
import com.sun.source.util.Trees;
import javax.lang.model.element.Name;
@@ -17,7 +17,8 @@
package com.itsaky.lsp.java.visitors;
import com.sun.source.tree.*;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.util.TreeScanner;
import java.util.ArrayList;
@@ -17,7 +17,8 @@
package com.itsaky.lsp.java.visitors;
import com.sun.source.tree.*;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.util.TreeScanner;
import java.util.ArrayList;
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import javax.lang.model.element.Element;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
@@ -19,7 +19,6 @@ import static com.squareup.javapoet.Util.checkArgument;
import static com.squareup.javapoet.Util.checkNotNull;
import static com.squareup.javapoet.Util.checkState;
import static com.squareup.javapoet.Util.stringLiteralWithDoubleQuotes;
import static java.lang.String.join;
import java.io.IOException;
@@ -18,6 +18,7 @@
package com.squareup.javapoet;
import androidx.annotation.NonNull;
import java.io.IOException;
import java.util.Collections;
import java.util.Map;
@@ -17,7 +17,6 @@ package com.squareup.javapoet;
import static com.squareup.javapoet.Util.checkArgument;
import static com.squareup.javapoet.Util.checkNotNull;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.ByteArrayInputStream;
@@ -28,6 +28,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement;
@@ -30,7 +30,6 @@ import static com.sun.tools.javac.main.Option.ENDORSEDDIRS;
import static com.sun.tools.javac.main.Option.EXTDIRS;
import static com.sun.tools.javac.main.Option.XBOOTCLASSPATH_APPEND;
import static com.sun.tools.javac.main.Option.XBOOTCLASSPATH_PREPEND;
import static javax.tools.StandardLocation.PLATFORM_CLASS_PATH;
import com.sun.tools.javac.code.Lint;
@@ -48,9 +47,6 @@ import com.sun.tools.javac.util.Log;
import com.sun.tools.javac.util.Pair;
import com.sun.tools.javac.util.StringUtils;
import jdk.internal.jmod.JmodFile;
import jdk.internal.jrtfs.JrtFileSystemProvider;
import java.io.Closeable;
import java.io.File;
import java.io.FileNotFoundException;
@@ -101,6 +97,9 @@ import javax.tools.StandardJavaFileManager;
import javax.tools.StandardJavaFileManager.PathFactory;
import javax.tools.StandardLocation;
import jdk.internal.jmod.JmodFile;
import jdk.internal.jrtfs.JrtFileSystemProvider;
/**
* This class converts command line arguments, environment variables and system properties (in
* File.pathSeparator-separated String form) into a boot class path, user class path, and source
@@ -26,9 +26,6 @@ package jdk.internal.jrtfs;
import com.itsaky.androidide.utils.Environment;
import jdk.internal.jimage.ImageReader;
import jdk.internal.jimage.ImageReader.Node;
import java.io.IOException;
import java.nio.file.FileSystem;
import java.nio.file.FileSystemNotFoundException;
@@ -38,6 +35,9 @@ import java.nio.file.Path;
import java.security.AccessController;
import java.security.PrivilegedAction;
import jdk.internal.jimage.ImageReader;
import jdk.internal.jimage.ImageReader.Node;
/**
* @implNote This class needs to maintain JDK 8 source compatibility.
* <p>It is used internally in the JDK to implement jimage/jrtfs access, but also compiled and
@@ -17,7 +17,6 @@
package com.itsaky.lsp.java.providers
import androidx.core.util.Pair
import com.google.common.truth.Truth.assertThat
import com.itsaky.lsp.api.ILanguageServer
import com.itsaky.lsp.api.LoggingTest
@@ -26,14 +25,11 @@ import com.itsaky.lsp.models.CodeActionParams
import com.itsaky.lsp.models.DiagnosticItem
import com.itsaky.lsp.models.Position
import com.itsaky.lsp.models.Range
import com.squareup.javapoet.MethodSpec
import com.squareup.javapoet.TypeName
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import java.util.*
import javax.lang.model.element.Modifier
/**
* @author Akash Yadav
@@ -39,8 +39,6 @@ import com.itsaky.lsp.xml.R;
import com.itsaky.sdk.SDKInfo;
import com.itsaky.widgets.models.Widget;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.Token;
import org.jetbrains.annotations.Contract;
@@ -52,6 +50,8 @@ import java.util.Objects;
import java.util.Set;
import java.util.regex.Pattern;
import io.github.rosemoe.sora.lang.completion.CompletionCancelledException;
/**
* Completion provider for the XML Language
*