forked from qt-creator/qt-creator
		
	C++: Fix add definitions on empty files
Task-number: QTCREATORBUG-7838 Change-Id: I8e9d452cf4c8ab5dd9f2a7f39d3802baf84609e1 Reviewed-by: David Schulz <david.schulz@nokia.com>
This commit is contained in:
		@@ -593,21 +593,31 @@ QList<InsertionLocation> InsertionPointLocator::methodDefinition(
 | 
			
		||||
    FindMethodDefinitionInsertPoint finder(doc->translationUnit());
 | 
			
		||||
    finder(declaration, &line, &column);
 | 
			
		||||
 | 
			
		||||
    // Make sure we have a line before and after the new definition.
 | 
			
		||||
    const QLatin1String prefix("\n\n");
 | 
			
		||||
    // Force empty lines before and after the new definition.
 | 
			
		||||
    QString prefix;
 | 
			
		||||
    QString suffix;
 | 
			
		||||
    int firstNonSpace = targetFile->position(line, column);
 | 
			
		||||
    QChar c = targetFile->charAt(firstNonSpace);
 | 
			
		||||
    while (c == QLatin1Char(' ') || c == QLatin1Char('\t')) {
 | 
			
		||||
        ++firstNonSpace;
 | 
			
		||||
        c = targetFile->charAt(firstNonSpace);
 | 
			
		||||
    }
 | 
			
		||||
    if (targetFile->charAt(firstNonSpace) != QChar::ParagraphSeparator) {
 | 
			
		||||
        suffix.append(QLatin1String("\n\n"));
 | 
			
		||||
    if (!line) {
 | 
			
		||||
        // Totally empty file.
 | 
			
		||||
        line = 1;
 | 
			
		||||
        column = 1;
 | 
			
		||||
        prefix = suffix = QLatin1Char('\n');
 | 
			
		||||
    } else {
 | 
			
		||||
        ++firstNonSpace;
 | 
			
		||||
        if (targetFile->charAt(firstNonSpace) != QChar::ParagraphSeparator)
 | 
			
		||||
            suffix.append(QLatin1Char('\n'));
 | 
			
		||||
        QTC_ASSERT(column, return result);
 | 
			
		||||
 | 
			
		||||
        prefix = QLatin1String("\n\n");
 | 
			
		||||
        int firstNonSpace = targetFile->position(line, column);
 | 
			
		||||
        QChar c = targetFile->charAt(firstNonSpace);
 | 
			
		||||
        while (c == QLatin1Char(' ') || c == QLatin1Char('\t')) {
 | 
			
		||||
            ++firstNonSpace;
 | 
			
		||||
            c = targetFile->charAt(firstNonSpace);
 | 
			
		||||
        }
 | 
			
		||||
        if (targetFile->charAt(firstNonSpace) != QChar::ParagraphSeparator) {
 | 
			
		||||
            suffix.append(QLatin1String("\n\n"));
 | 
			
		||||
        } else {
 | 
			
		||||
            ++firstNonSpace;
 | 
			
		||||
            if (targetFile->charAt(firstNonSpace) != QChar::ParagraphSeparator)
 | 
			
		||||
                suffix.append(QLatin1Char('\n'));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    result += InsertionLocation(target, prefix, suffix, line, column);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user