625 Commits

Author SHA1 Message Date
Akash Yadav 51ef3b115c fix: JDK is not recognized if only JDK 21 is installed (fixes #1616)
This also adds a preference in 'Build & run' which allows user to select the currently installed JDK version
2024-01-11 18:54:20 +05:30
Akash Yadav 26742432f0 fix(common): remove usage of ide-environment.properties file 2024-01-10 18:29:47 +05:30
Akash Yadav a22ced1808 fix: rename CompletionItem.label to CompletionItem.ideLable to avoid name shadowing 2024-01-01 23:37:41 +05:30
Akash Yadav ba3d717569 build: remove unused JAR files 2023-12-31 10:48:58 +05:30
Akash Yadav be10fe7e1e feat: integrate full Termux application 2023-12-15 20:22:33 +05:30
Akash Yadav 328ff93b1a fix(lsp/java): avoid crash during Java source code analysis
This issue was reported in #1279 (https://github.com/AndroidIDEOfficial/AndroidIDE/issues/1279\#issuecomment-1826706454).
2023-12-14 19:14:50 +05:30
Akash Yadav 5d1faba441 fix: replace 'ProcessCancelledException' with 'CancellationException' 2023-12-14 19:14:49 +05:30
Felipe Teixeira a052214294 fix(lsp/java): add false, true and null to method body keywords (#1506) 2023-12-01 22:08:19 +05:30
Akash Yadav 3f97f24b4c fix: TSTree instances are sometimes not closed, causing memory leak 2023-11-21 17:39:52 +05:30
Akash Yadav a0cb71b713 fix(lsp/java): on-demand imports cause definition and reference providers to fail (fixes #1449, #1211) 2023-11-13 19:48:08 +05:30
Akash Yadav 9e46f5022c fix(lsp/java): add missing keywords from completion provider (fixes #1420) 2023-11-13 18:40:08 +05:30
Akash Yadav ed52590ae3 fix(lsp/java): do not create SourceFileManager for root project (fixes #1396) 2023-11-12 00:05:34 +05:30
Akash Yadav 5373698e84 fix(lsp): make signature help requests cancellable (fixes #1393) 2023-11-11 15:33:03 +05:30
Akash Yadav d4626b2a71 fix(lsp): provide cancel checker with params 2023-11-11 00:47:38 +05:30
Akash Yadav 7e64533302 fix(actions): make ActionItem visible and enabled by default 2023-11-07 23:46:37 +05:30
Akash Yadav 2d30c40825 refactor: consistent ActionItem IDs 2023-11-07 19:54:38 +05:30
Akash Yadav faea3b253a fix(lsp/java): gracefully handle non-existing methods while looking for method signatures 2023-11-07 19:09:12 +05:30
Akash Yadav 2e36388cfb fix(lsp/java): migrate SynchronizedTask to Kotlin 2023-11-07 18:04:12 +05:30
Akash Yadav 50f059c2f6 fix(lsp/java): NPE while cancelling analyzing thread (fixes #1373) 2023-10-28 15:43:50 +05:30
Akash Yadav 31285710f5 fix(editor/treesitter): parse syntax tree in same coroutine 2023-10-27 22:10:05 +05:30
Akash Yadav 7923243b3b fix(editor/treesitter): reimplement TsAnalyzeManager for better thread safety and error handling 2023-10-23 21:27:30 +05:30
Akash Yadav fae1aecb46 fix: replace usage of guava-jre with guava-android 2023-10-20 19:48:55 +05:30
Akash Yadav 971fc605ff fix: include language-treesitter from sora-editor locally 2023-10-13 23:03:57 +05:30
Akash Yadav 52844b201e fix: migrate Actions API to Kotlin Coroutines 2023-10-09 00:25:57 +05:30
Akash Yadav cc0a6391f6 fix: add tests for MainFragment and refactor testing modules 2023-10-07 23:37:34 +05:30
Akash Yadav fc2afcf093 tests(lsp/java): run Java LSP tests with Robolectric 2023-10-05 21:16:48 +05:30
Akash Yadav 5562dc2069 feat(tooling-api): fetch project sync issues from the Android Gradle Plugin 2023-10-05 20:05:16 +05:30
Akash Yadav d73a9c88f7 fix(lsp/java): UninitializedPropertyAccessException when accessing analyze result 2023-10-02 18:59:22 +05:30
Akash Yadav 1d54a3ff4d tests: fix compilation issues 2023-10-02 12:27:56 +05:30
Akash Yadav 230ccfa536 fix(editor): rewrite IDEEditor in Kotlin with Coroutines 2023-09-30 15:08:28 +05:30
Akash Yadav 3c1a4ebedc fix: remove usage of deprecated 'newInstance' method in TS Languages 2023-09-18 19:41:59 +05:30
Akash Yadav 9c99d066c3 refactor: reorganize xml registries 2023-09-12 00:18:29 +05:30
Akash Yadav 4290de353d fix: add ability to use custom Gradle dist version in tooling API 2023-09-05 17:36:51 +05:30
Akash Yadav 32f4441935 refactor: XML lsp tests 2023-09-05 17:36:51 +05:30
Akash Yadav d66e3b384c fix(projects): remove IProjectManager.app 2023-09-05 17:36:49 +05:30
Akash Yadav f5143625ef refactor: migrate ProjectManager to interface based API 2023-09-05 17:36:39 +05:30
Akash Yadav 4b577f5eed feat: add support for selecting build variants in project (closes #223) 2023-09-05 17:36:37 +05:30
Akash Yadav 73f2b18a37 refactor(tooling-api): rename 'InitializeProjectMessage' to 'InitializeProjectParams' 2023-09-05 17:36:37 +05:30
Akash Yadav 7ad3fe86a5 feat: automatically select build variants for Android projects 2023-09-05 17:36:31 +05:30
Akash Yadav e725d1cacf feat(projects): implement project deserialization and transformation (2/2) 2023-09-05 17:36:30 +05:30
Akash Yadav de5e55c86e feat(tooling-api): new tooling API model implementation 2023-09-05 17:36:28 +05:30
Akash Yadav eb9ee61118 fix(lsp/java): 'Organize imports' resets the editor's text, clearing the undo/redo history (closes #1210) 2023-08-24 12:51:29 +05:30
Akash Yadav 6cdb6bd374 fix(lsp/java): add null checks before performing code actions (closes #1156) 2023-08-01 10:01:12 +05:30
Akash Yadav 96c68ff320 fix(lsp/xml): namespace is inserted even if attrAtCursor already has a namespace (closes #1122) 2023-07-23 12:16:58 +05:30
Akash Yadav 1e07da7a98 fix(javac): add Java compiler flag to override -XDkeepComments flag
When the 'keepComments' flag is set, the compiler uses JavadocTokenizer for tokenizing the source code. While creating the LineMap instance, the JavadocTokenizer sets the 'expandTabs' flag to true which expands '\t' characters to spaces. This is needed while generating HTML pages for the Javadoc. However, if the tabs are expanded to spaces, then getPosition(...) and getColumnNumber(...) methods in the LineMap class return indices which cannot be directly used to insert text in the source code. This results in StringIndexOutOfBoundsException when trying to insert text in the editor (#1127, and probably #916 as well).

This commit adds the 'keepCommentsOverride' option to the compiler which is used by NBParserFactory to override the 'keepComments' flag. The CompileBatch class sets this option to 'ignore' which ignores the 'keepComments' flag so that JavadocTokenizer is not used for tokenization.
2023-07-21 18:46:44 +05:30
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