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

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/DartEditor.java

Issue 25290002: Format selection preservation editor bits. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 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
Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/DartEditor.java
===================================================================
--- editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/DartEditor.java (revision 28056)
+++ editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/DartEditor.java (working copy)
@@ -66,6 +66,7 @@
import com.google.dart.tools.ui.internal.actions.FoldingActionGroup;
import com.google.dart.tools.ui.internal.actions.SelectionConverter;
import com.google.dart.tools.ui.internal.formatter.DartFormatter;
+import com.google.dart.tools.ui.internal.formatter.DartFormatter.FormattedSource;
import com.google.dart.tools.ui.internal.text.DartHelpContextIds;
import com.google.dart.tools.ui.internal.text.IProductConstants;
import com.google.dart.tools.ui.internal.text.ProductProperties;
@@ -759,15 +760,30 @@
final IDocument document = getSourceViewer().getDocument();
try {
+
+ final Point[] selection = new Point[1];
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ selection[0] = getSourceViewer().getSelectedRange();
+ }
+ });
+
final String unformattedSource = document.get();
- final String formattedSource = DartFormatter.format(unformattedSource, monitor, console);
+ final FormattedSource formattedSource = DartFormatter.format(
+ unformattedSource,
+ selection[0],
+ monitor,
+ console);
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
if (!formattedSource.equals(unformattedSource)) {
- document.set(formattedSource);
+ document.set(formattedSource.source);
+ getSourceViewer().setSelectedRange(
+ formattedSource.selectionOffset,
+ formattedSource.selectionLength);
}
- //TODO (pquitslund): (re)set cursor position
}
});
} catch (Exception e) {

Powered by Google App Engine
This is Rietveld 408576698