Skip to content
Snippets Groups Projects
Commit d832f2ca authored by Stephen D's avatar Stephen D
Browse files

beginnings of emacs mode

parent fa3ca319
Branches master
No related tags found
No related merge requests found
(defvar lpp-mode-hook nil)
(defvar lpp-mode-map
(let ((map (make-keymap)))
(define-key map (kbd "C-\\") (lambda () (interactive) (insert "\\")))
(define-key map (kbd "\\") "λ")
map)
"Keymap for LPP major mode")
(defun lpp-indent-line ()) ; todo
(defconst lpp--token-syntax-types
'((
("#.*" . font-lock-comment-face)
("$\\w*" . font-lock-variable-name-face)
("λ\\w*" . font-lock-builtin-face)
)nil nil nil))
(defconst lpp--syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?\/ "<" table)
(modify-syntax-entry ?\n ">" table)
table)
"Syntax table for lpp-mode.")
;;;###autoload
(defgroup lpp nil
"Major mode for editing λ++ code."
:prefix 'lpp
:group 'languages)
;;;###autoload
(define-derived-mode lpp-mode prog-mode "lpp"
"Major mode for editing λ++ source code."
:syntax-table lpp--syntax-table
:group 'lpp
(setq-local font-lock-defaults lpp--token-syntax-types)
(use-local-map lpp-mode-map)
(set (make-local-variable 'indent-line-function) 'lpp-indent-line)
(run-hooks 'lpp-mode-hook))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.lpp\\'" . lpp-mode))
;;;###autoload
(add-to-list 'interpreter-mode-alist '("lpp" . lpp-mode))
(provide 'lpp-mode)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment