Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Using Atom as a Perl 6 IDE

So you’ve started to write some code in Perl 6. You may now be asking yourself, "How can I make this programming experience more awesome?"

To that question, please see these enhancements to the Atom text editor.

When installing with apm, the install may not take effect until Atom is restarted. Installing from the Install menu should take effect in most cases, except for certain packages which actually do need Atom to be restarted.

Syntax highlighter

What does this do?

This will properly highlight various elements of your perl6 code.


Run apm install language-perl6 in terminal or install language-perl6 through the package manager by pressing Ctrl + , and then choosing the Install menu on the left side and searching. Note that you should install the plugin that is maintained by the user perl6.

How do I use this?

This language grammar should automatically highlight .p6, .pod6, .pm6 and .nqp files. The language grammar will also detect files whose first line includes use v6, a shebang whose last term before any whitespace is perl6 , =begin pod, or my class.

If you need to manually set it, click on the on the bottom right corner of Atom and select Perl 6 FE:

Bottom right corner of atom


If you are having issues, the language-perl package is probably taking precedence. To remedy this you can:

  • Click the language name in the status-bar (Ctrl+Shift+L) and select Perl 6 FE

  • If you want to permanently change the preferences for a file type, add the following to your config.cson (EditConfig):

    customFileTypes: [
      'source.perl6fe': [
        # Add pm and t if you want to auto choose this highlighter for .pm or .t
        # files.

Please be aware that if you do not include the t extension above, your t files will be highlighted with the language-perl highlighter unless the first line contains use v6;.

If you do not ever expect to write Perl 5 code, then you may as well make these changes.

Perl 6 code execution

What does this do?

This will allow you to execute portions of your code that you highlight with your cursor as if it was run on the command line.


Run apm install script and install the syntax highlighter language-perl6 if you have not already done so.

How do I use this?

Make sure you have set the grammar type to Perl 6 FE

Bottom right corner of atom

Then you can press Ctrl + Shift + B on Linux. For other operating systems see the packages readme page.

If no text is selected it will run the file direction if the file has been saved and you have made no modifications. If you have made changes since it was last saved, it will run using the current text in the screen buffer. If you have text selected it will evaluate only the selection.

Indexing of classes, routines and operators

Link to package on for nav-panel-plus package You can get a right panel which will show all

Routines, Classes and Operators for Perl 6 code.


What does this do?

This will display a sidebar on the right side of the editor that lists all of the subroutines, classes, and operators in the current file. Clicking on any of these things will take you to where they are defined.


Run apm install nav-panel-plus or install it from the package search in Atom by pressing Ctrl + , then clicking Install and searching for nav-panel-plus

How do I use this?

Put the .nav-marker-rules in the root of a project you are working on. In your terminal go into that folder and open Atom with atom . or run atom ~/path/to/your/project. You can also go to the File menus and then choose Open Folder…​


Eventually we will have instructions on how to make it specific to perl6 filetypes and make it apply globally,

Update: The PR was reverted, and a new one needs to be submitted which edits lib/.ctags (see PR link).

We have a Pull Request that adds this functionality into the package:

But for now you can use .nav-marker-rules as the instructions show. Any files opened in that project’s window will also take on the config, even if they’re in another folder, as long as they’re still part of the same Project context in Atom.


For full details on how EditorConfig works, see

What does this do?

Editor agnostic per project/filetype management of indentation level, line ending and indentation type and more.

They have packages for almost all popular editors, including vim, Emacs, TextMate and so many more. Github also respects your EditorConfig. For example, if you use tabs for indentation, you can set the indent_size = 4, when people view your project they will see it with an indentation level of 4 in your project, instead of showing 8 indentation levels.

Github also will respect EditorConfig when in the editing mode, if you are editing a file on Github itself.

How do I use this?

You can install the plugin using apm install editorconfig in terminal or through the menus.

Place this template .editorconfig file in the root of your project or home folder.

EditorConfig can work recursively, so you can have the EditorConfig file, which is named .editorconfig in the base of your project, or you could have one in your home folder. The site describes most of the options and provides a very good example. Also check out the the package’s page for more info about the Atom package itself.

One key thing to remember is when EditorConfig sees root = true then it stops any further looking through the directorys.

Filetype Based Icons for Tabs

You can show different icons, similar to how many browsers set each tab to have an icon on each tab. This will be determined based on the filetype. Perl 6 documents will be distinguishable by a butterfly.

What does this do?

This is how it makes your tabs look: file-icons package screenshot of tab icons


Run apm install file-icons or install it from the package search in Atom by pressing Ctrl + , then clicking Install and searching for file-icons


Packages and Plugins with Detailed Explanation on Configuring Atom as a Raku IDE




No releases published


No packages published