Auto-completion feature suggests you possible continuations of typed words, when you press Ctrl+Space. Here's an example in PHP file:

Completion popup

There's also Parameters Hint feature. For example, in PHP file type "zip_entry_open(" and press Ctrl+Shift+Space shortcut: the hint appears near caret, and this hint changes while you type parameters.

Parameters hint

Intelligent HTML auto-completion

HTML lexer has its own special auto-complete behaviour. On typing tag name the popup displays list of tags:

HTML tags

On entering tag attribute the popup displays list of corresponding attributes:

Tag attributes

And on entering attribute value the list of possible values is shown:

Attribute values

Note: during showing of HTML tags list you may press Ctrl+Enter to insert current tag and close it with ">".

Intelligent CSS auto-completion

CSS ("Style sheets") lexer also has its own special auto-complete behaviour. Popup can suggest list of property names:

Property names

or list of property values:

Property values

CSS auto-complete works also inside HTML documents, on entering "style" attribute:

Style attribute

Misc features

The following miscellaneous auto-completion features are available. They can be enabled/disabled in the Options dialog, "Auto-complete" tab.

Files set

Auto-completion files are located in the subfolder "Data\autocomplete" of SynWrite installation folder. There are several formats of such files:

Common file format

Common auto-completion file format is ANSI text file, it contains list of lines in forms:

Type Id |Hint
Type Id (Param1; Param2; ...) |Hint
Type Id (Param1; Param2; ...): ResultType |Hint

Strings "Type" are shown in the 1st column of auto-completion popup, strings "Id" are shown in the 2nd column, and "Hint" - in the 3rd one. Parameters list inside brackets is used for Parameters Hint.
Both ";" and "," chars can be params delimiters. "|Hint" part is optional.
If "\" char is present in hint part, then it must be escaped: "\\".
If space is needed in id part, it must be written as "%20" (it's allowed for any char in range 0x20..0x2F).

First line in the file can be the "control" line: it specifies what chars are "word chars" for the used syntax: #chars ListOfChars
For example, if word chars are minus sign, dot, and # sign, the control line would be:

#chars .-#