Step 144: add Emacs keybinding integration

This commit is contained in:
Bill
2026-02-09 18:06:50 -07:00
parent 568fa38f46
commit abd41217d3
8 changed files with 280 additions and 2 deletions

View File

@@ -54,6 +54,7 @@
#include "EmacsIntegration.h"
#include "EmacsPackageBrowser.h"
#include "EmacsFunctionDiscovery.h"
#include "EmacsKeybinding.h"
#include "ast/Serialization.h"
#include "ast/Generator.h"
#include "ast/Annotation.h"
@@ -185,6 +186,7 @@ struct EditorState {
EmacsPackageBrowserState emacsPackages;
EmacsFunctionIndex emacsFunctionIndex;
bool emacsFunctionIndexDirty = true;
EmacsKeybindingState emacsKeys;
struct LibraryIndexRequest {
std::string name;
std::string version;
@@ -1369,6 +1371,16 @@ struct EditorState {
}
}
bool handleEmacsKeyChord(const std::string& chord) {
if (layoutPreset != LayoutPreset::Emacs) return false;
return emacsHandleKeySequence(emacsKeys, emacs, chord, outputLog);
}
void refreshEmacsModeLine(double nowSeconds) {
if (layoutPreset != LayoutPreset::Emacs) return;
updateEmacsModeLine(emacsKeys, emacs, nowSeconds, outputLog);
}
std::string buildRunCommand(const std::string& path,
const std::string& language,
bool buildOnly) const {