From 859f4ab05eff9b00b3fd460b69010a03e010130e Mon Sep 17 00:00:00 2001 From: William Xu Date: Mon, 25 Oct 2021 12:16:59 +0200 Subject: [PATCH] Add config for haskell and update config for org - Add missing 'require' in electric-spacing-emacs-init.el file --- electric-spacing-emacs-lisp-mode.el | 4 +-- electric-spacing-haskell-mode.el | 44 +++++++++++++++++++++++++++++ electric-spacing-init.el | 3 ++ electric-spacing-org-mode.el | 10 +++++++ 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 electric-spacing-haskell-mode.el diff --git a/electric-spacing-emacs-lisp-mode.el b/electric-spacing-emacs-lisp-mode.el index 1b4e9f2..48de211 100644 --- a/electric-spacing-emacs-lisp-mode.el +++ b/electric-spacing-emacs-lisp-mode.el @@ -30,5 +30,5 @@ (delete-horizontal-space) (electric-spacing-insert-1 ":" 'before)) -(provide 'electric-spacing-text-mode) -;;; electric-spacing-text-mode.el ends here +(provide 'electric-spacing-emacs-lisp-mode) +;;; electric-spacing-emacs-lisp-mode.el ends here diff --git a/electric-spacing-haskell-mode.el b/electric-spacing-haskell-mode.el new file mode 100644 index 0000000..361e60b --- /dev/null +++ b/electric-spacing-haskell-mode.el @@ -0,0 +1,44 @@ +;;; electric-spacing-text-mode.el--- Text mode tunings + +;; Copyright (C) 2021 Free Software Foundation, Inc. + +;; Author: William Xu + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with EMMS; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'electric-spacing) + +;; (defun electric-spacing-haskell-mode-: () +;; (electric-spacing-insert ":")) + +;; (if (eq 32 (char-after (line-beginning-position))) +;; (electric-spacing-insert ":" 'middle) +;; ;; define function signature +;; (electric-spacing-insert ":"))) + +(defun electric-spacing-haskell-mode-. () + (if (save-excursion (goto-char (line-beginning-position)) + (looking-at "import")) + (electric-spacing-insert "." 'middle) + (electric-spacing-insert "."))) + +(defun electric-spacing-haskell-mode-- () + (electric-spacing-insert "-")) + +(provide 'electric-spacing-haskell-mode) +;;; electric-spacing-haskell-mode.el ends here diff --git a/electric-spacing-init.el b/electric-spacing-init.el index 710e93f..4c56869 100644 --- a/electric-spacing-init.el +++ b/electric-spacing-init.el @@ -3,6 +3,9 @@ (require 'electric-spacing-cc-mode) (require 'electric-spacing-python-mode) (require 'electric-spacing-rust-mode) +(require 'electric-spacing-org-mode) +(require 'electric-spacing-haskell-mode) +(require 'electric-spacing-emacs-lisp-mode) (require 'electric-spacing-text-mode) (provide 'electric-spacing-init) diff --git a/electric-spacing-org-mode.el b/electric-spacing-org-mode.el index 97807e5..6e93fae 100644 --- a/electric-spacing-org-mode.el +++ b/electric-spacing-org-mode.el @@ -36,5 +36,15 @@ (defun electric-spacing-org-mode-/ () (electric-spacing-org-mode-inline-marker "/")) +(defun electric-spacing-org-mode-+ () + (interactive) + (if (looking-back "#") + (electric-spacing-insert "+" 'middle) + (electric-spacing-insert "+"))) + +(with-eval-after-load 'org + (define-key org-mode-map (kbd "+") 'electric-spacing-org-mode-+) + ) + (provide 'electric-spacing-org-mode) ;;; electric-spacing-org-mode.el ends here