1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_RESULT_H_
#define COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_RESULT_H_
#include <stdint.h>
#include <string>
#include <vector>
// This class mirrors blink::WebTextCheckingResult which holds a
// misspelled range inside the checked text. It also contains a
// possible replacement of the misspelling if it is available.
struct SpellCheckResult {
enum Decoration {
// Red underline for misspelled words.
SPELLING,
// Gray underline for correctly spelled words that are incorrectly used in
// their context.
GRAMMAR,
LAST = GRAMMAR,
};
explicit SpellCheckResult(
Decoration d = SPELLING,
int loc = 0,
int len = 0,
const std::vector<std::u16string>& rep = std::vector<std::u16string>());
explicit SpellCheckResult(Decoration d,
int loc,
int len,
const std::u16string& rep);
~SpellCheckResult();
SpellCheckResult(const SpellCheckResult&);
Decoration decoration;
// The zero-based index where the misspelling starts. For spell check results
// returned by the local spell check infrastructure, this is measured by
// the code point count, i.e. each surrogate pair, such as emojis, will count
// for 2 positions. For results returned by enhanced (server side) spell
// check, positions are based on "logical" characters, i.e. emojis and their
// modifiers count for 1.
int location;
// The length of the misspelled word. The same code point / logical character
// count distinction as for `location` applies.
int length;
std::vector<std::u16string> replacements;
bool spelling_service_used = false;
};
#endif // COMPONENTS_SPELLCHECK_COMMON_SPELLCHECK_RESULT_H_
|