From 570330ca741cdfcd7f2d881b3b460d0ee7b5a591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20Roch=C3=A9?= Date: Thu, 24 May 2018 09:06:43 +0000 Subject: [PATCH] Add keyword pairs for ocaml --- smartparens-ml.el | 55 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/smartparens-ml.el b/smartparens-ml.el index feec3c5e..d1332997 100644 --- a/smartparens-ml.el +++ b/smartparens-ml.el @@ -5,6 +5,7 @@ ;; Author: Ta Quang Trung ;; Matus Goljer +;; Louis Roché ;; Maintainer: Matus Goljer ;; Created: 14 July 2016 ;; Keywords: smartparens, ML, ocaml, reason @@ -50,8 +51,58 @@ (require 'smartparens) ;;; Local pairs for ML-family languages -(sp-with-modes '(tuareg-mode fsharp-mode) (sp-local-pair "(*" "*)" )) -(sp-with-modes '(reason-mode) (sp-local-pair "/*" "*/" )) + +(sp-with-modes '(fsharp-mode) + (sp-local-pair "(*" "*)" )) + +;; all the keywords pairs are expanded only if followed by "SPC" +;; event. This will reduce false positives like 'dIFficult' to +;; trigger. +(sp-with-modes '(tuareg-mode) + ;; Disable ` because it is used in polymorphic variants + (sp-local-pair "`" nil :actions nil) + (sp-local-pair "(*" "*)" ) + (sp-local-pair "if" "then" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "while" "done" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "for" "done" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "begin" "end" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "struct" "end" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "sig" "end" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "object" "end" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "match" "with" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair)) + (sp-local-pair "try" "with" + :when '(("SPC")) + :unless '(sp-in-comment-p sp-in-string-p) + :post-handlers '(sp-latex-insert-spaces-inside-pair))) + +(sp-with-modes '(reason-mode) + ;; Disable ` because it is used in polymorphic variants + (sp-local-pair "`" nil :actions nil) + (sp-local-pair "/*" "*/" )) (provide 'smartparens-ml) ;;; smartparens-ml.el ends here