Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Unified Diff: third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp

Issue 2397023002: Reflow comments in //third_party/WebKit/Source/core/editing/spellcheck (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/editing/spellcheck/SpellCheckRequester.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
diff --git a/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp b/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
index 387d704c3e4ca8dc33b6ae77b53db22db97ab856..7583b079bacf4e0ac79e4da5101863ce752765d7 100644
--- a/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
+++ b/third_party/WebKit/Source/core/editing/spellcheck/SpellChecker.cpp
@@ -208,7 +208,8 @@ void SpellChecker::didBeginEditing(Element* element) {
if (isTextField || !parent->isAlreadySpellChecked()) {
if (EditingStrategy::editingIgnoresContent(element))
return;
- // We always recheck textfields because markers are removed from them on blur.
+ // We always recheck textfields because markers are removed from them on
+ // blur.
VisibleSelection selection =
VisibleSelection::selectionFromContentsOfNode(element);
markMisspellingsAndBadGrammar(selection);
@@ -225,11 +226,12 @@ void SpellChecker::advanceToNextMisspelling(bool startBeforeSelection) {
DocumentLifecycle::DisallowTransitionScope disallowTransition(
frame().document()->lifecycle());
- // The basic approach is to search in two phases - from the selection end to the end of the doc, and
- // then we wrap and search from the doc start to (approximately) where we started.
+ // The basic approach is to search in two phases - from the selection end to
+ // the end of the doc, and then we wrap and search from the doc start to
+ // (approximately) where we started.
- // Start at the end of the selection, search to edge of document. Starting at the selection end makes
- // repeated "check spelling" commands work.
+ // Start at the end of the selection, search to edge of document. Starting at
+ // the selection end makes repeated "check spelling" commands work.
VisibleSelection selection(frame().selection().selection());
Position spellingSearchStart, spellingSearchEnd;
Range::selectNodeContents(frame().document(), spellingSearchStart,
@@ -252,11 +254,12 @@ void SpellChecker::advanceToNextMisspelling(bool startBeforeSelection) {
Position position = spellingSearchStart;
if (!isEditablePosition(position)) {
- // This shouldn't happen in very often because the Spelling menu items aren't enabled unless the
- // selection is editable.
- // This can happen in Mail for a mix of non-editable and editable content (like Stationary),
- // when spell checking the whole document before sending the message.
- // In that case the document might not be editable, but there are editable pockets that need to be spell checked.
+ // This shouldn't happen in very often because the Spelling menu items
+ // aren't enabled unless the selection is editable. This can happen in Mail
+ // for a mix of non-editable and editable content (like Stationary), when
+ // spell checking the whole document before sending the message. In that
+ // case the document might not be editable, but there are editable pockets
+ // that need to be spell checked.
if (!frame().document()->documentElement())
return;
@@ -294,9 +297,9 @@ void SpellChecker::advanceToNextMisspelling(bool startBeforeSelection) {
if (spellingSearchStart == spellingSearchEnd)
return; // nothing to search in
- // We go to the end of our first range instead of the start of it, just to be sure
- // we don't get foiled by any word boundary problems at the start. It means we might
- // do a tiny bit more searching.
+ // We go to the end of our first range instead of the start of it, just to be
+ // sure we don't get foiled by any word boundary problems at the start. It
+ // means we might do a tiny bit more searching.
Node* searchEndNodeAfterWrap = spellingSearchEnd.computeContainerNode();
int searchEndOffsetAfterWrap = spellingSearchEnd.offsetInContainerNode();
@@ -305,8 +308,8 @@ void SpellChecker::advanceToNextMisspelling(bool startBeforeSelection) {
int& misspellingOffset = misspelledItem.second;
misspelledItem = findFirstMisspelling(spellingSearchStart, spellingSearchEnd);
- // If we did not find a misspelled word, wrap and try again (but don't bother if we started at the beginning of the
- // block rather than at a selection).
+ // If we did not find a misspelled word, wrap and try again (but don't bother
+ // if we started at the beginning of the block rather than at a selection).
if (startedWithSelection && !misspelledWord) {
spellingSearchStart = Position::editingPositionOf(topNode, 0);
// going until the end of the very first chunk we tested is far enough
@@ -317,8 +320,8 @@ void SpellChecker::advanceToNextMisspelling(bool startBeforeSelection) {
}
if (!misspelledWord.isEmpty()) {
- // We found a misspelling. Select the misspelling, update the spelling panel, and store
- // a marker so we draw the red squiggle later.
+ // We found a misspelling. Select the misspelling, update the spelling
+ // panel, and store a marker so we draw the red squiggle later.
const EphemeralRange misspellingRange = calculateCharacterSubrange(
EphemeralRange(spellingSearchStart, spellingSearchEnd),
@@ -411,10 +414,11 @@ void SpellChecker::markMisspellingsAfterTypingCommand(
const TypingCommand& cmd) {
m_spellCheckRequester->cancelCheck();
- // Take a look at the selection that results after typing and determine whether we need to spellcheck.
- // Since the word containing the current selection is never marked, this does a check to
- // see if typing made a new word that is not in the current selection. Basically, you
- // get this by being at the end of a word and typing a space.
+ // Take a look at the selection that results after typing and determine
+ // whether we need to spellcheck. Since the word containing the current
+ // selection is never marked, this does a check to see if typing made a new
+ // word that is not in the current selection. Basically, you get this by
+ // being at the end of a word and typing a space.
VisiblePosition start = createVisiblePosition(
cmd.endingSelection().start(), cmd.endingSelection().affinity());
VisiblePosition previous = previousPositionOf(start);
@@ -493,7 +497,8 @@ void SpellChecker::chunkAndMarkAllMisspellingsAndBadGrammar(
return;
const EphemeralRange& paragraphRange = fullParagraphToCheck.paragraphRange();
- // Since the text may be quite big chunk it up and adjust to the sentence boundary.
+ // Since the text may be quite big chunk it up and adjust to the sentence
+ // boundary.
const int kChunkSize = 16 * 1024;
// Check the full paragraph instead if the paragraph is short, which saves
@@ -523,8 +528,8 @@ void SpellChecker::chunkAndMarkAllMisspellingsAndBadGrammar(
if (!checkRangeIterator.atEnd()) {
checkRangeIterator.advance(1);
- // The layout should be already update due to the initialization of checkRangeIterator,
- // so comparePositions can be directly called.
+ // The layout should be already update due to the initialization of
+ // checkRangeIterator, so comparePositions can be directly called.
if (comparePositions(chunkRange.endPosition(), checkRange.endPosition()) <
0)
checkRangeIterator.advance(TextIterator::rangeLength(
@@ -551,14 +556,15 @@ void SpellChecker::markAndReplaceFor(
return;
}
- // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets needs to be audited.
- // see http://crbug.com/590369 for more details.
+ // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets
+ // needs to be audited. See http://crbug.com/590369 for more details.
frame().document()->updateStyleAndLayoutIgnorePendingStylesheets();
TextCheckingParagraph paragraph(request->checkingRange(),
request->checkingRange());
- // Expand the range to encompass entire paragraphs, since text checking needs that much context.
+ // Expand the range to encompass entire paragraphs, since text checking needs
+ // that much context.
int selectionOffset = 0;
int ambiguousBoundaryOffset = -1;
bool selectionChanged = false;
@@ -597,8 +603,9 @@ void SpellChecker::markAndReplaceFor(
// Only mark misspelling if:
// 1. Current text checking isn't done for autocorrection.
// 2. Result falls within spellingRange.
- // 3. The word in question doesn't end at an ambiguous boundary. For instance, we would not mark
- // "wouldn'" as misspelled right after apostrophe is typed.
+ // 3. The word in question doesn't end at an ambiguous boundary. For
+ // instance, we would not mark "wouldn'" as misspelled right after
+ // apostrophe is typed.
if (result->decoration == TextDecorationTypeSpelling &&
resultLocation >= paragraph.checkingStart() &&
resultLocation + resultLength <= spellingRangeEndOffset &&
@@ -659,7 +666,8 @@ void SpellChecker::markAndReplaceFor(
frame().selection().modify(FrameSelection::AlterationMove,
DirectionForward, CharacterGranularity);
} else {
- // If this fails for any reason, the fallback is to go one position beyond the last replacement
+ // If this fails for any reason, the fallback is to go one position beyond
+ // the last replacement
frame().selection().moveTo(frame().selection().selection().visibleEnd());
frame().selection().modify(FrameSelection::AlterationMove,
DirectionForward, CharacterGranularity);
@@ -681,16 +689,16 @@ void SpellChecker::updateMarkersForWordsAffectedByEditing(
// needs to be audited. See http://crbug.com/590369 for more details.
document->updateStyleAndLayoutIgnorePendingStylesheets();
- // We want to remove the markers from a word if an editing command will change the word. This can happen in one of
- // several scenarios:
+ // We want to remove the markers from a word if an editing command will change
+ // the word. This can happen in one of several scenarios:
// 1. Insert in the middle of a word.
// 2. Appending non whitespace at the beginning of word.
// 3. Appending non whitespace at the end of word.
- // Note that, appending only whitespaces at the beginning or end of word won't change the word, so we don't need to
- // remove the markers on that word.
- // Of course, if current selection is a range, we potentially will edit two words that fall on the boundaries of
- // selection, and remove words between the selection boundaries.
- //
+ // Note that, appending only whitespaces at the beginning or end of word won't
+ // change the word, so we don't need to remove the markers on that word. Of
+ // course, if current selection is a range, we potentially will edit two words
+ // that fall on the boundaries of selection, and remove words between the
+ // selection boundaries.
VisiblePosition startOfSelection =
frame().selection().selection().visibleStart();
VisiblePosition endOfSelection = frame().selection().selection().visibleEnd();
@@ -717,8 +725,8 @@ void SpellChecker::updateMarkersForWordsAffectedByEditing(
endOfLastWord = endOfWord(endOfSelection, LeftWordIfOnBoundary);
}
- // If doNotRemoveIfSelectionAtWordBoundary is true, and first word ends at the start of selection,
- // we choose next word as the first word.
+ // If doNotRemoveIfSelectionAtWordBoundary is true, and first word ends at the
+ // start of selection, we choose next word as the first word.
if (doNotRemoveIfSelectionAtWordBoundary &&
endOfFirstWord.deepEquivalent() == startOfSelection.deepEquivalent()) {
startOfFirstWord = nextWordPosition(startOfFirstWord);
@@ -727,8 +735,8 @@ void SpellChecker::updateMarkersForWordsAffectedByEditing(
return;
}
- // If doNotRemoveIfSelectionAtWordBoundary is true, and last word begins at the end of selection,
- // we choose previous word as the last word.
+ // If doNotRemoveIfSelectionAtWordBoundary is true, and last word begins at
+ // the end of selection, we choose previous word as the last word.
if (doNotRemoveIfSelectionAtWordBoundary &&
startOfLastWord.deepEquivalent() == endOfSelection.deepEquivalent()) {
startOfLastWord = previousWordPosition(startOfLastWord);
@@ -752,12 +760,15 @@ void SpellChecker::updateMarkersForWordsAffectedByEditing(
return;
}
- // Now we remove markers on everything between startOfFirstWord and endOfLastWord.
- // However, if an autocorrection change a single word to multiple words, we want to remove correction mark from all the
- // resulted words even we only edit one of them. For example, assuming autocorrection changes "avantgarde" to "avant
- // garde", we will have CorrectionIndicator marker on both words and on the whitespace between them. If we then edit garde,
- // we would like to remove the marker from word "avant" and whitespace as well. So we need to get the continous range of
- // of marker that contains the word in question, and remove marker on that whole range.
+ // Now we remove markers on everything between startOfFirstWord and
+ // endOfLastWord. However, if an autocorrection change a single word to
+ // multiple words, we want to remove correction mark from all the resulted
+ // words even we only edit one of them. For example, assuming autocorrection
+ // changes "avantgarde" to "avant garde", we will have CorrectionIndicator
+ // marker on both words and on the whitespace between them. If we then edit
+ // garde, we would like to remove the marker from word "avant" and whitespace
+ // as well. So we need to get the continous range of of marker that contains
+ // the word in question, and remove marker on that whole range.
const EphemeralRange wordRange(removeMarkerStart, removeMarkerEnd);
document->markers().removeMarkers(
wordRange, DocumentMarker::MisspellingMarkers(),
@@ -832,7 +843,8 @@ void SpellChecker::respondToChangedSelection(
if (!isSpellCheckingEnabledFor(oldSelection))
return;
- // When spell checking is off, existing markers disappear after the selection changes.
+ // When spell checking is off, existing markers disappear after the selection
+ // changes.
if (!isSpellCheckingEnabled()) {
frame().document()->markers().removeMarkers(DocumentMarker::Spelling);
frame().document()->markers().removeMarkers(DocumentMarker::Grammar);
@@ -1052,13 +1064,15 @@ std::pair<String, int> SpellChecker::findFirstMisspelling(const Position& start,
const Position& end) {
String misspelledWord;
- // Initialize out parameters; they will be updated if we find something to return.
+ // Initialize out parameters; they will be updated if we find something to
+ // return.
String firstFoundItem;
int firstFoundOffset = 0;
- // Expand the search range to encompass entire paragraphs, since text checking needs that much context.
- // Determine the character offset from the start of the paragraph to the start of the original search range,
- // since we will want to ignore results in this area.
+ // Expand the search range to encompass entire paragraphs, since text checking
+ // needs that much context. Determine the character offset from the start of
+ // the paragraph to the start of the original search range, since we will want
+ // to ignore results in this area.
Position paragraphStart =
startOfParagraph(createVisiblePosition(start)).toParentAnchoredPosition();
Position paragraphEnd = end;
@@ -1073,14 +1087,16 @@ std::pair<String, int> SpellChecker::findFirstMisspelling(const Position& start,
bool firstIteration = true;
bool lastIteration = false;
while (totalLengthProcessed < totalRangeLength) {
- // Iterate through the search range by paragraphs, checking each one for spelling.
+ // Iterate through the search range by paragraphs, checking each one for
+ // spelling.
int currentLength = TextIterator::rangeLength(paragraphStart, paragraphEnd);
int currentStartOffset = firstIteration ? rangeStartOffset : 0;
int currentEndOffset = currentLength;
if (inSameParagraph(createVisiblePosition(paragraphStart),
createVisiblePosition(end))) {
- // Determine the character offset from the end of the original search range to the end of the paragraph,
- // since we will want to ignore results in this area.
+ // Determine the character offset from the end of the original search
+ // range to the end of the paragraph, since we will want to ignore results
+ // in this area.
currentEndOffset = TextIterator::rangeLength(paragraphStart, end);
lastIteration = true;
}
« no previous file with comments | « third_party/WebKit/Source/core/editing/spellcheck/SpellCheckRequester.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698