Commit Graph

417 Commits

Author SHA1 Message Date
Akash Yadav 52d401d992 refactor(lsp/java): format OverrideSuperclassMethods action class 2023-07-21 16:01:08 +05:30
Akash Yadav 601722dba7 fix(tests/lsp/java): fix compilation error 2023-07-09 16:49:45 +05:30
Akash Yadav 764a6fa8c2 fix(lsp): progress dialog for 'find references' action is shown indefinitely
This happens because the 'ReferenceProvider' in the Java LSP tries to start another compilation process while working with the current compilation task.
This results in a deadlock where the current task waits for the new compilation request to return and the new compilation request waits for the current task to finish. This commit fixes this issue.

Apart from fixing this issue, this commit also makes the 'Go to definition' and 'Find references' actions cancelable. Also, it eliminates the usage of the deprecated 'ProgressDialog' class for these two actions.
2023-07-09 12:56:28 +05:30
Akash Yadav 001dee0525 fix(lsp/java): add null checks for usage of FindHelper.findMethod(..) 2023-06-24 23:54:31 +05:30
Akash Yadav bffb2cbea5 fix(lsp/java): add null check for method in 'AddException' rewrite (#1050) 2023-06-24 23:54:31 +05:30
Akash Yadav d31f57b07c fix(deps): migrate to android-tree-sitter v3.0.0 2023-06-11 00:20:02 +05:30
Akash Yadav b950c34fb0 refactor(lookup): use ServiceLoader to load DefaultLookup 2023-04-30 23:26:09 +05:30
Akash Yadav fa8680e873 refactor: replace hardcoded package names in build scripts with BuildConfig property 2023-04-13 22:56:17 +05:30
Akash Yadav 23c30eeaeb fix(lsp/java): empty imports allows classes from same package to be imported with completion items 2023-04-09 19:22:58 +05:30
Akash Yadav f150f4f9ab feat(lsp/java): add top-level snippets 2023-04-04 22:07:41 +05:30
Akash Yadav 0ea7b40fc0 feat(lsp/java): add snippets for creating comments 2023-04-04 21:18:45 +05:30
Akash Yadav 04ffc747a7 fix(lsp/java): update snippet for Java constructor 2023-04-02 11:52:51 +05:30
Akash Yadav 2c130116b5 fix(lsp/java): remove params from method snippets 2023-04-01 18:40:37 +05:30
Akash Yadav 402c3f6db6 tests(fix): FileManager does not receive events 2023-04-01 00:13:21 +05:30
Akash Yadav a89e25680b tests: fix build issues 2023-03-31 23:34:33 +05:30
Akash Yadav f0ac4e8409 refactor(lsp/java): remove unnecessary methods for snippet completion 2023-03-31 22:49:59 +05:30
Akash Yadav 4728bf7d0b feat(lsp/java): add more snippets 2023-03-31 22:41:11 +05:30
Akash Yadav b8b17c2c39 feat: read snippets from JSON files stored in assets 2023-03-31 22:17:37 +05:30
Akash Yadav fd4ce13724 fix(lsp/java): invalid indentation in snippets 2023-03-31 18:22:57 +05:30
Akash Yadav 80f74d0d27 fix(lsp/java): remove 'label' from JavaSnippet 2023-03-31 17:52:04 +05:30
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