experimental/editor: progress

  - selection
  - some state moved out of editor.
  - Editor::getPosition() translates x,y mouse position into text
    position
  - General Editor::move() function for moving cursor
  - Editor::insert() (does not yet handle newlines)
  - Editor::remove() (does not yet delete across lines)
  - new StringSlice class to replace SkString.

Change-Id: I1ca03247a745bc045e41619cd5a839c495dc405b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/211884
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 8c7d68b..3c5c0db 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -2178,8 +2178,8 @@
 
   test_lib("sk_app") {
     public_deps = [
-      ":skia",
       ":gpu_tool_utils",
+      ":skia",
     ]
     sources = [
       "tools/sk_app/CommandSet.cpp",
@@ -2464,11 +2464,13 @@
   test_app("editor") {
     is_shared_library = is_android
     sources = [
-      "experimental/editor/editor_application.cpp",
       "experimental/editor/editor.cpp",
       "experimental/editor/editor.h",
+      "experimental/editor/editor_application.cpp",
       "experimental/editor/run_handler.cpp",
       "experimental/editor/run_handler.h",
+      "experimental/editor/stringslice.cpp",
+      "experimental/editor/stringslice.h",
     ]
     deps = [
       ":sk_app",