summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinit.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/init.el b/init.el
index a41b2b9..76e5fea 100755
--- a/init.el
+++ b/init.el
@@ -424,3 +424,28 @@
(pcache-put repo key value 300)
value))))
(advice-add 'vagrant-tramp--all-boxes :around #'dakkar-cache-vagrant)
+
+(defun dakkar/perl-indent (beg end)
+ (interactive "r")
+ (if (use-region-p)
+ (cond ((get-text-property beg 'in-pod)
+ (let* (
+ (text (buffer-substring beg end))
+ (indented-text (with-temp-buffer
+ (insert text)
+ (cperl-mode)
+ (cperl-indent-region 0 (buffer-size))
+ (indent-rigidly 0 (buffer-size) cperl-indent-level)
+ (buffer-string))))
+ (delete-region beg end)
+ (insert indented-text)))
+ (t (cperl-indent-region beg end)))))
+
+(defun dakkar/setup-cperl-mode ()
+ (setq indent-region-function 'dakkar/perl-indent)
+ (substitute-key-definition
+ 'indent-region 'dakkar/perl-indent
+ cperl-mode-map global-map))
+
+(add-hook 'cperl-mode-hook 'dakkar/setup-cperl-mode)
+