Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
14b081f7
Commit
14b081f7
authored
Sep 16, 2009
by
Thorbjørn Lindeijer
Browse files
Don't insert automatic parenthesis in comments and strings
parent
2f505817
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/plugins/cppeditor/cppeditor.cpp
View file @
14b081f7
...
...
@@ -1268,6 +1268,13 @@ bool CPPEditor::isElectricCharacter(const QChar &ch) const
return
false
;
}
bool
CPPEditor
::
contextAllowsAutoParenthesis
(
const
QTextCursor
&
cursor
)
const
{
CPlusPlus
::
TokenUnderCursor
tokenUnderCursor
;
const
SimpleToken
tk
=
tokenUnderCursor
(
cursor
);
return
!
(
tk
.
isComment
()
||
tk
.
isLiteral
());
}
void
CPPEditor
::
indentInsertedText
(
const
QTextCursor
&
tc
)
{
indent
(
tc
.
document
(),
tc
,
QChar
::
Null
);
...
...
src/plugins/cppeditor/cppeditor.h
View file @
14b081f7
...
...
@@ -211,8 +211,9 @@ protected:
TextEditor
::
BaseTextEditorEditable
*
createEditableInterface
();
// Rertuns true if key triggers anindent.
virtual
bool
isElectricCharacter
(
const
QChar
&
ch
)
const
;
// These override BaseTextEditor
bool
isElectricCharacter
(
const
QChar
&
ch
)
const
;
bool
contextAllowsAutoParenthesis
(
const
QTextCursor
&
cursor
)
const
;
private
Q_SLOTS
:
void
updateFileName
();
...
...
src/plugins/texteditor/basetexteditor.cpp
View file @
14b081f7
...
...
@@ -1073,9 +1073,8 @@ void BaseTextEditor::keyPressEvent(QKeyEvent *e)
QString
text
=
e
->
text
();
QString
autoText
;
// TODO disable this inside string or character literals
if
(
d
->
m_autoParenthesesEnabled
&&
d
->
m_document
->
tabSettings
().
m_autoParentheses
)
{
foreach
(
QChar
c
,
text
)
{
foreach
(
QChar
c
,
text
)
{
QChar
close
;
if
(
c
==
QLatin1Char
(
'('
))
close
=
QLatin1Char
(
')'
);
...
...
@@ -1101,7 +1100,7 @@ void BaseTextEditor::keyPressEvent(QKeyEvent *e)
}
QChar
electricChar
;
if
(
d
->
m_document
->
tabSettings
().
m_autoIndent
)
{
foreach
(
QChar
c
,
text
)
{
foreach
(
QChar
c
,
text
)
{
if
(
isElectricCharacter
(
c
))
{
electricChar
=
c
;
break
;
...
...
@@ -1110,8 +1109,11 @@ void BaseTextEditor::keyPressEvent(QKeyEvent *e)
}
if
(
!
electricChar
.
isNull
())
cursor
.
beginEditBlock
();
bool
insertAutoParenthesis
=
!
autoText
.
isEmpty
()
&&
contextAllowsAutoParenthesis
(
cursor
);
cursor
.
insertText
(
text
);
if
(
!
autoText
.
isEmpty
())
{
if
(
insertAutoParenthesis
)
{
int
pos
=
cursor
.
position
();
cursor
.
insertText
(
autoText
);
cursor
.
setPosition
(
pos
);
...
...
@@ -3316,6 +3318,11 @@ bool BaseTextEditor::isElectricCharacter(const QChar &) const
return
false
;
}
bool
BaseTextEditor
::
contextAllowsAutoParenthesis
(
const
QTextCursor
&
)
const
{
return
true
;
}
void
BaseTextEditor
::
indentBlock
(
QTextDocument
*
,
QTextBlock
,
QChar
)
{
}
...
...
src/plugins/texteditor/basetexteditor.h
View file @
14b081f7
...
...
@@ -508,6 +508,8 @@ protected:
// Returns true if key triggers an indent.
virtual
bool
isElectricCharacter
(
const
QChar
&
ch
)
const
;
// Returns true if automatic brace matching should be enabled in the context of the given cursor
virtual
bool
contextAllowsAutoParenthesis
(
const
QTextCursor
&
cursor
)
const
;
// Indent a text block based on previous line. Default does nothing
virtual
void
indentBlock
(
QTextDocument
*
doc
,
QTextBlock
block
,
QChar
typedChar
);
// Indent at cursor. Calls indentBlock for selection or current line.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment