You can send message SCI_AUTOCSHOW (int lenght_entered, string elements_of_list) elements are separated by a blank space " "
You should keep a control of input entered in editor to display the list sending this message when you want to show the autocomplete list.
In addition you can highlight words using SCI_SETKEYWORDS (int color_0_to_8, string words) separated by blank space " " so they will be highlited in other colors dependir your lexer and color used.SCI_AUTOCSHOW(int lenEntered, const char *list)
This message causes a list to be displayed. lenEntered is the number of characters of the word already entered and list is the list of words separated by separator characters. The initial separator character is a space but this can be set or got with SCI_AUTOCSETSEPARATOR and SCI_AUTOCGETSEPARATOR.
With default settings, the list of words should be in sorted order. If set to ignore case mode with SCI_AUTOCSETIGNORECASE, then strings are matched after being converted to upper case. One result of this is that the list should be sorted with the punctuation characters '[', '\', ']', '^', '_', and '`' sorted after letters. Alternative handling of list order may be specified with SCI_AUTOCSETORDER
SCI_AUTOCCANCEL
This message cancels any displayed autocompletion list. When in autocompletion mode, the list should disappear when the user types a character that can not be part of the autocompletion, such as '.', '(' or '[' when typing an identifier. A set of characters that will cancel autocompletion can be specified with SCI_AUTOCSTOPS.