Perl

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion Gogland DataGrip Rider Android Studio
01.02.2017
82 664

Camelcade plugin adds Perl5 support for IntelliJ IDEA and other JetBrains products.

Wiki | Bug Tracker | Twitter | Google Group | Sources

Donate to support Project

Download plugin

Recent change notes

Plugin moves to the IDEA-like versioning to make things more consistent. Also, future updates will be released for current version of JetBrains products only. Critical things may be backported to previous version, but current - 2.2 version is pretty stable for those, who don't want or need to upgrade.

Changes:

  • IDEA 2017.1 EAP compatibility
  • Multiple internal tools upgrades
  • Moved to Java 8
  • Lexer and parser deeply reworked and should be much faster:
    • Initial parsing and reparsing on typing should be much faster
    • Highlighting is now instant for unambiguous entities
    • %hash, &code and *glob can't be passed as first argument to the rightward call anymore without braces, except some perl functions. Please, use leftward calls instead (the one with parens) or disambiguate with %{varname} form. Plugin will treat identifier % identifier as mod operator.

      Ambiguous things like regexps without explicit m, hashes, globs and code-refs works in boundaries of common sense. If plugin parses it wrong - adjust your code to be less ambiguous. Feel free to post a bug-report if something is going wrong, but keep in mind that plugin's lexer and parser (unlike perl itself) processes sources without knowing anything about included files or defined subs. So it doesn't know if you've declared sub with list prototype for example.

    • Implemented support for post-deref syntax according to the perldoc
    • #@type annotation for variables. More information in our wiki.
    • Plugin now recognizes and highlights character classes in regular expressions.
    • Experimental regexp language injection is now available. This feature still in development and disabled by default. You may enable it via perl settings.
  • Class::Accessor functionality is unavailable in this version

Fixes:

  • Possible NPE on running the script if settings file been corrupted
  • Optimized parsing of multiple namespaces
  • Optimized variables resolving, made it 10 times faster
  • Optimized debugger pausing performance with many evals on the perl side, by @mbarbon.
  • Fixed bug when plugin messed with Go project dependencies
  • Fixed exception on code generation in 2017 EAP IDEs.