Scintilla 4.0.3
[TortoiseGit.git] / ext / scintilla / src / AutoComplete.h
blob0cb8bfb6f32d44b71056c9586d31a4ab20da127c
1 // Scintilla source code edit control
2 /** @file AutoComplete.h
3 ** Defines the auto completion list box.
4 **/
5 // Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
8 #ifndef AUTOCOMPLETE_H
9 #define AUTOCOMPLETE_H
11 namespace Scintilla {
13 /**
15 class AutoComplete {
16 bool active;
17 std::string stopChars;
18 std::string fillUpChars;
19 char separator;
20 char typesep; // Type seperator
21 enum { maxItemLen=1000 };
22 std::vector<int> sortMatrix;
24 public:
26 bool ignoreCase;
27 bool chooseSingle;
28 std::unique_ptr<ListBox> lb;
29 Sci::Position posStart;
30 int startLen;
31 /// Should autocompletion be canceled if editor's currentPos <= startPos?
32 bool cancelAtStartPos;
33 bool autoHide;
34 bool dropRestOfWord;
35 unsigned int ignoreCaseBehaviour;
36 int widthLBDefault;
37 int heightLBDefault;
38 /** SC_ORDER_PRESORTED: Assume the list is presorted; selection will fail if it is not alphabetical<br />
39 * SC_ORDER_PERFORMSORT: Sort the list alphabetically; start up performance cost for sorting<br />
40 * SC_ORDER_CUSTOM: Handle non-alphabetical entries; start up performance cost for generating a sorted lookup table
42 int autoSort;
44 AutoComplete();
45 ~AutoComplete();
47 /// Is the auto completion list displayed?
48 bool Active() const;
50 /// Display the auto completion list positioned to be near a character position
51 void Start(Window &parent, int ctrlID, Sci::Position position, Point location,
52 int startLen_, int lineHeight, bool unicodeMode, int technology);
54 /// The stop chars are characters which, when typed, cause the auto completion list to disappear
55 void SetStopChars(const char *stopChars_);
56 bool IsStopChar(char ch);
58 /// The fillup chars are characters which, when typed, fill up the selected word
59 void SetFillUpChars(const char *fillUpChars_);
60 bool IsFillUpChar(char ch);
62 /// The separator character is used when interpreting the list in SetList
63 void SetSeparator(char separator_);
64 char GetSeparator() const;
66 /// The typesep character is used for separating the word from the type
67 void SetTypesep(char separator_);
68 char GetTypesep() const;
70 /// The list string contains a sequence of words separated by the separator character
71 void SetList(const char *list);
73 /// Return the position of the currently selected list item
74 int GetSelection() const;
76 /// Return the value of an item in the list
77 std::string GetValue(int item) const;
79 void Show(bool show);
80 void Cancel();
82 /// Move the current list element by delta, scrolling appropriately
83 void Move(int delta);
85 /// Select a list element that starts with word as the current element
86 void Select(const char *word);
91 #endif