| Index: pkg/analysis_server/lib/src/utilities/change_builder_core.dart
|
| diff --git a/pkg/analysis_server/lib/src/utilities/change_builder_core.dart b/pkg/analysis_server/lib/src/utilities/change_builder_core.dart
|
| deleted file mode 100644
|
| index f5c9e9cf8ff4224528288830c9010cdc6bb68bc7..0000000000000000000000000000000000000000
|
| --- a/pkg/analysis_server/lib/src/utilities/change_builder_core.dart
|
| +++ /dev/null
|
| @@ -1,331 +0,0 @@
|
| -// Copyright (c) 2015, 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.
|
| -
|
| -import 'dart:async';
|
| -
|
| -import 'package:analysis_server/protocol/protocol_generated.dart';
|
| -import 'package:analysis_server/src/provisional/edit/utilities/change_builder_core.dart';
|
| -import 'package:analyzer/src/generated/source.dart';
|
| -
|
| -/**
|
| - * A builder used to build a [SourceChange].
|
| - */
|
| -class ChangeBuilderImpl implements ChangeBuilder {
|
| - /**
|
| - * The end-of-line marker used in the file being edited, or `null` if the
|
| - * default marker should be used.
|
| - */
|
| - String eol = null;
|
| -
|
| - /**
|
| - * The change that is being built.
|
| - */
|
| - final SourceChange _change = new SourceChange('');
|
| -
|
| - /**
|
| - * A table mapping group ids to the associated linked edit groups.
|
| - */
|
| - final Map<String, LinkedEditGroup> _linkedEditGroups =
|
| - <String, LinkedEditGroup>{};
|
| -
|
| - /**
|
| - * Initialize a newly created change builder.
|
| - */
|
| - ChangeBuilderImpl();
|
| -
|
| - @override
|
| - SourceChange get sourceChange {
|
| - _linkedEditGroups.forEach((String name, LinkedEditGroup group) {
|
| - _change.addLinkedEditGroup(group);
|
| - });
|
| - _linkedEditGroups.clear();
|
| - return _change;
|
| - }
|
| -
|
| - @override
|
| - Future<Null> addFileEdit(String path, int fileStamp,
|
| - void buildFileEdit(FileEditBuilder builder)) async {
|
| - FileEditBuilderImpl builder = await createFileEditBuilder(path, fileStamp);
|
| - buildFileEdit(builder);
|
| - _change.addFileEdit(builder.fileEdit);
|
| - builder.finalize();
|
| - }
|
| -
|
| - /**
|
| - * Create and return a [FileEditBuilder] that can be used to build edits to
|
| - * the file with the given [path] and [timeStamp].
|
| - */
|
| - Future<FileEditBuilderImpl> createFileEditBuilder(
|
| - String path, int timeStamp) async {
|
| - return new FileEditBuilderImpl(this, path, timeStamp);
|
| - }
|
| -
|
| - /**
|
| - * Return the linked edit group with the given [groupName], creating it if it
|
| - * did not already exist.
|
| - */
|
| - LinkedEditGroup getLinkedEditGroup(String groupName) {
|
| - LinkedEditGroup group = _linkedEditGroups[groupName];
|
| - if (group == null) {
|
| - group = new LinkedEditGroup.empty();
|
| - _linkedEditGroups[groupName] = group;
|
| - }
|
| - return group;
|
| - }
|
| -
|
| - @override
|
| - void setSelection(Position position) {
|
| - _change.selection = position;
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A builder used to build a [SourceEdit] as part of a [SourceFileEdit].
|
| - */
|
| -class EditBuilderImpl implements EditBuilder {
|
| - /**
|
| - * The builder being used to create the source file edit of which the source
|
| - * edit will be a part.
|
| - */
|
| - final FileEditBuilderImpl fileEditBuilder;
|
| -
|
| - /**
|
| - * The offset of the region being replaced.
|
| - */
|
| - final int offset;
|
| -
|
| - /**
|
| - * The length of the region being replaced.
|
| - */
|
| - final int length;
|
| -
|
| - /**
|
| - * The offset of the selection for the change being built, or `-1` if the
|
| - * selection is not inside the change being built.
|
| - */
|
| - int _selectionOffset = -1;
|
| -
|
| - /**
|
| - * The end-of-line marker used in the file being edited, or `null` if the
|
| - * default marker should be used.
|
| - */
|
| - String _eol = null;
|
| -
|
| - /**
|
| - * The buffer in which the content of the edit is being composed.
|
| - */
|
| - final StringBuffer _buffer = new StringBuffer();
|
| -
|
| - /**
|
| - * Initialize a newly created builder to build a source edit.
|
| - */
|
| - EditBuilderImpl(this.fileEditBuilder, this.offset, this.length) {
|
| - _eol = fileEditBuilder.changeBuilder.eol;
|
| - }
|
| -
|
| - /**
|
| - * Create and return an edit representing the replacement of a region of the
|
| - * file with the accumulated text.
|
| - */
|
| - SourceEdit get sourceEdit =>
|
| - new SourceEdit(offset, length, _buffer.toString());
|
| -
|
| - @override
|
| - void addLinkedEdit(
|
| - String groupName, void buildLinkedEdit(LinkedEditBuilder builder)) {
|
| - LinkedEditBuilderImpl builder = createLinkedEditBuilder();
|
| - int start = offset + _buffer.length;
|
| - try {
|
| - buildLinkedEdit(builder);
|
| - } finally {
|
| - int end = offset + _buffer.length;
|
| - int length = end - start;
|
| - Position position = new Position(fileEditBuilder.fileEdit.file, start);
|
| - LinkedEditGroup group =
|
| - fileEditBuilder.changeBuilder.getLinkedEditGroup(groupName);
|
| - group.addPosition(position, length);
|
| - for (LinkedEditSuggestion suggestion in builder.suggestions) {
|
| - group.addSuggestion(suggestion);
|
| - }
|
| - }
|
| - }
|
| -
|
| - LinkedEditBuilderImpl createLinkedEditBuilder() {
|
| - return new LinkedEditBuilderImpl(this);
|
| - }
|
| -
|
| - @override
|
| - void selectHere() {
|
| - _selectionOffset = offset + _buffer.length;
|
| - }
|
| -
|
| - @override
|
| - void write(String string) {
|
| - _buffer.write(string);
|
| - }
|
| -
|
| - @override
|
| - void writeln([String string]) {
|
| - if (string != null) {
|
| - _buffer.write(string);
|
| - }
|
| - if (_eol == null) {
|
| - _buffer.writeln();
|
| - } else {
|
| - _buffer.write(_eol);
|
| - }
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A builder used to build a [SourceFileEdit] within a [SourceChange].
|
| - */
|
| -class FileEditBuilderImpl implements FileEditBuilder {
|
| - /**
|
| - * The builder being used to create the source change of which the source file
|
| - * edit will be a part.
|
| - */
|
| - final ChangeBuilderImpl changeBuilder;
|
| -
|
| - /**
|
| - * The source file edit that is being built.
|
| - */
|
| - final SourceFileEdit fileEdit;
|
| -
|
| - /**
|
| - * Initialize a newly created builder to build a source file edit within the
|
| - * change being built by the given [changeBuilder]. The file being edited has
|
| - * the given absolute [path] and [timeStamp].
|
| - */
|
| - FileEditBuilderImpl(this.changeBuilder, String path, int timeStamp)
|
| - : fileEdit = new SourceFileEdit(path, timeStamp);
|
| -
|
| - @override
|
| - void addDeletion(SourceRange range) {
|
| - EditBuilderImpl builder = createEditBuilder(range.offset, range.length);
|
| - fileEdit.add(builder.sourceEdit);
|
| - }
|
| -
|
| - @override
|
| - void addInsertion(int offset, void buildEdit(EditBuilder builder)) {
|
| - EditBuilderImpl builder = createEditBuilder(offset, 0);
|
| - try {
|
| - buildEdit(builder);
|
| - } finally {
|
| - fileEdit.add(builder.sourceEdit);
|
| - _captureSelection(builder);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - void addLinkedPosition(SourceRange range, String groupName) {
|
| - LinkedEditGroup group = changeBuilder.getLinkedEditGroup(groupName);
|
| - Position position = new Position(
|
| - fileEdit.file, range.offset + _deltaToOffset(range.offset));
|
| - group.addPosition(position, range.length);
|
| - }
|
| -
|
| - @override
|
| - void addReplacement(SourceRange range, void buildEdit(EditBuilder builder)) {
|
| - EditBuilderImpl builder = createEditBuilder(range.offset, range.length);
|
| - try {
|
| - buildEdit(builder);
|
| - } finally {
|
| - fileEdit.add(builder.sourceEdit);
|
| - _captureSelection(builder);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - void addSimpleInsertion(int offset, String text) {
|
| - EditBuilderImpl builder = createEditBuilder(offset, 0);
|
| - try {
|
| - builder.write(text);
|
| - } finally {
|
| - fileEdit.add(builder.sourceEdit);
|
| - _captureSelection(builder);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - void addSimpleReplacement(SourceRange range, String text) {
|
| - EditBuilderImpl builder = createEditBuilder(range.offset, range.length);
|
| - try {
|
| - builder.write(text);
|
| - } finally {
|
| - fileEdit.add(builder.sourceEdit);
|
| - _captureSelection(builder);
|
| - }
|
| - }
|
| -
|
| - EditBuilderImpl createEditBuilder(int offset, int length) {
|
| - return new EditBuilderImpl(this, offset, length);
|
| - }
|
| -
|
| - /**
|
| - * Finalize the source file edit that is being built.
|
| - */
|
| - void finalize() {
|
| - // Nothing to do.
|
| - }
|
| -
|
| - /**
|
| - * Capture the selection offset if one was set.
|
| - */
|
| - void _captureSelection(EditBuilderImpl builder) {
|
| - int offset = builder._selectionOffset;
|
| - if (offset >= 0) {
|
| - Position position =
|
| - new Position(fileEdit.file, offset + _deltaToOffset(offset));
|
| - changeBuilder.setSelection(position);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Return the current delta caused by edits that will be applied before the
|
| - * given [offset]. In other words, if all of the edits that have so far been
|
| - * added were to be applied, then the text at the given `offset` before the
|
| - * edits will be at `offset + deltaToOffset(offset)` after the edits.
|
| - */
|
| - int _deltaToOffset(int targetOffset) {
|
| - int offset = 0;
|
| - for (var edit in fileEdit.edits) {
|
| - if (edit.offset <= targetOffset) {
|
| - offset += edit.replacement.length - edit.length;
|
| - }
|
| - }
|
| - return offset;
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A builder used to build a [LinkedEdit] region within an edit.
|
| - */
|
| -class LinkedEditBuilderImpl implements LinkedEditBuilder {
|
| - final EditBuilderImpl editBuilder;
|
| -
|
| - final List<LinkedEditSuggestion> suggestions = <LinkedEditSuggestion>[];
|
| -
|
| - LinkedEditBuilderImpl(this.editBuilder);
|
| -
|
| - @override
|
| - void addSuggestion(LinkedEditSuggestionKind kind, String value) {
|
| - suggestions.add(new LinkedEditSuggestion(value, kind));
|
| - }
|
| -
|
| - @override
|
| - void addSuggestions(LinkedEditSuggestionKind kind, Iterable<String> values) {
|
| - values.forEach((value) => addSuggestion(kind, value));
|
| - }
|
| -
|
| - @override
|
| - void write(String string) {
|
| - editBuilder.write(string);
|
| - }
|
| -
|
| - @override
|
| - void writeln([String string]) {
|
| - editBuilder.writeln(string);
|
| - }
|
| -}
|
|
|