mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Fixed issues related to Java Language Server
This commit is contained in:
Binary file not shown.
@@ -164,11 +164,6 @@ public class LanguageServerWrapper implements IDELanguageServer {
|
||||
this.service = service;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<SemanticHighlight>> semanticHighlights(SemanticHighlightsParams params) {
|
||||
return CompletableFuture.completedFuture(Collections.singletonList((SemanticHighlight) null));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<List<CallHierarchyIncomingCall>> callHierarchyIncomingCalls(CallHierarchyIncomingCallsParams p1) {
|
||||
return service.callHierarchyIncomingCalls(p1);
|
||||
|
||||
@@ -17,7 +17,7 @@ public class ToolsManager {
|
||||
|
||||
private static PreferenceManager prefs;
|
||||
|
||||
public static final int JLS_VERSION = 18;
|
||||
public static final int JLS_VERSION = 21;
|
||||
public static final int LOGSENDER_VERSION = 1;
|
||||
public static final int CLEANER_VERSION = 1;
|
||||
public static final int GRADLE_API_VERSION = 2;
|
||||
|
||||
+2
-2
@@ -228,7 +228,7 @@ public class HighlightRangeHelper {
|
||||
}
|
||||
|
||||
private int containsStartPosition (List<Range> ranges, int line, int column) {
|
||||
int index = binarySearchTypeFrom(ranges, line, column);
|
||||
int index = binarySearchStartPosition(ranges, line, column);
|
||||
if(index >= 0 && index < ranges.size()) {
|
||||
return index;
|
||||
}
|
||||
@@ -236,7 +236,7 @@ public class HighlightRangeHelper {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private int binarySearchTypeFrom(List<Range> ranges, int line, int column) {
|
||||
private int binarySearchStartPosition(List<Range> ranges, int line, int column) {
|
||||
|
||||
int left = 0, right = ranges.size() - 1;
|
||||
while (left <= right) {
|
||||
|
||||
@@ -10,7 +10,9 @@ import com.itsaky.androidide.syntax.lexer.tokens.TokenType;
|
||||
import com.itsaky.androidide.utils.LSPUtils;
|
||||
import com.itsaky.androidide.utils.Logger;
|
||||
import com.itsaky.lsp.SemanticHighlight;
|
||||
import com.itsaky.lsp.SemanticHighlightsParams;
|
||||
import com.itsaky.lsp.services.IDELanguageServer;
|
||||
import com.itsaky.lsp.services.IDETextDocumentService;
|
||||
import io.github.rosemoe.editor.struct.BlockLine;
|
||||
import io.github.rosemoe.editor.struct.Span;
|
||||
import io.github.rosemoe.editor.text.CharPosition;
|
||||
@@ -27,11 +29,14 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import org.antlr.v4.runtime.CharStreams;
|
||||
import org.eclipse.lsp4j.Diagnostic;
|
||||
import org.eclipse.lsp4j.Position;
|
||||
import org.eclipse.lsp4j.Range;
|
||||
import org.eclipse.lsp4j.TextDocumentIdentifier;
|
||||
|
||||
public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAnalyzer {
|
||||
|
||||
@@ -47,6 +52,7 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
|
||||
@Override
|
||||
public void analyze(IDELanguageServer languageServer, File file, CharSequence content, TextAnalyzeResult colors, TextAnalyzer.AnalyzeThread.Delegate delegate) throws Exception {
|
||||
|
||||
final JavaLexerAnalyzer lexer = new JavaLexerAnalyzer((Content) content, colors, this.helper);
|
||||
lexer.init();
|
||||
while (delegate.shouldAnalyze()) {
|
||||
@@ -60,6 +66,7 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
colors.determine(lexer.lastLine);
|
||||
colors.setSuppressSwitch(lexer.maxSwitch + 10);
|
||||
colors.setHexColors(lexer.lineColors);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,6 +69,7 @@ import com.itsaky.androidide.lsp.IDELanguageClientImpl;
|
||||
import com.itsaky.androidide.lsp.LSPProvider;
|
||||
import com.itsaky.androidide.lsp.providers.CodeActionProvider;
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
|
||||
import com.itsaky.androidide.utils.JSONUtility;
|
||||
import com.itsaky.androidide.utils.Logger;
|
||||
import com.itsaky.androidide.utils.Symbols;
|
||||
import com.itsaky.androidide.utils.TypefaceUtils;
|
||||
@@ -102,7 +103,6 @@ import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.eclipse.lsp4j.CodeAction;
|
||||
import org.eclipse.lsp4j.CodeActionOptions;
|
||||
@@ -135,6 +135,7 @@ import org.eclipse.lsp4j.TextDocumentIdentifier;
|
||||
import org.eclipse.lsp4j.TextDocumentItem;
|
||||
import org.eclipse.lsp4j.VersionedTextDocumentIdentifier;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import android.os.Handler;
|
||||
|
||||
/**
|
||||
* CodeEditor is a editor that can highlight text regions by doing basic syntax analyzing
|
||||
@@ -210,10 +211,14 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
static final int ACTION_MODE_NONE = 0;
|
||||
static final int ACTION_MODE_SEARCH_TEXT = 1;
|
||||
static final int ACTION_MODE_SELECT_TEXT = 2;
|
||||
|
||||
private static final String LOG_TAG = "CodeEditor";
|
||||
|
||||
protected SymbolPairMatch mLanguageSymbolPairs;
|
||||
|
||||
Layout mLayout;
|
||||
int mStartedActionMode;
|
||||
|
||||
private int mTabWidth;
|
||||
private int mCursorPosition;
|
||||
private int mInputType;
|
||||
@@ -228,6 +233,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
private float mInsertSelWidth;
|
||||
private float mBlockLineWidth;
|
||||
private float mLineInfoTextSize;
|
||||
private long mLastEdited;
|
||||
private boolean mWait;
|
||||
private boolean mDrag;
|
||||
private boolean mScalable;
|
||||
@@ -302,6 +308,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
private SymbolPairMatch mOverrideSymbolPairs;
|
||||
private LongArrayList mPostDrawLineNumbers = new LongArrayList();
|
||||
private CharPosition mLockedSelection;
|
||||
|
||||
EditorInputConnection mConnection;
|
||||
KeyMetaStates mKeyMetaStates = new KeyMetaStates(this);
|
||||
|
||||
@@ -528,6 +535,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
mPaintOther.setTypeface(Typeface.MONOSPACE);
|
||||
mBuffer = new char[256];
|
||||
mBuffer2 = new char[16];
|
||||
mLastEdited = 0;
|
||||
mStartedActionMode = ACTION_MODE_NONE;
|
||||
setTextSize(DEFAULT_TEXT_SIZE);
|
||||
setLineInfoTextSize(mPaint.getTextSize());
|
||||
@@ -1488,6 +1496,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
mPaint.setStrokeWidth(getDpUnit() * 1.4f);
|
||||
final List<Diagnostic> diags = getEditorLanguage().getAnalyzer().findDiagnosticsContainingLine(line);
|
||||
final int size = diags == null ? 0 : diags.size();
|
||||
LOG.info("Diagnostics for line " + line, JSONUtility.prettyPrinter.toJson(diags), "size=" + size);
|
||||
for(int i=0;i<size;i++) {
|
||||
Diagnostic d = diags.get(i);
|
||||
if(d == null) continue;
|
||||
@@ -5015,6 +5024,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
|
||||
private void notifyChanged() {
|
||||
if(mLanguageServer != null) {
|
||||
mLastEdited = System.currentTimeMillis();
|
||||
DidChangeTextDocumentParams p = didChangeParams();
|
||||
if(p != null) {
|
||||
mLanguageServer.getTextDocumentService().didChange(p);
|
||||
|
||||
@@ -1,17 +1,6 @@
|
||||
package com.itsaky.lsp.services;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import com.itsaky.lsp.SemanticHighlight;
|
||||
import com.itsaky.lsp.SemanticHighlightsParams;
|
||||
|
||||
import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
|
||||
import org.eclipse.lsp4j.services.TextDocumentService;
|
||||
|
||||
public interface IDETextDocumentService extends TextDocumentService{
|
||||
|
||||
@JsonRequest ("semanticHighlights")
|
||||
CompletableFuture<List<SemanticHighlight>> semanticHighlights (SemanticHighlightsParams params) ;
|
||||
|
||||
public interface IDETextDocumentService extends TextDocumentService {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user