Commit Graph

397 Commits

Author SHA1 Message Date
Akash Yadav 70b05f23ca fix(editor): tab in symbol input does not shift snippet to next tab stop 2023-03-31 17:47:51 +05:30
Akash Yadav 5be28d078e feat(lsp/java): add basic snippet support for Java 2023-03-31 17:37:48 +05:30
Akash Yadav e8e203f548 refactor: rename CompletionItem.kind to avoid conflict with editor's CompletionItem.kind 2023-03-31 13:31:01 +05:30
Akash Yadav 81df6d29db build: include EventBusAnnotationProcessor locally 2023-03-30 23:49:17 +05:30
Akash Yadav 233cb876e7 fix(lsp/java): 'Create missing method' unable to create methods outside of current file
This happens becase FindMethodCallAt does not initialize properties related to the found method.
2023-03-29 17:45:14 +05:30
Akash Yadav 8f6392ff55 feat(lsp: add option to perform code actions on main thread 2023-03-29 12:37:56 +05:30
Akash Yadav 273e61daa8 feat(lsp/java): add 'Fix imports' actions
The 'Fix imports' action analyzes the file contents, walks through the diagnostic items looking for 'compiler.err.cant.resolve.location' errors, then performs an edit to
import all those classes at once. If multiple classes are found for a class name, the user is asked to choose the class that should be imported.
2023-03-29 01:42:24 +05:30
Akash Yadav 974a1ae208 fix(lsp/java): invalid simple name comparison in CompilerProvider.findQualifiedNames() 2023-03-28 23:55:29 +05:30
Akash Yadav 380cbe3ddc refactor(lsp/java): move qualified name finding logic to JavaCompilerService 2023-03-28 23:33:01 +05:30
Akash Yadav f6882fcad4 refactor(lsp/java): update the Rewrite API 2023-03-28 22:58:18 +05:30
Akash Yadav 3a1f5ff3ce fix(lsp/java): inconsistent indents in generated code 2023-03-27 23:37:11 +05:30
Akash Yadav e7489ed6f2 fix(lsp/java): extra indentation is added to generated overriding method 2023-03-27 23:01:48 +05:30
Akash Yadav 7f69dc57a7 fix(lsp/java): remove hardcoded 4-space indentation in generated code 2023-03-27 22:51:04 +05:30
Akash Yadav 3ac055c2a7 fix(lsp/java): avoid scanning AST for 'expand selection' if whole content is selected 2023-03-26 22:13:00 +05:30
Akash Yadav e2dd1b74ea fix(lsp/java): expand selection does not work after selecting whole class or package decl 2023-03-26 22:13:00 +05:30
Akash Yadav 1ad5ffd9b6 fix: whole tree is logged while expanding selection region 2023-03-26 22:12:59 +05:30
Akash Yadav de9655c43f fix: log exception to IDE logs while executing code actions 2023-03-26 22:12:59 +05:30
Akash Yadav 4987a99ab1 fix: tab width is ignored by 'Create missing method' action 2023-03-26 22:12:58 +05:30
Akash Yadav 3eec08ad4a refactor: reorganize code 2023-03-26 22:12:58 +05:30
Akash Yadav c21b459ea5 fix: avoid crash if code actions fail to execute 2023-03-26 22:12:57 +05:30
Akash Yadav e00f182b83 fix(lsp/java): classes from the same package are imported when selecting a completion item (closes #869) 2023-03-18 08:29:59 +05:30
Akash Yadav a24c7e5ff1 fix: signature help is not shown for methods from a cached completion result 2023-03-14 13:10:43 +05:30
Akash Yadav 23a9f4b718 fix(lsp/java): update tree-sitter parse cache when a file is deleted or renamed 2023-03-13 15:57:51 +05:30
Akash Yadav 1bc3fc7bc1 fix(lsp/java): signature help is not shown sometimes 2023-03-11 23:17:25 +05:30
Akash Yadav d4db2635bd refactor: move javapoet to separate module 2023-03-05 23:29:39 +05:30
Akash Yadav bdd119d631 fix: completion becomes unresponsive while completing class names inside an anonymous class
This bug is caused when the user requests completions for class names inside an anonymous class (`new View.OnClickListener() { ... } ` for example).
The completion provider succeeds in finding the completion candidates. However, for creating CompletionItem instance for classes, it needs to know if the class that is being suggested
is a nested class or not. This is checked by `IJavaCompletionProvider.findTopLevelDeclaration()` which however, fails the check the nullability of the parent elements while traversing.
This results in an infinite loop causing the `SynchronizedTask` to hold on to the `CompileTask` instance which further prevents any compilation related tasks.

As the `CompileTask` is held due to the infinite loop, the Java completion provider simply returns empty results on further completion requests.
2023-03-04 23:52:34 +05:30
Akash Yadav 886a0cacfa feat: ignore 'package-info' when indexing sources and libraries 2023-02-26 10:46:28 +05:30
Akash Yadav bd8bc69990 refactor: remove unnecessary debug log in JavaCompilerImpl 2023-02-25 16:58:13 +05:30
Akash Yadav fdd747e5dc chore: update code style to GoogleStyle 2023-02-25 16:52:38 +05:30
Akash Yadav 245427e232 docs: removed readme for :lsp:java 2023-02-25 00:16:22 +05:30
Akash Yadav adf7e80a02 fix: reset files in JavaCompilerConfig after compilation 2023-02-23 23:28:38 +05:30
Akash Yadav e551ba8763 fix: do not prune methods when running on JVM 2023-02-23 23:27:32 +05:30
Akash Yadav 4ebda7fc8f feat: [EXPERIMENTAL] prune method bodies of files before parsing in JavaCompilerImpl 2023-02-23 23:22:57 +05:30
Akash Yadav 3d606d16b4 feat: use custom JavaCompiler implementation for Java LSP 2023-02-22 23:34:22 +05:30
Akash Yadav 52a75f0c15 refactor: move JavacConfigProvider to 'javac.config' package 2023-02-22 23:34:21 +05:30
Akash Yadav 8ae3b0a05c refactor: create independent method for caching locations in JavacFileManager 2023-02-20 20:41:54 +05:30
Akash Yadav fb2834a31e fix: do not use tree-sitter method pruning for tests 2023-02-18 18:25:50 +05:30
Akash Yadav 298b3e9589 feat: [EXPERIMENTAL] use tree sitter to prune method bodies in completion provider 2023-02-18 18:21:57 +05:30
Akash Yadav 7e5d8b99d9 fix: add more cancellation checks in Java analyzer 2023-02-18 10:17:48 +05:30
Akash Yadav 81a40be7a8 refactor: log reason for Java analyze request cancellation 2023-02-18 10:10:26 +05:30
Akash Yadav c5d5e03507 tests: fix tests 2023-02-17 19:07:22 +05:30
Akash Yadav f2e9eea49c feat: add preference to disable Java diagnostics (experimental) 2023-02-17 18:08:12 +05:30
Akash Yadav 840bacd5b5 refactor: set java version for javac-related projects to JAVA_11 2023-02-14 18:51:41 +05:30
Akash Yadav 00c5633e4a refactor: fix typo in method name 2023-02-12 00:11:29 +05:30
Akash Yadav 0f6abf34cf refactor: rename package 'javax' to 'jdkx' 2023-02-11 21:12:55 +05:30
Akash Yadav 96ca54c394 refactor: removed unnecessary JavacTaskUtil class 2023-01-28 22:49:45 +05:30
Akash Yadav 755043b050 refactor(javac): update nb-javac-android
This replaces the usage of 'com.sun' package from javac to 'openjdk'.
2023-01-28 22:39:48 +05:30
Akash Yadav bc156a9cb6 fix(editor,lsp/java): avoid reflective access to IDEEditor 2023-01-19 08:44:09 +05:30
Akash Yadav 97d8f66f2d feat: replace Toaster with Flashbar 2023-01-19 00:32:37 +05:30
Akash Yadav 1682cbc599 fix(lsp/java): type params not included in generated constructor parameter types 2023-01-11 20:01:00 +05:30