File: AutoCompleter.h

package info (click to toggle)
bzflag 2.0.2.20050318
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 20,464 kB
  • ctags: 24,134
  • sloc: cpp: 110,038; ansic: 9,514; sh: 4,105; makefile: 1,922; perl: 280; python: 221; xml: 180; objc: 178; php: 143
file content (65 lines) | stat: -rw-r--r-- 1,921 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* bzflag
 * Copyright (c) 1993 - 2005 Tim Riker
 *
 * This package is free software;  you can redistribute it and/or
 * modify it under the terms of the license found in the file
 * named COPYING that should have accompanied this file.
 *
 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */

#ifndef AUTOCOMPLETER_H
#define AUTOCOMPLETER_H

#include <string>
#include <vector>


/** This class will try to complete strings to registered words. */
class AutoCompleter {
 public:

  /** Use this function to register a new word that strings should be
      checked against and possibly completed to. Empty strings will not
      be registered. */
  void registerWord(const std::string& str);

  /** Use this function to unregister a word. If the word hasn't been
      registered previously nothing will happen. */
  void unregisterWord(const std::string& str);

  /** This function will search the list of registered words and see if
      the given string can be completed to any of those words. If the string
      can be completed to several words, their largest common prefix will
      be returned. */
  std::string complete(const std::string& str);

 protected:
  std::vector<std::string> words;
};


/** This class will try to complete strings to registered words.
    It starts with a bunch of common /-commands */
class DefaultCompleter : public AutoCompleter
{
public:
  /** ctor sets default words */
  DefaultCompleter();

  /** This function sets the list of registered words to a default which
      consists of some /-commands; possible other words are removed */
  void setDefaults();
};

#endif

// Local Variables: ***
// mode:C++ ***
// tab-width: 8 ***
// c-basic-offset: 2 ***
// indent-tabs-mode: t ***
// End: ***
// ex: shiftwidth=2 tabstop=8