1// Scintilla source code edit control
2/** @file StyleContext.cxx
3 ** Lexer infrastructure.
4 **/
5// Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org>
6// This file is in the public domain.
7
8#include <cstdlib>
9#include <cassert>
10
11#include <string>
12#include <string_view>
13
14#include "ILexer.h"
15
16#include "LexAccessor.h"
17#include "Accessor.h"
18#include "StyleContext.h"
19#include "CharacterSet.h"
20
21using namespace Lexilla;
22
23bool StyleContext::MatchIgnoreCase(const char *s) {
24 if (MakeLowerCase(ch) != static_cast<unsigned char>(*s))
25 return false;
26 s++;
27 if (MakeLowerCase(chNext) != static_cast<unsigned char>(*s))
28 return false;
29 s++;
30 for (int n = 2; *s; n++) {
31 if (*s !=
32 MakeLowerCase(styler.SafeGetCharAt(currentPos + n, 0)))
33 return false;
34 s++;
35 }
36 return true;
37}
38
39void StyleContext::GetCurrent(char *s, Sci_PositionU len) {
40 styler.GetRange(styler.GetStartSegment(), currentPos, s, len);
41}
42
43void StyleContext::GetCurrentLowered(char *s, Sci_PositionU len) {
44 styler.GetRangeLowered(styler.GetStartSegment(), currentPos, s, len);
45}
46