You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@netbeans.apache.org by "lahodaj (via GitHub)" <gi...@apache.org> on 2026/07/22 09:48:07 UTC

[PR] When running javac for a tagged CompilationController, do not set partial reparse positions. [netbeans]

lahodaj opened a new pull request, #9530:
URL: https://github.com/apache/netbeans/pull/9530

   Manual testcase thanks for @mbien:
   
   > paste and save file:
   java.util.List.of("").stream().
   now use auto completion to add filter method:
   java.util.List.of("").stream().filter(predicate)
   hit completion again and it won't suggest to insert a predicate, unless you ctrl+s first (followed by ESC to get rid of the completion popup), after that completion works again for predicate.
   
   
   The reason for this behavior is an interaction between code templates and partial reparse. It is unclear why this is happening (more visibly?) now, may have some relation to end positions being stored on trees, which makes the model a little bit less forgiving w.r.t. end position updates.
   
   The problem is this:
   - the code is parsed normally (OK)
   - when the `filter` CC item is confirmed, it inserts a code template. The code template will create a temporary copy of javac/AST/a tagged compilation controller. Note the other features will still be using the "old", shared, instance of javac/ASTs. This by itself is OK, but this will set a shared `positions` inside `JavacParser` to values from the temporary javac/AST, replacing the correct ones
   - then the document changes. The new (broken) `positions` are used to find which method was modified - i.e. the modified method that will be found is from the temporary controller, not from the shared one. And this method will be updated. But code templates won't use it anymore, and every other feature will use the stale AST, until a full reparse is forced in one way or another.
   
   The proposal here is to not set and use `JavacParser.positions` when parsing from the temporary controllers.
   
   An alternative would be to keep the partial reparse state inside `CompilationInfoImpl` itself, although I am not convinced at this point that it is better.
   
   ---
   **^Add meaningful description above**
   
   <details open>
   <summary>Click to collapse/expand PR instructions</summary>
   
   By opening a pull request you confirm that, unless explicitly stated otherwise, the changes -
   
    - are all your own work, and you have the right to contribute them.
    - are contributed solely under the terms and conditions of the Apache License 2.0 (see section 5 of the license for more information).
   
   ### LLMs, Commit messages and PR description:
   
    - Please make sure (eg. `git log`) that all commits have a valid name and email address for you in the Author field.
    - LLM assisted commits should be attributed with an `Assisted-by: MODEL_NAME MODEL_VERSION` line appended to the commit message.
      - Please mention coding assistance in the PR description too (eg. by adding the same `Assisted-by` line from above)
      - Please describe the changes in your own words - we'd like to know you understand the changes being made!
   
   If you're a first time contributor, see the Contributing guidelines for more information.
   
   If you're a committer, please label the PR before pressing "Create pull request" so that the right test jobs can run.
   
   ### PR approval and merge checklist:
   
   1. [ ] Was this PR [correctly labeled](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=240884239#PRsandYouAreviewerGuide-PRtriggeredCIJobs(conditionalCIpipeline)), did the right tests run? When did they run?
   2. [ ] Is this PR [squashed](https://cwiki.apache.org/confluence/display/NETBEANS/git%3A+squash+and+merge)?
   3. [ ] Are author name / email address correct? Are [co-authors](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors#creating-co-authored-commits-on-the-command-line) correctly listed? Do the commit messages need updates?
   3. [ ] Does the PR title and description still fit after the Nth iteration? Is the description sufficient to appear in the release notes?
   
   If this PR targets the delivery branch: [don't merge](https://cwiki.apache.org/confluence/display/NETBEANS/Pull+requests+for+delivery). ([full wiki article](https://cwiki.apache.org/confluence/display/NETBEANS/PRs+and+You+-+A+reviewer+Guide))
   
   </details>


-- 
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: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

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


Re: [PR] When running javac for a tagged CompilationController, do not set partial reparse positions. [netbeans]

Posted by "ebarboni (via GitHub)" <gi...@apache.org>.
ebarboni merged PR #9530:
URL: https://github.com/apache/netbeans/pull/9530


-- 
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: notifications-unsubscribe@netbeans.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

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