Magik on Java with Emacs

Although GE finished support for Emacs as development tool for Magik, it's still possible to use it with Smallworld 5.0.

Basics

To use Emacs with Smallworld 5.0 you just have to set the SMALLWORLD_GIS variable to the correct value, like with previous versions (either before starting Emacs or with gis_version_selection).

When Starting a gis session with a gis_aliases entry, you should hit <f2> z and then type runalias <name-of-the-gis_aliases-entry>. Of course any other gis_aliases entry is possible and also using another gis_aliases file by the parameter -a <full-qualified-name-of-gis_aliases-file>. So the main point is, you have to replace the former gis by runalias.

This is an example of populating the gis-command-history in Igor-macs (Emacs23)

;; FCSI_SW_BIN = %SMALLWORLD_GIS%\bin\x86
;; FCSI_START_DIR = where the bat file originated from
;; the empty.bat file is exactly that an empty file called empty.bat. When starting the emacs, all the 
;; environments have already been set, no need to reset (or overwrite) them...
;; the gis_aliases file has the stanzas for the targets. In this case cambridge_db, cambridge_db_open,
;; and cambridge_db_open_no_auth
(set 'base_session (concat "[" (getenv "FCSI_START_DIR") "] " (getenv "FCSI_SW_BIN") "\\runalias.exe -a " 
                (getenv "FCSI_START_DIR") "gis_aliases -e " 
                (getenv "FCSI_SW_ROOT") "\\config\\empty.bat "))
(set 'c (concat base_session "cambridge_db"))
(set 'd (concat base_session "cambridge_db_open"))
(set 'e (concat base_session "cambridge_db_open_no_auth"))

;; example pointing to core gis_aliases file
(set 'b (concat "[" (getenv "FCSI_START_DIR") "] " (getenv "FCSI_SW_BIN") "\\runalias.exe -a " 
                (getenv "SMALLWORLD_GIS") "\\config\\gis_aliases -e " 
                (getenv "FCSI_SW_ROOT") "\\config\\empty.bat swaf_mega"))

(setq gis-command-history '())
(add-to-list 'gis-command-history b)
(add-to-list 'gis-command-history c)
(add-to-list 'gis-command-history e)
(add-to-list 'gis-command-history d)

Minor incompatibility (fixed)

If you use Emacs without any adapting with the gis-mode of former versions, you'll be faced to a minor quirk. Maybe Igor can add functionality to Emacs to better support SWV????

no-op commands by overfluent $-lines

In gis-mode Emacs automatically adds a line containing a single dollar ($) after a complete command. As Magik on Java itself starts compiling as soon as it is faced with a complete command, there is no need for the dollars anymore. So that line with the single dollar is compiled as another (no-op) line. So after completion of the command you'll see two lines with a prompt, and - as a consequence - the result of the previous command is already stored in the global !! instead of !.

FIX

The attached EL file comments out the insertion of the '$' when return is hit. It appears to work just fine with Alt-P and '!' functionality now. To use, place emacs_5_base.el in a directory that is found in EMACSLOADPATH environment. Then add the following to a EL file that is loaded during start.

(require 'emacs_5_base)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License