summaryrefslogtreecommitdiff
path: root/elpa/smartparens-20200324.2147/smartparens-crystal.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/smartparens-20200324.2147/smartparens-crystal.el')
-rw-r--r--elpa/smartparens-20200324.2147/smartparens-crystal.el261
1 files changed, 0 insertions, 261 deletions
diff --git a/elpa/smartparens-20200324.2147/smartparens-crystal.el b/elpa/smartparens-20200324.2147/smartparens-crystal.el
deleted file mode 100644
index 574ac8e..0000000
--- a/elpa/smartparens-20200324.2147/smartparens-crystal.el
+++ /dev/null
@@ -1,261 +0,0 @@
-;;; smartparens-crystal.el --- Additional configuration for Crystal based modes. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2018 Brantou
-
-;; Author: Brantou <brantou89@gmail.com>
-;; Maintainer: Brantou <brantou89@gmail.com>
-;; Created: 5 March 2018
-;; Keywords: abbrev convenience editing
-;; URL: https://github.com/Fuco1/smartparens
-
-;; Based on smartparens-ruby.el
-
-;; This file is not part of GNU Emacs.
-
-;;; License:
-
-;; This file is part of Smartparens.
-
-;; Smartparens 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 of the License, or
-;; (at your option) any later version.
-
-;; Smartparens 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 Smartparens. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This file provides some additional configuration for Crystal based
-;; modes. To use it, simply add:
-;;
-;; (require 'smartparens-crystal)
-;;
-;; into your configuration. You can use this in conjunction with the
-;; default config or your own configuration.
-;;
-
-;; If you have good ideas about what should be added please file an
-;; issue on the github tracker.
-
-;; For more info, see github readme at
-;; https://github.com/Fuco1/smartparens
-
-;;; Code:
-
-(require 'smartparens)
-(require 'smartparens-ruby)
-
-(declare-function crystal-forward-sexp "crystal")
-(declare-function crystal-backward-sexp "crystal")
-
-(defun sp-crystal-forward-sexp ()
- "Wrapper for `crystal-forward-sexp'."
- (interactive)
- (crystal-forward-sexp))
-
-(defun sp-crystal-backward-sexp ()
- "Wrapper for `crystal-backward-sexp'."
- (interactive)
- (crystal-backward-sexp))
-
-(defun sp-crystal-inline-p (id)
- "Test if ID is inline."
- (save-excursion
- (when (looking-back id nil)
- (backward-word))
- (when (not (or (looking-back "^[[:blank:]]*" nil)
- (looking-back "= *" nil)))
- (or (save-excursion
- (forward-symbol -1)
- (forward-symbol 1)
- (looking-at-p (concat " *" id)))
- (save-excursion
- ;; This does not seem to make emacs snapshot happy
- (ignore-errors
- (sp-crystal-backward-sexp)
- (sp-crystal-forward-sexp)
- (looking-at-p (concat "[^[:blank:]]* *" id))))))))
-
-(defun sp-crystal-skip-inline-match-p (ms _mb _me)
- "If non-nil, skip inline match.
-MS, MB, ME."
- (or (sp-ruby-method-p ms)
- (sp-crystal-inline-p ms)))
-
-(defun sp-crystal-in-string-word-or-inline-p (id action context)
- "Test if point is inside string, word or inline.
-ID, ACTION, CONTEXT."
- (or (sp-ruby-in-string-or-word-p id action context)
- (and (looking-back id nil)
- (sp-crystal-inline-p id))))
-
-(add-to-list 'sp-navigate-skip-match
- '((crystal-mode) . sp--ruby-skip-match))
-
-(dolist (mode '(crystal-mode))
- (add-to-list 'sp-sexp-suffix `(,mode syntax "")))
-
-(sp-with-modes 'crystal-mode
- (sp-local-pair "do" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-block-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "{" "}"
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-post-handler)
- :suffix "")
-
- (sp-local-pair "begin" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-block-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "def" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "class" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "struct" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "lib" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "fun" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "enum" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "union" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "module" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "macro" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "case" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-ruby-in-string-or-word-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-ruby-skip-method-p
- :suffix "")
-
- (sp-local-pair "if" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-crystal-in-string-word-or-inline-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-crystal-skip-inline-match-p
- :suffix "")
-
- (sp-local-pair "unless" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-crystal-in-string-word-or-inline-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-crystal-skip-inline-match-p
- :suffix "")
-
- (sp-local-pair "while" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-crystal-in-string-word-or-inline-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-crystal-skip-inline-match-p
- :suffix "")
-
- (sp-local-pair "until" "end"
- :when '(("SPC" "RET" "<evil-ret>"))
- :unless '(sp-crystal-in-string-word-or-inline-p sp-in-comment-p)
- :actions '(insert navigate)
- :pre-handlers '(sp-ruby-pre-handler)
- :post-handlers '(sp-ruby-def-post-handler)
- :skip-match 'sp-crystal-skip-inline-match-p
- :suffix "")
-
- (sp-local-pair "|" "|"
- :when '(sp-ruby-should-insert-pipe-close)
- :pre-handlers '(sp-ruby-pre-pipe-handler)
- :suffix ""))
-
-(provide 'smartparens-crystal)
-
-;;; smartparens-crystal.el ends here
Copyright 2019--2024 Marius PETER