org.gjt.sp.jedit.syntax

## Class KeywordMap

- java.lang.Object
- - org.gjt.sp.jedit.syntax.KeywordMap

-     public class KeywordMap
      extends java.lang.Object

  A `KeywordMap` is similar to a hashtable in that it maps keys to values. However, the `keys' are Swing segments. This allows lookups of text substrings without the overhead of creating a new string object.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `KeywordMap(boolean ignoreCase)` Creates a new `KeywordMap`.
    `KeywordMap(boolean ignoreCase, int mapLength)` Creates a new `KeywordMap`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(char[] keyword, byte id)` Adds a key-value mapping.
    `void` | `add(KeywordMap map)` Adds the content of another keyword map to this one.
    `void` | `add(java.lang.String keyword, byte id)` Adds a key-value mapping.
    `boolean` | `getIgnoreCase()` Returns true if the keyword map is set to be case insensitive, false otherwise.
    `java.lang.String[]` | `getKeywords()` Returns an array containing all keywords in this keyword map.
    `java.lang.String` | `getNonAlphaNumericChars()` Returns all non-alphanumeric characters that appear in the keywords of this keyword map.
    `protected int` | `getSegmentMapKey(javax.swing.text.Segment s, int off, int len)`
    `byte` | `lookup(javax.swing.text.Segment text, int offset, int length)` Looks up a key.
    `void` | `setIgnoreCase(boolean ignoreCase)` Sets if the keyword map should be case insensitive.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### KeywordMap

          public KeywordMap(boolean ignoreCase)

      Creates a new `KeywordMap`.
      Parameters:
        `ignoreCase` - True if keys are case insensitive

    - #### KeywordMap

          public KeywordMap(boolean ignoreCase,
                    int mapLength)

      Creates a new `KeywordMap`.
      Parameters:
        `ignoreCase` - True if the keys are case insensitive
        `mapLength` - The number of `buckets' to create. A value of 52 will give good performance for most maps.

  - ### Method Detail

    - #### lookup

          public byte lookup(javax.swing.text.Segment text,
                    int offset,
                    int length)

      Looks up a key.
      Parameters:
        `text` - The text segment
        `offset` - The offset of the substring within the text segment
        `length` - The length of the substring

    - #### add

          public void add(java.lang.String keyword,
                 byte id)

      Adds a key-value mapping.
      Parameters:
        `keyword` - The key
        `id` - The value

    - #### add

          public void add(char[] keyword,
                 byte id)

      Adds a key-value mapping.
      Parameters:
        `keyword` - The key
        `id` - The value
      Since:
        jEdit 4.2pre3

    - #### getNonAlphaNumericChars

          public java.lang.String getNonAlphaNumericChars()

      Returns all non-alphanumeric characters that appear in the keywords of this keyword map.
      Since:
        jEdit 4.0pre3

    - #### getKeywords

          public java.lang.String[] getKeywords()

      Returns an array containing all keywords in this keyword map.
      Since:
        jEdit 4.0pre3

    - #### getIgnoreCase

          public boolean getIgnoreCase()

      Returns true if the keyword map is set to be case insensitive, false otherwise.

    - #### setIgnoreCase

          public void setIgnoreCase(boolean ignoreCase)

      Sets if the keyword map should be case insensitive.
      Parameters:
        `ignoreCase` - True if the keyword map should be case insensitive, false otherwise

    - #### add

          public void add(KeywordMap map)

      Adds the content of another keyword map to this one.
      Since:
        jEdit 4.2pre3

    - #### getSegmentMapKey

          protected int getSegmentMapKey(javax.swing.text.Segment s,
                             int off,
                             int len)