Hi Juergen, Elias and all,

Some time ago we have been discussing the idea to move help from
gnu-apl-mode in Emacs into the GNU APL itself.

Now since we have a help in GNU APL, I've implemented network command in
emacs_mode part of GNU APL which will send requested help as a list of
S-expressions ready to be parsed on a Emacs side. See patches and new
files attached (to be applied/added into the src/emacs_mode directory)

I've also implemented support for this command in emacs-mode,
corresponding pull-request is here:
https://github.com/lokedhs/gnu-apl-mode/pull/26

This combination has been tested locally. 
The changes are backwards-compatible. 

Attachment: HelpCommand.hh
Description: Binary data

Attachment: HelpCommand.cc
Description: Binary data

Index: Makefile.am
===================================================================
--- Makefile.am	(revision 1032)
+++ Makefile.am	(working copy)
@@ -28,7 +28,8 @@
 		UnixSocketListener.cc	UnixSocketListener.hh	\
 		util.cc			util.hh			\
 		VariablesCommand.cc	VariablesCommand.hh	\
-		VersionCommand.cc	VersionCommand.hh
+		VersionCommand.cc	VersionCommand.hh \
+		HelpCommand.cc HelpCommmand.hh
 
 .PHONY: git-pull
 git-pull:
Index: emacs.hh
===================================================================
--- emacs.hh	(revision 1032)
+++ emacs.hh	(working copy)
@@ -34,7 +34,7 @@
 
 void set_active( bool v );
 
-#define PROTOCOL_VERSION "1.5"
+#define PROTOCOL_VERSION "1.6"
 
 #define END_TAG "APL_NATIVE_END_TAG"
 #define NOTIFICATION_START_TAG "APL_NATIVE_NOTIFICATION_START"
Index: NetworkConnection.cc
===================================================================
--- NetworkConnection.cc	(revision 1032)
+++ NetworkConnection.cc	(working copy)
@@ -36,6 +36,7 @@
 #include "SystemFnCommand.hh"
 #include "SystemVariableCommand.hh"
 #include "SendCommand.hh"
+#include "HelpCommand.hh"
 
 #include <iostream>
 #include <sstream>
@@ -70,6 +71,7 @@
     add_command( commands, new SystemFnCommand( "systemcommands" ) );
     add_command( commands, new SystemVariableCommand( "systemvariables" ) );
     add_command( commands, new SendCommand( "sendcontent" ) );
+    add_command( commands, new HelpCommand( "help" ) );
 }
 
 NetworkConnection::~NetworkConnection()
-- 
Br,
/Alexey

Reply via email to