#+TITLE: Perl5 layer #+TAGS: general|layer|multi-paradigm|programming [[file:img/perl5.png]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#layer][Layer]] - [[#auto-completion-plsense][Auto-completion: PlSense]] - [[#key-bindings][Key bindings]] - [[#perldoc][Perldoc]] - [[#pod-and-here-doc][POD and HERE doc]] - [[#find-symbol][Find Symbol]] - [[#formatting-code][Formatting Code]] * Description This layer adds support for the Perl5 language. ** Features: - Syntactic and semantic checking using [[https://github.com/flycheck/flycheck][flycheck]] - Auto-completion using [[https://github.com/CeleritasCelery/company-plsense][company-plsense]] - Format code with =perltidy= - Jump to symbol definition - Interactive debug via [[https://github.com/realgud/realgud][realgud]] with [[http://search.cpan.org/~rocky/Devel-Trepan-0.73/lib/Devel/Trepan.pm][trepan.pl]] * Install ** Layer To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =perl5= to the existing =dotspacemacs-configuration-layers= list in this file. ** Auto-completion: PlSense =company-plsense= requires installation of the =plsense= server from [[https://github.com/aki2o/plsense#install][here]]. * Key bindings ** Perldoc Browse formatted perldocs. | Key binding | Description | |-------------+---------------------------------| | ~SPC m h h~ | view perldoc of symbol at point | | ~SPC m h d~ | view perldoc of any symbol | ** POD and HERE doc Select a POD or HERE doc. | Key binding | Description | |-------------+----------------------------------------| | ~SPC m v~ | select entire POD or HERE doc at point | ** Find Symbol Jump to symbol definition. | Key binding | Description | |-------------+-------------------------------------------| | ~SPC m g g~ | jump to symbol definition | | ~SPC m g G~ | jump to symbol definition in other window | ** Formatting Code | Key binding | Description | |-------------+-------------------------------| | ~SPC m = =~ | format current line or region | | ~SPC m = b~ | format current buffer | | ~SPC m = f~ | format current function |