Lays the groundwork for WorkspaceEdit/rename (L2+) by making navigation cross-file-correct. - Relocate file_path/file_meta from the EditorCore global onto Buffer itself, so each buffer keeps its own filesystem identity across cross-file navigation. Accessors + registry/editor/lua/ semantic_render call sites migrated; zero behavioural change for single-file flows. - uri->path: project_index::uri_to_path made pub; pmacs.lsp.path_for_uri. - find-or-open: BufferRegistry::find_by_path + pmacs.buffer.find_or_open dedups an already-open file instead of spawning a duplicate buffer (SP-4 Gap A). - Bounded jump ring on EditorCore (cap 64, oldest-evict, stale-buffer skip): push_jump/jump_back + pmacs.editor.* bindings + lsp.jump-back command bound to M-,. - pmacs.lsp.go_to_definition cross-file branch: decode URI -> push_jump -> find_or_open -> reposition, with a failure path that unwinds the pushed origin. ensure_server now passes cfg.env through. Tests: 5 jump-ring unit tests; m4_12_cross_file_go_to_definition_and_ jump_back end-to-end via a new `defenv` fake-LSP mode. All gates green (lib 1262/0, m4 67/0, m8_1/m8_9/m8_10, m9_1, m11_5 --features crdt 2/0). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| async.lua | ||
| fs.lua | ||
| lsp.lua | ||
| mcp.lua | ||
| syntax.lua | ||