https://github.com/aadanen updated 
https://github.com/llvm/llvm-project/pull/150348

>From 4e24cb20efa22e364d41026ae40aec470ff786aa Mon Sep 17 00:00:00 2001
From: Aaron Danen <aaron.da...@gmail.com>
Date: Wed, 23 Jul 2025 18:01:14 -0700
Subject: [PATCH 1/3] added undo to docs in same format as %quit

---
 clang/docs/ClangRepl.rst | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/clang/docs/ClangRepl.rst b/clang/docs/ClangRepl.rst
index 5399036c123fb..9ef82df28ee43 100644
--- a/clang/docs/ClangRepl.rst
+++ b/clang/docs/ClangRepl.rst
@@ -197,6 +197,13 @@ Comments:
    clang-repl> // Comments in Clang-Repl
    clang-repl> /* Comments in Clang-Repl */
 
+Undo:
+=====
+
+.. code-block:: text
+
+   clang-repl>%undo
+
 
 Closure or Termination:
 =======================

>From 752e4906b633b1343a52338027fdc0a6e36d6288 Mon Sep 17 00:00:00 2001
From: Aaron Danen <aaron.da...@gmail.com>
Date: Sat, 26 Jul 2025 10:01:30 -0700
Subject: [PATCH 2/3] implemented %help

---
 clang/tools/clang-repl/ClangRepl.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/clang/tools/clang-repl/ClangRepl.cpp 
b/clang/tools/clang-repl/ClangRepl.cpp
index 54b27782d3db3..c347b45306031 100644
--- a/clang/tools/clang-repl/ClangRepl.cpp
+++ b/clang/tools/clang-repl/ClangRepl.cpp
@@ -185,7 +185,7 @@ struct ReplListCompleter {
   clang::Interpreter &MainInterp;
   ReplListCompleter(clang::IncrementalCompilerBuilder &CB,
                     clang::Interpreter &Interp)
-      : CB(CB), MainInterp(Interp){};
+      : CB(CB), MainInterp(Interp) {};
 
   std::vector<llvm::LineEditor::Completion> operator()(llvm::StringRef Buffer,
                                                        size_t Pos) const;
@@ -370,6 +370,8 @@ int main(int argc, const char **argv) {
       if (Input == R"(%undo)") {
         if (auto Err = Interp->Undo())
           llvm::logAllUnhandledErrors(std::move(Err), llvm::errs(), "error: ");
+      } else if (Input == R"(%help)") {
+        printf("clang-repl commands: { %%undo, %%quit }\n");
       } else if (Input.rfind("%lib ", 0) == 0) {
         if (auto Err = Interp->LoadDynamicLibrary(Input.data() + 5))
           llvm::logAllUnhandledErrors(std::move(Err), llvm::errs(), "error: ");

>From 99e2421447d730e40513ed799ece85c73b6987ce Mon Sep 17 00:00:00 2001
From: Aaron Danen <aaron.da...@gmail.com>
Date: Sat, 26 Jul 2025 10:53:39 -0700
Subject: [PATCH 3/3] blurb about %help on startup. better %help format

---
 clang/tools/clang-repl/ClangRepl.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/clang/tools/clang-repl/ClangRepl.cpp 
b/clang/tools/clang-repl/ClangRepl.cpp
index c347b45306031..540253e377d98 100644
--- a/clang/tools/clang-repl/ClangRepl.cpp
+++ b/clang/tools/clang-repl/ClangRepl.cpp
@@ -347,7 +347,11 @@ int main(int argc, const char **argv) {
     }
   }
 
+  const char *percent_commands = "%help\tlist clang-repl %commands\n"
+                                 "%undo\tundo the previous input\n"
+                                 "%quit\texit clang-repl\n";
   if (OptInputs.empty()) {
+    printf("%%help for list of clang-repl commands\n");
     llvm::LineEditor LE("clang-repl");
     std::string Input;
     LE.setListCompleter(ReplListCompleter(CB, *Interp));
@@ -371,7 +375,7 @@ int main(int argc, const char **argv) {
         if (auto Err = Interp->Undo())
           llvm::logAllUnhandledErrors(std::move(Err), llvm::errs(), "error: ");
       } else if (Input == R"(%help)") {
-        printf("clang-repl commands: { %%undo, %%quit }\n");
+        printf("%s\n", percent_commands);
       } else if (Input.rfind("%lib ", 0) == 0) {
         if (auto Err = Interp->LoadDynamicLibrary(Input.data() + 5))
           llvm::logAllUnhandledErrors(std::move(Err), llvm::errs(), "error: ");

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to