Files

Next Edit Prediction

What is it?

How is it different from autocomplete?

Where are we right now?

  • Users can decide to switch between autocomplete and next edit.
  • Next edit triggers at the same time autocomplete is triggered, via vscode's inline completion provider.
  • The following happens after the trigger:
    • User's current cursor position is captured.
    • We define an editable range, ±5 lines from the current cursor position.
    • User's most recent edit is captured as a unified diff. (this is currently buggy)
    • This is sent to the model, which returns a new editable range with next edit predictions.
    • We display this new editable range in a SVG decoration.
    • User can either tab to accept or esc to reject.
      • On accept, the old editable range will be replaced by the new editable region. The cursor will be moved to the last line containing some change.
      • On reject, nothing happens.

What needs to be worked on?

  • User edit captures.
  • Find a better way to trigger next edit (this links back to the diff capture problem).
    • We can see that next edit triggers as soon as the user accepts a change. This is because autocomplete runs the same way.
    • I think autocomplete has some filter logic that doesn't display the ghost text under some conditions, which I am guessing are the following:
      • The model does not have any more completions to create.
      • The prediction at the cursor location has been cached.
  • JetBrains integration.