File: FixIt.h

package info (click to toggle)
ycmd 0%2B20230103%2Bgitf53e7ac%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,904 kB
  • sloc: python: 41,740; cpp: 6,055; java: 295; sh: 271; cs: 194; javascript: 150; ansic: 82; makefile: 46; xml: 18; objc: 10
file content (59 lines) | stat: -rw-r--r-- 1,903 bytes parent folder | download | duplicates (5)
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 (C) 2018 ycmd contributors
//
// This file is part of ycmd.
//
// ycmd is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ycmd is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with ycmd.  If not, see <http://www.gnu.org/licenses/>.

#ifndef FIXIT_H_LHWQA2O9
#define FIXIT_H_LHWQA2O9

#include "Location.h"
#include "Range.h"

#include <string>
#include <vector>

namespace YouCompleteMe {

/// Information about a replacement that can be made to the source to "fix" a
/// diagnostic.
struct FixItChunk {
  /// The replacement string. This string should replace the source range
  /// represented by 'range'.
  std::string replacement_text;

  /// The range within the file to replace with replacement_text.
  Range range;

};


/// Collection of FixItChunks which, when applied together, fix a particular
/// diagnostic. This structure forms the reply to the "FixIt" subcommand, and
/// represents a lightweight view of a diagnostic. The location is included to
/// aid clients in applying the most appropriate FixIt based on context.
struct FixIt {
  std::vector< FixItChunk > chunks;

  Location location;

  /// This is the text of the diagnostic. This is useful when there are
  /// multiple diagnostics offering different fixit options. The text is
  /// displayed to the user, allowing them choose which diagnostic to apply.
  std::string text;
};

} // namespace YouCompleteMe

#endif /* end of include guard: FIXIT_H_LHWQA2O9 */