Steps 266-268: Phase 10a — semantic annotation core + sidecar persistence (32/32 tests)
Step 266: 5 semantic annotation AST types (Intent, Complexity, Risk, Contract, SemanticTag) with JSON roundtrip and compact AST integration. Step 267: Sidecar AST persistence (.whetstone/<file>.ast.json) with save/load/list RPC methods, MCP tools, and permission enforcement. Step 268: Phase 10a integration tests — multi-file sidecar workflow, all 5 types in compact view, idempotent roundtrip, source isolation. Also includes Sprint 10 plan, GUI/installer polish, and Emacs integration fixes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -118,7 +118,9 @@ inline void EditorState::registerCommands() {
|
||||
int col = 0;
|
||||
if (parseLineColInput(arg, line, col)) {
|
||||
if (active()) {
|
||||
int totalLines = countLines(active()->editBuf);
|
||||
int totalLines = 1 + (int)std::count(active()->editBuf.begin(),
|
||||
active()->editBuf.end(),
|
||||
'\n');
|
||||
if (totalLines > 0) line = std::max(1, std::min(line, totalLines));
|
||||
col = std::max(1, col);
|
||||
jumpTo(active(), line - 1, col - 1);
|
||||
@@ -207,7 +209,7 @@ inline void EditorState::registerCommands() {
|
||||
[this]() { runActiveFile(true); });
|
||||
}
|
||||
|
||||
inline void EditorState::executeCommand(const std::string& id, const std::string& arg = {}) {
|
||||
inline void EditorState::executeCommand(const std::string& id, const std::string& arg) {
|
||||
auto it = commandHandlers.find(id);
|
||||
if (it == commandHandlers.end()) return;
|
||||
it->second(arg);
|
||||
|
||||
Reference in New Issue
Block a user