From 55e9184754cd66944be83c2b5988b8b76b772ff1 Mon Sep 17 00:00:00 2001 From: t4ccer Date: Fri, 17 Nov 2023 03:09:33 -0700 Subject: [PATCH 1/3] Add simple Emacs mode Simple mode derived from Haskell mode to not write custom parsers in this rather early stage. Indentation is a bit janky but you can hit tab couple times to get what you mean. Syntax highlighting works just fine. --- editor/emacs/lambda-buffers-mode.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 editor/emacs/lambda-buffers-mode.el diff --git a/editor/emacs/lambda-buffers-mode.el b/editor/emacs/lambda-buffers-mode.el new file mode 100644 index 00000000..4bc61d0b --- /dev/null +++ b/editor/emacs/lambda-buffers-mode.el @@ -0,0 +1,16 @@ +;;; lambda-buffers-mode.el --- SUMMARY -*- lexical-binding: t -*- + +(require 'haskell-mode) + +(define-derived-mode lambda-buffers-mode haskell-mode "lambda-buffers" + "haskell-mode pretending to be lambda-buffers-mode" + (haskell-indent-mode) + (font-lock-add-keywords + nil + '(("\\<\\(record\\|sum\\|derive\\)\\>" . 'font-lock-keyword-face))) + (setq lsp-warn-no-matched-clients nil)) + +(add-to-list 'auto-mode-alist '("\\.lbf$" . lambda-buffers-mode)) + +(provide 'lambda-buffers-mode) +;;; lambda-buffers-mode.el ends here From 097fffda8379c00bc70fa7bb1b9980aba9602f62 Mon Sep 17 00:00:00 2001 From: t4ccer Date: Fri, 17 Nov 2023 03:42:05 -0700 Subject: [PATCH 2/3] Move Emacs support to extras --- {editor => extras/editor}/emacs/lambda-buffers-mode.el | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {editor => extras/editor}/emacs/lambda-buffers-mode.el (100%) diff --git a/editor/emacs/lambda-buffers-mode.el b/extras/editor/emacs/lambda-buffers-mode.el similarity index 100% rename from editor/emacs/lambda-buffers-mode.el rename to extras/editor/emacs/lambda-buffers-mode.el From 32801d1340db37935f270d3400ba4910a68a8e36 Mon Sep 17 00:00:00 2001 From: t4ccer Date: Fri, 17 Nov 2023 03:43:50 -0700 Subject: [PATCH 3/3] Add missing keywords to Emacs mode --- extras/editor/emacs/lambda-buffers-mode.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/editor/emacs/lambda-buffers-mode.el b/extras/editor/emacs/lambda-buffers-mode.el index 4bc61d0b..474ade42 100644 --- a/extras/editor/emacs/lambda-buffers-mode.el +++ b/extras/editor/emacs/lambda-buffers-mode.el @@ -7,7 +7,7 @@ (haskell-indent-mode) (font-lock-add-keywords nil - '(("\\<\\(record\\|sum\\|derive\\)\\>" . 'font-lock-keyword-face))) + '(("\\<\\(record\\|sum\\|derive\\|opaque\\|prod\\)\\>" . 'font-lock-keyword-face))) (setq lsp-warn-no-matched-clients nil)) (add-to-list 'auto-mode-alist '("\\.lbf$" . lambda-buffers-mode))