-
Notifications
You must be signed in to change notification settings - Fork 2
/
iron-main.el
96 lines (70 loc) · 2.66 KB
/
iron-main.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
;;; -*- Mode: Emacs-Lisp; lexical-binding: t; -*-
;;; iron-main --- Facilities to handle "Iron" (IBM MVS or z/OS).
;;; iron-main.el
;;
;; See the file COPYING license and copyright information.
;;
;; Author: Marco Antoniotti <marcoxa [at] gmail.com>
;;
;; Created: December 5th, 2020.
;;
;; Version: 2023-06-02.1
;;
;; Keywords: languages, operating systems.
;;; Commentary:
;;
;; A set of minor and major modes to edit files and interact with
;; "Iron", i.e. IBM MVS or z/OS.
;;
;; This is the main file of the package which taked care of loading
;; all the other bits and pieces, minor and major modes necessary for
;; its functioning. E.g., see the major modes `jcl-mode' and
;; `hlasm-mode'.
;;
;; The code has been tested with MVS TK4- and MVS "Jay Moseley"
;; build, running on a Hercules (SDL/Hyperion 4.4.x and 4.5.x).
;; Useful links follow.
;;
;; Hercules: <http://www.hercules-390.eu/>
;; SDL/Hyperion: <https://github.com/SDL-Hercules-390>
;; TK4-: http://wotho.ethz.ch/tk4-/
;; Jay Moseley's site: http://www.jaymoseley.com/hercules/ (and
;; other useful things).
;;; Code:
;;;; IRON MAIN Mode Setup.
(defvar iron-main-path (file-name-directory (or load-file-name "."))
"The location the IRON MAIN library is loaded from.")
(defvar iron-main-path-tests
(expand-file-name "tests/" iron-main-path)
"The location of the IRON MAIN library \"tests\" folder.")
(defvar iron-main--do-recompile-dir nil
"Do we compile the `iron-main' folder?
Internal variable controlling whether the loading of the package
should cause the (re)compilation fo the folder.")
;; The order of the require and load calls is relevant.
(require 'cl-lib)
(require 'ruler-mode)
(require 'desktop)
(require 'widget)
(require 'wid-edit)
;; Mainframe interaction files.
(load (expand-file-name "iron-main-vars" iron-main-path))
(load (expand-file-name "iron-main-widgets" iron-main-path))
(load (expand-file-name "iron-main-ruler-function" iron-main-path))
(load (expand-file-name "iron-main-utils" iron-main-path))
(load (expand-file-name "iron-main-session" iron-main-path))
(load (expand-file-name "iron-main-panels" iron-main-path))
(load (expand-file-name "iron-main-hercules-cmds" iron-main-path))
(load (expand-file-name "iron-main-mode" iron-main-path))
;; Language mode files.
(load (expand-file-name "jcl-mode" iron-main-path))
(load (expand-file-name "jcl-poly-mode" iron-main-path))
;; (load (expand-file-name "asmibm-mode" iron-main-path))
(load (expand-file-name "hlasm-mode" iron-main-path))
(load (expand-file-name "pl1-mode" iron-main-path))
;;;; Epilogue
;;;; ========
(if iron-main--do-recompile-dir
(byte-recompile-directory iron-main-path 0))
(provide 'iron-main)
;;; iron-main.el ends here