- fix: Autoindent for "{" is not correct.
This commit is contained in:
parent
d629a496ff
commit
2e4de7db07
3
NEWS.md
3
NEWS.md
|
@ -42,7 +42,8 @@ Red Panda C++ Version 2.23
|
||||||
- enhancement: When problem case's expected output is not too large (<= 5000 line), highlight text in the first different line in the expected output.
|
- enhancement: When problem case's expected output is not too large (<= 5000 line), highlight text in the first different line in the expected output.
|
||||||
- enhancement: Highlight text in the first different line using the error color.
|
- enhancement: Highlight text in the first different line using the error color.
|
||||||
- enhancement: Add the option "redirect stderr to the Tools output panel" in the options dialog -> executor -> problem set page.
|
- enhancement: Add the option "redirect stderr to the Tools output panel" in the options dialog -> executor -> problem set page.
|
||||||
|
- fix: Can't correctly uncomment multiple "//" comment lines that doesn't have spaces at linestarts.
|
||||||
|
- fix: Autoindent for "{" is not correct.
|
||||||
|
|
||||||
Red Panda C++ Version 2.22
|
Red Panda C++ Version 2.22
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,13 @@ namespace QSynedit {
|
||||||
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line));
|
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line));
|
||||||
} else if (firstToken=="{") {
|
} else if (firstToken=="{") {
|
||||||
IndentInfo matchingIndents = rangeAfterFirstToken.getLastIndent();
|
IndentInfo matchingIndents = rangeAfterFirstToken.getLastIndent();
|
||||||
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line));
|
if (matchingIndents.line!=line-1) {
|
||||||
|
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line));
|
||||||
|
} else if (rangeAfterFirstToken.indents.count()>=2){
|
||||||
|
IndentInfo info = rangeAfterFirstToken.indents[rangeAfterFirstToken.indents.count()-2];
|
||||||
|
indentSpaces = editor->leftSpaces(editor->document()->getLine(info.line))+editor->tabWidth();
|
||||||
|
} else
|
||||||
|
indentSpaces = 0;
|
||||||
} else if (rangePreceeding.getLastIndentType()!=IndentType::None) {
|
} else if (rangePreceeding.getLastIndentType()!=IndentType::None) {
|
||||||
IndentInfo matchingIndents = rangePreceeding.getLastIndent();
|
IndentInfo matchingIndents = rangePreceeding.getLastIndent();
|
||||||
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line))+editor->tabWidth();
|
indentSpaces = editor->leftSpaces(editor->document()->getLine(matchingIndents.line))+editor->tabWidth();
|
||||||
|
|
|
@ -1651,7 +1651,7 @@ void QSynEdit::doUncomment()
|
||||||
continue;
|
continue;
|
||||||
// Find // after blanks only
|
// Find // after blanks only
|
||||||
int j = 0;
|
int j = 0;
|
||||||
while ((j+1 < s.length()) && (s[j] == '\n' || s[j] == '\t'))
|
while ((j+1 < s.length()) && (s[j] == ' ' || s[j] == '\t'))
|
||||||
j++;
|
j++;
|
||||||
s.remove(j,symbolLen);
|
s.remove(j,symbolLen);
|
||||||
mDocument->putLine(i,s);
|
mDocument->putLine(i,s);
|
||||||
|
|
Loading…
Reference in New Issue