Skip to content

Conversation

@AFaust
Copy link
Contributor

@AFaust AFaust commented Aug 6, 2025

CHECKLIST

We will not consider a PR until the following items are checked off--thank you!

  • There aren't existing pull requests attempting to address the issue mentioned here
  • Submission developed in a feature branch--not master

CONVINCING DESCRIPTION

This PR groups various improvements to the tern support for JavaScript Console, which aim to improve handling of exposed script APIs as well as ensure all dynamic tern generation is done in a central place with consistent behaviour.

RELATED INFORMATION

While it is normally good practice to keep a PR scoped to an individual task, this includes multiple tasks as it became clear that development for task X may include / need to address changes for task Y which only became relevant during testing of task X, after the real change for task Y was already done and committed. To avoid excessive slice&dice with history rewrites, I tried to focus each commit on a primary task, but included those secondary changes as long as they did not end up dominating the commit.

Fixes #247
Fixes #249
Fixes #250
Fixes #251
Fixes #252
Fixes #254

@AFaust AFaust added this to the 1.2.3.1 milestone Aug 6, 2025
@AFaust AFaust self-assigned this Aug 6, 2025
@AFaust AFaust mentioned this pull request Aug 12, 2025
2 tasks
AFaust added 7 commits August 13, 2025 13:18
…ant base Java tern improvements

- improved cutoff / hierarchy handling to avoid exposing too much of Java API
- exclude exposing methods if hidden/skipped on base declaring class (unless parameter types differ via generics)
- handle both is/get-style getters
- handle fact that interop also allows calling getters/setters directly without using virtual properties
- handle JavaString as extending from JavaScript String (tested that JS-only functions are callable on Java String too)
- properly expose Java collection base interfaces
- properly expose Java base map and scriptable variants (with their additional properties)
- sort type definitions / member definitions in tern output for better future before/after comparison on changes)
- allow more externalised configuration (forced exposure of classes, parent/prototype overrides)
- use class name without package instead of simple class name, improving handling of nested classes
- externalised some of the cutoff interfaces/classes as skip configuration
…erties fixes

- generate action parameter tern definitions in backend web script
- patch tern files (one backport + one custom exclusion of meta property '!original')
- correct/extend some ScriptNode and other script API tern properties
@AFaust AFaust force-pushed the task/ternDefImprovements branch from 4a57f08 to a8f54d8 Compare August 13, 2025 11:19
@AFaust AFaust merged commit 49d36c8 into OrderOfTheBee:master Aug 13, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment