[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ruby-end 0d2634e769 41/91: Merge branch 'expand-on-ret'
From: |
ELPA Syncer |
Subject: |
[elpa] externals/ruby-end 0d2634e769 41/91: Merge branch 'expand-on-ret' |
Date: |
Wed, 25 Jan 2023 19:58:27 -0500 (EST) |
branch: externals/ruby-end
commit 0d2634e76985699bad7ccec0d30d6383553dd5db
Merge: 5c6261a267 91f3c3fc6e
Author: Johan Andersson <johan.rejeep@gmail.com>
Commit: Johan Andersson <johan.rejeep@gmail.com>
Merge branch 'expand-on-ret'
---
features/ruby-end.feature | 19 +++++++++++++++
features/step-definitions/ruby-end-steps.el | 4 ++++
features/support/env.el | 3 ++-
ruby-end.el | 36 +++++++++++++++++++++++------
4 files changed, 54 insertions(+), 8 deletions(-)
diff --git a/features/ruby-end.feature b/features/ruby-end.feature
index a93933e03e..5360111434 100644
--- a/features/ruby-end.feature
+++ b/features/ruby-end.feature
@@ -162,3 +162,22 @@ Feature: Insert end
end
"""
+ Scenario: Expand on return
+ When I type "Proc.new do"
+ And I press "RET"
+ Then I should see:
+ """
+ Proc.new do
+
+ end
+ """
+
+ Scenario: Do not expand on return when disabled
+ Given I disable expand on return
+ When I type "Proc.new do"
+ And I press "RET"
+ Then I should see:
+ """
+ Proc.new do
+
+ """
diff --git a/features/step-definitions/ruby-end-steps.el
b/features/step-definitions/ruby-end-steps.el
index 74ae3a1918..ae9ab7fdc8 100644
--- a/features/step-definitions/ruby-end-steps.el
+++ b/features/step-definitions/ruby-end-steps.el
@@ -41,3 +41,7 @@
(Given "^insert newline is turned off$"
(lambda ()
(setq ruby-end-insert-newline nil)))
+
+(Given "I disable expand on return"
+ (lambda ()
+ (setq ruby-end-expand-on-ret nil)))
diff --git a/features/support/env.el b/features/support/env.el
index 017d6f8f19..636e6eff37 100644
--- a/features/support/env.el
+++ b/features/support/env.el
@@ -9,7 +9,8 @@
(add-to-list 'load-path (expand-file-name "emacs-lisp" (expand-file-name
"lisp" (expand-file-name "ert" ruby-end-util-path))))
(Before
- (setq ruby-end-insert-newline t))
+ (setq ruby-end-insert-newline t)
+ (setq ruby-end-expand-on-ret t))
(require 'ruby-end)
(require 'espuds)
diff --git a/ruby-end.el b/ruby-end.el
index 7c6a4543f6..dd66f83780 100644
--- a/ruby-end.el
+++ b/ruby-end.el
@@ -48,13 +48,21 @@
(require 'ruby-mode)
-(defvar ruby-end-expand-key "SPC"
+(defvar ruby-end-expand-spc-key "SPC"
"Space key name.")
+(defvar ruby-end-expand-ret-key "RET"
+ "Return key name.")
+
+(defvar ruby-end-expand-on-ret t
+ "Should return expand or not.")
+
(defvar ruby-end-mode-map
(let ((map (make-sparse-keymap))
- (key (read-kbd-macro ruby-end-expand-key)))
- (define-key map key 'ruby-end-space)
+ (spc (read-kbd-macro ruby-end-expand-spc-key))
+ (ret (read-kbd-macro ruby-end-expand-ret-key)))
+ (define-key map spc 'ruby-end-space)
+ (define-key map ret 'ruby-end-return)
map)
"Keymap for `ruby-end-mode'.")
@@ -97,10 +105,24 @@
(ruby-end-insert-end)
(insert " "))
(t
- (let ((ruby-end-mode nil))
- (call-interactively
- (key-binding
- (read-kbd-macro ruby-end-expand-key)))))))
+ (ruby-end-fallback ruby-end-expand-spc-key))))
+
+(defun ruby-end-return ()
+ "Called when RET-key is pressed."
+ (interactive)
+ (cond
+ ((and ruby-end-expand-on-ret (ruby-end-expand-p))
+ (ruby-end-insert-end)
+ (forward-line 1)
+ (indent-according-to-mode))
+ (t
+ (ruby-end-fallback ruby-end-expand-ret-key))))
+
+(defun ruby-end-fallback (key)
+ "Execute function that KEY was bound to before `ruby-end-mode'."
+ (let ((ruby-end-mode nil))
+ (execute-kbd-macro
+ (edmacro-parse-keys key))))
(defun ruby-end-insert-end ()
"Closes block by inserting end."
- [elpa] externals/ruby-end ab84e909b3 69/91: Override ruby-end-insert-newline to t if RET is pressed, (continued)
- [elpa] externals/ruby-end ab84e909b3 69/91: Override ruby-end-insert-newline to t if RET is pressed, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 71b183a274 68/91: Run Ecukes tests in no win mode., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 0bd59d9eef 67/91: Add ert.el for Emacs-23., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end d6bb876c4f 63/91: Use package-file instead of package., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 1b4700171d 73/91: Release v0.4.0., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 95fab5058f 70/91: Bump the version, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 7598edc655 75/91: Merge branch 'fix-autoload', ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end a136f75abb 84/91: Merge pull request #16 from tarsius/master, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end c56f65e9ae 78/91: Fix travis badge [skip ci], ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 61a740d02b 87/91: Fix the edmacro warning, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 0d2634e769 41/91: Merge branch 'expand-on-ret',
ELPA Syncer <=
- [elpa] externals/ruby-end 17a6b4eff0 55/91: Make sure we start ruby-end-mode in ruby-mode., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 19037b0c8c 59/91: Add new option, ruby-end-expand-only-for-last-commands, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 01ed4038da 66/91: Add gnu source., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 337ff42f60 72/91: Merge branch 'add_hook_for_enh_ruby_mode', ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end a3d309c8da 80/91: Use generic langauge on Travis, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 95544f5e9e 76/91: Update Travis config, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 6c7c8e5e21 37/91: Require ruby-mode., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 9ec6d1b7e5 54/91: Do not activate ruby-end-mode in features., ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end 5aba673f0e 85/91: ruby-end-code-at-point-p: Check syntax-ppss instead of text props, ELPA Syncer, 2023/01/25
- [elpa] externals/ruby-end ea453f5ac6 82/91: Use EVM Travis binaries, ELPA Syncer, 2023/01/25