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

Unified Diff: pkg/analysis_services/lib/correction/change.dart

Issue 484733003: Import analysis_services.dart into analysis_server.dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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 | « pkg/analysis_services/lib/correction/assist.dart ('k') | pkg/analysis_services/lib/correction/fix.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_services/lib/correction/change.dart
diff --git a/pkg/analysis_services/lib/correction/change.dart b/pkg/analysis_services/lib/correction/change.dart
deleted file mode 100644
index 415165c69855849e5d31b3fde02a3f47c03b5a3a..0000000000000000000000000000000000000000
--- a/pkg/analysis_services/lib/correction/change.dart
+++ /dev/null
@@ -1,361 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library services.correction.change;
-
-import 'package:analysis_services/constants.dart';
-import 'package:analysis_services/json.dart';
-import 'package:analyzer/src/generated/source.dart';
-
-
-/**
- * A description of a single change to one or more files. 
- */
-class Change implements HasToJson {
- /**
- * A textual description of the change to be applied. 
- */
- final String message;
-
- /**
- * A list of the [FileEdit]s used to effect the change. 
- */
- final List<FileEdit> fileEdits = <FileEdit>[];
-
- /**
- * A list of the [LinkedEditGroup]s in the change. 
- */
- final List<LinkedEditGroup> linkedEditGroups = <LinkedEditGroup>[];
-
- /**
- * The position that should be selected after the edits have been applied.
- */
- Position selection;
-
- Change(this.message);
-
- /**
- * Adds [edit] to the [FileEdit] for the given [file].
- */
- void addEdit(String file, Edit edit) {
- FileEdit fileEdit = getFileEdit(file);
- if (fileEdit == null) {
- fileEdit = new FileEdit(file);
- addFileEdit(fileEdit);
- }
- fileEdit.add(edit);
- }
-
- /**
- * Adds the given [FileEdit].
- */
- void addFileEdit(FileEdit edit) {
- fileEdits.add(edit);
- }
-
- /**
- * Adds the given [LinkedEditGroup].
- */
- void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) {
- linkedEditGroups.add(linkedEditGroup);
- }
-
- /**
- * Returns the [FileEdit] for the given [file], maybe `null`.
- */
- FileEdit getFileEdit(String file) {
- for (FileEdit fileEdit in fileEdits) {
- if (fileEdit.file == file) {
- return fileEdit;
- }
- }
- return null;
- }
-
- @override
- Map<String, Object> toJson() {
- Map<String, Object> json = {
- MESSAGE: message,
- EDITS: objectToJson(fileEdits),
- LINKED_EDIT_GROUPS: objectToJson(linkedEditGroups)
- };
- if (selection != null) {
- json[SELECTION] = selection.toJson();
- }
- return json;
- }
-
- @override
- String toString() =>
- 'Change(message=$message, edits=$fileEdits, '
- 'linkedEditGroups=$linkedEditGroups, selection=$selection)';
-}
-
-
-/**
- * A description of a single change to a single file. 
- */
-class Edit implements HasToJson {
- /**
- * The offset of the region to be modified. 
- */
- final int offset;
-
- /**
- * The length of the region to be modified.
- */
- final int length;
-
- /**
- * The text that is to replace the specified region in the original text. 
- */
- final String replacement;
-
- /**
- * An identifier that uniquely identifies this source edit from other edits in
- * the same response. This field is omitted unless a containing structure
- * needs to be able to identify the edit for some reason.
- *
- * For example, some refactoring operations can produce edits that might not
- * be appropriate (referred to as potential edits). Such edits will have an id
- * so that they can be referenced. Edits in the same response that do not need
- * to be referenced will not have an id.
- */
- String id;
-
- Edit(this.offset, this.length, this.replacement);
-
- Edit.range(SourceRange range, String replacement)
- : this(range.offset, range.length, replacement);
-
- /**
- * The offset of a character immediately after the region to be modified. 
- */
- int get end => offset + length;
-
- bool operator ==(other) {
- if (other is Edit) {
- return other.offset == offset &&
- other.length == length &&
- other.replacement == replacement;
- }
- return false;
- }
-
- /**
- * Get the result of applying the edit to the given [code].
- */
- String apply(String code) {
- return code.substring(0, offset) + replacement + code.substring(end);
- }
-
- @override
- Map<String, Object> toJson() {
- return {
- OFFSET: offset,
- LENGTH: length,
- REPLACEMENT: replacement
- };
- }
-
- @override
- String toString() {
- StringBuffer sb = new StringBuffer();
- sb.write('Edit(offset=');
- sb.write(offset);
- sb.write(', length=');
- sb.write(length);
- sb.write(', replacement=:>');
- sb.write(replacement);
- sb.write('<:');
- if (id != null) {
- sb.write(', id=');
- sb.write(id);
- }
- sb.write(')');
- return sb.toString();
- }
-
- /**
- * Get the result of applying a set of [edits] to the given [code]. Edits
- * are applied in the order they appear in [edits].
- */
- static String applySequence(String code, Iterable<Edit> edits) {
- edits.forEach((Edit edit) {
- code = edit.apply(code);
- });
- return code;
- }
-}
-
-
-/**
- * A description of a set of changes to a single file.
- *
- * [Edit]s are added in the order of decreasing offset, so they are easy to
- * apply to the original file content without correcting offsets.
- */
-class FileEdit implements HasToJson {
- /**
- * The file to be modified.
- */
- final String file;
-
- /**
- * A list of the [Edit]s used to effect the change. 
- */
- final List<Edit> edits = <Edit>[];
-
- FileEdit(this.file);
-
- /**
- * Adds the given [Edit] to the list.
- */
- void add(Edit edit) {
- int index = 0;
- while (index < edits.length && edits[index].offset > edit.offset) {
- index++;
- }
- edits.insert(index, edit);
- }
-
- /**
- * Adds the given [Edit]s.
- */
- void addAll(Iterable<Edit> edits) {
- edits.forEach(add);
- }
-
- @override
- Map<String, Object> toJson() {
- return {
- FILE: file,
- EDITS: objectToJson(edits)
- };
- }
-
- @override
- String toString() => "FileEdit(file=$file, edits=$edits)";
-}
-
-
-/**
- * A group of linked [Position]s in multiple files that are simultaneously
- * modified - if one gets edited, all other positions in a group are edited the
- * same way. All linked positions in a group have the same content.
- */
-class LinkedEditGroup implements HasToJson {
- final String id;
- int length;
- final List<Position> positions = <Position>[];
- final List<LinkedEditSuggestion> suggestions = <LinkedEditSuggestion>[];
-
- LinkedEditGroup(this.id);
-
- void addPosition(Position position, int length) {
- positions.add(position);
- this.length = length;
- }
-
- void addSuggestion(LinkedEditSuggestion suggestion) {
- suggestions.add(suggestion);
- }
-
- @override
- Map<String, Object> toJson() {
- return {
- ID: id,
- LENGTH: length,
- POSITIONS: objectToJson(positions),
- SUGGESTIONS: objectToJson(suggestions)
- };
- }
-
- @override
- String toString() =>
- 'LinkedEditGroup(id=$id, length=$length, '
- 'positions=$positions, suggestions=$suggestions)';
-}
-
-
-/**
- * A suggestion of a value that could be used to replace all of the linked edit
- * regions in a [LinkedEditGroup].
- */
-class LinkedEditSuggestion implements HasToJson {
- final LinkedEditSuggestionKind kind;
- final String value;
-
- LinkedEditSuggestion(this.kind, this.value);
-
- bool operator ==(other) {
- if (other is LinkedEditSuggestion) {
- return other.kind == kind && other.value == value;
- }
- return false;
- }
-
- @override
- Map<String, Object> toJson() {
- return {
- KIND: kind.name,
- VALUE: value
- };
- }
-
- @override
- String toString() => '(kind=$kind, value=$value)';
-}
-
-
-/**
- * An enumeration of the kind of values that can be suggested for a linked edit.
- */
-class LinkedEditSuggestionKind {
- static const METHOD = const LinkedEditSuggestionKind('METHOD');
- static const PARAMETER = const LinkedEditSuggestionKind('PARAMETER');
- static const TYPE = const LinkedEditSuggestionKind('TYPE');
- static const VARIABLE = const LinkedEditSuggestionKind('VARIABLE');
- final String name;
-
- const LinkedEditSuggestionKind(this.name);
-
- @override
- String toString() => name;
-}
-
-
-/**
- * A position in a file.
- */
-class Position implements HasToJson {
- final String file;
- final int offset;
-
- Position(this.file, this.offset);
-
- int get hashCode {
- int hash = file.hashCode;
- hash = hash * 31 + offset;
- return hash;
- }
-
- bool operator ==(other) {
- if (other is Position) {
- return other.file == file && other.offset == offset;
- }
- return false;
- }
-
- @override
- Map<String, Object> toJson() {
- return {
- FILE: file,
- OFFSET: offset
- };
- }
-
- @override
- String toString() => 'Position(file=$file, offset=$offset)';
-}
« no previous file with comments | « pkg/analysis_services/lib/correction/assist.dart ('k') | pkg/analysis_services/lib/correction/fix.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698