IndentationStatus SciTEBase::GetIndentState(int line) { // C like language indentation defined by braces and keywords IndentationStatus indentState = isNone; SString controlWords[20]; unsigned int parts = GetLinePartsInStyle(line, statementIndent.styleNumber, -1, controlWords, ELEMENTS(controlWords)); for (unsigned int i = 0; i < parts; i++) { if (includes(statementIndent, controlWords[i])) indentState = isKeyWordStart; } parts = GetLinePartsInStyle(line, statementEnd.styleNumber, -1, controlWords, ELEMENTS(controlWords)); for (unsigned int i = 0; i < parts; i++) { if (includes(statementEnd, controlWords[i])) indentState = isNone; } // Braces override keywords SString controlStrings[20]; parts = GetLinePartsInStyle(line, blockEnd.styleNumber, -1, controlStrings, ELEMENTS(controlStrings)); for (unsigned int j = 0; j < parts; j++) { if (includes(blockEnd, controlStrings[j])) indentState = isBlockEnd; if (includes(blockStart, controlStrings[j])) indentState = isBlockStart; } return indentState; } |