IDE directives

From Lazarus wiki
Revision as of 18:14, 16 December 2013 by HowardPC (talk | contribs) (Other IDE Directives)


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:


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);


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 ...}

See Configure Build File.

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}

Reading / finding IDE directives

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

  • FindNextIDEDirective
  • CodeToolBoss.GetIDEDirectives