ntbang0901
d032addb17
fix(run): offer Run for classes whose superclass declares main ( #1204 )
...
The JVM run-target scanner only reads the file's own text, so a class like `class App extends AtomStarter {}`, whose superclass (in the project or a library JAR) declares `static main`, got no gutter Run, no Ctrl+Shift+R and no file-level Run, although the JVM launches it. Classes with an `extends` clause and no main of their own are now candidates: the superclass chain is walked through the language server's type hierarchy, each class supertype's source (file, decompiled or source-jar document) is checked for a static main, and the answer is cached per class and `extends` clause, so the gutter, Run from context, launch and debug agree. Interfaces are skipped (a static interface main is not inherited); negative answers are asked again when the server settles. `main(java.lang.String[] a)` is accepted as well.
Co-authored-by: ntbang0901 <[email protected] >
2026-11-04 23:11:01 +08:00
..
2026-11-03 23:17:52 +08:00
2026-10-25 21:24:00 +08:00
2026-11-04 01:09:07 +08:00
2026-11-04 09:43:54 +08:00
2026-11-04 09:43:54 +08:00
2026-11-01 19:34:31 +08:00
2026-11-04 06:06:38 +08:00
2026-11-01 08:35:18 +08:00
2026-11-04 08:15:13 +08:00
2026-11-04 08:02:54 +08:00
2026-10-30 08:52:00 +08:00
2026-11-04 08:15:13 +08:00
2026-11-04 12:41:34 +08:00
2026-11-03 15:05:09 +08:00
2026-11-03 23:17:52 +08:00
2026-10-22 18:55:10 +08:00
2026-10-29 11:58:19 +08:00
2026-11-02 23:41:21 +08:00
2026-11-03 23:17:52 +08:00
2026-10-31 20:58:45 +08:00
2026-11-04 01:09:07 +08:00
2026-10-27 23:12:19 +08:00
2026-11-02 22:49:04 +08:00
2026-11-01 19:34:31 +08:00
2026-11-01 19:34:31 +08:00
2026-11-04 13:20:41 +08:00
2026-10-25 21:24:00 +08:00
2026-10-22 18:55:10 +08:00
2026-10-25 21:24:00 +08:00
2026-10-28 19:35:16 +08:00
2026-10-31 12:38:54 +08:00
2026-10-31 12:38:54 +08:00
2026-10-31 12:38:54 +08:00
2026-10-31 12:38:54 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-10-31 13:56:06 +08:00
2026-11-04 06:06:38 +08:00
2026-11-04 01:09:07 +08:00
2026-11-04 01:09:07 +08:00
2026-11-04 01:09:07 +08:00
2026-11-04 05:46:50 +08:00
2026-11-04 05:46:50 +08:00
2026-11-04 05:46:50 +08:00
2026-11-04 08:15:13 +08:00
2026-11-04 23:11:01 +08:00
2026-11-04 23:11:01 +08:00
2026-11-04 23:11:01 +08:00
2026-11-04 01:09:07 +08:00
2026-11-02 23:37:52 +08:00
2026-11-04 23:11:01 +08:00
2026-10-29 11:39:20 +08:00
2026-11-04 12:41:34 +08:00
2026-10-25 09:44:46 +08:00
2026-10-29 15:01:01 +08:00
2026-10-25 09:44:46 +08:00
2026-10-28 19:35:16 +08:00
2026-11-03 00:37:14 +08:00
2026-11-03 00:37:14 +08:00
2026-11-03 23:17:52 +08:00
2026-11-04 23:11:01 +08:00
2026-11-04 23:11:01 +08:00
2026-11-01 08:35:18 +08:00
2026-10-27 23:12:19 +08:00
2026-11-04 13:20:41 +08:00
2026-10-31 15:02:39 +08:00
2026-11-04 06:06:38 +08:00
2026-11-04 23:10:23 +08:00
2026-10-25 21:24:00 +08:00
2026-11-04 12:41:34 +08:00
2026-11-04 23:11:01 +08:00
2026-10-31 15:11:52 +08:00
2026-10-28 19:35:16 +08:00
2026-11-01 08:35:18 +08:00
2026-11-04 07:23:09 +08:00
2026-11-04 07:23:09 +08:00
2026-10-31 12:38:54 +08:00
2026-10-31 12:38:54 +08:00
2026-10-29 01:06:32 +08:00
2026-10-31 01:28:41 +08:00
2026-10-31 01:28:41 +08:00
2026-10-31 15:11:52 +08:00
2026-11-01 08:35:18 +08:00
2026-10-31 15:11:52 +08:00
2026-10-31 15:11:52 +08:00
2026-10-30 10:51:37 +08:00
2026-10-30 10:51:37 +08:00
2026-10-22 18:55:10 +08:00
2026-10-22 18:55:10 +08:00
2026-10-27 18:56:54 +08:00
2026-11-04 13:20:41 +08:00
2026-11-03 23:17:52 +08:00
2026-11-03 23:17:52 +08:00
2026-11-04 11:56:03 +08:00
2026-10-25 21:24:00 +08:00
2026-10-25 21:24:00 +08:00
2026-10-25 21:24:00 +08:00
2026-10-25 09:44:46 +08:00
2026-10-28 19:35:16 +08:00
2026-11-04 09:43:54 +08:00
2026-11-04 09:43:54 +08:00
2026-10-30 18:06:11 +08:00
2026-11-04 12:41:34 +08:00
2026-11-01 08:35:18 +08:00
2026-11-01 08:35:18 +08:00
2026-11-02 20:13:44 +08:00
2026-11-02 20:13:44 +08:00
2026-10-28 19:35:16 +08:00