# IDE directives

English (en) français (fr)

# Overview

IDE directives are similar to compiler directives: a special kind of comment placed in your source code. They are enclosed by curly brackets with an opening percentage sign. For example:

{%H-}

The compiler sees them simply as comments which it ignores. The IDE uses these directives to store source-specific information which is independent of project and session.

# Hide one hint, note or warning

To hide a single hint, note or warning you use the following IDE directive:

procedure DoSomething({%H-}NotUsed: char);
begin

end;

This will suppress the line in the Lazarus Messges window that otherwise would report

Hint: Parameter "NotUsed" not used


The compiler still issues the Hint, but the {%H-} IDE directive causes the IDE to filter the Hint out of the Messages view.

Note: You can right click on a hint in the message window and choose the context menu option "Hide message via directive" to insert the directive automatically.

This feature was introduced in Lazarus 0.9.29.

# File encoding

You can specify what encoding the IDE should use for a source file by adding a BOM or an encoding directive at the very start of a source file:

{%encoding CP1250}

See the unit lcl/lconvencoding.pas for all possible values.

# Run/Build file

• {%BuildCommand ...}
• {%BuildWorkingDir ...}
• {%BuildScan ...}
• {%RunCommand ...}
• {%RunWorkingDir ...}
• {%RunFlags ...}

# Other IDE Directives

• {%Region} Allows you to define your own Code Folding blocks, by putting this special comment into the code. You have to specify the end of the folded region with {%Endregion}
• {%MainUnit path/to/unit.pas} Used as first line in an include file to give codetools a hint where the unit file is. Any / and \ are converted to the current path delimiter.

# Reading / finding IDE directives

The codetools unit basiccodetools contains several functions for reading IDE directives:

• FindNextIDEDirective
• CodeToolBoss.GetIDEDirectives