Skip to content

Commit 94cc482

Browse files
Rename mode "modulefile-mode" without "s", upon Xavier's request
Add colorization for specific Module variables, using "preprocessor" face
1 parent e9f37e2 commit 94cc482

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
;;; modulefiles-mode.el --- Major mode for Modules modulefiles editing -*- lexical-binding: t; -*-
1+
;;; modulefile-mode.el --- Major mode for Modules modulefile editing -*- lexical-binding: t; -*-
22

33
;; Author: Laurent Besson <[email protected]>
44
;; Maintainer: Laurent Besson <[email protected]>
55
;; Created: June 12, 2025
66
;; Version: 1.0
7-
;; Package-Requires: ((emacs "24")
8-
;; Keywords: Modules, modulefiles
7+
;; Tested with: ((emacs "24")
8+
;; Keywords: Modules, modulefile
99
;; URL: https://modules.readthedocs.io/en/latest/index.html
1010

1111
;; This file is not part of GNU Emacs.
@@ -25,27 +25,36 @@
2525

2626
;; Comments:
2727

28-
;; modulefiles-mode is a major mode for highlighting modufiles syntax
29-
;; it derives from tcl-mode as modulefiles is based on this language
30-
;; It adds colorizing for main modulefiles commands
28+
;; modulefile-mode is a major mode for highlighting modufiles syntax
29+
;; it derives from tcl-mode as modulefile is based on this language
30+
;; It adds colorizing for main modulefile commands
31+
32+
;; font-lock-keyword-face is used to colorize Modulefile specific commands
33+
;; font-lock-preprocessor-face is used to colorize Modulefile specific variables
34+
;; ;; these variables will not be highlighted the same way as regular Tcl variables
3135

3236
;; Installation
3337
;; Copy this file into your Emacs package search directory
3438
;; and add the folliwing lines to your .emacs startup file:
3539
;;
36-
;; (add-to-list 'magic-mode-alist '("#%Module" . modulefiles-mode))
37-
;; (autoload 'modulefiles-mode "modulefiles-mode"
38-
;; "Major mode for editing Modulefiles files" t)
40+
;; (add-to-list 'magic-mode-alist '("#%Module" . modulefile-mode))
41+
;; (autoload 'modulefile-mode "modulefile-mode"
42+
;; "Major mode for editing Modulefile files" t)
3943

40-
;; Modulefiles mode definition:
44+
;; Modulefile mode definition:
4145

42-
(define-derived-mode modulefiles-mode tcl-mode "Modulefiles"
43-
"Major mode for highlighting Modulefiles file type."
44-
(font-lock-add-keywords 'modulefiles-mode
46+
(define-derived-mode modulefile-mode tcl-mode "Modulefile"
47+
"Major mode for highlighting Modulefile file type."
48+
(font-lock-add-keywords 'modulefile-mode
4549
'(
4650
("\\<\\(add-property\\|always-load\\|append-path\\|complete\\|conflict\\|depends-on\\|family\\|getenv\\|getvariant\\|hide-modulefile\\|hide-version\\|is-avail\\|is-loaded\\|is-saved\\|is-used\\|lsb-release\\|module-whatis\\|module-alias\\|module-forbid\\|module-help\\|module-hide\\|module-info\\|module-tag\\|module-version\\|module-virtual\\|module-warn\\|modulepath-label\\|module\\|prepend-path\\|prereq-all\\|prereq-any\\|pushenv\\|prereq\\|remove-path\\reportError\\|reportWarning\\|require-fullname\\|set-alias\\|set-function\\|setenv\\|source-sh\\|uncomplete\\|unset-alias\\|uncomplete\\|unset-alias\\|unset-function\\|unetenv\\|variant\\|versioncmp\\|x-resource\\)\\>" . font-lock-keyword-face)
4751
)
4852
)
53+
(font-lock-add-keywords 'modulefile-mode
54+
'(
55+
("\\<\\(ModulesVersion\\|ModulesCurrentModulefile\\|ModuleToolVersion\\|ModuleVariant\\|ModuleTool\\)\\>" . font-lock-preprocessor-face)
56+
)
57+
)
4958
)
5059

51-
(provide 'modulefiles-mode)
60+
(provide 'modulefile-mode)

0 commit comments

Comments
 (0)