diff --git a/app/src/main/assets/data/jls.jar b/app/src/main/assets/data/jls.jar index a0e6405ca..42aee5fdf 100644 Binary files a/app/src/main/assets/data/jls.jar and b/app/src/main/assets/data/jls.jar differ diff --git a/app/src/main/java/com/itsaky/androidide/EditorActivity.java b/app/src/main/java/com/itsaky/androidide/EditorActivity.java index f41929eea..d99926a12 100644 --- a/app/src/main/java/com/itsaky/androidide/EditorActivity.java +++ b/app/src/main/java/com/itsaky/androidide/EditorActivity.java @@ -91,6 +91,7 @@ import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DidChangeConfigurationParams; import org.eclipse.lsp4j.InitializeResult; import org.eclipse.lsp4j.Position; +import java.util.Collections; public class EditorActivity extends StudioActivity implements FileTreeFragment.FileActionListener, TabLayout.OnTabSelectedListener, @@ -926,24 +927,24 @@ public class EditorActivity extends StudioActivity implements FileTreeFragment.F new TaskExecutor().executeAsync(() -> { IDELanguageServer javaServer = LSPProvider.getServerForLanguage(LSPProvider.LANGUAGE_JAVA); if(javaServer == null) return null; - + List cps = mProject.getClassPaths(); JsonObject settings = new JsonObject(); JsonObject java = new JsonObject(); JsonArray classPath = new JsonArray(); - + for(int i=0;i { setStatus(getString(getApp().areCompletorsStarted() ? R.string.msg_service_started : R.string.msg_starting_completion_failed)); @@ -962,8 +963,7 @@ public class EditorActivity extends StudioActivity implements FileTreeFragment.F final List files = mPagerAdapter.getOpenedFiles(); final EditorFragment editorFragment = mPagerAdapter.getFrag(index); - final File removed = files.get(index); - + frags.remove(index); files.remove(index); diff --git a/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java b/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java index 14f80b409..5e6e2413f 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java +++ b/app/src/main/java/com/itsaky/androidide/fragments/preferences/EditorPreferences.java @@ -19,6 +19,7 @@ public class EditorPreferences extends BasePreferenceFragment implements Prefere public static final String KEY_EDITOR_PRINTABLE_CHARS = "idepref_editor_nonPrintableFlags"; public static final String KEY_EDITOR_DRAW_HEX = "idepref_editor_drawHexColors"; public static final String KEY_EDITOR_TAB_SIZE = "idepref_editor_tabSize"; + public static final String KEY_EDITOR_JAVADOC_ENABLED = "idepref_editor_javadocEnabled"; @Override public void onCreatePreferences(Bundle p1, String p2) { diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LSP.java b/app/src/main/java/com/itsaky/androidide/lsp/LSP.java index 46ce7383a..151b8fd76 100644 --- a/app/src/main/java/com/itsaky/androidide/lsp/LSP.java +++ b/app/src/main/java/com/itsaky/androidide/lsp/LSP.java @@ -5,8 +5,11 @@ import com.itsaky.androidide.lsp.handlers.JLSHandler; import com.itsaky.androidide.utils.Logger; import com.itsaky.lsp.services.IDELanguageServer; import java.io.File; +import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import org.eclipse.lsp4j.ClientCapabilities; import org.eclipse.lsp4j.ClientInfo; import org.eclipse.lsp4j.ColorProviderCapabilities; diff --git a/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java b/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java index e4f4c9751..c439c1b28 100644 --- a/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java +++ b/app/src/main/java/com/itsaky/androidide/lsp/LanguageServerWrapper.java @@ -1,11 +1,8 @@ package com.itsaky.androidide.lsp; -import com.itsaky.lsp.SemanticHighlight; -import com.itsaky.lsp.SemanticHighlightsParams; import com.itsaky.lsp.services.IDELanguageServer; import com.itsaky.lsp.services.IDETextDocumentService; import com.itsaky.lsp.services.IDEWorkspaceService; -import java.util.Collections; import java.util.List; import java.util.concurrent.CompletableFuture; import org.eclipse.lsp4j.CallHierarchyIncomingCall; @@ -153,7 +150,6 @@ public class LanguageServerWrapper implements IDELanguageServer { @Override public void setTrace(SetTraceParams params) { - } class TextDocumentServiceWrapper implements IDETextDocumentService { diff --git a/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java b/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java index 8da5894c7..6b84c7e01 100644 --- a/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java +++ b/app/src/main/java/com/itsaky/androidide/lsp/handlers/JLSHandler.java @@ -45,9 +45,6 @@ public class JLSHandler implements LSPHandler { } try { - // Why not directly use 'java' command? - // I tried doing the same, but it ends up throwing unexpected errors. - // Something related to FileSystem... mShellBuilder = new ProcessBuilder("/system/bin/sh"); mShellBuilder.directory(Environment.HOME); mShellBuilder.redirectErrorStream(false); diff --git a/app/src/main/java/com/itsaky/androidide/managers/PreferenceManager.java b/app/src/main/java/com/itsaky/androidide/managers/PreferenceManager.java index 69cf6a635..2d896b2d9 100644 --- a/app/src/main/java/com/itsaky/androidide/managers/PreferenceManager.java +++ b/app/src/main/java/com/itsaky/androidide/managers/PreferenceManager.java @@ -22,7 +22,7 @@ public class PreferenceManager { public static final String KEY_EDITORFLAG_WS_EMPTY_LINE = "idepref_editor_wsEmptyLine"; public static final String KEY_EDITORFLAG_LINE_BREAK = "idepref_editor_lineBreak"; public static final String KEY_EDITOR_DRAW_HEX = "idepref_editor_drawHexColors"; - + public static final String KEY_GRADLE_CURRENT_DIR = "idepref_customGradle_currentFolder"; public static final String KEY_GRADLE_FILENAMES = "idepref_customGradle_folderNames"; public static final String KEY_GRADLECMD_STACKTRACRE = "idepref_gradleCmd_stacktrace"; @@ -40,7 +40,7 @@ public class PreferenceManager { public PreferenceManager(Context ctx) { this.prefs = androidx.preference.PreferenceManager.getDefaultSharedPreferences(ctx); } - + public PreferenceManager putInt(String key, int val) { prefs.edit().putInt(key, val).apply(); return this; @@ -164,4 +164,13 @@ public class PreferenceManager { public boolean confirmProjectOpen() { return getBoolean(GeneralPreferences.KEY_CONFIRM_PROJECT_OPEN, false); } + + public void setJavadocHighlightEnabled (boolean enabled) { + putBoolean(EditorPreferences.KEY_EDITOR_JAVADOC_ENABLED, enabled); + } + + public boolean isJavadocHighlightEnabled() { + return getBoolean(EditorPreferences.KEY_EDITOR_JAVADOC_ENABLED, true); + } + } diff --git a/app/src/main/java/com/itsaky/androidide/managers/ToolsManager.java b/app/src/main/java/com/itsaky/androidide/managers/ToolsManager.java index 67bfc6204..3e316c5f7 100644 --- a/app/src/main/java/com/itsaky/androidide/managers/ToolsManager.java +++ b/app/src/main/java/com/itsaky/androidide/managers/ToolsManager.java @@ -17,7 +17,7 @@ public class ToolsManager { private static PreferenceManager prefs; - public static final int JLS_VERSION = 21; + public static final int JLS_VERSION = 22; public static final int LOGSENDER_VERSION = 1; public static final int CLEANER_VERSION = 1; public static final int GRADLE_API_VERSION = 2; diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java index 35f4a36b8..6dde4ddb7 100644 --- a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java +++ b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/HighlightRangeHelper.java @@ -228,43 +228,13 @@ public class HighlightRangeHelper { } private int containsStartPosition (List ranges, int line, int column) { - int index = binarySearchStartPosition(ranges, line, column); + int index = LSPUtils.binarySearchStartPosition(ranges, line, column); if(index >= 0 && index < ranges.size()) { return index; } return -1; } - - private int binarySearchStartPosition(List ranges, int line, int column) { - - int left = 0, right = ranges.size() - 1; - while (left <= right) { - int mid = (left + right) / 2; - final Range range = ranges.get(mid); - final int l = range.getStart().getLine(); - final int c = range.getStart().getCharacter(); - - // Compare lines - if(l < line) { - left = mid + 1; - } else if(l > line) { - right = mid - 1; - } else { - // Lines are same. Compare by columns - if(c < column) { - left = mid + 1; - } else if (c > column) { - right = mid - 1; - } else { - // Found! - return mid; - } - } - } - - return -1; - } public boolean isEnumType(int line, int column) { if(highlights == null || highlights.enumTypes == null) return false; diff --git a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java index 6a1f5c428..991f3938c 100644 --- a/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java +++ b/app/src/main/java/com/itsaky/androidide/syntax/lexer/impls/java/JavaLexerImpl.java @@ -42,7 +42,6 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn private HighlightRangeHelper helper; private Map> diagnostics = new HashMap<>(); - private final Map> customDiagnostics = new HashMap<>(); @Override public void setSemanticHighlights(SemanticHighlight highlights) { @@ -324,6 +323,10 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn final Indexer indexer = content.getIndexer(); final CharPosition endPos = indexer.getCharPosition(currentToken.getStopIndex()); + final Position startPosition = new Position(line, column); + final Position endPosition = new Position(endPos.line, endPos.column); + colors.addCommentRange(line, new Range(startPosition, endPosition)); + int l = line; int c = column; @@ -385,6 +388,11 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn span = colors.addIfNeeded(line, column, EditorColorScheme.COMMENT); wasClassName = false; + final CharPosition a = content.getIndexer().getCharPosition(currentToken.getStopIndex()); + final Position s = new Position(line, column); + final Position e = new Position(a.line, a.column); + colors.addCommentRange(line, new Range(s, e)); + String lineComment = currentToken.getText(); if(lineComment != null) { lineComment = lineComment.trim(); diff --git a/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java b/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java index cc61ebbe0..46d42b777 100644 --- a/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java +++ b/app/src/main/java/com/itsaky/androidide/utils/LSPUtils.java @@ -1,10 +1,12 @@ package com.itsaky.androidide.utils; +import java.util.Comparator; +import java.util.List; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; -import java.util.Comparator; +import java.util.ArrayList; public class LSPUtils { @@ -24,6 +26,25 @@ public class LSPUtils { && p1.getCharacter() == p2.getCharacter(); } + public static boolean isInRange (Range range, Position position) { + final int line = position.getLine(); + final int column = position.getCharacter(); + return isInRange(range, line, column); + } + + public static boolean isInRange (Range range, int line, int column) { + final int startLine = range.getStart().getLine(); + final int startCol = range.getStart().getCharacter(); + final int endLine = range.getEnd().getLine(); + final int endCol = range.getEnd().getCharacter(); + + if(startLine == endLine) { + return startCol <= column && column <= endCol; + } else { + return startLine <= line && line <= endLine; + } + } + public static boolean isEqual(Range r1, Range r2) { if(r1 == null) return false; if(r2 == null) return false; @@ -59,6 +80,35 @@ public class LSPUtils { return range; } + public static int binarySearchStartPosition(List ranges, int line, int column) { + int left = 0, right = ranges.size() - 1; + while (left <= right) { + int mid = (left + right) / 2; + final Range range = ranges.get(mid); + final int l = range.getStart().getLine(); + final int c = range.getStart().getCharacter(); + + // Compare lines + if(l < line) { + left = mid + 1; + } else if(l > line) { + right = mid - 1; + } else { + // Lines are same. Compare by columns + if(c < column) { + left = mid + 1; + } else if (c > column) { + right = mid - 1; + } else { + // Found! + return mid; + } + } + } + + return -1; + } + public static final Comparator RANGE_START_COMPARATOR = new Comparator() { @Override diff --git a/app/src/main/java/io/github/rosemoe/editor/struct/Span.java b/app/src/main/java/io/github/rosemoe/editor/struct/Span.java index 6d2c0c60d..b0b3bd64f 100644 --- a/app/src/main/java/io/github/rosemoe/editor/struct/Span.java +++ b/app/src/main/java/io/github/rosemoe/editor/struct/Span.java @@ -15,13 +15,11 @@ */ package io.github.rosemoe.editor.struct; +import android.graphics.Typeface; import java.util.Collection; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; -import io.github.rosemoe.editor.widget.EditorColorScheme; -import org.eclipse.lsp4j.Range; - /** * The span model * @@ -29,45 +27,12 @@ import org.eclipse.lsp4j.Range; */ public class Span { - /** - * Flag for {@link Span#problemFlags}. - * - * Indicates this span is in ERROR region - */ - public static final int FLAG_ERROR = 1 << 4; - /** - * Flag for {@link Span#problemFlags}. - * - * Indicates this span is in WARNING region - */ - public static final int FLAG_WARNING = 1 << 3; - /** - * Flag for {@link Span#problemFlags}. - * - * Indicates this span is in INFO region - */ - public static final int FLAG_INFO = 1 << 2; - /** - * Flag for {@link Span#problemFlags}. - * - * Indicates this span is in INFO region - */ - public static final int FLAG_HINT = 1 << 1; - /** - * Flag for {@link Span#problemFlags}. - * - * Indicates this span is in DEPRECATED region - */ - public static final int FLAG_DEPRECATED = 1; - private static final BlockingQueue cacheQueue = new ArrayBlockingQueue<>(8192 * 2); public int line; public int column; public int colorId; public int underlineColor = 0; - public int problemFlags; - public Range problemRange; - + /** * Create a new span * @@ -113,7 +78,7 @@ public class Span { underlineColor = color; return this; } - + /** * Get span start column * @@ -144,5 +109,4 @@ public class Span { colorId = column = underlineColor = 0; return cacheQueue.offer(this); } - } diff --git a/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java b/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java index ef23e05d0..bbc08e2c0 100644 --- a/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java +++ b/app/src/main/java/io/github/rosemoe/editor/text/TextAnalyzeResult.java @@ -42,7 +42,8 @@ public class TextAnalyzeResult { private boolean determined = false; private final Map> stringMap = new HashMap<>(); - + private final Map> commentMap = new HashMap<>(); + /** * Create a new result */ @@ -57,16 +58,26 @@ public class TextAnalyzeResult { return stringMap; } + public Map> getCommentMap() { + return commentMap; + } + public void addStringRange(int line, Range range) { - if(stringMap.containsKey(line)) { - List ranges = stringMap.get(line); - ranges.add(range); - stringMap.put(line, ranges); - } else { - List ranges = new ArrayList<>(); - ranges.add(range); - stringMap.put(line, ranges); + List ranges = stringMap.get(line); + if(ranges == null) { + ranges = new ArrayList<>(); } + ranges.add(range); + stringMap.put(line, ranges); + } + + public void addCommentRange (int line, Range range) { + List ranges = commentMap.get(line); + if(ranges == null) { + ranges = new ArrayList<>(); + } + ranges.add(range); + commentMap.put(line, ranges); } public void addHexColor(HexColor index, int color) { @@ -247,61 +258,4 @@ public class TextAnalyzeResult { public List> getSpanMap() { return mSpanMap; } - - /** - * Marks a region with the given flag. - * This can only be called after {@link TextAnalyzeResult#determine(int)} is called. - */ - public void markProblemRegion(int newFlag, int startLine, int startColumn, int endLine, int endColumn) { - if (!determined) { - return; - } - for (int line = startLine; line <= endLine; line++) { - int start = (line == startLine ? startColumn : 0); - int end = (line == endLine ? endColumn : Integer.MAX_VALUE); - List spans = mSpanMap.get(line); - int increment; - for (int i = 0; i < spans.size(); i += increment) { - Span span = spans.get(i); - increment = 1; - if (span.column >= end) { - break; - } - int spanEnd = (i + 1 >= spans.size() ? Integer.MAX_VALUE : spans.get(i + 1).column); - if (spanEnd >= start) { - int regionStartInSpan = Math.max(span.column, start); - int regionEndInSpan = Math.min(end, spanEnd); - if (regionStartInSpan == span.column) { - if (regionEndInSpan == spanEnd) { - span.problemFlags |= newFlag; - } else { - increment = 2; - Span nSpan = span.copy(); - nSpan.column = regionEndInSpan; - spans.add(i + 1, nSpan); - span.problemFlags |= newFlag; - } - } else { - //regionStartInSpan > span.column - if (regionEndInSpan == spanEnd) { - increment = 2; - Span nSpan = span.copy(); - nSpan.column = regionStartInSpan; - spans.add(i + 1, nSpan); - nSpan.problemFlags |= newFlag; - } else { - increment = 3; - Span span1 = span.copy(); - span1.column = regionStartInSpan; - span1.problemFlags |= newFlag; - Span span2 = span.copy(); - span2.column = regionEndInSpan; - spans.add(i + 1, span1); - spans.add(i + 2, span2); - } - } - } - } - } - } } diff --git a/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java b/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java index 5c8a91707..684564fb6 100644 --- a/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java +++ b/app/src/main/java/io/github/rosemoe/editor/widget/CodeEditor.java @@ -136,6 +136,7 @@ import org.eclipse.lsp4j.TextDocumentItem; import org.eclipse.lsp4j.VersionedTextDocumentIdentifier; import org.eclipse.lsp4j.jsonrpc.messages.Either; import android.os.Handler; +import com.itsaky.androidide.utils.LSPUtils; /** * CodeEditor is a editor that can highlight text regions by doing basic syntax analyzing @@ -314,9 +315,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca private List mSignatureHelpTriggerChars = new ArrayList<>(); - private Map mLineColors; - private Map> stringMap; - private File currentFile; public CodeEditor(Context context) { @@ -604,7 +602,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca setDefaultFocusHighlightEnabled(false); } - mLineColors = new HashMap(); mErrorColor = Color.parseColor("#FF5252"); mWarningColor = Color.parseColor("#FFD740"); mRect2.set(-1, -1, -1, -1); @@ -643,21 +640,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca } } - public void setStringMap(Map> map) { - this.stringMap = map; - } - - public CodeEditor setLineColors(HashMap map) { - this.mLineColors = map; - return this; - } - - public CodeEditor putLineColor(HexColor index, int color) { - createMapIfNull(); - mLineColors.put(index, color); - return this; - } - public void notifySpansChanged() { if(mSpanner != null) { mSpanner.analyze(getText()); @@ -1128,12 +1110,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca if (time > 3.0) { } } - - private void createMapIfNull() { - if(this.mLineColors == null) { - this.mLineColors = new HashMap(); - } - } /** * Paint the view on given Canvas @@ -1471,7 +1447,8 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca } // Draw hex colors - if(isLineColorsEnabled() && mLineColors != null && mLineColors.size() > 0) { + final Map mLineColors = isLineColorsEnabled() && mSpanner != null ? mSpanner.getResult().getHexColors() : null; + if(mLineColors != null && mLineColors.size() > 0) { for(HexColor c : mLineColors.keySet()) { if(c != null && c.isSameLine(line) && mLineColors.get(c) != null) { final int paintStart = Math.max(firstVisibleChar, c.start.column); @@ -1496,7 +1473,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca mPaint.setStrokeWidth(getDpUnit() * 1.4f); final List 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 strings = stringMap.get(line); - if(strings == null || strings.isEmpty()) return false; - for(int i=0;i> stringMap = mSpanner == null ? null : mSpanner.getResult().getStringMap(); + if(stringMap == null || stringMap.isEmpty()) { + return false; } + + return isInRanges(stringMap.get(line), line, column); + } + + private boolean isCursorInComment () { + final int line = getCursor().getLeftLine(); + final int column = getCursor().getLeftColumn(); + + final Map> commentMap = mSpanner == null ? null : mSpanner.getResult().getCommentMap(); + if(commentMap == null || commentMap.isEmpty()) { + return false; + } + + return isInRanges(commentMap.get(line), line, column); + } + + private boolean isInRanges (List ranges, int line, int column) { + + if(ranges == null || ranges.isEmpty()) { + return false; + } + + for (Range range : ranges) { + if (LSPUtils.isInRange(range, line, column)) { + return true; + } + } + return false; } @@ -4881,7 +4883,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca // Auto completion // Trigger only when autocompletion is enabled and cursor is not in a string token - if (isAutoCompletionEnabled() && !isInString()) { + if (isAutoCompletionEnabled() && !isCursorInString() && !isCursorInComment()) { if ((mConnection.mComposingLine == -1 || mCompletionOnComposing) && endColumn != 0 && startLine == endLine) { int end = endColumn; while (endColumn > 0) { @@ -5009,12 +5011,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca @Override public void onAnalyzeDone(TextAnalyzer provider) { if (provider == mSpanner) { - if(mSpanner.getResult().getHexColors().size() > 0) { - setLineColors(mSpanner.getResult().getHexColors()); - } - if(mSpanner.getResult().getStringMap().size() > 0) { - setStringMap(mSpanner.getResult().getStringMap()); - } if (mHighlightCurrentBlock) { mCursorPosition = findCursorBlock(); } diff --git a/lsp/src/main/java/com/itsaky/lsp/services/IDELanguageServer.java b/lsp/src/main/java/com/itsaky/lsp/services/IDELanguageServer.java index 71e9c89fc..eec3673b9 100644 --- a/lsp/src/main/java/com/itsaky/lsp/services/IDELanguageServer.java +++ b/lsp/src/main/java/com/itsaky/lsp/services/IDELanguageServer.java @@ -1,7 +1,6 @@ package com.itsaky.lsp.services; import java.util.concurrent.CompletableFuture; - import org.eclipse.lsp4j.InitializeParams; import org.eclipse.lsp4j.InitializeResult; import org.eclipse.lsp4j.InitializedParams; @@ -10,8 +9,6 @@ import org.eclipse.lsp4j.WorkDoneProgressCancelParams; import org.eclipse.lsp4j.jsonrpc.services.JsonDelegate; import org.eclipse.lsp4j.jsonrpc.services.JsonNotification; import org.eclipse.lsp4j.jsonrpc.services.JsonRequest; -import org.eclipse.lsp4j.services.TextDocumentService; -import org.eclipse.lsp4j.services.WorkspaceService; /** * Custom implementation of {@link org.eclipse.lsp4j.services.LanguageServer}.