Home Online Manual
Back: Customization of the Emacs interface
Forward: Top 20 Emacs commands
FastBack: Interactive use
FastForward: Rings and orderings
Up: Emacs user interface
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

3.2.5 Editing SINGULAR input files with Emacs

Since SINGULAR's programming language is similar to C, you should use the Emacs C/C++-mode to edit SINGULAR input files and SINGULAR libraries. Among others, this Emacs mode provides automatic indentation, line-breaking and keyword highlighting.

When running ESingular, the C/C++-mode is automatically turned on whenever a file with the suffix .sing, or .lib is loaded.

For Emacs sessions which were not started by ESingular, you should add the following to your .emacs file:

;; turn on c++-mode for files ending in ".sing" and ".lib"
(setq auto-mode-alist (cons '("\\.sing\\'" . c++-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.lib\\'" .  c++-mode) auto-mode-alist))
;; turn-on fontification for c++-mode
(add-hook 'c++-mode-hook
         (function (lambda () (font-lock-mode 1))))
;; turn on aut-new line and hungry-delete
(add-hook 'c++-mode-hook
          (function (lambda () (c-toggle-auto-hungry-state 1))))
;; a handy function for customization
(defun customize-face-at-point ()
  "Customize face which point is at."
  (let ((face (get-text-property (point) 'face)))
    (if face
        (customize-face face)
      (message "No face defined at point"))))

Notice that you can change the default settings for source-code highlighting (colors, fonts, etc.) by customizing the respective faces using the Customize feature of Emacs. For doing this, you might find handy the above given function customize-face-at-point, which lets you customize the face of the current position of point (this function is automatically defined if you run ESingular).