Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'GenHighlight (./kdelibs/kwrite/highlight.h:396)

class GenHighlight : public Highlight {
  public:
    GenHighlight(const QString &name);

    virtual int doHighlight(int ctxNum, TextLine *);
  protected:
    virtual void makeContextList() = 0;
    virtual void init();
    virtual void done();

    static const int nContexts = 32;
    HlContext *contextList[nContexts];
};




kdelibs'GenHighlight::GenHighlight() (./kdelibs/kwrite/highlight.cpp:1070)

GenHighlight::GenHighlight(const QString &name) : Highlight(name) {
}



kdelibs'GenHighlight::doHighlight() (./kdelibs/kwrite/highlight.cpp:1074)

int GenHighlight::doHighlight(int ctxNum, TextLine *textLine) {
  HlContext *context;
  const QChar *str, *s1, *s2;
  QChar lastChar;
  HlItem *item;

  context = contextList[ctxNum];
  str = textLine->getString();
  lastChar = '\0';

  s1 = str;
  while (*s1 != '\0') {
    for (item = context->items.first(); item != 0L; item = context->items.next()) {
      if (item->startEnable(lastChar)) {
        s2 = item->checkHgl(s1);
        if (s2 > s1) {
          if (item->endEnable(*s2)) {
            textLine->setAttribs(item->attr,s1 - str,s2 - str);
            ctxNum = item->ctx;
            context = contextList[ctxNum];
            s1 = s2 - 1;
            goto found;
          }
        }
      }
    }
    // nothing found: set attribute of one char
    textLine->setAttribs(context->attr,s1 - str,s1 - str + 1);

    found:
    lastChar = *s1;
    s1++;
  }
  //set "end of line"-properties
  textLine->setAttr(context->attr);
  //return new context
  return context->ctx;
}



kdelibs'GenHighlight::init() (./kdelibs/kwrite/highlight.cpp:1114)

void GenHighlight::init() {
  int z;

  for (z = 0; z < nContexts; z++) contextList[z] = 0L;
  makeContextList();
}


kdelibs'GenHighlight::done() (./kdelibs/kwrite/highlight.cpp:1121)

void GenHighlight::done() {
  int z;

  for (z = 0; z < nContexts; z++) delete contextList[z];
}