История изменений
Исправление KernelPanic, (текущая версия) :
Уровня IDE ты в Emacs для перла не добьешься. Но можешь максимально к этому приблизиться (в некоторых местах фичи будут круче чем в IDE) с помощью плагинов: https://www.emacswiki.org/emacs/PerlLanguage
Я сам использую штатный режим для перла: cperl-mode (https://www.emacswiki.org/emacs/CPerlMode). Мне его хватает с головой: подсветка синтаксиса, автоиндент региона и файла целиком, проверка на синтаксические ошибки (я думаю, под капотом там perl -c) + автоматическая проверка на правила PBP (подхватывает конфиг .perlcritic в домашней директории), автозакрытие скобочек, автосниппеты для условных операторов и циклов.
Но это далеко не все возможности мода cperl. С другуми настройками мне лень было возиться.
Кусок моего emacs-конфига, отвечающего за Perl5:
;;
;; Perl
;;
(add-to-list 'auto-mode-alist '("\\.\\([pP][Llm]\\|al\\)\\'" . cperl-mode)) ;; Auto associate with cperl-mode
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))
(setq cperl-invalid-face nil) ;; disable errors
(setq cperl-electric-keywords t) ;; expands for keywords such as foreach, while, etc...
;; Autocomplete pairs
(mapc
(lambda (pair)
(if (eq (cdr pair) 'perl-mode)
(setcdr pair 'cperl-mode)))
(append auto-mode-alist interpreter-mode-alist))
;; Indentation
(setq cperl-indent-level 4
cperl-close-paren-offset -4
cperl-continued-statement-offset 4
cperl-indent-parens-as-block t
cperl-tab-always-indent t)
(add-hook 'cperl-mode-hook
(lambda()
(setq tab-width 4)
(setq indent-tabs-mode nil)
))
;; Finding perl modules paths
(defun find-perl-module (module-name)
(interactive "sPerl module name: ")
(let ((path (perl-module-path module-name)))
(if path
(find-file path)
(error "Module '%s' not found" module-name))))
Исправление KernelPanic, :
Уровня IDE ты Emacs для перла не добьешься. Но можешь максимально к этому приблизиться (в некоторых местах фичи будут круче чем в IDE) с помощью плагинов: https://www.emacswiki.org/emacs/PerlLanguage
Я сам использую штатный режим для перла: cperl-mode (https://www.emacswiki.org/emacs/CPerlMode). Мне его хватает с головой: подсветка синтаксиса, автоиндент региона и файла целиком, проверка на синтаксические ошибки (я думаю, под капотом там perl -c) + автоматическая проверка на правила PBP (подхватывает конфиг .perlcritic в домашней директории), автозакрытие скобочек, автосниппеты для условных операторов и циклов.
Но это далеко не все возможности мода cperl. С другуми настройками мне лень было возиться.
Кусок моего emacs-конфига, отвечающего за Perl5:
;;
;; Perl
;;
(add-to-list 'auto-mode-alist '("\\.\\([pP][Llm]\\|al\\)\\'" . cperl-mode)) ;; Auto associate with cperl-mode
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))
(setq cperl-invalid-face nil) ;; disable errors
(setq cperl-electric-keywords t) ;; expands for keywords such as foreach, while, etc...
;; Autocomplete pairs
(mapc
(lambda (pair)
(if (eq (cdr pair) 'perl-mode)
(setcdr pair 'cperl-mode)))
(append auto-mode-alist interpreter-mode-alist))
;; Indentation
(setq cperl-indent-level 4
cperl-close-paren-offset -4
cperl-continued-statement-offset 4
cperl-indent-parens-as-block t
cperl-tab-always-indent t)
(add-hook 'cperl-mode-hook
(lambda()
(setq tab-width 4)
(setq indent-tabs-mode nil)
))
;; Finding perl modules paths
(defun find-perl-module (module-name)
(interactive "sPerl module name: ")
(let ((path (perl-module-path module-name)))
(if path
(find-file path)
(error "Module '%s' not found" module-name))))
Исходная версия KernelPanic, :
Уровня IDE ты Emacs для перла не добъешься. Но можешь максимально к этому приблизиться (в некоторых местах фичи будут круче чем в IDE) с помощью плагинов: https://www.emacswiki.org/emacs/PerlLanguage
Я сам использую штатный режим для перла: cperl-mode (https://www.emacswiki.org/emacs/CPerlMode). Мне его хватает с головой: подсветка синтаксиса, автоиндент региона и файла целиком, проверка на синтаксические ошибки (я думаю, под капотом там perl -c) + автоматическая проверка на правила PBP (подхватывает конфиг .perlcritic в домашней директории), автозакрытие скобочек, автосниппеты для условных операторов и циклов.
Но это далеко не все возможности мода cperl. С другуми настройками мне лень было возиться.
Кусок моего emacs-конфига, отвечающего за Perl5:
;;
;; Perl
;;
(add-to-list 'auto-mode-alist '("\\.\\([pP][Llm]\\|al\\)\\'" . cperl-mode)) ;; Auto associate with cperl-mode
(add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("perl5" . cperl-mode))
(add-to-list 'interpreter-mode-alist '("miniperl" . cperl-mode))
(setq cperl-invalid-face nil) ;; disable errors
(setq cperl-electric-keywords t) ;; expands for keywords such as foreach, while, etc...
;; Autocomplete pairs
(mapc
(lambda (pair)
(if (eq (cdr pair) 'perl-mode)
(setcdr pair 'cperl-mode)))
(append auto-mode-alist interpreter-mode-alist))
;; Indentation
(setq cperl-indent-level 4
cperl-close-paren-offset -4
cperl-continued-statement-offset 4
cperl-indent-parens-as-block t
cperl-tab-always-indent t)
(add-hook 'cperl-mode-hook
(lambda()
(setq tab-width 4)
(setq indent-tabs-mode nil)
))
;; Finding perl modules paths
(defun find-perl-module (module-name)
(interactive "sPerl module name: ")
(let ((path (perl-module-path module-name)))
(if path
(find-file path)
(error "Module '%s' not found" module-name))))