Context Fine-Tuning
CodeVROOM is designed for ultra-fast incremental edits to large projects. This is achieved by aggressively trimming down what goes into the context window, so the actual AI models can work with smaller chunks of code, make fewer mistakes and produce results exceptionally fast. There are several ways of controlling what exactly goes into the context window, and this page provides an overview of them.
Initial Context
The easiest way to begin an AI-powered editing session is to click the CodeJumps link on top of the symbol you want to edit:
This will pull the selected symbol into the context window and will display a drop-down list of options (e.g. whether to include the #include/using statements or an outline of the outer class, if any):Note that clicking on the link automatically focuses on the AI Session window, so you can just ignore the drop-down if you are not planning to change anything. Or, hold shift while clicking to not show it in the first place.
The rest of the source file will be trimmed down, so the AI won’t spend any time or tokens trying to make sense of irrelevant parts. Note that this is not very useful unless you actually pull the relevant parts into the context window, and the next sections explain that in detail.
Automatic Context Discovery
The easiest way to get the relevant symbols into the context window is to check the “Discover additional symbols” checkbox in the bottom left corner of the AI Session window:
CodeVROOM will then run a separate temporary conversation, asking the model what else is relevant given your editing instructions and the code it already has seen. Once the model responds, CodeVROOM will pull these symbols into the context window, and ask the model to do the actual edit, taking them into account.
Referencing Symbols Manually
You can always reference a symbol, file or a techinque manually using the @-syntax in the context window:CodeVROOM will show a suggestion popup with all matching items, as if it was completing an identifier in the code editor.
Referencing Symbols via Code
Often you know exactly what code the AI model should be looking at. Particular struct it should use, particular functions it should call, particular algorithm implemented elsewhere it should adapt. You can pull these into the context window by clicking the links above the symbols:You can specify whether a symbol should be included as an outline (glasses icon) or a full copy (pencil icon):
Including symbols as outline will save a lot of tokens and some processing time. Outline means no function bodies, e.g.:
class Vector { public readonly double X, Y; Vector(double x, double y); double Abs(); }
Use it for large classes or functions that the AI should use, but not edit.
Note that if the model decides to add another method to Vector between the constructor and Abs(), CodeVROOM will understand it, and will insert it into the original class. It won’t change any existing members though.
Reviewing Referenced Symbols
At any point during the editing session, you can view what symbols are included in the context window via the AI Context window:You can open it via the AI->Window menu or by clicking the fine-tuning button in the top right corner of the AI Session window. Note that rolling back an AI editing step that added some symbols will remove these symbols from the context window. Stepping forward will insert them back.