int PythonSyntax::CalculateSpaceIndetationSize(CodeEditor& editor) { int current = 0; for(int i = 0; i < editor.GetLineCount(); i++) { WString line = editor.GetWLine(i); for(int j = 0; j < line.GetLength(); j++) { if(line[j] == ' ') current++; else break; } if(current > 0) break; } // TODO: 4 is magic numer - try to find the way to get this number from ide constants return current > 0 ? current : 4; }
PythonSyntax::Identation::Type PythonSyntax::FindIdentationType(CodeEditor& editor, const WString& line) { Identation::Type type = Identation::None; if(line.StartsWith("\t")) type = Identation::Tab; else if(line.StartsWith(" ")) type = Identation::Space; else { for(int i = 0; i < editor.GetLineCount(); i++) { WString cLine = editor.GetWLine(i); if(cLine.StartsWith("\t")) { type = Identation::Tab; break; } else if(cLine.StartsWith(" ")) { type = Identation::Space; break; } } } return type; }