Feather Features

Feather provides intelligent code completion and improved syntax checking in your GML Code scripts, along with smart refactoring options.

This page lists the features Feather provides in the GML Code editor for scripts and object events. These features will only be available if Feather is enabled.

Hover Information

Hovering over a function, sprite, colour, or any other special value will show you its information. You can see some examples below.

Hovering over a function displays its manual description and lists all arguments.
Hovering over a sprite displays its first frame and other information.
Hovering over a colour displays its RGB and HSV values, along with a CSS hex code.

Asset Refactoring

If you rename an asset in your Asset Browser, Feather will automatically update all mentions of it in your project's code, so those references don't break. This can be enabled or disabled in the Feather Settings.

You can also rename an asset through the Code Editor. Place your text cursor on the asset reference, and press CTRL/CMD + SHIFT + R.

Enter a new name and hit "Apply". The asset itself, and all references to it in your project, will be renamed.

Quick Fixes

When you get an error or a warning in your code, place your text cursor on the reported line and press CTRL/CMD + Q to bring up the Quick Fixes menu. Alternatively, you can click on the  Feather icon in the gutter.

This menu shows you a quick fix if possible, and allows you to disable the rule for that line, or change its severity.

The example above shows a quick fix used for fixing an event where the surface target was not reset after being changed.

If you place your text cursor on a function header, you can open the Quick Fixes menu to generate JSDoc Script Comments for the function:

Find All References

Feather allows you to find all references to a variable throughout your project.

Place your text cursor on a variable, and hit F3. You will see a small Search bar at the top of your workspace:

Navigate to the previous or next reference by pressing the corresponding arrow, or close it.

This search is smart, so instead of simply searching for a text string, it looks for references of the selected variable from its declared scope. This means that two variables that have the same name but exist separately in two different objects, will not match.

List All References

Place your text cursor on a variable, and hit SHIFT + F3. This will open the Search Results window and display all references of the selected variable in a list.

In this example, the variable surf was selected.