the-liquid-metal opened a new issue, #5037:
URL: https://github.com/apache/netbeans/issues/5037

   ### Description
   
   Named arguments and constructor property promotion are php 8.0 feature, and 
Netbeans 15 is able to recognize it. At the moment, Netbeans is able to 
highlight constructor property promotion correctly, but there is a bug within 
named argument as stated in #5035.
   
   Logically, if someone point the cursor to the class property, Netbeans will 
highlight that property both on call site and definition site (if available). 
The same should happen with named arguments.
   
   Recently i encountered a case where i have to manually evaluate property 
assignment (by constructor property promotion) in order to decide correctness 
of argument assignment (by named argument). This is a tricky task: use a find 
toolbar to find all exact string. This is less fancy than just looking up the 
only property or only argument occurrence.
   
   It would be invaluable if Netbeans could cross-highlight: if I point to any 
property in the calling site, it will highlight all properties and named 
argument in the constructor property promotion callsite, or vice versa.
   
   ### Use case/motivation
   
   ```php
   // definition site-----------------------------------------
   
   class ValidatorBridge {
       public function __construct(
           public Closure $intFn,
           public Closure $floatFn,
           public Closure $currencyFn,
       ) {
           // do deep validation for each property by its attributes
       }
   
       public function assignValidator(
           Closure $massValidator,
           Closure $packageValidator,
           Closure $costValidator,
       ) {}
   }
   
   // call site-----------------------------------------
   
   1234 | $vBridge = new ValidatorBridge(
   1235 |     intFn:      $x->validator(...),
   1236 |     floatFn:    $y->validator(...),
   1237 |     currencyFn: $z->validator(...),
   1238 | );
   
   // ... other codes here ...
   
   2345 | $vBridge->assignValidator(
   2346 |     massValidator:    $vBridge->floatFn,
   2347 |     packageValidator: $vBridge->intFn,
   2348 |     costValidator:    $vBridge->currencyFn,
   2349 | );
   2350 | 
   2351 | return $vBridge;
   ```
   
   I want to evaluate ```costValidator``` assignment at line 2348, so i point 
my cursor to ```currencyFn```,
   than Netbeans will highlight ```currencyFn``` at line 2348 and 1237.
   Finally i will judge whether ```$z->validator(...)``` is a proper validator 
or not.
   
   ### Related issues
   
   _No response_
   
   ### Are you willing to submit a pull request?
   
   No
   
   ### Code of Conduct
   
   Yes


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to