class_docstr: Lexer for VimL script files.
  
  .. versionadded:: 0.8
class_docstr_tok: ["Lexer","for","VimL","script","files",".","..","versionadded",":",":","0.8"]
docstr: It's kind of difficult to decide if something might be a keyword
  in VimL because it allows you to abbreviate them.  In fact,
  'ab[breviate]' is a good example.  :ab, :abbre, or :abbreviate are
  valid ways to call it so rather than making really awful regexps
  like::
  
      \bab(?:b(?:r(?:e(?:v(?:i(?:a(?:t(?:e)?)?)?)?)?)?)?)?\b
  
  we match `\b\w+\b` and then call is_in() on those tokens.  See
  `scripts/get_vimkw.py` for how the lists are extracted.
docstr_tok: ["It","'s","kind","of","difficult","to","decide","if","something","might","be","a","keyword","in","VimL","because","it","allows","you","to","abbreviate","them",".","In","fact",",","'ab","[","breviate","]","'","is","a","good","example",".",":","ab",",",":","abbre",",","or",":","abbreviate","are","valid","ways","to","call","it","so","rather","than","making","really","awful","regexps","like",":",":","\\bab","(","?",":","b","(","?",":","r","(","?",":","e","(","?",":","v","(","?",":","i","(","?",":","a","(","?",":","t","(","?",":","e",")","?",")","?",")","?",")","?",")","?",")","?",")","?",")","?","\\b","we","match","`","\\b\\w+\\b","`","and","then","call","is_in","(",")","on","those","tokens",".","See","`","scripts\/get_vimkw.py","`","for","how","the","lists","are","extracted","."]
code: def is_in(self, w, mapping):
      r"""
      It's kind of difficult to decide if something might be a keyword
      in VimL because it allows you to abbreviate them.  In fact,
      'ab[breviate]' is a good example.  :ab, :abbre, or :abbreviate are
      valid ways to call it so rather than making really awful regexps
      like::
  
          \bab(?:b(?:r(?:e(?:v(?:i(?:a(?:t(?:e)?)?)?)?)?)?)?)?\b
  
      we match `\b\w+\b` and then call is_in() on those tokens.  See
      `scripts/get_vimkw.py` for how the lists are extracted.
      """
      p = bisect(mapping, (w,))
      if p > 0:
          if (
              mapping[p - 1][0] == w[: len(mapping[p - 1][0])]
              and mapping[p - 1][1][: len(w)] == w
          ):
              return True
      if p < len(mapping):
          return (
              mapping[p][0] == w[: len(mapping[p][0])]
              and mapping[p][1][: len(w)] == w
          )
      return False
  
file_path: catboost/contrib/python/Pygments/py3/pygments/lexers/textedit.py
imports: import re
  from bisect import bisect
  from pygments.lexer import RegexLexer, bygroups, default, include, this, using
  from pygments.lexers.python import PythonLexer
  from pygments.token import Comment, Keyword, Name, Number, Operator, Punctuation, String, Text, Whitespace
label_desc: Use image node_id 2 for calling the VimLexer obj's underlying member method code with example usage: obj.is_in(w, mapping) and returns: False, unknown, True